⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ukp.pas

📁 安徽省货物销售统一发票管理系统 操作说明 1、开票 F7或双击可 查询
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -