📄 ukp.pas
字号:
unit Ukp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, ToolWin, ImgList, DBCtrls, Buttons,
Spin, FaPiao, printers, MMprinters , main;
type
Tfrm_kp = class(TForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
StatusBar1: TStatusBar;
Panel1: TPanel;
Label1: TLabel;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
Shape4: TShape;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Shape5: TShape;
Label6: TLabel;
Shape6: TShape;
Label7: TLabel;
Shape7: TShape;
Label8: TLabel;
Shape8: TShape;
Label9: TLabel;
Shape9: TShape;
Label10: TLabel;
Label11: TLabel;
Shape10: TShape;
ImageList1: TImageList;
ImageList2: TImageList;
ImageList3: TImageList;
Label12: TLabel;
Label13: TLabel;
Shape11: TShape;
Shape12: TShape;
Panel2: TPanel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
KPDate: TDateTimePicker;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
SpeedButton1: TSpeedButton;
edt_pro: TEdit;
lbl_ZF: TLabel;
lbl_khmc: TLabel;
Shape13: TShape;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
lbl_telno: TLabel;
lbl_address: TLabel;
lbl_dwmc: TLabel;
lbl_fpcode: TLabel;
Shape14: TShape;
Shape15: TShape;
lbl_CP1: TLabel;
lbl_CP2: TLabel;
lbl_CP3: TLabel;
lbl_GG1: TLabel;
lbl_GG2: TLabel;
lbl_GG3: TLabel;
lbl_DW1: TLabel;
lbl_DW2: TLabel;
lbl_DW3: TLabel;
lbl_SL1: TLabel;
lbl_SL2: TLabel;
lbl_SL3: TLabel;
lbl_DJ1: TLabel;
lbl_dj2: TLabel;
lbl_dj3: TLabel;
lbl_JE1: TLabel;
lbl_JE2: TLabel;
lbl_JE3: TLabel;
lbl_HJJE: TLabel;
lbl_hjdx: TLabel;
lbl_TaxNo: TLabel;
lbl_bankMN: TLabel;
lbl_skr: TLabel;
lbl_kpr: TLabel;
lbl_fpNum: TLabel;
Panel3: TPanel;
Image1: TImage;
Panel4: TPanel;
Image2: TImage;
Panel5: TPanel;
PT_FP: TFaPiao;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
Label24: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
Bevel1: TBevel;
ComboBox1: TComboBox;
Label25: TLabel;
Label26: TLabel;
SpinEdit4: TSpinEdit;
SpinEdit5: TSpinEdit;
Label27: TLabel;
Label28: TLabel;
CheckBox4: TCheckBox;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure lbl_khmcClick(Sender: TObject);
procedure edt_proExit(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure edt_proKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Image1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure edt_proEnter(Sender: TObject);
procedure PT_FPRefresh(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton15Click(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpinEdit3Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure SpinEdit4Change(Sender: TObject);
procedure SpinEdit5Change(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure edt_proDblClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure edt_proKeyPress(Sender: TObject; var Key: Char);
procedure KPDateChange(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure ToolButton13Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
private
procedure showeditpro(ATag:integer);
procedure getcpxx(Ahc:integer); //Ahc行次
{ Private declarations }
public
function newfp:boolean; //新增发票
procedure loadfp; //读取数据库中发票
// procedure savefp;
// procedure loadfp;
{ Public declarations }
end;
var
frm_kp: Tfrm_kp;
implementation
uses udatam, ukhgl, UCpgl, Ucopy, ufppreview, ukind;
{$R *.dfm}
procedure TFrm_kp.loadfp;
begin
pt_fp.initData;
pt_fp.FPCode:=datam.kpkSetFPcode.AsString;
pt_fp.FPNum:=datam.kpkSetFPno.AsString;
pt_fp.KPDate:=datam.kpkSetkpDate.AsDateTime;
pt_fp.KHmc:=datam.kpkSetkhmc.AsString;
pt_fp.Dwmc:=kpxx.Cur_Dwmc;
pt_fp.Address:=datam.kpkSetaddress.AsString;
pt_fp.TaxNo:=datam.kpkSettaxNo.AsString;
pt_fp.BankMN:=datam.kpkSetbankMNo.AsString;
pt_fp.TelNo:=datam.kpkSetphotono.AsString;
pt_fp.RenSK:=datam.kpkSetskRen.AsString;
pt_fp.RenKp:=datam.kpkSetkpRen.AsString;
datam.kpmxkset.First;
pt_fp.CP1:=datam.kpmxksetXMMC.AsString;
pt_fp.GG1:=datam.kpmxksetXMGG.AsString;
pt_fp.DW1:=datam.kpmxksetXMDW.AsString;
pt_fp.SL1:=datam.kpmxksetXMSL.AsFloat;
pt_fp.DJ1:=datam.kpmxksetXMDJ.AsFloat;
pt_fp.JE1:=datam.kpmxksetXMJE.AsCurrency;
datam.kpmxkset.Next;
if not datam.kpmxkset.Eof then
begin
pt_fp.CP2:=datam.kpmxksetXMMC.AsString;
pt_fp.GG2:=datam.kpmxksetXMGG.AsString;
pt_fp.DW2:=datam.kpmxksetXMDW.AsString;
pt_fp.SL2:=datam.kpmxksetXMSL.AsFloat;
pt_fp.DJ2:=datam.kpmxksetXMDJ.AsFloat;
pt_fp.JE2:=datam.kpmxksetXMJE.AsCurrency;
datam.kpmxkset.Next;
if not datam.kpmxkset.Eof then
begin
pt_fp.CP3:=datam.kpmxksetXMMC.AsString;
pt_fp.GG3:=datam.kpmxksetXMGG.AsString;
pt_fp.DW3:=datam.kpmxksetXMDW.AsString;
pt_fp.SL3:=datam.kpmxksetXMSL.AsFloat;
pt_fp.DJ3:=datam.kpmxksetXMDJ.AsFloat;
pt_fp.JE3:=datam.kpmxksetXMJE.AsCurrency;
end;
end;
pt_fp.FormatSl:=pt_fp.getNumDispFormat(kpxx.sl_dec,kpxx.sl_fjh);
pt_fp.FormatDJ:=pt_fp.getNumDispFormat(kpxx.dj_dec,kpxx.dj_fjh);
pt_fp.FormatJE:=pt_fp.getNumDispFormat(kpxx.je_dec,kpxx.je_fjh);
pt_fp.Cancel:=datam.kpkSetCancel.AsBoolean;
pt_fp.Saved:=true;
pt_fp.AutoRefresh:=true;
end;
function TFrm_kp.newfp:boolean;
var AFpCode,AFpNo:string;
begin
if datam.getCurfpDM(AFpCode,AfpNo) then
begin
pt_fp.initData;
pt_fp.Dwmc:=kpxx.Cur_Dwmc;
pt_fp.TaxNo:=kpxx.Cur_TaxNo;
pt_fp.BankMN:=kpxx.Cur_Bank+kpxx.Cur_BankNo;
pt_fp.TelNo:=kpxx.Cur_TelNo;
pt_fp.RenSK:=kpxx.Cur_skRen;
pt_fp.RenKp:=kpxx.Cur_kpRen;
pt_fp.Address:=kpxx.Cur_address;
pt_fp.KPDate:=kpdate.DateTime;
pt_fp.FPCode:=AFpcode;
pt_fp.FPNum:=AFpNo;
pt_fp.FormatSl:=pt_fp.getNumDispFormat(kpxx.sl_dec,kpxx.sl_fjh);
pt_fp.FormatDJ:=pt_fp.getNumDispFormat(kpxx.dj_dec,kpxx.dj_fjh);
pt_fp.FormatJE:=pt_fp.getNumDispFormat(kpxx.je_dec,kpxx.je_fjh);
pt_fp.AutoRefresh:=true;
Result:=true;
end else
Result:=false;
end;
procedure TFrm_kp.getcpxx(Ahc:integer);
begin
datam.setcurMiss;
frm_cpgl.BitBtn7.Visible:=true;
if frm_cpgl.ShowModal=mrOk then
begin
if datam.CPMXSet.Eof and datam.CPMXSet.Bof then exit;
pt_fp.AutoRefresh:=false;
case Ahc of
1 : begin
pt_fp.CP1:=datam.CPMXSetCPMC.AsString;
pt_fp.GG1:=datam.CPMXSetCPGG.AsString;
pt_fp.DW1:=datam.CPMXSetCPDW.AsString;
if pt_fp.SL1=0 then pt_fp.SL1:=datam.CPMXSetdefaSL.AsFloat;
if pt_fp.DJ1=0 then pt_fp.DJ1:=datam.CPMXSetdefaDJ.AsFloat;
if edt_pro.Tag=11 then edt_pro.Text:=pt_fp.CP1;
end;
2 : begin
pt_fp.CP2:=datam.CPMXSetCPMC.AsString;
pt_fp.GG2:=datam.CPMXSetCPGG.AsString;
pt_fp.DW2:=datam.CPMXSetCPDW.AsString;
if pt_fp.SL2=0 then pt_fp.SL2:=datam.CPMXSetdefaSL.AsFloat;
if pt_fp.DJ2=0 then pt_fp.DJ2:=datam.CPMXSetdefaDJ.AsFloat;
if edt_pro.Tag=12 then edt_pro.Text:=pt_fp.CP2;
end;
3 : begin
pt_fp.CP3:=datam.CPMXSetCPMC.AsString;
pt_fp.GG3:=datam.CPMXSetCPGG.AsString;
pt_fp.DW3:=datam.CPMXSetCPDW.AsString;
if pt_fp.SL3=0 then pt_fp.SL3:=datam.CPMXSetdefaSL.AsFloat;
if pt_fp.DJ3=0 then pt_fp.DJ3:=datam.CPMXSetdefaDJ.AsFloat;
if edt_pro.Tag=13 then edt_pro.Text:=pt_fp.CP3;
end;
end;
pt_fp.AutoRefresh:=true;
end;
end;
procedure TFrm_kp.showeditpro(ATag:integer);
procedure SetEditRect(Aleft,ATop,AWidth,AHeight:integer);
begin
edt_pro.Left:=ALeft;
edt_pro.Top:=ATop;
edt_pro.Width:=AWidth;
edt_pro.Height:=AHeight;
end;
begin
// edt_pro.Visible:=false;
case edt_pro.Tag of
1 : pt_fp.KHmc:=edt_pro.Text;
2 : pt_fp.RenSK:=edt_pro.Text;
3 : pt_fp.RenKp:=edt_pro.Text;
11 : pt_fp.CP1:=edt_pro.Text;
12 : pt_fp.CP2:=edt_pro.Text;
13 : pt_fp.CP3:=edt_pro.Text;
21 : pt_fp.GG1:=edt_pro.Text;
22 : pt_fp.GG2:=edt_pro.Text;
23 : pt_fp.GG3:=edt_pro.Text;
31 : pt_fp.DW1:=edt_pro.Text;
32 : pt_fp.DW2:=edt_pro.Text;
33 : pt_fp.DW3:=edt_pro.Text;
41 : try
pt_fp.SL1:=strtofloat(edt_pro.Text);
except
// pt_fp.SL1:=0.00;
end;
42 : try
pt_fp.SL2:=strtofloat(edt_pro.Text);
except
// pt_fp.SL2:=0.00;
end;
43 : try
pt_fp.SL3:=strtofloat(edt_pro.Text);
except
//pt_fp.SL3:=0.00;
end;
51 : try
pt_fp.DJ1:=strtofloat(edt_pro.Text);
except
end;
52 : try
pt_fp.DJ2:=strtofloat(edt_pro.Text);
except
end;
53 : try
pt_fp.DJ3:=strtofloat(edt_pro.Text);
except
end;
61 : try
pt_fp.JE1:=strtofloat(edt_pro.Text);
except
end;
62 : try
pt_fp.JE2:=strtofloat(edt_pro.Text);
except
end;
63 : try
pt_fp.JE3:=strtofloat(edt_pro.Text);
except
end;
end;
// if ATag=0 then exit;
case ATag of
1 : SetEditRect(71,76,186,18);
2 : SetEditRect(408,268,75,18);
3 : setEditRect(568,268,75,18);
11 : seteditRect(8,120,201,25);
12 : seteditRect(8,144,201,25);
13 : seteditRect(8,168,201,25);
21 : seteditRect(208,120,113,25);
22 : seteditRect(208,144,113,25);
23 : seteditRect(208,168,113,25);
31 : seteditRect(320,120,65,25);
32 : seteditRect(320,144,65,25);
33 : seteditRect(320,168,65,25);
41 : seteditRect(384,120,89,25);
42 : seteditRect(384,144,89,25);
43 : seteditRect(384,168,89,25);
51 : seteditRect(472,120,97,25);
52 : seteditRect(472,144,97,25);
53 : seteditRect(472,168,97,25);
61 : seteditRect(568,120,169,25);
62 : seteditRect(568,144,169,25);
63 : seteditRect(568,168,169,25);
end;
case ATag of
1 : edt_pro.Text:=pt_fp.KHmc;
2 : edt_pro.Text:=pt_fp.RenSK;
3 : edt_pro.Text:=pt_fp.RenKp;
11 : edt_pro.Text:=pt_fp.CP1;
12 : edt_pro.Text:=pt_fp.CP2;
13 : edt_pro.Text:=pt_fp.CP3;
21 : edt_pro.Text:=pt_fp.GG1;
22 : edt_pro.Text:=pt_fp.GG2;
23 : edt_pro.Text:=pt_fp.GG3;
31 : edt_pro.Text:=pt_fp.DW1;
32 : edt_pro.Text:=pt_fp.DW2;
33 : edt_pro.Text:=pt_fp.DW3;
41 : edt_pro.Text:=floattostr(pt_fp.SL1);
42 : edt_pro.Text:=floattostr(pt_fp.SL2);
43 : edt_pro.Text:=floattostr(pt_fp.SL3);
51 : edt_pro.Text:=formatfloat('0.00',pt_fp.DJ1);
52 : edt_pro.Text:=formatfloat('0.00',pt_fp.DJ2);
53 : edt_pro.Text:=formatfloat('0.00',pt_fp.DJ3);
61 : edt_pro.Text:=formatfloat('0.00',pt_fp.JE1);
62 : edt_pro.Text:=formatfloat('0.00',pt_fp.JE2);
63 : edt_pro.Text:=formatfloat('0.00',pt_fp.JE3);
end;
edt_pro.Tag:=ATag;
if ATag=0 then
begin
edt_pro.Visible:=false;
exit;
end;
edt_pro.Visible:=true;
edt_pro.SetFocus;
edt_pro.SelectAll;
end;
procedure Tfrm_kp.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
showmessage(inttostr(key));
end;
procedure Tfrm_kp.lbl_khmcClick(Sender: TObject);
begin
// edt_pro.Text:=Tlabel(sender).Caption;
showeditpro(TComponent(Sender).Tag);
edt_pro.SelectAll;
end;
procedure Tfrm_kp.edt_proExit(Sender: TObject);
begin
showeditpro(0);
end;
procedure Tfrm_kp.SpeedButton1Click(Sender: TObject);
begin
pt_fp.KHmc:=frm_main.GetKhmc(pt_fp.KHmc);
if edt_pro.Tag=1 then edt_pro.Text:=pt_fp.KHmc;
end;
procedure Tfrm_kp.edt_proKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var ATag:integer;
begin
ATag:=0;
//如果按下的是回车键;
if (key=13) or (key=35) then
begin
case edt_pro.Tag of
1 : ATag:=11;
2 : ATag:=3;
3 : ATag:=11;
11..53 : ATag:=edt_pro.Tag+10;
61 : ATag:=12;
62 : ATag:=13;
63 : ATag:=1;
end;
key:=0;
showeditpro(ATag);
exit;
end;
//如果按下的是向上,或pgUp
if (key=38) or (key=33) then
begin
case edt_pro.Tag of
1 : ATag:=0;
2 : ATag:=11;
3 : ATag:=2;
12,13,22,23,32,33,42,43,52,53,62,63 : ATag:=edt_pro.Tag-1;
11,21,31,41,51,61 : ATag:=1;
end;
key:=0;
showeditpro(ATag);
exit;
end;
//如果按下的是向上,或
if (key=40) or (key=34) then
begin
case edt_pro.Tag of
1 : ATag:=0;
2 : ATag:=3;
3 : ATag:=11;
11,12,21,22,31,32,41,42,51,52,61,62 : ATag:=edt_pro.Tag+1;
13,23,33,43,53,63 : ATag:=2;
end;
key:=0;
showeditpro(ATag);
exit;
end;
//home
if key=36 then
begin
case edt_pro.Tag of
1 : ATag:=0;
2 : ATag:=11;
3 : ATag:=2;
11 : ATag:=1;
12 : ATag:=61;
13 : ATag:=62;
21..63 : ATag:=edt_pro.Tag-10;
end;
key:=0;
showeditpro(ATag);
exit;
end;
if key=118 then //如果F7 {查询}
begin
case edt_pro.Tag of
1: speedbutton1.Click;
2: speedbutton2.Click;
3: speedbutton3.Click;
11,12,13: getcpxx(edt_pro.Tag mod 10);
31,32,33: edt_pro.Text:=frm_main.getjldw(edt_pro.Text);
end;
key:=0;
exit;
end;
//如果是句号则..
if (key=229) and (edt_pro.Tag>=41) then
key:=190;
end;
procedure Tfrm_kp.Image1Click(Sender: TObject);
begin
panel3.Visible:=false;
panel4.Visible:=true;
Panel5.Visible:=false;
Panel5.Enabled:=false;
clientheight:=386;
end;
procedure Tfrm_kp.Image2Click(Sender: TObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -