powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Re-Cross-Tab
9 сообщений из 9, страница 1 из 1
Re-Cross-Tab
    #35486906
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отчёт о расходе канцтоваров для завхоза(в отличии от других) формируется
в виде Cross-Tab(шахматка),где левый столбец-наименование товара,
правее столбцы о расходе товара по подразделениям.
Далее завхоз заявил,что при формировании отчёта ему удобнее данные
вводить также в виде шахматки.
Поэтому возникла задача:
таблицу Cross-Tab преобразовать в "линейную" таблицу
*!* СТРУКТУРА SAXR (шахматка расхода)
*!*
*!* 1 ID_TOV I(4,0)
*!* 2 N_101 N(9,3)
*!* 3 N_112 N(9,3)
*!* 4 N_128 N(9,3)
*!* 5 N_129 N(9,3)
*!* 6 N_16 N(9,3)
*!* .....................
*!* .....................
*!* 55 N_85 N(9,3)
*!* 56 N_91 N(9,3)
*!* 57 N_93 N(9,3)
*!* 58 N_94 N(9,3)
*!* 59 TOTAL N(11,3)

*!* СТРУКТУРА ТRAS (таблица расхода)
*!* 1 ID_TOV I(4)
*!* 2 ID_RAS I(4)
*!* 3 KOL N(11,3)

На VFP6 4 года назад:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELE SAXR
KPL=AFIELDS(MAS)- 1 
GO TOP
SCAN 
	TOV_ID=SAXR.ID_TOV
	FOR I= 2  TO M.KPL
		NGR=RTRIM(MAS(I, 1 ))
		SELE SAXR
		suma=&NGR
		IF m.suma> 0 
			NGR=RIGHT(NGR,LEN(NGR)- 2 )
			RAS_ID=VAL(NGR)
			insert into TRAS (id_tov,id_ras,kol) values (tov_id,ras_id,m.suma) 	
		ENDIF	
	ENDFOR
ENDSCAN
GO TOP


Эта задача у меня возникла на Vfp9 ,поэтому появилось такое решение:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELE SAXR
KPL=FCOUNT()- 1 
GO TOP
SCAN 
	FOR I= 2  TO M.KPL
			insert into tras ;
			SELECT ID_TOV,VAl(RIGHT(RTRIM(field(i)),LEN(RTRIM(field(i)))- 2 )) as id_ras,;
			eval(RTRIM(field(i))) as kol from saxr ;
			WHERE eval(RTRIM(field(i))) # 0 
	ENDFOR
ENDSCAN
Вопрос:есть ли решения более оптимальные
...
Рейтинг: 0 / 0
Re-Cross-Tab
    #35486938
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LUCIANВопрос:есть ли решения более оптимальные
Казимирыч, ты не поверишь, но есть. Но не такие, как ты ожидаешь.
1. Нарисовать табличку в екселе. Будет как раз как ему надо. С кучей пустых ячеек, необходимостью длинной прокрутки нужной колонки или строки и т.д.
2. Перестать заниматься ерундой и пытаться неэффективно один-в-один копировать ручной учет в компьютере с применением баз данных и эмуляции этой базой данных электронной таблицы с помощью огромного неповоротливого грида. Шахматки и базы данных - вещи слабо совместимые.
...
Рейтинг: 0 / 0
Re-Cross-Tab
    #35486975
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай куб и пусть этот куб в Excel крутят как хотят.

Что это за "фиговина" такая, для чего нужна и как с ней работать можно почитать в книжке

Брайан Ларсон. Разработка бизнес-аналитики в Microsoft SQL Server 2005

Это как раз для начинающих. Описаны все используемы термины и решаемые задачи. Там кстати начинают с того, что объясняют почему это вообще понадобилось.
...
Рейтинг: 0 / 0
Re-Cross-Tab
    #35486993
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov Завхоз твоим ответом возмущён.Потому что,автоматически подключается из задачи склады приход со склада и во время ввода данных осуществляется контроль на перерасход.
Excel тоже используется для вывода отчёта на печать,при этом завхоз ужимает в Excel отчёт до нужных размеров.
...
Рейтинг: 0 / 0
Re-Cross-Tab
    #35487040
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov. 2. Перестать заниматься ерундой и пытаться неэффективно один-в-один копировать ручной учет в компьютере с применением баз данных и эмуляции этой базой данных электронной таблицы с помощью огромного неповоротливого грида. Шахматки и базы данных - вещи слабо совместимые.

Конечная цель отчётов в подразделениях это внутрицеховой учёт движения материалов.Т.е. после получения отчёта получаем оборотно-сальдовую ведомость движения материалов по цеху и всё это делать в Excel я не собираюсь
...
Рейтинг: 0 / 0
Re-Cross-Tab
    #35487068
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LUCIANSergey Sizov Завхоз твоим ответом возмущён.
Ты думаешь я этим удивлен? Думаешь он у меня такой первый! [/quot]
Потому что,автоматически подключается из задачи склады приход со склада и во время ввода данных осуществляется контроль на перерасход.
Excel тоже используется для вывода отчёта на печать,при этом завхоз ужимает в Excel отчёт до нужных размеров.[/quot]
"Не можно впрячь в одну упряжку коня и трепетную лань!" (С) Не мое.
Твоя задача не подстраиваться под, мягко говоря, не очень адекватные, желания пользователя, а сделать достаточно удобное и ему, и тебе.
Шахматка - это один отчет по двум разрезам. В шахматке эти разрезы совмещены. Но смотрит и использует пользователь в один момент времени всегда только один разрез. Пользователь обычно сильно зашорен и не замечает этого. И по привычке тратит массу времени на просмотр нужной строки/колонки. А массу потому, что в сктрок/колонки очень длинные, в них туча пустого места, которые как раз и замедляют работу, причем и в ручном, и в "компьютерном" виде. И вот твоя задача нарисовать легкий и быстрый ввод данных по одному из разрезов. Построить отчет/просмотр данных по любому из двух разрезов не проблема.
Осталось пере/научить пользователя. :)
...
Рейтинг: 0 / 0
Re-Cross-Tab
    #35487168
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey SizovТвоя задача не подстраиваться под, мягко говоря, не очень адекватные, желания пользователя, а сделать достаточно удобное и ему, и тебе.
Не согласен ! У каждого цеха(подразделения) свой специфический отчёт т.е.к отчёту строй-цеха и отчёту отдела АСУ нельзя применить одно правило, хотя структура оборотки материалов у тех и других одинакова.
...
Рейтинг: 0 / 0
Re-Cross-Tab
    #35487264
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LUCIAN Sergey SizovТвоя задача не подстраиваться под, мягко говоря, не очень адекватные, желания пользователя, а сделать достаточно удобное и ему, и тебе.
Не согласен !
Не удивил!
У каждого цеха(подразделения) свой специфический отчёт т.е.к отчёту строй-цеха и отчёту отдела АСУ нельзя применить одно правило,
Именно! Отчет! Но отчеты не должны редактироваться. И отчеты, как я уже написал, делаются легко.
хотя структура оборотки материалов у тех и других одинакова.
Вот именно! Правильно мыслишь! Посиди, еще подумай в том же направлении! :)

ps: возможно на следующей неделе смогу попасть в гости. Не прогонишь? :)
...
Рейтинг: 0 / 0
Re-Cross-Tab
    #35487548
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizovвозможно на следующей неделе смогу попасть в гости. Не прогонишь?
Кали ласка Кали ласка у нас заусёды месца ёсць ты для нас Сяргей пажаданы гость
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Re-Cross-Tab
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]