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

📄 inv145_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit Inv145_02;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bas200_16, DB, ADODB, Menus, StdCtrls, Buttons, ExtCtrls;

type
  TInv145_02Form = class(TBas200_16Form)
    lblCustID: TLabel;
    edtCustID: TEdit;
    sbCustID: TSpeedButton;
    edtCustName: TEdit;
    lblItemID: TLabel;
    edtItemID: TEdit;
    sbItemID: TSpeedButton;
    edtItemName: TEdit;
    lblFromUnitID: TLabel;
    edtFromUnitID: TEdit;
    sbFromID: TSpeedButton;
    edtFromUnitName: TEdit;
    lblToUnitID: TLabel;
    edtToUnitID: TEdit;
    sbToID: TSpeedButton;
    edtToUnitName: TEdit;
    edtConvert: TEdit;
    lblConvert: TLabel;
    qryOrd150: TADOQuery;
    qryInv150: TADOQuery;
    qryInv140: TADOQuery;
    qryOrd150O150_001: TAutoIncField;
    qryOrd150O150_002: TWideStringField;
    qryOrd150O150_003: TWideStringField;
    qryInv150I150_001: TAutoIncField;
    qryInv150I150_002: TWideStringField;
    qryInv150I150_003: TWideStringField;
    qryInv140I140_001: TAutoIncField;
    qryInv140I140_002: TWideStringField;
    qryInv140I140_003: TWideStringField;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbCustIDClick(Sender: TObject);
    procedure sbItemIDClick(Sender: TObject);
    procedure sbFromIDClick(Sender: TObject);
    procedure sbToIDClick(Sender: TObject);
    procedure edtCustIDExit(Sender: TObject);
    procedure edtItemIDExit(Sender: TObject);
    procedure edtFromUnitIDExit(Sender: TObject);
    procedure edtToUnitIDExit(Sender: TObject);
    procedure edtConvertKeyPress(Sender: TObject; var Key: Char);
  private
    AOldCust,AOldItem,AOldFrom,AOldTo:String;
    { Private declarations }
  public
    procedure OpenData(ACustNo,AItemNo,AFromUnitNo,AToUnitNo:Integer);
    procedure SetInterface; override;
    procedure GetDataInfo; override;
    procedure SetEmptyInit; override;
    procedure InsertInit; override;
    procedure TableBeforePost; override;
    { Public declarations }
  end;

var
  Inv145_02Form: TInv145_02Form;

implementation

uses SYSDATA, CommFun, HwSelData;

{$R *.dfm}

procedure TInv145_02Form.OpenData(ACustNo,AItemNo,AFromUnitNo,AToUnitNo:Integer);
begin
  if (ACustNo=0) and (AItemNo=0) and (AFromUnitNo=0) and (AToUnitNo=0) then AMode:='ADD' else AMode:='UPD';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select A.*,B.O150_002,B.O150_003,C.I150_002,C.I150_003,D.I140_002 as FFromUnitID,D.I140_003 as FFromUnitName,E.I140_002 as FToUnitID,E.I140_003 as FToUnitName');
  ADOQuery1.SQL.Add('from ((((INV145 A left join ORD150 B on A.I145_001=B.O150_001)');
  ADOQuery1.SQL.Add('         left join INV150 C on A.I145_002=C.I150_001)');
  ADOQuery1.SQL.Add('         left join INV140 D on A.I145_003=D.I140_001)');
  ADOQuery1.SQL.Add('         left join INV140 E on A.I145_004=E.I140_001)');
  ADOQuery1.SQL.Add('order by A.I145_001,A.I145_002,A.I145_003');
  ADOQuery1.Open;
  if AMode<>'ADD' then
  begin
    ADOQuery1.Locate('I145_001;I145_002;I145_003;I145_004',VarArrayOf([ACustNo,AItemNo,AFromUnitNo,AToUnitNo]),[]);
    ADOQuery1AfterScroll(ADOQuery1);
  end else
  begin
    InsertInit;
  end;
end;

procedure TInv145_02Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('INV14502001');  //单位转换维护
  lblCustID.Caption:=GetDBString('INV14502002');  //客户编号
  lblItemID.Caption:=GetDBString('INV14502003');  //料品编号
  lblFromUnitID.Caption:=GetDBString('INV14502004');  //自单位号
  lblToUnitID.Caption:=GetDBString('INV14502005');  //至单位号
  lblConvert.Caption:=GetDBString('INV14502006');  //转换系数
  qryOrd150O150_002.DisplayLabel:=GetDBString('INV14502007');  //客户编号
  qryOrd150O150_003.DisplayLabel:=GetDBString('INV14502008');  //客户名称
  qryInv150I150_002.DisplayLabel:=GetDBString('INV14502009');  //料品编号
  qryInv150I150_003.DisplayLabel:=GetDBString('INV14502010');  //料品名称
  qryInv140I140_002.DisplayLabel:=GetDBString('INV14502011');  //单位编号
  qryInv140I140_003.DisplayLabel:=GetDBString('INV14502012');  //单位名称
end;

procedure TInv145_02Form.FormCreate(Sender: TObject);
begin
  inherited;
  qryOrd150.Open;
  qryInv150.Open;
  qryInv140.Open;
end;

procedure TInv145_02Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  qryOrd150.Close;
  qryInv150.Close;
  qryInv140.Close;
end;

procedure TInv145_02Form.GetDataInfo;
begin
  inherited;
  edtCustID.Text:=ADOQuery1.FieldByName('O150_002').AsString;
  edtCustName.Text:=ADOQuery1.FieldByName('O150_003').AsString;
  edtItemID.Text:=ADOQuery1.FieldByName('I150_002').AsString;
  edtItemName.Text:=ADOQuery1.FieldByName('I150_003').AsString;
  edtFromUnitID.Text:=ADOQuery1.FieldByName('FFromUnitID').AsString;
  edtFromUnitName.Text:=ADOQuery1.FieldByName('FFromUnitName').AsString;
  edtToUnitID.Text:=ADOQuery1.FieldByName('FToUnitID').AsString;
  edtToUnitName.Text:=ADOQuery1.FieldByName('FToUnitName').AsString;
  edtConvert.Text:=ADOQuery1.FieldByName('I145_005').AsString;
  AOldCust:=edtCustID.Text;
  AOldItem:=edtItemID.Text;
  AOldFrom:=edtFromUnitID.Text;
  AOldTo:=edtToUnitID.Text;
end;

procedure TInv145_02Form.InsertInit;
begin
  inherited;
  SetEmptyInit;
  edtConvert.Text:='1';
end;

procedure TInv145_02Form.SetEmptyInit;
begin
  inherited;
  edtCustID.Text:='';
  edtCustName.Text:='';
  edtItemID.Text:='';
  edtItemName.Text:='';
  edtFromUnitID.Text:='';
  edtFromUnitName.Text:='';
  edtToUnitID.Text:='';
  edtToUnitName.Text:='';
  edtConvert.Text:=''
end;

procedure TInv145_02Form.TableBeforePost;
var
  ACustNo,AItemNo,AFromNo,AToNo:Integer;
begin
  inherited;
  ACustNo:=0;
  if trim(edtCustID.Text)<>'' then
  begin
    if not qryOrd150.Locate('O150_002',edtCustID.Text,[]) then
    begin
      ShowMsg('UMS10000497');  //无效的客户编号,请重新输入
      edtCustID.SetFocus;
      Abort;
    end;
    ACustNo:=qryOrd150.FieldByName('O150_001').AsInteger;
  end;

  AItemNo:=0;
  if trim(edtItemID.Text)<>'' then
  begin
    if not qryInv150.Locate('I150_002',edtItemID.Text,[]) then
    begin
      ShowMsg('UMS10000498');  //无效的料品编号,请重新输入
      edtItemID.SetFocus;
      Abort;
    end;
    AItemNo:=qryInv150.FieldByName('I150_001').AsInteger;
  end;

  if not qryInv140.Locate('I140_002',edtFromUnitID.Text,[]) then
  begin
    ShowMsg('UMS10000499');  //无效的自单位编号,请重新输入
    edtFromUnitID.SetFocus;
    Abort;
  end;
  AFromNo:=qryInv140.FieldByName('I140_001').AsInteger;

  if not qryInv140.Locate('I140_002',edtToUnitID.Text,[]) then
  begin
    ShowMsg('UMS10000500');  //无效的至单位编号,请重新输入
    edtToUnitID.SetFocus;
    Abort;
  end;
  AToNo:=qryInv140.FieldByName('I140_001').AsInteger;

  if AFromNo=AToNo then
  begin
    ShowMsg('UMS10000501');  //自单位编号不能与至单位编号相同
    edtToUnitID.SetFocus;
    Abort;
  end;

  if (AOldCust<>trim(edtCustID.Text)) or
     (AOldItem<>trim(edtItemID.Text)) or
     (AOldFrom<>trim(edtFromUnitID.Text)) or
     (AOldTo<>trim(edtToUnitID.Text)) then
  begin
    if IsExists('select 1 from INV145 where I145_001='+IntToStr(ACustNo)+' and I145_002='+IntToStr(AItemNo)+' and I145_003='+IntToStr(AFromNo)+' and I145_004='+IntToStr(AToNo)) then
    begin
      ShowMsg('UMS10000502');  //相同单位转换记录已存在,请重新输入
      edtCustID.SetFocus;
      Abort;
    end;
  end;

  if (trim(edtConvert.Text)='') or (trim(edtConvert.Text)='0') then
  begin
    ShowMsg('UMS10000503');  //转换系数不能为空或零
    edtConvert.SetFocus;
    Abort;
  end;

  if AMode='ADD' then ADOQuery1.Append else ADOQuery1.Edit;
  ADOQuery1.FieldByName('I145_001').Value:=ACustNo;
  ADOQuery1.FieldByName('I145_002').Value:=AItemNo;
  ADOQuery1.FieldByName('I145_003').Value:=AFromNo;
  ADOQuery1.FieldByName('I145_004').Value:=AToNo;
  ADOQuery1.FieldByName('I145_005').Value:=edtConvert.Text;
end;

procedure TInv145_02Form.sbCustIDClick(Sender: TObject);
begin
  inherited;
//客户编号查询
  if not edtCustID.Focused then edtCustID.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryOrd150,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtCustID.Text:=qryOrd150.FieldByName('O150_002').AsString;
    edtCustName.Text:=qryOrd150.FieldByName('O150_003').AsString;
  end;
end;

procedure TInv145_02Form.sbItemIDClick(Sender: TObject);
begin
  inherited;
//料品编号查询
  if not edtItemID.Focused then edtItemID.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv150,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtItemID.Text:=qryInv150.FieldByName('I150_002').AsString;
    edtItemName.Text:=qryInv150.FieldByName('I150_003').AsString;
  end;
end;

procedure TInv145_02Form.sbFromIDClick(Sender: TObject);
begin
  inherited;
//自单位编号查询
  if not edtFromUnitID.Focused then edtFromUnitID.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv140,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtFromUnitID.Text:=qryInv140.FieldByName('I140_002').AsString;
    edtFromUnitName.Text:=qryInv140.FieldByName('I140_003').AsString;
  end;
end;

procedure TInv145_02Form.sbToIDClick(Sender: TObject);
begin
  inherited;
//至单位编号查询
  if not edtToUnitID.Focused then edtToUnitID.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv140,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtToUnitID.Text:=qryInv140.FieldByName('I140_002').AsString;
    edtToUnitName.Text:=qryInv140.FieldByName('I140_003').AsString;
  end;
end;

procedure TInv145_02Form.edtCustIDExit(Sender: TObject);
begin
  inherited;
//客户编号
  if trim(edtCustID.Text)='' then Exit;
  if qryOrd150.Locate('O150_002',edtCustID.Text,[]) then
  begin
    edtCustID.Text:=qryOrd150.FieldByName('O150_002').AsString;
    edtCustName.Text:=qryOrd150.FieldByName('O150_003').AsString;
  end else
  begin
    ShowMsg('UMS10000497');  //无效的客户编号,请重新输入
    edtCustID.SetFocus;
    Abort;
  end;
end;

procedure TInv145_02Form.edtItemIDExit(Sender: TObject);
begin
  inherited;
//料品编号
  if trim(edtItemID.Text)='' then Exit;
  if qryInv150.Locate('I150_002',edtItemID.Text,[]) then
  begin
    edtItemID.Text:=qryInv150.FieldByName('I150_002').AsString;
    edtItemName.Text:=qryInv150.FieldByName('I150_003').AsString;
  end else
  begin
    ShowMsg('UMS10000498');  //无效的料品编号,请重新输入
    edtItemID.SetFocus;
    Abort;
  end;
end;

procedure TInv145_02Form.edtFromUnitIDExit(Sender: TObject);
begin
  inherited;
//自单位编号
  if trim(edtFromUnitID.Text)='' then Exit;
  if qryInv140.Locate('I140_002',edtFromUnitID.Text,[]) then
  begin
    edtFromUnitID.Text:=qryInv140.FieldByName('I140_002').AsString;
    edtFromUnitName.Text:=qryInv140.FieldByName('I140_003').AsString;
  end else
  begin
    ShowMsg('UMS10000499');  //无效的自单位编号,请重新输入
    edtFromUnitID.SetFocus;
    Abort;
  end;
end;

procedure TInv145_02Form.edtToUnitIDExit(Sender: TObject);
begin
  inherited;
//至单位编号
  if trim(edtToUnitID.Text)='' then Exit;
  if qryInv140.Locate('I140_002',edtToUnitID.Text,[]) then
  begin
    edtToUnitID.Text:=qryInv140.FieldByName('I140_002').AsString;
    edtToUnitName.Text:=qryInv140.FieldByName('I140_003').AsString;
  end else
  begin
    ShowMsg('UMS10000499');  //无效的自单位编号,请重新输入
    edtToUnitID.SetFocus;
    Abort;
  end;
end;

procedure TInv145_02Form.edtConvertKeyPress(Sender: TObject;
  var Key: Char);
begin
  inherited;
  ValidFloat(Sender,Key);
end;

initialization
  RegisterClass(TInv145_02Form);

finalization
  UnRegisterClass(TInv145_02Form);

end.

⌨️ 快捷键说明

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