📄 upurchase.~pas
字号:
//inherited;
CDSsub.DisableControls;
try
excelid := createoleobject('excel.application');
mybook := createoleobject('excel.sheet');
mybook := excelid.workbooks.add;
row := 1;
col := 1;
excelflg := true;
except
excelflg := false;
application.MessageBox('请确定EXCEL是否正确安装!', '提示信息', mb_ok);
end;
if excelflg then
begin
colcount := 5;
excelid.range['A' + inttostr(row), chr(64 + colcount) +
inttostr(row)].merge();
mybook.worksheets[1].cells.item[row, col] := '基本报表';
mybook.worksheets[1].cells.item[row, col].font.size := 18;
mybook.worksheets[1].cells.item[row, col].font.bold := true;
mybook.worksheets[1].cells.item[row, col].HorizontalAlignment := xlcenter;
row := row + 1;
excelid.range['A' + inttostr(row), chr(64 + colcount) +
inttostr(row)].merge();
mybook.worksheets[1].cells.item[row, col] := '报表日期:' +
datetostr(date);
row := row + 1;
frow := row;
CDSsub.First;
excelid.columns[1].ColumnWidth := Grid.Columns[0].Width / 8;
excelid.columns[1].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 1] := '序号';
excelid.columns[2].ColumnWidth := Grid.Columns[1].Width / 8;
excelid.columns[2].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 2] := '产品代码';
excelid.columns[3].ColumnWidth := Grid.Columns[2].Width / 8;
excelid.columns[3].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 3] := '数量';
excelid.columns[4].ColumnWidth := Grid.Columns[3].Width / 8;
excelid.columns[4].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 4] := '年/月/日';
excelid.columns[5].ColumnWidth := Grid.Columns[4].Width / 8;
excelid.columns[5].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 5] := '时/分/秒';
row := row + 1;
i:=1;
while not CDSsub.Eof do
begin
mybook.worksheets[1].cells.item[row, 1] :=i;
mybook.worksheets[1].cells.item[row, 2] := CDSsub['fcode'];
mybook.worksheets[1].cells.item[row, 3] := CDSsub['fqty'];
mybook.worksheets[1].cells.item[row, 4] := CDSsub['sdate'];
mybook.worksheets[1].cells.item[row, 5] := CDSsub['stime'];
i:=i+1 ;
row := row + 1;
CDSsub.Next;
end;
excelid.range['A' + inttostr(row), chr(64 + colcount) +
inttostr(row)].merge();
mybook.worksheets[1].cells.item[row, col].font.size := 12;
mybook.worksheets[1].cells.item[row, col].font.bold := true;
mybook.worksheets[1].cells.item[row, col].HorizontalAlignment := xlcenter;
mybook.worksheets[1].cells.item[row, col] := '总记录数:' +
inttostr(CDssub.RecordCount) + '条';
row := row + 1;
rpstr := '报表条件:';
excelid.range['A' + inttostr(row), chr(64 + colcount) +
inttostr(row)].merge();
mybook.worksheets[1].cells.item[row, col] := rpstr;
row := row + 1;
excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
- 1)].Borders[1].LineStyle := xlContinuous;
excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
- 1)].Borders[2].LineStyle := xlContinuous;
excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
- 1)].Borders[3].LineStyle := xlContinuous;
excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
- 1)].Borders[4].LineStyle := xlContinuous;
excelid.visible := true;
end;
CDSsub.EnableControls;
end;
procedure Tfrmpurchase.BitBtn2Click(Sender: TObject);
var
excelid, mybook: variant;
row, col, i, j, colcount, frow: integer;
excelflg: boolean;
rpstr: string;
per_count, datasum, dsum1, dsum2: integer;
datas1, datas2, datas3: string;
begin
with adoquery3 do
begin
sql.clear;
sql.add(' select fname,fcode,sum(fqty) fqty from Tpurchasesub a,titem b,tpurchase c');
sql.add(' where a.fitemid=b.fid and a.fresid=c.fresid');
if wwDBDateTimePicker2.Text<>'' then
sql.add(' and c.fdelivdate = :dd');
sql.add(' group by fname,fcode');
if wwDBDateTimePicker2.Text<>'' then
Parameters.ParamByName('dd').Value:=wwDBDateTimePicker2.Date;
open;
end;
adoquery3.DisableControls;
try
excelid := createoleobject('excel.application');
mybook := createoleobject('excel.sheet');
mybook := excelid.workbooks.add;
row := 1;
col := 1;
excelflg := true;
except
excelflg := false;
application.MessageBox('请确定EXCEL是否正确安装!', '提示信息', mb_ok);
end;
if excelflg then
begin
colcount := 4;
excelid.range['A' + inttostr(row), chr(64 + colcount) +
inttostr(row)].merge();
mybook.worksheets[1].cells.item[row, col] := '基本报表';
mybook.worksheets[1].cells.item[row, col].font.size := 18;
mybook.worksheets[1].cells.item[row, col].font.bold := true;
mybook.worksheets[1].cells.item[row, col].HorizontalAlignment := xlcenter;
row := row + 1;
excelid.range['A' + inttostr(row), chr(64 + colcount) +
inttostr(row)].merge();
mybook.worksheets[1].cells.item[row, col] := '报表日期:' +
datetostr(date);
row := row + 1;
frow := row;
adoquery3.First;
excelid.columns[1].ColumnWidth := Grid.Columns[0].Width / 8;
excelid.columns[1].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 1] := '序号';
excelid.columns[2].ColumnWidth := Grid.Columns[1].Width / 8;
excelid.columns[2].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 2] := '物料代码';
excelid.columns[3].ColumnWidth := Grid.Columns[2].Width / 8;
excelid.columns[3].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 3] :='物料名称';
excelid.columns[4].ColumnWidth := Grid.Columns[3].Width / 8;
excelid.columns[4].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, 4] := '扫描数量';
i:=1;
row := row + 1;
while not adoquery3.Eof do
begin
mybook.worksheets[1].cells.item[row, 1] :=i;
mybook.worksheets[1].cells.item[row, 2] := adoquery3.FieldByName('fcode').Value;
mybook.worksheets[1].cells.item[row, 3] := adoquery3.FieldByName('fname').Value;
mybook.worksheets[1].cells.item[row, 4] := adoquery3.FieldByName('fqty').Value;
i:=i+1;
row := row + 1;
adoquery3.Next;
end;
excelid.range['A' + inttostr(row), chr(64 + colcount) +
inttostr(row)].merge();
mybook.worksheets[1].cells.item[row, col].font.size := 12;
mybook.worksheets[1].cells.item[row, col].font.bold := true;
mybook.worksheets[1].cells.item[row, col].HorizontalAlignment := xlcenter;
mybook.worksheets[1].cells.item[row, col] := '总记录数:' +
inttostr(adoquery3.RecordCount) + '条';
row := row + 1;
rpstr := '报表条件:';
excelid.range['A' + inttostr(row), chr(64 + colcount) +
inttostr(row)].merge();
mybook.worksheets[1].cells.item[row, col] := rpstr;
row := row + 1;
excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
- 1)].Borders[1].LineStyle := xlContinuous;
excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
- 1)].Borders[2].LineStyle := xlContinuous;
excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
- 1)].Borders[3].LineStyle := xlContinuous;
excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
- 1)].Borders[4].LineStyle := xlContinuous;
excelid.visible := true;
end;
adoquery3.EnableControls;
end;
procedure Tfrmpurchase.GridColExit(Sender: TObject);
begin
inherited;
case grid.SelectedIndex of
6,7:begin
if CDSsub.State in [dsEdit,dsinsert] then
begin
// if grid.SelectedIndex=6 then
// begin
GetsqlData(CDSselectsub,'Vitem','fid','fcode='+vartosql(CDSsub['fcode']),1);
if CDSselectsub.RecordCount > 0 then
begin
CDSsub['fitemid']:=CDSselectsub['fid'] ;
CDSsub['fname']:=CDSselectsub['fname'];
CDSsub['fcode']:=CDSselectsub['fcode'];
CDSsub['ftype'] :=CDSselectsub['ftype'];
CDSsub['funit']:=CDSselectsub['funit'];
// CDSsub['color']:=CDSselectsub['color'];
/// CDSsub['colorno']:=CDSselectsub['colorno'];
CDSsub['zs']:=CDSselectsub['zs'];
// CDSsub['gno']:=CDSselectsub['gno'];
CDSsub['fqty'] :=CDSsub['js']*CDSsub['avgh']/CDSsub['qtyunit']*(1+CDSsub['rs']+CDSsub['dps']+CDSsub['zz']);
// grid.SelectedIndex:=11;
end else
begin
MessageDlg('没找到相应的资料 ? ',mtWarning,[MBOK],0);
end;
end;
end;
end;
end;
procedure Tfrmpurchase.aclineaddExecute(Sender: TObject);
begin
inherited;
CDSsub['avgh']:=1;
CDSsub['qtyunit']:=16;
CDSsub['rs']:=0;
CDSsub['dps']:=0;
CDSsub['zz']:=0;
end;
procedure Tfrmpurchase.acaddExecute(Sender: TObject);
begin
inherited;
// wwDBLookupCombo1.Text:='亿溢';
end;
procedure Tfrmpurchase.CDSsubBeforePost(DataSet: TDataSet);
begin
inherited;
if cdssub.State in [dsedit,dsinsert] then
CDSsub['fqty'] :=CDSsub['js']*CDSsub['avgh']/CDSsub['qtyunit']*(1+CDSsub['rs']+CDSsub['dps']+CDSsub['zz']);
end;
procedure Tfrmpurchase.GridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if grid.SelectedIndex=6 then
if char(key)='p' then
if cdssub.State in [dsedit,dsinsert] then
Selectsub;
end;
procedure Tfrmpurchase.CDSsubAfterInsert(DataSet: TDataSet);
begin
inherited;
CDSsub['avgh']:=1;
CDSsub['qtyunit']:=16;
CDSsub['rs']:=0;
CDSsub['dps']:=0;
CDSsub['zz']:=0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -