📄 hwseldataa.pas.svn-base
字号:
unit HwSelDataA;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, dxtree, ComCtrls, dxdbtree, dxExEdtr, dxCntner, dxTL,
dxDBCtrl, dxDBGrid, StdCtrls, Buttons, DB, ADODB, dxDBTL, dxDBTLCl,
dxGrClms;
type
THwSelDataAForm = class(TForm)
pnlLeft: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
Panel3: TPanel;
pnlWhs: TPanel;
pnlClass: TPanel;
dbgItem: TdxDBGrid;
bbtnOk: TBitBtn;
bbtnExit: TBitBtn;
bbtnFind: TBitBtn;
bbtnSearch: TBitBtn;
bbtnRefresh: TBitBtn;
dsInv100: TDataSource;
dsInv120: TDataSource;
dsInv150: TDataSource;
adsInv100: TADODataSet;
adsInv150: TADODataSet;
bbtnSelAll: TBitBtn;
bbtnUnSel: TBitBtn;
dtlWhs: TdxDBTreeList;
adsInv100FNo: TIntegerField;
adsInv100FName: TStringField;
adsInv100FParent: TIntegerField;
dtlWhsFName: TdxDBTreeListMaskColumn;
adsInv120: TADODataSet;
adsInv120FNo: TIntegerField;
adsInv120FName: TStringField;
adsInv120FParent: TIntegerField;
dxDBTreeView1: TdxDBTreeView;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbtnFindClick(Sender: TObject);
procedure bbtnSearchClick(Sender: TObject);
procedure bbtnRefreshClick(Sender: TObject);
procedure bbtnOkClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
procedure bbtnSelAllClick(Sender: TObject);
procedure bbtnUnSelClick(Sender: TObject);
procedure dbgItemKeyPress(Sender: TObject; var Key: Char);
procedure dbgItemMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure adsInv100AfterScroll(DataSet: TDataSet);
procedure dbgItemBackgroundDrawEvent(Sender: TObject; ACanvas: TCanvas;
ARect: TRect);
private
ABusy:Boolean;
FType,FCountCode:string;
FWhsNo,FCustNo,FTypeNo,FCurrNo,FDirection:Integer;
procedure GetAllWHS;
procedure GetAllClass;
procedure GetItems(AType:String;AWhsNo,ACustNo,ATypeNo:Integer;ACountCode:String='';ACurrNo:Integer=0;ADirection:Integer=0);
procedure SetInterface;
//
procedure GetInv150Items;
procedure GetInv501Items(AWhsNo:Integer);
procedure GetInv600Items(ACountCode:String);
procedure GetInv500Items(ATypeNo:Integer);
procedure GetOrd500Items(ACustNo:Integer);
procedure GetOrd510Items(ACustNo:Integer);
procedure GetPur510Items(ACustNo:Integer);
procedure GetSfc500Items;
procedure GetACR500AItems(ACustNo:integer;ACurrNo:integer);
procedure GetACR500BItems(ACustNo:integer;ACurrNo:integer);
procedure GetAcr510AItems(ACustNo:Integer;ACurrNo:Integer;ADirection:integer=0);
procedure GetAcr510BItems(ACustNo:Integer;ACurrNo:Integer;ADirection:integer=0);
procedure GetAcp510Items(ACustNo:Integer;ACurrNo:Integer;ADirection:integer=0);
procedure GetCsh510BItems(ACustNo,ACurrNo:Integer); //销售定单
procedure GetCsh510CItems(ACustNo,ACurrNo:Integer); //采购定单
procedure GetCsh510DItems(ACustNo,ACurrNo:Integer); //任务工单
{ Private declarations }
public
procedure OpenData(AType:String;AWhsNo,ACustNo,ATypeNo:Integer;ACountCode:String='';ACurrNo:Integer=0;ADirection:Integer=0);
{ Public declarations }
end;
var
HwSelDataAForm: THwSelDataAForm;
implementation
uses CommFun, SYSDATA;
{$R *.dfm}
procedure SetDBGridColoumns(ADataSet:TDataSet;ADBGrid:TdxDBGrid);
var
I:Integer;
AFieldName:String;
AColumn:TdxDBTreeListColumn;
begin
if not ADataSet.Active then Exit;
ADBGrid.DestroyColumns;
AFieldName:=ADataSet.Fields[0].FieldName;
AColumn:=ADBGrid.CreateColumn(TdxDBGridCheckColumn);
AColumn.FieldName:=AFieldName;
AColumn.HeaderAlignment:=taCenter;
AColumn.BandIndex:=0;
AColumn.DisableEditor:=True;
AColumn.Width:=40;
TdxDBGridCheckColumn(AColumn).ValueChecked:='-1';
TdxDBGridCheckColumn(AColumn).ValueUnchecked:='0';
for I:=1 to ADataSet.FieldCount-1 do
begin
if ADataSet.Fields[I].Visible then
begin
AFieldName:=ADataSet.Fields[I].FieldName;
AColumn:=ADBGrid.CreateColumn(TdxDBGridMaskColumn);
AColumn.FieldName:=AFieldName;
AColumn.HeaderAlignment:=taCenter;
AColumn.BandIndex:=0;
AColumn.DisableEditor:=True;
ADBGrid.ApplyBestFit(Acolumn);
if AFieldName<>'FLocName' then
begin
if AColumn.Width<ADataSet.Fields[I].DisplayWidth*4 then
AColumn.Width:=ADataSet.Fields[I].DisplayWidth*4;
end;
end;
end;
end;
procedure THwSelDataAForm.GetAllWHS;
begin
adsInv100.Close;
adsInv100.CommandText:='select I100_001*-1 as FNo,''[''+I100_002+'']''+I100_003 as FName,0 as FParent,I100_002 as FSeq from INV100 '+
' union '+
' select I110_001 as FNo,''[''+I110_003+'']''+I110_004 as FName,I110_002*-1 as FParent,I110_003 as FSeq from INV110 '+
' order by FSeq ';
adsInv100.Open;
adsInv100.Append;
adsInv100.FieldByName('FNo').Value:=0;
adsInv100.FieldByName('FName').Value:=GetDBString('COM00008020'); //所有仓库
adsInv100.FieldByName('FParent').Value:=0;
adsInv100.Post;
end;
procedure THwSelDataAForm.GetAllClass;
begin
adsInv120.Close;
adsInv120.CommandText:='select I120_001 as FNo,I120_003 as FName,I120_004 as FParent from INV120 order by I120_002';
adsInv120.Open;
adsInv120.Append;;
adsInv120.FieldByName('FNo').Value:=0;
adsInv120.FieldByName('FName').Value:=GetDBString('COM00008021'); //所有类别
adsInv120.FieldByName('FParent').Value:=0;
adsInv120.Post;
end;
procedure THwSelDataAForm.GetInv150Items;
begin
adsInv150.DisableControls;
adsInv150.Close;
adsInv150.CommandText:='select I150_005 as FSel, '+
' I150_001 as FItemNo,I150_002 as FItemID,I150_003 as FItemName,I150_008 as FEngItemName,I150_004 as FItemSpec, '+
' I140_001 as FUnitNo,I140_002 as FUnitID,I140_003 as FUnitName '+
' from INV150,INV140'+
' where I150_011=I140_001';
if adsInv120FNo.AsInteger<>0 then adsInv150.CommandText:=adsInv150.CommandText+' and I150_005='+adsInv120FNo.AsString;
adsInv150.CommandText:=adsInv150.CommandText+' order by I150_002';
adsInv150.Open;
adsInv150.FieldByName('FSel').DisplayLabel:=GetDBString('COM00008011'); //选择
adsInv150.FieldByName('FItemID').DisplayLabel:=GetDBString('COM00008012'); //料品编号
adsInv150.FieldByName('FItemName').DisplayLabel:=GetDBString('COM00008013'); //料品名称
adsInv150.FieldByName('FEngItemName').DisplayLabel:=GetDBString('COM00009014'); //英文名称
adsInv150.FieldByName('FItemSpec').DisplayLabel:=GetDBString('COM00008014'); //规格型号
adsInv150.FieldByName('FUnitName').DisplayLabel:=GetDBString('COM00008016'); //单位名称
adsInv150.FieldByName('FItemNo').Visible:=False;
adsInv150.FieldByName('FUnitNo').Visible:=False;
adsInv150.FieldByName('FUnitID').Visible:=False;
pnlLeft.Visible:=True;
Splitter1.Visible:=True;
adsInv150.EnableControls;
end;
procedure THwSelDataAForm.GetInv501Items(AWhsNo:Integer);
var
S:String;
begin
adsInv150.DisableControls;
adsInv150.Close;
adsInv150.CommandText:='select I501_001 as FSel, '+
' I501_003 as FItemNo,I150_002 as FItemID,I150_003 as FItemName,I150_008 as FEngItemName,I150_004 as FItemSpec, '+
' I501_004 as FUnitNo,I140_002 as FUnitID,I140_003 as FUnitName, '+
' I501_002 as FLocNo,I110_003 as FLocID,I110_004 as FLocName, '+
' I501_005 as FQty,I501_006 as FPrice,I501_007 as FAmount '+
' from ((((INV501 A left join INV100 B on A.I501_001=B.I100_001)'+
' left join INV110 C on A.I501_002=C.I110_001)'+
' left join INV150 D on A.I501_003=D.I150_001)'+
' left join INV140 E on A.I501_004=E.I140_001)';
S:='';
if AWhsNo<>0 then S:=S+' I501_001='+IntToStr(AWhsNo);
if adsInv120FNo.AsInteger<>0 then
begin
if S='' then
S:=S+' I150_005='+adsInv120FNo.AsString
else
S:=S+' and I150_005='+adsInv120FNo.AsString
end;
if AWhsNo<>0 then
begin
if S='' then
S:=S+' I100_001='+IntToStr(AWhsNo)
else
S:=S+' and I100_001='+IntToStr(AWhsNo);
end;
if S<>'' then S:=' where '+S;
adsInv150.CommandText:=adsInv150.CommandText+S;
adsInv150.CommandText:=adsInv150.CommandText+' order by I100_002,I110_003,I150_002 ';
adsInv150.Open;
adsInv150.FieldByName('FSel').DisplayLabel:=GetDBString('COM00008011'); //选择
adsInv150.FieldByName('FItemID').DisplayLabel:=GetDBString('COM00008012'); //料品编号
adsInv150.FieldByName('FItemName').DisplayLabel:=GetDBString('COM00008013'); //料品名称
adsInv150.FieldByName('FEngItemName').DisplayLabel:=GetDBString('COM00009014'); //英文名称
adsInv150.FieldByName('FItemSpec').DisplayLabel:=GetDBString('COM00008014'); //规格型号
adsInv150.FieldByName('FUnitID').DisplayLabel:=GetDBString('COM00008015'); //单位编号
adsInv150.FieldByName('FUnitName').DisplayLabel:=GetDBString('COM00008016'); //单位名称
adsInv150.FieldByName('FLocID').DisplayLabel:=GetDBString('COM00008022'); //库位编号
adsInv150.FieldByName('FLocName').DisplayLabel:=GetDBString('COM00008023'); //库位名称
adsInv150.FieldByName('FQty').DisplayLabel:=GetDBString('COM00008017'); //库存数量
adsInv150.FieldByName('FPrice').DisplayLabel:=GetDBString('COM00008018'); //单位价格
adsInv150.FieldByName('FAmount').DisplayLabel:=GetDBString('COM00008019'); //库存金额
adsInv150.FieldByName('FItemNo').Visible:=False;
adsInv150.FieldByName('FUnitNo').Visible:=False;
adsInv150.FieldByName('FLocNo').Visible:=False;
pnlLeft.Visible:=True;
Splitter1.Visible:=True;
adsInv150.EnableControls;
end;
procedure THwSelDataAForm.GetInv600Items(ACountCode:String);
begin
adsInv150.DisableControls;
adsInv150.Close;
adsInv150.CommandText:='select I150_005 as FSel,I600B_002 as FNo, '+
' I600B_003 as FItemNo,I150_002 as FItemID,I150_003 as FItemName,I150_008 as FEngItemName,I150_004 as FItemSpec, '+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -