ufrm_invoice_head.pas

来自「完整的进销存系统。 设计文件及完整的源代码。 Delphi6.0」· PAS 代码 · 共 196 行

PAS
196
字号
unit Ufrm_invoice_head;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ufrm_level4_2, dxExEdtr, DB, DBTables, Menus, ImgList, dxCntner,
  dxTL, dxDBCtrl, dxDBGrid, StdCtrls, ExtCtrls, ComCtrls, ToolWin, dxEdLib,
  dxDBELib, dxEditor, Mask, DBCtrls, dxDBTLCl, dxGrClms;

type
  Tfrm_invoice_head = class(Tfrm_level4_2)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    invoiceno: TDBEdit;
    dxDBButtonEdit1: TdxDBButtonEdit;
    dxDBButtonEdit2: TdxDBButtonEdit;
    invoicedate: TdxDBDateEdit;
    DBText1: TDBText;
    qy_detailINVOICENO: TStringField;
    qy_detailINVOICEITEM: TIntegerField;
    qy_detailGOODSNO: TStringField;
    qy_detailUNIT: TStringField;
    qy_detailGOODSQTY: TFloatField;
    qy_detailPRICE: TFloatField;
    qy_detailCURRENCY: TStringField;
    qy_detailAMOUNT: TFloatField;
    qy_detailSHIPNO: TStringField;
    qy_detailSHIPITEM: TIntegerField;
    qy_detailACTI: TStringField;
    qy_detailOWUS: TStringField;
    qy_detailGRUP: TStringField;
    qy_detailCRET: TDateTimeField;
    qy_detailMODU: TStringField;
    qy_detailMODT: TDateTimeField;
    dbGridINVOICENO: TdxDBGridMaskColumn;
    dbGridINVOICEITEM: TdxDBGridMaskColumn;
    dbGridGOODSNO: TdxDBGridMaskColumn;
    dbGridUNIT: TdxDBGridMaskColumn;
    dbGridGOODSQTY: TdxDBGridMaskColumn;
    dbGridPRICE: TdxDBGridMaskColumn;
    dbGridCURRENCY: TdxDBGridMaskColumn;
    dbGridAMOUNT: TdxDBGridMaskColumn;
    dbGridSHIPNO: TdxDBGridMaskColumn;
    dbGridSHIPITEM: TdxDBGridMaskColumn;
    dbGridACTI: TdxDBGridMaskColumn;
    dbGridOWUS: TdxDBGridMaskColumn;
    dbGridGRUP: TdxDBGridMaskColumn;
    dbGridCRET: TdxDBGridDateColumn;
    dbGridMODU: TdxDBGridMaskColumn;
    dbGridMODT: TdxDBGridDateColumn;
    qy_masterINVOICENO: TStringField;
    qy_masterINVOICEDATE: TDateTimeField;
    qy_masterCUSTNO: TStringField;
    qy_masterSHIPNO: TStringField;
    qy_masterACTI: TStringField;
    qy_masterOWUS: TStringField;
    qy_masterGRUP: TStringField;
    qy_masterCRET: TDateTimeField;
    qy_masterMODU: TStringField;
    qy_masterMODT: TDateTimeField;
    procedure dxDBButtonEdit1ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure dxDBButtonEdit2ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure qy_masterNewRecord(DataSet: TDataSet);
  private
    { Private declarations }
  protected
    procedure set_Focus;        override;  //設置焦點
    procedure chg_canwrite;     override;  //設置關鍵字為可寫
    procedure chg_Readonly;     override;  //設置關鍵字為唯讀
    function  chk_save:boolean; override;  //保存前的檢查
    function  chk_conf:boolean; override;  //確認前的檢查
    procedure call_detail;      override;  //調用單身維護

  public
    { Public declarations }
  end;

var
  frm_invoice_head: Tfrm_invoice_head;

implementation

uses Ufrm_invoice_list, uSelect_Form, DateUtils;

{$R *.dfm}


procedure Tfrm_invoice_head.set_Focus ;
begin
  if invoiceno.Enabled then
     invoiceno.SetFocus
  else if invoicedate.Enabled then
        invoicedate.SetFocus    ;
end;

procedure Tfrm_invoice_head.call_detail ;
begin
   Application.CreateForm(Tfrm_invoice_list, frm_invoice_list);
   frm_invoice_list.ShowModal;
   try
     frm_invoice_list.Free;
   except
     ;
   end;

end;

procedure Tfrm_invoice_head.chg_Readonly ;
begin
  invoiceno.Enabled := false ;
  invoiceno.Tag := 2;
end;
procedure Tfrm_invoice_head.chg_canwrite ;
begin
  invoiceno.Enabled:=true;
  invoiceno.Tag:=1;
end;

function Tfrm_invoice_head.chk_save ;
begin
  result := true ;
  if qy_master.FieldByName('INVOICENO').AsString = '' then
  begin
     u_error := ' 发票号码不能为空! ' ;
     result := false  ; exit ;
  end;
end;

function Tfrm_invoice_head.chk_conf ;
begin
  result := true; 
end;


procedure Tfrm_invoice_head.dxDBButtonEdit1ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  inherited;
  application.CreateForm(TSelect_Form, Select_Form);
  Select_form.ComboBox1.Items.Add('SHIPNO') ;
  Select_form.Query1.SQL.Add('SELECT SHIPNO FROM T_SHIPHEAD WHERE 1=1 ')  ;
  try
     select_form.Query1.Open;
  except
  end;
  Select_form.ShowModal ;
  if Select_form.ModalResult = mrok then
  begin
    qy_master.FieldByName('SHIPNO').AsString := Select_form.Query1.fieldbyname('SHIPNO').AsString ;
  end;
  try
     select_form.release;
   except
     ;
   end;

end;

procedure Tfrm_invoice_head.dxDBButtonEdit2ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  inherited;
  application.CreateForm(TSelect_Form, Select_Form);
  Select_form.ComboBox1.Items.Add('CUSTNO') ;
  Select_form.Query1.SQL.Add('SELECT CUSTNO FROM T_CUSTOMER WHERE 1=1 ')  ;
  try
     select_form.Query1.Open;
  except
  end;
  Select_form.ShowModal ;
  if Select_form.ModalResult = mrok then
  begin
    qy_master.FieldByName('CUSTNO').AsString := Select_form.Query1.fieldbyname('CUSTNO').AsString ;
  end;
  try
     select_form.release;
   except
     ;
   end;

end;

procedure Tfrm_invoice_head.qy_masterNewRecord(DataSet: TDataSet);
begin
  inherited;
  qy_master.FieldByName('INVOICEDATE').AsDateTime := today() ;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?