Код: Выделить всё
...
coKATSOPR==TTNDOC.wtable and KATSOPR.nrec==TTNDOC.cdoc
...
Модераторы: m0p3e, edward_K, Модераторы
Код: Выделить всё
...
coKATSOPR==TTNDOC.wtable and KATSOPR.nrec==TTNDOC.cdoc
...
Код: Выделить всё
create view
var
date1:date
date2:date
dat1:date
dat2:date
as select *
from
sklorder
,katpodr
,katsopr
,schfact
,basedoc
,katorg orgpol
,katorg orgGrPol
,katcity //ърЄрыюу уюЁюфют
WHERE
((
0==SKLORDER.sp
and 1==SKLORDER.vidorder
and KATPODR.nrec==SKLORDER.cpodr
and dat1<<=SKLORDER.dord
and dat2>>=SKLORDER.dord
and SKLORDER.csopr==KATSOPR.nrec
//and KATSOPR.vidsopr==201
//and coKATSOPR==TTNDOC.wtable
//and KATSOPR.nrec==TTNDOC.cdoc
//and dat1<<=ttndoc.dpunrbeg(noindex)
//and dat2>>=ttndoc.dpunrbeg(noindex)
and KATSOPR.CSTEPDOC==basedoc.nrec
and basedoc.corg==orgPol.nrec
and orgGrPol.ccity==katcity.nrec
))
;
Код: Выделить всё
. . .
((
0==SKLORDER.sp
and 1==SKLORDER.vidorder
and KATPODR.nrec==SKLORDER.cpodr
and dat1<<=SKLORDER.dord
and dat2>>=SKLORDER.dord
and SKLORDER.csopr==KATSOPR.nrec
and KATSOPR.corg==KATORG.nrec
))
;
. . .
_loop SKLORDER {
if ((getfirst fastfirstrow KATSOPR)=0) {
if (KATSOPR.vidsopr=201) {
// Организация - KATORG.name
// Адрес - KATORG.addr
// Дата отгрузки - SKLORDER.dord или KATSOPR.dopr
// Номер сч/ф - KATSOPR.nsopr или можно SCHFACT подтянуть
// Сумма - KATSOPR.summa
}
}
}
. . .
Код: Выделить всё
interface _kor_otgruzvibor 'Отчёт отгрузок с выбором' escclose;
show at(,,30,);
const
xlColorBlack = 0;
end;
table struct vivoddan
(
org:string,
adr:string,
datotg:string,
nomer:string,
summapol:double
)
with index
(idx1=org+nomer);
create view
var
date1:date
date2:date
dat1:date
dat2:date
as select *
from
sklorder
,katpodr
,katsopr
,katorg
WHERE
((
0==SKLORDER.sp
and 1==SKLORDER.vidorder
and KATPODR.nrec==SKLORDER.cpodr
and dat1<<=SKLORDER.dord
and dat2>>=SKLORDER.dord
and SKLORDER.csopr==KATSOPR.nrec
and KATSOPR.corg==KATORG.nrec
))
;
screen srcsclad show at(,,,3);
fields date1:,noprotect;
date2:,noprotect;
buttons
cmOk, default;
cmCancel;
<<
.@@@@@@@@@ .@@@@@@@@@
<. ОК .> <. Выход .>
>>
end;
panel psclad show at(,4,,);
browse brsclad
table katpodr;
fields
katpodr.name 'Склад':[30],protect;
end;
end;
handleevent
cmInit:
{
//getfirst katpodr;
date1:=date(1,month(cur_date),year(cur_date));
date2:=Cur_Date;
}
cmOk:
{
var
filename:string;
var itogs:double;
filename:=GetStringParameter('Files','OutputFilesDirectory',0)+'отгрузки'+DatetoStr(cur_Date,'DDMMYYYY')+'.xls';
xlCreateExcel(filename,true);
dat1:=date1;
dat2:=date2;
var summ:double;
StartNewVisual(vtRotateVisual, vfTimer+vfBreak+vfConfirm,'Идет расчет реальных отгрузок...', RecordsInTable(#sklorder));
var i:integer;
i:=2;
summ:=0;
delete all vivoddan;
xlSetCellFormula('№',1,1,1,1);
xlSetCellFormula('Организация',1,2,1,2);
xlSetCellFormula('Адрес',1,3,1,3);
xlSetCellFormula('Дата отгрузки',1,4,1,4);
xlSetCellFormula('Номер сч/ф',1,5,1,5);
xlSetCellFormula('Сумма',1,6,1,6);
xlSetCellFormula('Получено',1,7,1,7);
//message('мы выбрали'+katpodr.name);
_loop sklorder
{
if ((getfirst fastfirstrow KATSOPR)=0) {
if (KATSOPR.vidsopr=201) {
if GetFirst vivoddan where((katorg.name==vivoddan.org and katsopr.nsopr==vivoddan.nomer))<>tsOk
then
{
insert in vivoddan set vivoddan.org:=katorg.name,
vivoddan.adr:=katorg.addr,
vivoddan.datotg:=sklorder.dord,
vivoddan.nomer:=katsopr.nsopr,
vivoddan.summapol:=katsopr.summa;
}
else update current vivoddan set vivoddan.summapol:=vivoddan.summapol+katsopr.summa;
}
}
}
_loop vivoddan
{
xlSetCellFormula(i-1,i,1,i,1);
xlSetCellFormula(vivoddan.org,i,2,i,2);
xlSetCellFormula(vivoddan.adr,i,3,i,3);
xlSetCellFormula(vivoddan.datotg,i,4,i,4);
xlSetCellFormula(vivoddan.nomer,i,5,i,5);
xlSetCellFormula(DoubleToStr(vivoddan.summapol,'666666666,888'),i,6,i,6);
itogs:=vivoddan.summapol+itogs;
i:=i+1;
}
xlSetCellFormula('ИТОГО:',i,5,i,5);
xlSetCellFormula(DoubleToStr(itogs,'666666666,888'),i,6,i,6);
StopVisual('Опрерации завершена!',0);
//xlPageSetupOrientation({xlPortrait=1|xlLandscape=2});
xlSetActiveSheetByName('ОТГРУЗКА');
xlAutoFit(1,1,i,7);//устанавливаем ширину колонок
xlFrameCells ( xlBorderL, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
xlFrameCells ( xlBorderR, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
xlFrameCells ( xlBorderT, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
xlFrameCells ( xlBorderB, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
xlFrameCells ( xlInsideV, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
xlFrameCells ( xlInsideH, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
xlFreeze(2,1);
xlKillExcel;
}
end;
end.