Дублирует последнюю запись таблицы
Добавлено: 14 мар 2008, 10:47
Помогите пожалуйста разобраться с кодом. На основе формы прототипа создаю свою, которая формирует файл .xls. Временные таблицы заполняются правильно. А вот во время выгрузки в Excel, он берет последнюю запись таблицы и дублирует столько раз, сколько записей в таблице вообще. Где, что упущено, почему не выводит корректно?
Код: Выделить всё
.LinkForm 'RTTEKOST_01_' Prototype is 'rtTekOst'
.Group 'Отчеты в НДЕ'
.NameInList 'Текущие остатки МЦ 2 отчета в Excel'
.var
Subj, Supp, Prog, org : string;
SelMC : comp;
LastPr : double;
xlRes, xlRes2 : Boolean;
.endvar
.create view vwMain as select *
from mtmyTekOst,
mtmyTemMC where (( mtmyTekOst.NrecMC == mtmyTemMc.NrecMC ))
;
.{
.{
.{
.{
.begin
ClearBuffer(vwMain.tnmtmyTekOst);
vwMain.mtmyTekOst.NrecMC := MCNREC;
vwMain.mtmyTekOst.NrecPodr := PodrNrec;
vwMain.mtmyTekOst.NamePodr := PodrName;
vwMain.mtmyTekOst.NrecMOL := MOLNrec;
vwMain.mtmyTekOst.NameMOL := MOLName;
vwMain.mtmyTekOst.OstSum := sumOstatok;
vwMain.mtmyTekOst.OstKol := kolOstatok;
vwMain.mtmyTekOst.RezSum := sumRezerv;
vwMain.mtmyTekOst.RezKol := kolRezerv;
vwMain.insert current vwMain.mtmyTekOst;
if vwMain.getfirst mtmyTemMC where (( MCNREC == mtmyTemMC.NrecMC )) <> tsOk
{
ClearBuffer(vwMain.tnmtmyTemMC);
vwMain.mtmyTemMC.NrecMC := MCNREC;
vwMain.mtmyTemMC.NameMC := MCName;
vwMain.mtmyTemMC.KodMC := BarKod;
vwMain.mtmyTemMC.AvgPr := averPrice;
vwMain.mtmyTemMC.LastPr := lastpr;
vwMain.mtmyTemMC.PrgMC := prog;
vwMain.mtmyTemMC.Suppl := supp;
vwMain.mtmyTemMC.Subjct := subj;
vwMain.insert current vwMain.mtmyTemMC;
}
end.
end.
.}
.}
.}
.}
.begin
var
NR,NC : integer;
xlRes:=True;
xlRes:=xlCreateExcelWithTemplate((translatepath('%StartPath%Asu\XlTempl\')+'temTekOst.xlt'),True);
xlRes:=xlIsExcelValid;
xlRes:=xlDisplayAlerts(False);
xlRes:=xlSetActiveSheetByName('Podr');
xlRes:=xlSetCellStringValue(string(CommonFormHeader),1,1,1,1);
xlRes:=xlSetCellStringValue(string(NDESim),6,6,6,6);
NR:=8; NC:=1;
vwMain._loop mtmyTemMC
{
xlRes:=xlSetCellStringValue(string(mtmyTemMC.NameMC),NR,NC,NR,NC);
xlRes:=xlSetCellStringValue(string(mtmyTemMC.KodMC),NR,NC+1,NR,NC+1);
inc(NR);
vwMain._loop mtmyTekOst ordered by index i02
{
xlSetCellStringValue(string(mtmyTekOst.NamePodr),NR,NC,NR,NC);
xlSetCellStringValue(string(mtmyTekOst.NameMOL),NR,NC+1,NR,NC+1);
inc(NR);
}
}
xlRes:=xlKillExcel;
end.
.endform