📄 details.pas
字号:
unit details;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, Db, DBTables, ExtCtrls, ComCtrls, printers;
type
Tdetailfm = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Image1: TImage;
DataSource1: TDataSource;
Table1: TTable;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit11: TDBEdit;
Label1: TLabel;
DataSource2: TDataSource;
Query1: TQuery;
Label2: TLabel;
DBEdit13: TDBEdit;
Label3: TLabel;
DBEdit14: TDBEdit;
PrintDialog1: TPrintDialog;
Database1: TDatabase;
Edit1: TEdit;
Edit2: TEdit;
DBEdit10: TDBEdit;
Label4: TLabel;
Query1ijCode: TIntegerField;
Query1Msum: TFloatField;
Query1Mcashsum: TFloatField;
Query1Mbillsum: TFloatField;
Query1Mcardsum: TFloatField;
Query1Mothsum: TFloatField;
Query1Ipart: TStringField;
Query1Cpname: TStringField;
Query1Dptime: TDateTimeField;
Query1Crname: TStringField;
Query1Drtime: TDateTimeField;
Query1Cmemo: TStringField;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
end;
var
detailfm: Tdetailfm;
implementation
uses confirmed, main;
{$R *.DFM}
procedure Tdetailfm.Button1Click(Sender: TObject);
begin
Application.CreateForm(Tconfirmfm, confirmfm);
confirmfm.showmodal;
end;
procedure Tdetailfm.Button3Click(Sender: TObject);
begin
detailfm.Close;
detailfm.Release ;
end;
procedure Tdetailfm.Button2Click(Sender: TObject);
var
tempstr : string ;
PPIX,PPIY: Integer;
Rect: TRect; // 按比例放大后图片区域的大小
DeskTop:TCanvas;
ScaleX,ScaleY:integer;
R:TRect;
R1:TRect;
R2:TRect;
myimage:TImage;
begin
//print & writebase & close
if (edit1.text='') or (edit2.text='')then
begin
showmessage('请填写收款凭证!');
button1.setfocus;
exit;
end;
{insert & delete base}
database1.StartTransaction ;
try
begin
if dbedit1.text=dbedit8.Text then
with query1 do
begin
close;
sql.Clear ;
//tmpsql:='insert into zjlshtab(msum,mcashsum,mbillsum,mcardsum,mothsum,ibillnum,iothnum,isource,caim,crname,drtime,cmemo)';
//tmpsql:=tmpsql+' values(:tsum,:cash,:bill,:card,:oth,:bnum,:onum,:sorc,lee,1,:pname,:ptime,:rname,:rtime,:mmo)';
sql.Add('insert into ');
sql.Add('zjlshtab(ijcode,msum,mcashsum,mbillsum,');
sql.Add('mcardsum,mothsum,iinhand,');
sql.Add('isource,caim,');
sql.Add('ireason,cpname,dptime,');
sql.Add('crname,drtime,cmemo )');
sql.Add('values(:jcode,:tsum,:cash,:bill,');
sql.Add(':card,:oth,:inhand,');
sql.Add(':sorc,:aim,');
sql.Add(':rea,:pname,:ptime,');
sql.Add(':rname,:rtime,:mmo)');
parambyname('jcode').asinteger:=strtoint(dbedit10.text);
parambyname('rea').asinteger:=1;
parambyname('aim').asstring:='财务部';
parambyname('inhand').asinteger:=0;
parambyname('cash').asfloat:=strtofloat(dbedit1.Text);
parambyname('bill').asfloat:=strtofloat(dbedit11.text);
parambyname('card').asfloat:=strtofloat(dbedit2.text);
parambyname('oth').asfloat:=strtofloat(dbedit3.text);
parambyname('mmo').asstring:=dbedit4.text;
//parambyname('bnum').asinteger:=strtoint(dbedit5.text);
//parambyname('cnum').asinteger:=strtoint(dbedit6.text);
//parambyname('onum').asinteger:=strtoint(dbedit7.text);
parambyname('tsum').asfloat:=strtofloat(dbedit8.text);
parambyname('ptime').asdatetime:=strtodatetime(dbedit9.text);
parambyname('rtime').asdatetime:=strtodatetime(edit2.text);
parambyname('pname').asstring:=dbedit14.Text;
parambyname('sorc').asinteger:=strtoint(dbedit13.text);
parambyname('rname').asstring:=edit1.text;
//query1.sql.add(tmpsql);
//showmessage(tmpsql);
execsql;
end
else
with query1 do
begin
close;
sql.Clear ;
tempstr:='insert into zjlshtab(ijcode,msum,mcashsum,mbillsum,mcardsum,mothsum,iinhand,isource,caim,ireason,cpname,dptime,';
tempstr:=tempstr+'crname,drtime,cmemo) values(:jcode,:tsum,:cash,:bill,:card,:oth,:inhand,:sorc,:aim,:rea,:pname,:ptime, ';
tempstr:=tempstr+':rname,:rtime,:mmo)';
showmessage(tempstr);
SQL.Add(tempstr);
parambyname('jcode').asinteger:=strtoint(dbedit10.text);
parambyname('rea').asinteger:=1;
parambyname('aim').asstring:='财务部';
parambyname('inhand').asinteger:=1;
parambyname('cash').asfloat:=strtofloat(dbedit1.Text);
parambyname('bill').asfloat:=strtofloat(dbedit11.text);
parambyname('card').asfloat:=strtofloat(dbedit2.text);
parambyname('oth').asfloat:=strtofloat(dbedit3.text);
parambyname('mmo').asstring:=dbedit4.text;
//parambyname('bnum').asinteger:=strtoint(dbedit5.text);
//parambyname('cnum').asinteger:=strtoint(dbedit6.text);
//parambyname('onum').asinteger:=strtoint(dbedit7.text);
parambyname('tsum').asfloat:=strtofloat(dbedit8.text);
parambyname('ptime').asdatetime:=strtodatetime(dbedit9.text);
parambyname('rtime').asdatetime:=strtodatetime(edit2.text);
parambyname('pname').asstring:=dbedit14.Text;
parambyname('sorc').asinteger:=strtoint(dbedit13.text);
parambyname('rname').asstring:=edit1.text;
//query1.sql.add(tmpsql);
//showmessage(tmpsql);
execsql;
end;
end;
//delete
begin
query1.close;
query1.sql.Clear ;
tempstr:='delete from jkdtab where ijcode=:code';
query1.SQL.Add(tempstr);
query1.parambyname('code').asinteger:=strtoint(dbedit10.text) ;
showmessage(tempstr);
//query1.sql.Add('delete from jkdtab');
//query1.sql.Add('where ijcode=:jcode');
query1.execsql;
end;
database1.Commit ;
showmessage('交款成功!');
//PRINT
{begin
DeskTop := TCanvas.Create;
with DeskTop do
Handle := GetWindowDC (detailfm.Handle);//GetActiveWindow ;
myimage:=TImage.Create(self);
myimage.Width:=Image1.Width;
myimage.Height:=Image1.Height;
R1.Left:=0;
R1.Top:=0;
R1.Right:=Width;
R1.Bottom:=Height;
R2.Left:=600;
R2.Top:=300;
R2.Right:=Width;
R2.Bottom:=Height;
myimage.Canvas.CopyRect(R1,DeskTop,R2);
// 打印图象
if PrintDialog1.Execute then
begin
try
Printer.BeginDoc ;
with Printer do
try
ScaleX:=GetDeviceCaps(Handle,logPixelsX) div PixelsPerInch;
ScaleY:=GetDeviceCaps(Handle,logPixelsY) div PixelsPerInch;
//R:=Rect(0,0,myimage.Picture.Graphic.Width*ScaleX,myimage.Picture.Graphic.Height*ScaleY);
R.Left:=0;
R.Top:=0;
R.Right:=myimage.Picture.Graphic.Width*ScaleX;
R.Bottom:=myimage.Picture.Graphic.Height*ScaleY;
Canvas.StretchDraw (R,myimage.Picture.Graphic);
finally
Printer.EndDoc ;
end;
finally
DeskTop.Free;
end;
end;
myimage.free;
end;}
detailfm.close;
detailfm.Release ;
except
database1.Rollback ;
showmessage('交款失败!');
detailfm.close;
detailfm.Release ;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -