📄 inv510_02.pas.svn-base
字号:
unit Inv510_02;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Bas200_13, Mask, wwdbedit, Wwdotdot, Grids, Wwdbigrd, Wwdbgrid,
ComCtrls, StdCtrls, wwdbdatetimepicker, Buttons, DB, ADODB, ActnList,
Menus, ToolWin;
type
TInv510_02Form = class(TBas200_13Form)
lblSummary: TLabel;
edtSummary: TEdit;
lblPost: TLabel;
edtPost: TEdit;
lblInWhs: TLabel;
edtInWhs: TEdit;
sbInWhs: TSpeedButton;
edtInWhsName: TEdit;
edtDate: TwwDBDateTimePicker;
lblDate: TLabel;
memRemark: TMemo;
lblRemark: TLabel;
lblOutWhs: TLabel;
edtOutWhs: TEdit;
sbOutWhs: TSpeedButton;
edtOutWhsName: TEdit;
PageControl1: TPageControl;
tsItem: TTabSheet;
wwDBGrid1: TwwDBGrid;
edtItem: TwwDBComboDlg;
edtUnit: TwwDBComboDlg;
edtOutLocID: TwwDBComboDlg;
qryInv150: TADOQuery;
qryInv150I150_001: TAutoIncField;
qryInv150I150_002: TWideStringField;
qryInv150I150_003: TWideStringField;
qryInv150I150_004: TWideStringField;
qryInv150I140_001: TAutoIncField;
qryInv150I140_002: TWideStringField;
qryInv150I140_003: TWideStringField;
qryInv110A: TADOQuery;
qryInv110AI110_001: TAutoIncField;
qryInv110AI110_002: TIntegerField;
qryInv110AI110_003: TWideStringField;
qryInv110AI110_004: TWideStringField;
qryInv510B: TADOQuery;
adsInv510B: TADODataSet;
adsInv510BFItemID: TStringField;
adsInv510BFItemName: TStringField;
adsInv510BFItemSpec: TStringField;
adsInv510BFUnitID: TStringField;
adsInv510BFUnitName: TStringField;
adsInv510BFUnitRate: TFloatField;
adsInv510BFQty: TFloatField;
adsInv510BFPrice: TFloatField;
adsInv510BFAmount: TFloatField;
adsInv510BFDate: TDateTimeField;
adsInv510BFLot: TStringField;
adsInv510BFRemark: TStringField;
adsInv510BFNo: TIntegerField;
adsInv510BFItemNo: TIntegerField;
adsInv510BFUnitNo: TIntegerField;
dsInv510B: TDataSource;
ADODataSet1: TADODataSet;
qryInv140: TADOQuery;
qryInv140I140_001: TAutoIncField;
qryInv140I140_002: TWideStringField;
qryInv140I140_003: TWideStringField;
qryInv550: TADOQuery;
qryInv100A: TADOQuery;
qryInv100AI100_001: TAutoIncField;
qryInv100AI100_002: TWideStringField;
qryInv100AI100_003: TWideStringField;
dsInv100A: TDataSource;
lblType: TLabel;
edtType: TEdit;
dsInv100B: TDataSource;
qryInv100B: TADOQuery;
qryInv100BI100_001: TAutoIncField;
qryInv100BI100_002: TWideStringField;
qryInv100BI100_003: TWideStringField;
qryInv110B: TADOQuery;
qryInv110BI110_001: TAutoIncField;
qryInv110BI110_002: TIntegerField;
qryInv110BI110_003: TWideStringField;
qryInv110BI110_004: TWideStringField;
ADOQuery1I510A_001: TWideStringField;
ADOQuery1I510A_002: TIntegerField;
ADOQuery1I510A_003: TWideStringField;
ADOQuery1I510A_004: TDateTimeField;
ADOQuery1I510A_005: TIntegerField;
ADOQuery1I510A_006: TIntegerField;
ADOQuery1I510A_007: TIntegerField;
ADOQuery1I510A_008: TIntegerField;
ADOQuery1I510A_009: TMemoField;
ADOQuery1I510A_010: TDateTimeField;
ADOQuery1I510A_011: TWideStringField;
ADOQuery1I510A_012: TDateTimeField;
ADOQuery1I510A_013: TWideStringField;
ADOQuery1I550_001: TAutoIncField;
ADOQuery1I550_002: TWideStringField;
ADOQuery1I550_003: TWideStringField;
ADOQuery1I550_004: TSmallintField;
ADOQuery1I550_005: TSmallintField;
ADOQuery1I550_006: TBooleanField;
ADOQuery1I550_007: TSmallintField;
ADOQuery1I550_008: TWideStringField;
ADOQuery1I550_009: TIntegerField;
ADOQuery1I550_010: TSmallintField;
ADOQuery1I550_011: TWideStringField;
ADOQuery1FOutWhsNo: TAutoIncField;
ADOQuery1FOutWhsID: TWideStringField;
ADOQuery1FOutWhsName: TWideStringField;
ADOQuery1FInWhsNo: TAutoIncField;
ADOQuery1FInWhsID: TWideStringField;
ADOQuery1FInWhsName: TWideStringField;
ADOQuery1I510A_014: TBooleanField;
adsInv510BFOutLocNo: TIntegerField;
adsInv510BFOutLocID: TStringField;
adsInv510BFOutLocName: TStringField;
adsInv510BFInLocNo: TIntegerField;
adsInv510BFInLocID: TStringField;
adsInv510BFInLocName: TStringField;
edtInLocID: TwwDBComboDlg;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure wwDBGrid1UpdateFooter(Sender: TObject);
procedure adsInv510BNewRecord(DataSet: TDataSet);
procedure sbOutWhsClick(Sender: TObject);
procedure edtOutWhsExit(Sender: TObject);
procedure sbInWhsClick(Sender: TObject);
procedure edtInWhsExit(Sender: TObject);
procedure ADOQuery1I510A_014GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure wwDBGrid1Exit(Sender: TObject);
procedure wwDBGrid1Enter(Sender: TObject);
procedure edtItemCustomDlg(Sender: TObject);
procedure edtOutLocIDCustomDlg(Sender: TObject);
procedure edtInLocIDCustomDlg(Sender: TObject);
procedure edtUnitCustomDlg(Sender: TObject);
procedure adsInv510BBeforePost(DataSet: TDataSet);
procedure wwDBGrid1ColExit(Sender: TObject);
private
ALastNo:Integer;
APost:array[0..1] of string;
ABusy:Boolean;
ASeqNo:Integer;
procedure SetDBGridA;
procedure GetDetailData;
procedure CheckItem;
procedure CheckUnit;
procedure CheckOutLoc;
procedure CheckInLoc;
procedure CheckQty;
{ Private declarations }
public
procedure OpenData(ACode:String);
procedure SetInterface; override;
procedure GetDataInfo; override;
procedure InsertEvent; override;
procedure UpdateEvent; override;
procedure DeleteEvent; override;
procedure SetEmptyInit; override;
procedure TableBeforePost; override;
procedure TableAfterPost; override;
procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
{ Public declarations }
end;
var
Inv510_02Form: TInv510_02Form;
implementation
uses SYSDATA, CommFun, InvComm, HwSelData, HwSelDataA;
{$R *.dfm}
procedure TInv510_02Form.SetDBGridA;
var
I:Integer;
begin
for I:=0 to wwDBGrid1.Selected.Count-1 do
begin
wwDBGrid1.Columns[I].ReadOnly:=True;
end;
wwDBGrid1.ColumnByName('FItemID').ReadOnly:=False;
wwDBGrid1.ColumnByName('FUnitID').ReadOnly:=False;
wwDBGrid1.ColumnByName('FOutLocID').ReadOnly:=False;
wwDBGrid1.ColumnByName('FInLocID').ReadOnly:=False;
wwDBGrid1.ColumnByName('FQty').ReadOnly:=False;
wwDBGrid1.ColumnByName('FRemark').ReadOnly:=False;
adsInv510B.FieldByName('FOutLocID').Visible:=not qryInv110A.IsEmpty;
adsInv510B.FieldByName('FOutLocName').Visible:=not qryInv110A.IsEmpty;
adsInv510B.FieldByName('FInLocID').Visible:=not qryInv110B.IsEmpty;
adsInv510B.FieldByName('FInLocName').Visible:=not qryInv110B.IsEmpty;
//进仓的操作类型,允许输入价格和金额 (0=期初,1=入仓)
wwDBGrid1.ColumnByName('FPrice').ReadOnly:=not (qryInv550.FieldByName('I550_004').AsInteger in [0,1]);
wwDBGrid1.ColumnByName('FAmount').ReadOnly:=not (qryInv550.FieldByName('I550_004').AsInteger in [0,1]);
wwDBGrid1.Refresh;
end;
procedure TInv510_02Form.OpenData(ACode:String);
begin
if ACode='' then AMode:='ADD' else AMode:='UPD';
ADOQuery1.DisableControls;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select A.*,');
ADOQuery1.SQL.Add(' B.*,');
ADOQuery1.SQL.Add(' C.I100_001 as FOutWhsNo,C.I100_002 as FOutWhsID,C.I100_003 as FOutWhsName,');
ADOQuery1.SQL.Add(' D.I100_001 as FInWhsNo,D.I100_002 as FInWhsID,D.I100_003 as FInWhsName');
ADOQuery1.SQL.Add('from INV510A A,INV550 B,INV100 C,INV100 D');
ADOQuery1.SQL.Add('where I510A_002=I550_001 and I510A_005=C.I100_001 and I510A_007=D.I100_001');
ADOQuery1.SQL.Add('order by I510A_001');
ADOQuery1.Open;
ADOQuery1.Locate('I510A_001',ACode,[]);
ADOQuery1.EnableControls;
ADOQuery1AfterScroll(ADOQuery1);
end;
procedure TInv510_02Form.SetInterface;
begin
inherited;
Caption:=GetDBString('INV51002001'); //料品转仓处理
gbInfo.Caption:=GetDBString('INV51002002'); //基本信息
lblCode.Caption:=GetDBString('INV51002003'); //转仓单号
lblSummary.Caption:=GetDBString('INV51002004'); //摘要说明
lblPost.Caption:=GetDBString('INV51002005'); //已过帐否
lblOutWhs.Caption:=GetDBString('INV51002006'); //转出仓库
lblInWhs.Caption:=GetDBString('INV51002063'); //转入仓库
lblType.Caption:=GetDBString('INV51002007'); //操作类型
lblDate.Caption:=GetDBString('INV51002008'); //转仓日期
lblRemark.Caption:=GetDBString('INV51002009'); //备注说明
tsItem.Caption:=GetDBString('INV51002010'); //料品信息
ADOQuery1I510A_001.DisplayLabel:=GetDBString('INV51002011'); //转仓单号
// ADOQuery1I510A_002.DisplayLabel:=GetDBString('INV51002012'); //
ADOQuery1I550_002.DisplayLabel:=GetDBString('INV51002012'); //类型编号
ADOQuery1I550_003.DisplayLabel:=GetDBString('INV51002013'); //类型名称
ADOQuery1I510A_003.DisplayLabel:=GetDBString('INV51002014'); //摘要说明
ADOQuery1I510A_004.DisplayLabel:=GetDBString('INV51002015'); //转仓日期
ADOQuery1FOutWhsID.DisplayLabel:=GetDBString('INV51002016'); //转出仓号
ADOQuery1FOutWhsName.DisplayLabel:=GetDBString('INV51002017'); //转出仓名
ADOQuery1FInWhsID.DisplayLabel:=GetDBString('INV51002018'); //转入仓号
ADOQuery1FInWhsName.DisplayLabel:=GetDBString('INV51002019'); //转入仓名
ADOQuery1I510A_009.DisplayLabel:=GetDBString('INV51002020'); //备注说明
ADOQuery1I510A_010.DisplayLabel:=GetDBString('INV51002021'); //制单日期
ADOQuery1I510A_011.DisplayLabel:=GetDBString('INV51002022'); //制单人员
ADOQuery1I510A_012.DisplayLabel:=GetDBString('INV51002023'); //修改日期
ADOQuery1I510A_013.DisplayLabel:=GetDBString('INV51002024'); //修改人员
ADOQuery1I510A_014.DisplayLabel:=GetDBString('INV51002025'); //已过帐否
wwDBGrid1.ColumnByName('FItemID').DisplayLabel:=GetDBString('INV51002026'); //料品编号
wwDBGrid1.ColumnByName('FItemName').DisplayLabel:=GetDBString('INV51002027'); //料品名称
wwDBGrid1.ColumnByName('FItemSpec').DisplayLabel:=GetDBString('INV51002028'); //规格型号
wwDBGrid1.ColumnByName('FUnitID').DisplayLabel:=GetDBString('INV51002029'); //单位编号
wwDBGrid1.ColumnByName('FUnitName').DisplayLabel:=GetDBString('INV51002030'); //单位名称
wwDBGrid1.ColumnByName('FUnitRate').DisplayLabel:=GetDBString('INV51002031'); //单位转换
wwDBGrid1.ColumnByName('FOutLocID').DisplayLabel:=GetDBString('INV51002032'); //转出库号
wwDBGrid1.ColumnByName('FOutLocName').DisplayLabel:=GetDBString('INV51002033'); //转出库名
wwDBGrid1.ColumnByName('FInLocID').DisplayLabel:=GetDBString('INV51002034'); //转入库号
wwDBGrid1.ColumnByName('FInLocName').DisplayLabel:=GetDBString('INV51002035'); //转入库名
wwDBGrid1.ColumnByName('FQty').DisplayLabel:=GetDBString('INV51002036'); //转仓数量
wwDBGrid1.ColumnByName('FPrice').DisplayLabel:=GetDBString('INV51002037'); //料品单价
wwDBGrid1.ColumnByName('FAmount').DisplayLabel:=GetDBString('INV51002038'); //料品金额
wwDBGrid1.ColumnByName('FDate').DisplayLabel:=GetDBString('INV51002039'); //生产日期
wwDBGrid1.ColumnByName('FLot').DisplayLabel:=GetDBString('INV51002040'); //生产批号
wwDBGrid1.ColumnByName('FRemark').DisplayLabel:=GetDBString('INV51002041'); //备注说明
qryInv150I150_002.DisplayLabel:=GetDBString('INV51002042'); //产品编号
qryInv150I150_003.DisplayLabel:=GetDBString('INV51002043'); //产品名称
qryInv150I150_004.DisplayLabel:=GetDBString('INV51002044'); //规格型号
qryInv150I140_002.DisplayLabel:=GetDBString('INV51002045'); //单位编号
qryInv150I140_003.DisplayLabel:=GetDBString('INV51002046'); //单位名称
qryInv110AI110_003.DisplayLabel:=GetDBString('INV51002047'); //库位编号
qryInv110AI110_004.DisplayLabel:=GetDBString('INV51002048'); //库位名称
qryInv110BI110_003.DisplayLabel:=qryInv110AI110_003.DisplayLabel;
qryInv110BI110_004.DisplayLabel:=qryInv110AI110_004.DisplayLabel;
qryInv140I140_002.DisplayLabel:=GetDBString('INV51002049'); //单位编号
qryInv140I140_003.DisplayLabel:=GetDBString('INV51002050'); //单位名称
APost[0]:=GetDBString('INV51002051'); //未过帐
APost[1]:=GetDBString('INV51002052'); //已过帐
qryInv550.Close;
qryInv550.Open;
adsInv510B.Close;
adsInv510B.CreateDataSet;
SetDBGridA;
end;
procedure TInv510_02Form.FormCreate(Sender: TObject);
begin
inherited;
ATableName:='INV510A';
AFieldName:='I510A_001';
qryInv100A.Open;
qryInv100B.Open;
qryInv550.Open;
qryInv150.Open;
qryInv140.Open;
qryInv110A.Open;
qryInv110B.Open;
AKeyEvent:=OnKeyDown;
end;
procedure TInv510_02Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
qryInv100A.Close;
qryInv100B.Close;
qryInv550.Close;
qryInv150.Close;
qryInv140.Close;
qryInv110A.Close;
qryInv110B.Close;
end;
procedure TInv510_02Form.DeleteEvent;
var
ACode:String;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -