📄 reciev.pas
字号:
unit reciev;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, Mask, DBCtrls, ExtCtrls, Buttons, ComCtrls, printers;
type
Trecievfm = class(TForm)
Image1: TImage;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
ComboBox1: TComboBox;
Query1: TQuery;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit9: TEdit;
DateTimePicker1: TDateTimePicker;
PrintDialog1: TPrintDialog;
Database1: TDatabase;
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit4KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit6KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit7KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit9KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button1Click(Sender: TObject);
procedure DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
recievfm: Trecievfm;
implementation
{$R *.DFM}
{小键盘控制光标}
procedure Trecievfm.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_Right then
combobox1.SetFocus;
if key=vk_down then
edit2.SetFocus;
end;
procedure Trecievfm.Edit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_Right then
edit6.SetFocus;
if key=vk_down then
edit3.SetFocus;
if key=vk_up then
edit1.setfocus;
end;
procedure Trecievfm.Edit3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_Right then
edit7.SetFocus;
if key=vk_down then
edit4.SetFocus;
if key=vk_up then
edit2.setfocus;
end;
procedure Trecievfm.Edit4KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_Right then
datetimepicker1.SetFocus;
if key=vk_down then
edit9.SetFocus;
if key=vk_up then
edit3.setfocus;
end;
procedure Trecievfm.ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_left then
edit1.setfocus;
if key=vk_right then
edit6.setfocus;
end;
procedure Trecievfm.Edit6KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_up then
combobox1.setfocus;
if key=vk_left then
edit2.setfocus;
if key=vk_down then
edit7.setfocus;
end;
procedure Trecievfm.Edit7KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_up then
edit6.setfocus;
if key=vk_left then
edit3.setfocus;
if key=vk_down then
datetimepicker1.setfocus;
end;
procedure Trecievfm.DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_up then
edit7.setfocus;
if key=vk_left then
edit4.setfocus;
if key=vk_down then
edit9.setfocus;
end;
procedure Trecievfm.Edit9KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_up then
datetimepicker1.setfocus;
if key=vk_left then
edit4.setfocus;
if key=vk_right then
datetimepicker1.setfocus;
end;
{print & insert base}
procedure Trecievfm.Button1Click(Sender: TObject);
var
PPIX,PPIY: Integer;
Rect: TRect; // 按比例放大后图片区域的大小
DeskTop:TCanvas;
ScaleX,ScaleY:integer;
R:TRect;
R1:TRect;
R2:TRect;
myimage:TImage;
begin
{check null}
begin
if (edit1.text='')then
begin
showmessage('请填写收款金额!');
edit1.setfocus;
exit;
end;
if (edit2.text='')then
begin
showmessage('请填写收款科目!');
edit2.setfocus;
exit;
end;
if (edit3.text='')then
begin
showmessage('请填写资金来源!');
edit3.setfocus;
exit;
end;
if (edit4.text='')then
begin
showmessage('请填写资金目标!');
edit4.setfocus;
exit;
end;
if (combobox1.text='')then
begin
showmessage('请选择付款方式!');
combobox1.setfocus;
exit;
end;
if (edit6.text='')then
begin
showmessage('请填写交款人!');
edit6.setfocus;
exit;
end;
if (edit7.text='')then
begin
showmessage('请填写收款人!');
edit7.setfocus;
exit;
end;
{print}
begin
//ZoomScale:=StrToInt(Edit4.Text);
// 获取打印机每英寸的点数
{PPIX:=GetDeviceCaps(Printer.Handle,LOGPIXELSX);
PPIY:=GetDeviceCaps(Printer.Handle,LOGPIXELSY);
// 计算左边距和上边距
//LeftMargin:=Trunc(StrToFloat(Edit1.Text)/2.54*PPIX);
//TopMargin:=Trunc(StrToFloat(Edit2.Text)/2.54*PPIY);
//设置打印画幅的大小
Rect.Left:=5;
Rect.Top:=5;
Rect.Right:=Image1.Picture.Width*8+Rect.Left;
Rect.Bottom:=Image1.Picture.Height*8+Rect.Top;
try
Printer.BeginDoc; // 创建打印作业
Printer.Canvas.StretchDraw(Rect,Image1.picture.Graphic);
//Printer.Canvas.StretchDraw(Rect,edit1. );
Printer.EndDoc; // 送往打印机
except
Printer.Abort; // 出错情况下中止打印
raise;
end;}
DeskTop := TCanvas.Create;
with DeskTop do
Handle := GetWindowDC (recievfm.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:=125;
R2.Top:=37;
R2.Right:=Width-4;
R2.Bottom:=Height-4;
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;
{insert base}
begin
if combobox1.text='现金' then
begin
query1.close;
query1.sql.Clear ;
query1.sql.Add('insert into ');
query1.sql.Add('zjlshtab(msum,mcashsum,mbillsum,');
query1.sql.Add('mcardsum,mothsum,ibillnum,icardnum,');
query1.sql.Add('iothnum,isource,caim,iinhand,');
query1.sql.Add('ireason,cpname,dptime,');
query1.sql.Add('crname,drtime,cmemo )');
query1.sql.Add('values(:tsum,:cash,:bill,');
query1.sql.Add(':card,:oth,:bnum,:cnum,');
query1.sql.Add(':onum,:sorc,:aim,:inhand,');
query1.sql.Add(':rea,:pname,:ptime,');
query1.sql.Add(':rname,:rtime,:mmo)');
query1.parambyname('rea').asinteger:=strtoint(edit2.text);
query1.parambyname('aim').asstring:=edit4.text;
query1.parambyname('inhand').asinteger:=0;
query1.parambyname('sorc').asinteger:=strtoint(edit3.text);
query1.parambyname('tsum').asfloat:=strtofloat(edit1.text);
query1.parambyname('cash').asfloat:=strtofloat(edit1.Text);
query1.parambyname('bill').asfloat:=0;
query1.parambyname('card').asfloat:=0;
query1.parambyname('oth').asfloat:=0;
query1.parambyname('mmo').asstring:=edit9.text;
query1.parambyname('bnum').asinteger:=0;
query1.parambyname('cnum').asinteger:=0;
query1.parambyname('onum').asinteger:=0;
query1.parambyname('ptime').asdatetime:=datetimepicker1.datetime;
query1.parambyname('rtime').asdatetime:=datetimepicker1.datetime;
query1.parambyname('pname').asstring:=edit6.Text;
query1.parambyname('rname').asstring:=edit7.text;
query1.execsql;
end;
if combobox1.text='支票' then
begin
query1.close;
query1.sql.Clear ;
query1.sql.Add('insert into ');
query1.sql.Add('zjlshtab(msum,mcashsum,mbillsum,');
query1.sql.Add('mcardsum,mothsum,ibillnum,icardnum,');
query1.sql.Add('iothnum,isource,caim,iinhand,');
query1.sql.Add('ireason,cpname,dptime,');
query1.sql.Add('crname,drtime,cmemo )');
query1.sql.Add('values(:tsum,:cash,:bill,');
query1.sql.Add(':card,:oth,:bnum,:cnum,');
query1.sql.Add(':onum,:sorc,:aim,:inhand,');
query1.sql.Add(':rea,:pname,:ptime,');
query1.sql.Add(':rname,:rtime,:mmo)');
query1.parambyname('rea').asinteger:=strtoint(edit2.text);
query1.parambyname('aim').asstring:=edit4.text;
query1.parambyname('inhand').asinteger:=1;
query1.parambyname('sorc').asinteger:=strtoint(edit3.text);
query1.parambyname('tsum').asfloat:=strtofloat(edit1.text);
query1.parambyname('cash').asfloat:=0;
query1.parambyname('bill').asfloat:=strtofloat(edit1.Text);
query1.parambyname('card').asfloat:=0;
query1.parambyname('oth').asfloat:=0;
query1.parambyname('mmo').asstring:=edit9.text;
query1.parambyname('bnum').asinteger:=1;
query1.parambyname('cnum').asinteger:=0;
query1.parambyname('onum').asinteger:=0;
query1.parambyname('ptime').asdatetime:=datetimepicker1.datetime;
query1.parambyname('rtime').asdatetime:=datetimepicker1.datetime;
query1.parambyname('pname').asstring:=edit6.Text;
query1.parambyname('rname').asstring:=edit7.text;
query1.execsql;
end;
if combobox1.text='信用卡' then
begin
query1.close;
query1.sql.Clear ;
query1.sql.Add('insert into ');
query1.sql.Add('zjlshtab(msum,mcashsum,mbillsum,');
query1.sql.Add('mcardsum,mothsum,ibillnum,icardnum,');
query1.sql.Add('iothnum,isource,caim,iinhand,');
query1.sql.Add('ireason,cpname,dptime,');
query1.sql.Add('crname,drtime,cmemo )');
query1.sql.Add('values(:tsum,:cash,:bill,');
query1.sql.Add(':card,:oth,:bnum,:cnum,');
query1.sql.Add(':onum,:sorc,:aim,:inhand,');
query1.sql.Add(':rea,:pname,:ptime,');
query1.sql.Add(':rname,:rtime,:mmo)');
query1.parambyname('rea').asinteger:=strtoint(edit2.text);
query1.parambyname('aim').asstring:=edit4.text;
query1.parambyname('inhand').asinteger:=0;
query1.parambyname('sorc').asinteger:=strtoint(edit3.text);
query1.parambyname('tsum').asfloat:=strtofloat(edit1.text);
query1.parambyname('cash').asfloat:=0;
query1.parambyname('bill').asfloat:=0;
query1.parambyname('card').asfloat:=strtofloat(edit1.Text);
query1.parambyname('oth').asfloat:=0;
query1.parambyname('mmo').asstring:=edit9.text;
query1.parambyname('bnum').asinteger:=0;
query1.parambyname('cnum').asinteger:=1;
query1.parambyname('onum').asinteger:=0;
query1.parambyname('ptime').asdatetime:=datetimepicker1.datetime;
query1.parambyname('rtime').asdatetime:=datetimepicker1.datetime;
query1.parambyname('pname').asstring:=edit6.Text;
query1.parambyname('rname').asstring:=edit7.text;
query1.execsql;
end;
if combobox1.text='其他票据' then
begin
query1.close;
query1.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)';
query1.sql.Add('insert into ');
query1.sql.Add('zjlshtab(msum,mcashsum,mbillsum,');
query1.sql.Add('mcardsum,mothsum,ibillnum,icardnum,');
query1.sql.Add('iothnum,isource,caim,iinhand,');
query1.sql.Add('ireason,cpname,dptime,');
query1.sql.Add('crname,drtime,cmemo )');
query1.sql.Add('values(:tsum,:cash,:bill,');
query1.sql.Add(':card,:oth,:bnum,:cnum,');
query1.sql.Add(':onum,:sorc,:aim,:inhand,');
query1.sql.Add(':rea,:pname,:ptime,');
query1.sql.Add(':rname,:rtime,:mmo)');
query1.parambyname('rea').asinteger:=strtoint(edit2.text);
query1.parambyname('aim').asstring:=edit4.text;
query1.parambyname('inhand').asinteger:=0;
query1.parambyname('sorc').asinteger:=strtoint(edit3.text);
query1.parambyname('tsum').asfloat:=strtofloat(edit1.text);
query1.parambyname('cash').asfloat:=0;
query1.parambyname('bill').asfloat:=0;
query1.parambyname('card').asfloat:=0;
query1.parambyname('oth').asfloat:=strtofloat(edit1.Text);
query1.parambyname('mmo').asstring:=edit9.text;
query1.parambyname('bnum').asinteger:=0;
query1.parambyname('cnum').asinteger:=0;
query1.parambyname('onum').asinteger:=1;
query1.parambyname('ptime').asdatetime:=datetimepicker1.datetime;
query1.parambyname('rtime').asdatetime:=datetimepicker1.datetime;
query1.parambyname('pname').asstring:=edit6.Text;
query1.parambyname('rname').asstring:=edit7.text;
//query1.sql.add(tmpsql);
//showmessage(tmpsql);
query1.execsql;
end;
end;
end;
recievfm.Close ;
recievfm.Release ;
end;
procedure Trecievfm.Button2Click(Sender: TObject);
begin
recievfm.close;
recievfm.Release ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -