Re: нид хелп по группировкам
Добавлено: 20 апр 2004, 08:30
Вот пример Выгрузки в 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
Как видите все просто. Важно! В одной из ячеек сохраняем количество выгруженных строк. Это пригодится для нашего макроса.
.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