v_where:='';
lSheetDoc := TSheetDoc(DocView1.Doc);
lSheet := TDataSheet(lSheetDoc.Sheet);
if SDate1.Text<>' - - ' then
begin
tdate1:=DatetoStr(SDate1.Date)+' '+TimetoStr(STime1.Time) ;
v_where :=v_where+' and a.checkdate>=to_date('+quotedstr(tdate1)+',''yyyy-mm-dd hh24:mi:ss'')';
SysUtils.DateTimeToString(smonth,'yyyy-MM',SDate1.date);
end;
if SDate2.Text<>' - - ' then
begin
tdate2:=DatetoStr(SDate2.Date)+' '+TimetoStr(STime2.Time) ;
v_where :=v_where+' and a.checkdate<to_date('+quotedstr(tdate2)+',''yyyy-mm-dd hh24:mi:ss'')';
end;
if v_where='' then
begin
dialogs.ShowMessage('请选择条件');
sysutils.abort;
end;
//白胚投料 外发
with qry1 do
begin
close;
commandtext:='select b.stufftype,c.stufftype dyestufftype,b.addition,b.stationitem,nvl(sum(outkg/c.switchrate),0) outkg ,'
+'nvl(sum(outkg/c.switchrate*nvl(d.price,0)),0) price from dye_outdetail a join '
+'dye_outmain b on a.guid=b.guid join dye_dyestuffbase c on a.dyestuffno=c.dyestuffno left join (select * from DYE_PRICEDETAIL where '
+'pmonth='+sysutils.QuotedStr(smonth)+') d on c.dyestuffno=d.dyestuffno where b.outid not in (select outid from '
+'dye_outmain where addition=0 and stufftype=''工卡回修'') ' +v_where
+'group by b.stufftype,c.stufftype,b.addition,b.stationitem' ;
open;
first;
ProgressBar2.Visible:=true;
ProgressBar2.Position:=0;
ProgressBar2.Max:=recordcount;
while not eof do
begin
i:=0;j:=0;z:=0;
//dialogs.ShowMessage(fieldbyname('stufftype').AsString.trim);
if (fieldbyname('stufftype').AsString.trim='工卡领料单') or (fieldbyname('stufftype').AsString.trim='前后处理') or (fieldbyname('stufftype').AsString.trim='样品工卡') then
begin
i:=4;j:=6;z:=7 ;
if fieldbyname('dyestufftype').AsString.trim='助剂' then i:=i+2
else
if fieldbyname('dyestufftype').AsString.trim='化工料' then i:=i+4;
end
else
if fieldbyname('stufftype').AsString.trim='工卡加料单' then
begin
if fieldbyname('addition').asinteger=0 then
begin
i:=4;j:=14;z:=15;
end
else
if fieldbyname('addition').asinteger=1 then
begin
i:=4;j:=8;z:=9;
end
else
if fieldbyname('addition').asinteger=2 then
begin
i:=4;j:=10;z:=11;
end
else
if fieldbyname('addition').asinteger>=3 then
begin
i:=4;j:=12;z:=13;
end ;
if fieldbyname('dyestufftype').AsString.trim='助剂' then i:=i+2
else
if fieldbyname('dyestufftype').AsString.trim='化工料' then
i:=i+4;
end
else
if fieldbyname('stufftype').AsString.trim='外发及其它出库' then
begin
if FieldByName('stationitem').AsString.trim='洗缸' then
begin
i:=4;j:=30;z:=31;
end
else
if FieldByName('stationitem').AsString.trim='化验室领用' then
begin
i:=4;j:=32;z:=33;
end
else
if FieldByName('stationitem').AsString.trim='后整领用' then
begin
i:=4;j:=34;z:=35;
end
else
if FieldByName('stationitem').AsString.trim='水洗' then
begin
i:=4;j:=36;z:=37;
end
else
if FieldByName('stationitem').AsString.trim='车间退回' then
begin
i:=4;j:=44;z:=45;
end
else
begin
i:=4;j:=38;z:=39;
end;
if fieldbyname('dyestufftype').AsString.trim='助剂' then i:=i+2
else
if fieldbyname('dyestufftype').AsString.trim='化工料' then i:=i+4;
end;
lSheet.CellTypes[i,j] := TCellType.ctCell; //静态单元格
if fieldbyname('outkg').AsString.trim<>'' then
begin
if lSheet.Cells[i,j].AsString.trim<>'' then
lSheet.Cells[i,j].AsString :=floattostr(strtofloat(lSheet.Cells[i,j].AsString)+strtofloat(fieldbyname('outkg').AsString ) )
else
lSheet.Cells[i,j].AsString :=fieldbyname('outkg').AsString ;
// dialogs.ShowMessage(fieldbyname('outkg').AsString);
end
else
lSheet.Cells[i,j].AsString :='0';
lSheet.CellTypes[i,z] := TCellType.ctCell; //静态单元格
if fieldbyname('price').AsString.trim<>'' then
begin
if lSheet.Cells[i,z].AsString.trim<>'' then
lSheet.Cells[i,z].AsString :=floattostr(strtofloat(lSheet.Cells[i,z].AsString)+strtofloat( fieldbyname('price').AsString ) )
else
lSheet.Cells[i,z].AsString := fieldbyname('price').AsString;
end
else
lSheet.Cells[i,z].AsString :='0';
ProgressBar2.Position:=progressbar2.Position+1;
next ;
end;
end;
ProgressBar2.Visible:=false; |