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

📄 gl_enter_docket_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Gl_Enter_Docket_D;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Detail, Db, AdODB, ExtCtrls, StdCtrls, linkedit;

Type
  TFrm_Gl_Enter_Docket_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edt_DocketCode: TEdit;
    Edt_DocketName: TEdit;
    Edt_KmCode: TLinkEdit;
    Edt_KmName: TEdit;
    procedure btn_okClick(Sender: TObject);
    procedure Edt_KmCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edt_KmCodeButtonClick(Sender: TObject);
    procedure Edt_KmCodeExit(Sender: TObject);
  private
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveData; Override;
    { Public declarations }
  end;

var
  Frm_Gl_Enter_Docket_D: TFrm_Gl_Enter_Docket_D;

implementation

uses Sys_Global;

{$R *.DFM}

{ TFrm_Gl_Enter_Docket_D }

procedure TFrm_Gl_Enter_Docket_D.InitControls;
begin
  inherited;
  If (status='Add')  Then
  begin
    Edt_DocketCode.Enabled := True;
    Edt_DocketName.Enabled := True;
    Edt_KmCode.Enabled := True;
    Edt_DocketCode.SetFocus ;
  end
  else
   If (status='Edit')  Then
   begin
    Edt_DocketCode.Enabled := False;
    Edt_DocketName.Enabled := True;
    Edt_KmCode.Enabled := True;
    Edt_DocketName.SetFocus;
   end;
  with AdoQry_Maintain do
  begin
    Edt_DocketCode.Text:=fieldbyname('DocketCode').AsString;
    Edt_DocketName.Text :=fieldbyname('DocketName').AsString;
    Edt_KmCode.Text:=fieldbyname('KmCode').AsString;
    Edt_KmName.Text:=fieldbyname('KmName').AsString;
  end;
end;

procedure TFrm_Gl_Enter_Docket_D.SaveData;
var
  KmCode:String;
begin
  inherited;
  try
    DbConnect.beginTrans;
    if (Add) then
    begin
      with AdoQry_Tmp do
      begin
        Close;
        SQL.clear;
        SQL.Text:= ' Insert into Gl_Docket '
                  +' (DocketCode,DocketName,KmCode ) '
                  +' Values('
                  +''''+edt_DocketCode.text+''''
                  +','''+edt_DocketName.text+''''
                  +','''+edt_KmCode.text+''''
                  +')';
        ExecSQL;
        Close;
        SQL.clear;
        Sql.Text := 'Select @@Identity As aa'  ;
        Open;
        KmCode := fieldbyname('aa').AsString;

        Close;
        SQL.clear;
        SQL.Text:= ' Insert into Gl_DocketHistory '
                  +' (DocketId,DocketCode,DocketName,KmCode,ChgEmployeeCode,ChgTime,ChgType ) '
                  +' Values('
                  +''''+KmCode+''', '
                  +''''+edt_DocketCode.text+''','
                  +''''+edt_DocketName.text+''','
                  +''''+edt_KmCode.text+''','
                  + QuotedStr(UserCode)+','
                  +' GetDate(),'
                  +''''+'新增'+''' '
                  +')';
        ExecSQL;
      end;
    end
    else
    begin
      with AdoQry_Tmp do
      begin
        Close;
        SQL.clear;
        Sql.Text := 'Select DocketId From Gl_Docket Where DocketCode='''+Edt_DocketCode.Text+''' '  ;
        Open;
        KmCode := fieldbyname('DocketId').AsString;

        Close;
        SQL.clear;
        SQL.Text:= ' Insert into Gl_DocketHistory '
                  +' (DocketId,DocketCode,DocketName,KmCode,ChgEmployeeCode,ChgTime,ChgType ) '
                  +' Values('
                  +''''+KmCode+''', '
                  +''''+edt_DocketCode.text+''','
                  +''''+edt_DocketName.text+''','
                  +''''+edt_KmCode.text+''','
                  + QuotedStr(UserCode)+','
                  +' GetDate(),'
                  +''''+'修改'+''' '
                  +')';
        ExecSQL;

        Close;
        SQL.clear;
        sql.Add('update Gl_Docket set '+
                                'DocketName='''+Edt_DocketName.text+''','+
                                'KmCode='''+Edt_KmCode.text+''' '+
                      ' where DocketCode='''+Edt_DocketCode.Text+''' ');

        ExecSQL;
      end
    end;
    DbConnect.CommitTrans ;
  except
    DbConnect.RollBackTrans ;
  end;
  //给AdoQry_Item各字段赋值

  with AdoQry_Maintain do
  begin
    edit;
    fieldbyname('DocketCode').AsString:=Edt_DocketCode.Text ;
    fieldbyname('DocketName').AsString:=Edt_DocketName.Text;
    fieldbyname('KmCode').AsString:=Edt_KmCode.Text;
    fieldbyname('KmName').AsString:=Edt_KmName.Text;
    Post;
  end;


end;

procedure TFrm_Gl_Enter_Docket_D.btn_okClick(Sender: TObject);
begin
  if Status = 'Add' then
  begin
    AdoQry_tmp.Close;
    AdoQry_tmp.SQL.clear;
    AdoQry_tmp.SQL.Text := ' Select DocketCode From Gl_Docket  Where DocketCode = '''+Edt_DocketCode.Text+'''';
    AdoQry_tmp.Open;
    if not AdoQry_tmp.Eof then
    begin
      DispInfo('摘要代码不能重复',1);
      Edt_DocketCode.SetFocus;
      Abort;
    end;
  end;
  inherited;

end;

procedure TFrm_Gl_Enter_Docket_D.Edt_KmCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
   If key=120 Then
  CommOnHint(Sender,AdoQry_Tmp,'KmName','科目名称','KmCode',
             '科目代码',' Gl_AccountSubject ');
end;

procedure TFrm_Gl_Enter_Docket_D.Edt_KmCodeButtonClick(Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'KmName','科目名称','KmCode',
             '科目代码',' Gl_AccountSubject ');
end;

procedure TFrm_Gl_Enter_Docket_D.Edt_KmCodeExit(Sender: TObject);
begin
  inherited;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.clear;
  AdoQry_Tmp.SQL.text := 'Select KmName from Gl_AccountSubject Where KmCode='''+Edt_KmCode.Text +'''';
  AdoQry_Tmp.Open;
  if AdoQry_Tmp.Eof then
  begin
    DispInfo('科目代码输入错误!',1);
    Edt_KmCode.SetFocus;
    Abort;
  end
  else
    Edt_KmName.Text := AdoQry_Tmp.fieldbyname('KmName').AsString;
end;

end.

⌨️ 快捷键说明

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