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

📄 hwseldataa.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 4 页
字号:
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 + -