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

📄 inv510_02.pas.svn-base

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