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

📄 base_enter_orderordinalset_d.pas

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

Interface

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

Type
  TFrm_Base_Enter_OrderOrdinalSet_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Cmb_OrderType: TComboBox;
    Cmb_OrderOrdinalType: TComboBox;
    Cmb_OrderOrdinalELetter: TComboBox;
    Edt_OrderOrdinalBLetter: TEdit;
    procedure btn_okClick(Sender: TObject);
  private
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveData; Override;
    { Public declarations }
  end;

var
  Frm_Base_Enter_OrderOrdinalSet_D: TFrm_Base_Enter_OrderOrdinalSet_D;

implementation

uses Sys_Global;

{$R *.DFM}

{ TFrm_Gl_Enter_Docket_D }

procedure TFrm_Base_Enter_OrderOrdinalSet_D.InitControls;
begin
  inherited;
  If (status='Add')  Then
  begin
    Cmb_OrderType.Enabled := True;
    Cmb_OrderOrdinalType.Enabled := True;
    Cmb_OrderOrdinalELetter.Enabled := True;
    Edt_OrderOrdinalBLetter.Enabled := True;
    Cmb_OrderType.SetFocus ;
  end
  else
   If (status='Edit')  Then
   begin
    Cmb_OrderType.Enabled := False;
    Cmb_OrderOrdinalType.Enabled := True;
    Cmb_OrderOrdinalELetter.Enabled := True;
    Edt_OrderOrdinalBLetter.Enabled := True;
    Cmb_OrderOrdinalType.SetFocus ;
   end;
  with AdoQry_Maintain do
  begin
    Cmb_OrderType.ItemIndex := fieldbyname('OrderType').AsInteger-1;
    Cmb_OrderOrdinalType.ItemIndex := fieldbyname('OrderOrdinalType').AsInteger-1;
    Cmb_OrderOrdinalELetter.ItemIndex := fieldbyname('OrderOrdinalELetter').AsInteger;
    Edt_OrderOrdinalBLetter.Text := fieldbyname('OrderOrdinalBLetter').AsString;
  end;
end;

procedure TFrm_Base_Enter_OrderOrdinalSet_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 SysOrderOrdinalSet'
                  +' (OrderType,OrderOrdinalType,OrderOrdinalBLetter,OrderOrdinalELetter ) '
                  +' Values('
                  +''''+IntToStr(Cmb_OrderType.ItemIndex+1)+''''
                  +','''+IntToStr(Cmb_OrderOrdinalType.ItemIndex+1)+''''
                  +','''+Edt_OrderOrdinalBLetter.text+''''
                   +','''+IntToStr(Cmb_OrderOrdinalELetter.ItemIndex)+''''
                  +')';
        ExecSQL;
        Close;
        SQL.clear;
        Sql.Text := 'Select @@Identity As aa'  ;
        Open;
        KmCode := fieldbyname('aa').AsString;

        Close;
        SQL.clear;
        SQL.Text:= ' Insert into SysOrderOrdinalSetHistory '
                  +' (ParamId,OrderType,OrderOrdinalType,OrderOrdinalBLetter,OrderOrdinalELetter,ChgEmployeeCode,ChgTime,ChgType ) '
                  +' Values('
                  +''''+KmCode+''''
                  +','''+IntToStr(Cmb_OrderType.ItemIndex+1)+''''
                  +','''+IntToStr(Cmb_OrderOrdinalType.ItemIndex+1)+''''
                  +','''+Edt_OrderOrdinalBLetter.text+''''
                  +','''+IntToStr(Cmb_OrderOrdinalELetter.ItemIndex)+''','
                  + QuotedStr(UserCode)+','
                  +' GetDate(),'
                  +''''+'新增'+''' '
                  +')';
        ExecSQL;
      end;
    end
    else
    begin
      with AdoQry_Tmp do
      begin
        Close;
        SQL.clear;
        Sql.Text := 'Select ParamId From SysOrderOrdinalSet Where OrderType='''+IntToStr(Cmb_OrderType.ItemIndex+1)+''' '  ;
        Open;
        KmCode := fieldbyname('ParamId').AsString;

        Close;
        SQL.clear;
        SQL.Text:= ' Insert into SysOrderOrdinalSetHistory '
                  +' (ParamId,OrderType,OrderOrdinalType,OrderOrdinalBLetter,OrderOrdinalELetter,ChgEmployeeCode,ChgTime,ChgType ) '
                  +' Values('
                  +''''+KmCode+''''
                  +','''+IntToStr(Cmb_OrderType.ItemIndex+1)+''''
                  +','''+IntToStr(Cmb_OrderOrdinalType.ItemIndex+1)+''''
                  +','''+Edt_OrderOrdinalBLetter.text+''''
                  +','''+IntToStr(Cmb_OrderOrdinalELetter.ItemIndex)+''','
                  + QuotedStr(UserCode)+','
                  +' GetDate(),'
                  +''''+'修改'+''' '
                  +')';
        ExecSQL;

        Close;
        SQL.clear;
        sql.Add('update SysOrderOrdinalSet set '+
                                'OrderOrdinalType='''+IntToStr(Cmb_OrderOrdinalType.ItemIndex+1)+''','+
                                'OrderOrdinalELetter='''+IntToStr(Cmb_OrderOrdinalELetter.ItemIndex)+''','+
                                'OrderOrdinalBLetter='''+Edt_OrderOrdinalBLetter.text+''' '+
                      ' where OrderType='''+IntToStr(Cmb_OrderType.ItemIndex+1)+''' ');
        ExecSQL;
      end
    end;
    DbConnect.CommitTrans ;
  except
    DbConnect.RollBackTrans ;
  end;
  //给AdoQry_Item各字段赋值

  with AdoQry_Maintain do
  begin
    edit;
    fieldbyname('OrderType').AsInteger := Cmb_OrderType.ItemIndex+1;
    fieldbyname('OrderOrdinalType').AsInteger := Cmb_OrderOrdinalType.ItemIndex+1;
    fieldbyname('OrderOrdinalELetter').AsInteger := Cmb_OrderOrdinalELetter.ItemIndex;
    fieldbyname('OrderOrdinalBLetter').AsString:=Edt_OrderOrdinalBLetter.Text;
    Post;
  end;
end;

procedure TFrm_Base_Enter_OrderOrdinalSet_D.btn_okClick(Sender: TObject);
begin
  if Status = 'Add' then
  begin
    AdoQry_tmp.Close;
    AdoQry_tmp.SQL.clear;
    AdoQry_tmp.SQL.Text := ' Select OrderType From SysOrderOrdinalSet '
                         + ' Where OrderType = '''+IntToStr(Cmb_OrderType.ItemIndex+1)+'''';
    AdoQry_tmp.Open;
    if not AdoQry_tmp.Eof then
    begin
      DispInfo('单类型不能重复',1);
      Cmb_OrderType.SetFocus;
      Abort;
    end;
  end;
  if  Cmb_OrderType.ItemIndex < 0 then
  begin
    DispInfo('单类型选择错误!',1);
    Cmb_OrderType.SetFocus;
    Abort;
  end;
  if  Cmb_OrderOrdinalType.ItemIndex < 0 then
  begin
    DispInfo('单号编法选择错误!',1);
    Cmb_OrderOrdinalType.SetFocus;
    Abort;
  end;
  if  Cmb_OrderOrdinalType.ItemIndex = 0 then
  begin
    If Trim(Edt_OrderOrdinalBLetter.Text) <> '' then
    begin
      DispInfo(' 手工编号时编号前缀字眼应为空!',1);
      Edt_OrderOrdinalBLetter.Text := '';
      Edt_OrderOrdinalBLetter.SetFocus;
      Abort;
    end;
    if  Cmb_OrderOrdinalELetter.ItemIndex > 0 then
    begin
      DispInfo('手工编号时 编号后缀编法应为空!',1);
      Cmb_OrderOrdinalELetter.ItemIndex := 0;
      Cmb_OrderOrdinalELetter.SetFocus;
      Abort;
    end;
  end
  else
  begin
{   If Trim(Edt_OrderOrdinalBLetter.Text) = '' then
    begin
      DispInfo('自动编号时编号前缀字眼不能为空!',1);
      Edt_OrderOrdinalBLetter.SetFocus;
      Abort;
    end;}
    if  Cmb_OrderOrdinalELetter.ItemIndex <= 0 then
    begin
      DispInfo('自动编号时编号后缀编法不能空!',1);
      Cmb_OrderOrdinalELetter.SetFocus;
      Abort;
    end;

  end;
  inherited;
end;

end.

⌨️ 快捷键说明

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