📄 ufzpayment.pas
字号:
unit ufzpayment;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseInfo, Menus, ActnList, DB, DBClient, Grids, DBGridEh,inifiles,
StdCtrls, wwdblook, Buttons, ToolWin, ComCtrls, ExtCtrls, FR_DSet,
comobj, Excel2000,FR_DBSet, FR_Class, FR_Desgn, Mask, wwdbedit,
wwdbdatetimepicker, ADODB, Spin, PBSpinEdit, te_controls, ksthemebuttons,
DBTables;
type
Tfzpayment = class(TfrmBaseinfo)
paneledit: TPanel;
Label6: TLabel;
Label8: TLabel;
paneltitle: TPanel;
formTitle: TLabel;
CDSbaseinfopno3: TStringField;
CDSbaseinfocno: TStringField;
CDSbaseinfocompany: TStringField;
CDSbaseinfogx: TStringField;
CDSbaseinfofzweight: TBCDField;
CDSbaseinfospqty: TBCDField;
CDSbaseinfospweight: TBCDField;
CDSbaseinfojgf: TBCDField;
CDSbaseinfohmweight: TBCDField;
CDSbaseinfosh: TBCDField;
CDSbaseinfoprice2: TBCDField;
CDSbaseinfomnsh: TBCDField;
CDSbaseinfokmnk: TBCDField;
CDSbaseinfochkk: TBCDField;
CDSbaseinfoyfk: TBCDField;
CDSbaseinfomonths: TStringField;
CDSbaseinfoyears: TStringField;
CDSbaseinfofzqty: TBCDField;
CDSbaseinfoprice1: TBCDField;
con1: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
CDSbaseinfofid: TIntegerField;
CheckBox1: TCheckBox;
CDSbaseinfoyj: TBooleanField;
billno: TEdit;
Label4: TLabel;
PBSpinEdit1: TPBSpinEdit;
PBSpinEdit2: TPBSpinEdit;
TeThemeButton1: TTeThemeButton;
Query1: TQuery;
BitBtn1: TBitBtn;
CDSselectsub: TClientDataSet;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure comboPrintChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure s02Execute(Sender: TObject);
procedure s05Execute(Sender: TObject);
procedure s04Execute(Sender: TObject);
procedure s01Execute(Sender: TObject);
procedure GridColExit(Sender: TObject);
procedure TeThemeButton1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure s03Execute(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure GridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn3Click(Sender: TObject);
procedure Query1BeforePost(DataSet: TDataSet);
private
procedure cojsb;
{ Private declarations }
public
{ Public declarations }
end;
var
fzpayment:Tfzpayment;
implementation
uses Global, uitem_m,common;
{$R *.dfm}
procedure Tfzpayment.FormCreate(Sender: TObject);
var
yy,mm,dd:word;
begin
inherited;
decodedate(date,yy,mm,dd );
PBSpinEdit1.Value:=yy;
PBSpinEdit2.Value:=mm;
Maintable:='jsb';
Mainview:='vjsb';
Keyfield:='fid';
ReportName:=gs_appPath+'\prints\fzpay.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-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;
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;
procedure Tfzpayment.FormShow(Sender: TObject);
var
s:string;
ini:Tinifile;
usercode:string;
serverIP:string;
begin
inherited;
s:=Extractfilepath(application.ExeName);
if s[length(s)]<>'\' then
s:=s+'\'+'Default.ini'
else
s:=s+'Default.ini';
try
ini:=Tinifile.Create(s);
serverIP:=ini.ReadString('ADO','FILE NAME','');
finally
ini.Free;
end;
if Serverip<>'' then
con1.ConnectionString:='FILE NAME='+serverip
else
con1.ConnectionString:='FILE NAME=\kc.udl';
con1.Connected:=true;
CDSbaseinfo.First;
while not CDSbaseinfo.Eof do
begin
CDSbaseinfo.Edit;
GetsqlData(CDSselectsub,'vfz','pno','pno='+vartosql(cdsbaseinfo['pno3']),1);
if CDSselectsub.RecordCount > 0 then
CDSbaseinfo['company']:=CDSselectsub['fprovider'];
CDSbaseinfo.Next;
end;
end;
procedure Tfzpayment.s02Execute(Sender: TObject);
begin
// inherited;
cdsbaseinfo.Post;
if CDSbaseinfo.ChangeCount > 0 then
begin
applyupdata(CDSbaseinfo,Maintable,Keyfield);
Cdsbaseinfo.MergeChangeLog;
end;
// cdsbaseinfo.ApplyUpdates(-1);
// Applyupdata(CDSbaseinfo,Maintable,keyfield);
end;
procedure Tfzpayment.s05Execute(Sender: TObject);
var
str1:string;
begin
// inherited;
if checkbox1.Checked then
str1:='(company='+QuotedStr(billno.Text)+' ) and (yj<>0)'+' and (years='+QuotedStr(pbspinedit1.Text)+') and (months='+quotedstr(pbspinedit2.Text)+')' else
str1:='(company='+QuotedStr(billno.Text)+' ) and (yj=0)' +' and (years='+QuotedStr(pbspinedit1.Text)+') and (months='+quotedstr(pbspinedit2.Text)+')' ;
//showmessage(str1);
cdsbaseinfo.Filter:=str1 ;
cdsbaseinfo.Filtered:=true;
{DSbaseinfo.DataSet:=adoquery1;
with adoquery1 do
begin
sql.clear;
sql.add('select * from jsb where company =:company and years=:years and months=:months');
open;
end; }
end;
procedure Tfzpayment.s04Execute(Sender: TObject);
begin
// inherited;
end;
procedure Tfzpayment.s01Execute(Sender: TObject);
begin
// inherited;
end;
procedure Tfzpayment.GridColExit(Sender: TObject);
begin
inherited;
if query1.State in [dsedit,dsinsert] then
begin
query1.FieldByName('jgf').AsFloat := query1.FieldByName('price1').AsFloat * query1.FieldByName('spqty').AsFloat/12; //加工费
query1.FieldByName('kmnk').AsFloat := query1.FieldByName('price2').AsFloat * (query1.FieldByName('fzweight').AsFloat-query1.FieldByName('spweight').AsFloat-query1.FieldByName('hmweight').AsFloat-
query1.FieldByName('spweight').AsFloat*query1.FieldByName('sh').AsFloat/100); //扣毛款
query1.FieldByName('yfk').AsFloat := query1.FieldByName('jgf').AsFloat - query1.FieldByName('kmnk').AsFloat -query1.FieldByName('chkk').AsFloat ;
end;
end;
procedure Tfzpayment.TeThemeButton1Click(Sender: TObject);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -