нид хелп по группировкам

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Spvl
Постоянный обитатель
Сообщения: 136
Зарегистрирован: 29 мар 2005, 17:49

Re: нид хелп по группировкам

Сообщение Spvl »

Вот пример Выгрузки в Excel(лишнее в отчете убрано).
Как видите все просто. Важно! В одной из ячеек сохраняем количество выгруженных строк. Это пригодится для нашего макроса.

.form 'Rasp_in_cex'
.ard
.var
.endvar
.Create view t as select
katpodr.name,
katnazna.name,
katmc.name,
spsopr.kolfact,
spsopr.price
from katsopr, spsopr
where (( katsopr.cpodrto==katpodr.nrec and
katsopr.cnazna==katnazna.nrec and
spsopr.csopr==katsopr.nrec and
spsopr.cmcusl==katmc.nrec
)) and (cSkl=katsopr.cpodrfrom and katsopr.vidsopr=501 and katsopr.dsopr>=FromDate and katsopr.dsopr<=ToDate );

.begin
xlCreateExcel('Отчет1',true);
if (xlIsExcelValid)
xlSetActiveWorkBookByName('Отчет1');
xlSetSheetName(1,'исходные данные');
xlSetActiveSheet(1);
xlSetCellStringValue('Объект' , 3, 1, 3, 1);
xlSetCellStringValue('Назначение' , 3, 2, 3, 2);
xlSetCellStringValue('Мат Ценность' , 3, 3, 3, 3);
xlSetCellStringValue('Количество' , 3, 4, 3, 4);
xlSetCellStringValue('Цена руб' , 3, 5, 3, 5);
xlSetCellStringValue('Стоимость' , 3, 6, 3, 6);
i:=4;

}
else
{
Rasp_in_cex.fBreak;
}
end.
.{ table 't'

.begin
xlSetNumberFormat('@' , i, 1, i, 1);
xlSetCellStringValue(t.katpodr.name , i, 1, i, 1);
xlSetCellStringValue(t.katnazna.name , i, 2, i, 2);
xlSetCellStringValue(t.katmc.name , i, 3, i, 3);
xlSetCellNumberValue(t.spsopr.kolfact , i, 4, i, 4);
xlSetCellNumberValue(round(t.spsopr.price,2) , i, 5, i, 5);
xlSetCellNumberValue(round(t.spsopr.price*t.spsopr.kolfact,2) , i, 6, i, 6);
inc(i);
end.
.}
.Begin
xlSetCellStringValue('Номер последней строки', 1, 9, 1, 9);
xlSetCellNumberValue(i-1 , 1, 10, 1, 10);
xlImportModule(translatepath('%startpath%')+'BAS\cex_rasp.bas');
xlRunMacro('cex_rasp');
xlKillExcel;
end.
.endform
ApachiA
Постоянный гость
Сообщения: 58
Зарегистрирован: 29 мар 2005, 17:49
Откуда: -
Контактная информация:

Re: нид хелп по группировкам

Сообщение ApachiA »

Молодец Павел :) я еще в самом начале говорил работаите с Ехселем
ХОЧУ изучить правила написания ИНТЕРФЕЙСОВ, создание собственных контуров и компиляции ADF словарей :)
Spvl
Постоянный обитатель
Сообщения: 136
Зарегистрирован: 29 мар 2005, 17:49

Re: нид хелп по группировкам

Сообщение Spvl »

Ну, надеюсь исходные данные Вы в Excel уже увидели. Дальше все действия уже в Екселе.
Влючаем запись макроса.
"Данные/Сводная Таблица" - вызывается мастер построения сводного отчета. Там и делаются все группировки. Строим отчет нужного вида с нужными группировками.
Останавливаем запись макроса.
Заходим в записанный макрос и любыми средствами записываем его в файл
"Галактика"/EXE/BAS/"имя файла"
Данный макрос будет работать только с текущим количеством строк в Екселе. Вот тут то нам и пригодится кол-во выгруженных строк .
В макрос добавим сл. строку
ss = "R" + Trim(Str(Worksheets("исходные данные").Range("J1").Value)) + "C6"
А вот пример ее использования.
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'исходные данные'!R3C1:"+ss).CreatePivotTable TableDestination:="", TableName _
:="СводнаяТаблица2"
Ну вот и все ваш макрос обработает любое количество выгруженных строк.

Надеюсь, Кто то сможет повторить :)
У меня пользователи очень довольны отчетами в Ексель. В макрос так же можно записать любую дополнительную обработку и украшательство. При навыке любой сложный отчет пишется за 30 минут со всеми оформлениями.
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: нид хелп по группировкам

Сообщение ecasoft »

А у нас не очень довольны пользователи тем, что перевели в Эксел отчеты. МЫ сделали выгрузку из Галактики, а затем запускаем маркос на образование сводных таблиц. Так все красиво..мышкой колонки переставил - анализ уже другой.

Но

Во-первых, при большой выгрузке сама выгрузка занимает уже десятки минут....свод идет тоже не быстро..вообщем все не быстро получается. Одним словом, если данных немного, то годится..если нет..то про Эксель лучше забыть сразу.

Во-вторых поддержка макросов. У одного юзера эксел 97..у другого XP. Так как Майкрософт особо не озадачивает себя поддержкой совместимости кода Бейсика, то одни и теже макросы могут не работать для разных Юзеров..да и вообще с поддержкой всего наработанного постоянные проблемы.

Сначало радовался,т.к. работы намного меньше по разработке отчетности аналитической когда через Эксель..потом понял, что лучше этим не увлекаться...проблем с сопровождением оказалось больше, чем с отчетность обычной Галактической.
Некоммерческое общение в форуме
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: нид хелп по группировкам

Сообщение Deinis »

>> при большой выгрузке сама выгрузка занимает уже десятки минут
Сама выгрузка!!! То есть получение данных! Без этого никуда не денешься, увы! Как же иначе доставать данные из БД??? Только выгрузкой ;))

А вот непосредственно вывод данных в отчетный Excel-файл у нас довольно быстро проходит:
Лист №1 - 4300 строк
Лист №2 - 6600 строк
Выводятся оба листа в один файл примерно за 1,5 минуты.

Вывод: Используйте функции xlSetCellStringValue и xlSetCellNumberValue только (!!!) для формирования шапки отчета! Для наполнения тела отчетного Excel-файла пользуйтесь матричными функциями: xlCreateMatrix, xlSTWriteToMatrix, xlDOWriteToMatrix, xlWriteMatrixToExcel, xlFreeMatrix. Их использование ускоряет работу в десятки раз!!!


Насчет макросов - ничего не могу сказать. Никогда не пользовался ими.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: нид хелп по группировкам

Сообщение m0p3e »

А по моим подсчетам в сотни раз! ;)
paa
Сообщения: 6
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Самара Самарская компания Байт
Контактная информация:

Re: нид хелп по группировкам

Сообщение paa »

Уважаемый Maverick, вышлите мне пожалуйста документацию о иерархических формах на pantyushin@byte-et.ru, буду очень признателен.
dZima
Новичок
Сообщения: 29
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: нид хелп по группировкам

Сообщение dZima »

и мне плз на fr0st@mail.ru
\\m/ ©[°±°]© \\m/
dZima
Новичок
Сообщения: 29
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: нид хелп по группировкам

Сообщение dZima »

и мне плз на frost@tut.by
\\m/ ©[°±°]© \\m/
Serges
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49

Re: и мне, плз

Сообщение Serges »

>> Описалово как работать с этими объектами могу намылить

Пожалуйста, и мне. Очень интересно.
ccc@yandex.ru
Галактика 8.10, Oracle 10g / 10.2.0.4
Grom
Местный житель
Сообщения: 276
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Северо-Запад Много

Re: и мне, плз

Сообщение Grom »

Пожалуйста, и мне.
Подход к делу: СДЕЛАЛ и ... ЗАБЫЛ, а ОНО пусть САМО работает (не люблю возвращаться и повторяться).
Ответить