📄 fzpayment.pas
字号:
unit fzpayment;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseInfo, Menus, ActnList, DB, DBClient, Grids, DBGridEh,
StdCtrls, wwdblook, Buttons, ToolWin, ComCtrls, ExtCtrls, FR_DSet,
comobj, Excel2000,FR_DBSet, FR_Class, FR_Desgn;
type
Tfzpayment = class(TfrmBaseinfo)
CDSbaseinfofid: TAutoIncField;
CDSbaseinfofsaleprice: TBCDField;
CDSbaseinfofsalehortation: TBCDField;
CDSbaseinfofiffew: TBooleanField;
CDSbaseinfofminstore: TBCDField;
CDSbaseinfoffunitqty: TFloatField;
CDSbaseinfofsort: TStringField;
CDSbaseinfofunit2qty: TFloatField;
CDSbaseinfofunit1qty: TFloatField;
CDSbaseinfocolorno: TStringField;
CDSbaseinfocolor: TStringField;
CDSbaseinfogno: TStringField;
CDSbaseinfozs: TStringField;
CDSbaseinfock: TStringField;
CDSbaseinfoqty: TFloatField;
CDSbaseinfosafeqty: TFloatField;
CDSbaseinfocgyrqty: TFloatField;
CDSbaseinfocgwjqty: TFloatField;
CDSbaseinfofcode: TStringField;
CDSbaseinfofname: TStringField;
CDSbaseinfofunit: TStringField;
CDSbaseinfoftype: TStringField;
CDSbaseinfofnote: TStringField;
CDSbaseinfofunit1: TStringField;
CDSbaseinfofunit2: TStringField;
procedure FormCreate(Sender: TObject);
procedure comboPrintChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fzpayment:Tfzpayment;
implementation
uses Global, uitem_m;
{$R *.dfm}
procedure Tfzpayment.FormCreate(Sender: TObject);
begin
inherited;
Maintable:='titem';
Mainview:='vitem';
Keyfield:='fid';
ReportName:=gs_appPath+'\prints\fritem.frf';
Modifyform:=Tfrmitem_m;
end;
procedure Tfzpayment.comboPrintChange(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
inherited;
if Trim(comboprint.Text)='电子表格' then
begin
CDSbaseinfo.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 := CDSbaseinfo.fieldcount;
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;
CDSbaseinfo.First;
for i := 1 to colcount do
begin
excelid.columns[i].ColumnWidth := Grid.Columns[i - 1].Width /
8;
excelid.columns[i].NumberFormatLocal := '@';
mybook.worksheets[1].cells.item[row, i] := grid.Columns[i -
1].Title.Caption;
mybook.worksheets[1].cells.item[row, i].HorizontalAlignment := xlcenter;
end;
row := row + 1;
while not CDSbaseinfo.Eof do
begin
for i := 1 to colcount do
mybook.worksheets[1].cells.item[row, i] := CDSbaseinfo.Fields[i -
1].AsString;
row := row + 1;
CDSbaseinfo.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(CDSbaseinfo.RecordCount) + '条';
row := row + 1;
rpstr := '报表条件:';
{ if grid.Cells[0, 0] <> '' then
for i := 0 to grid.RowCount - 1 do
for j := 0 to 3 do
rpstr := rpstr + ' ' + grid.Cells[j, i]; }
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;
// end;
excelid.visible := true;
end;
CDSbaseinfo.EnableControls;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -