📄 inv145_02.pas.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 + -