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

📄 inv500_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit Inv500_01;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BAS200_10, dxExEdtr, ActnList, DB, ADODB, Menus, dxCntner, dxTL,
  dxDBCtrl, dxDBGrid, ExtCtrls, ComCtrls, ToolWin, Buttons, StdCtrls,
  dxDBTLCl, dxGrClms, wwdbdatetimepicker;

type
  TInv500_01Form = class(TBas200_10Form)
    lblDate: TLabel;
    sbSearch: TSpeedButton;
    edtFromDate: TwwDBDateTimePicker;
    edtToDate: TwwDBDateTimePicker;
    ADOQuery1I500A_001: TWideStringField;
    ADOQuery1I500A_002: TIntegerField;
    ADOQuery1I550_002: TWideStringField;
    ADOQuery1I550_003: TWideStringField;
    ADOQuery1I500A_003: TWideStringField;
    ADOQuery1I500A_004: TDateTimeField;
    ADOQuery1I500A_005: TSmallintField;
    ADOQuery1I500A_006: TIntegerField;
    ADOQuery1FCode: TStringField;
    ADOQuery1FName: TStringField;
    ADOQuery1I500A_007: TWideStringField;
    ADOQuery1I500A_008: TIntegerField;
    ADOQuery1G100_002: TWideStringField;
    ADOQuery1G100_003: TWideStringField;
    ADOQuery1I500A_009: TFloatField;
    ADOQuery1I500A_010: TIntegerField;
    ADOQuery1I100_002: TWideStringField;
    ADOQuery1I100_003: TWideStringField;
    ADOQuery1I500A_011: TMemoField;
    ADOQuery1I500A_012: TDateTimeField;
    ADOQuery1I500A_013: TWideStringField;
    ADOQuery1I500A_014: TDateTimeField;
    ADOQuery1I500A_015: TWideStringField;
    ADOQuery1I500A_016: TBooleanField;
    ADOQuery1I550_001: TAutoIncField;
    ADOQuery1I550_004: TSmallintField;
    ADOQuery1I550_005: TSmallintField;
    ADOQuery1I550_006: TBooleanField;
    ADOQuery1I550_007: TSmallintField;
    ADOQuery1I550_008: TWideStringField;
    ADOQuery1I550_009: TIntegerField;
    ADOQuery1I550_010: TSmallintField;
    ADOQuery1I550_011: TWideStringField;
    ADOQuery1G100_001: TAutoIncField;
    ADOQuery1I100_001: TAutoIncField;
    dxDBGrid1I500A_001: TdxDBGridColumn;
    dxDBGrid1I550_002: TdxDBGridColumn;
    dxDBGrid1I550_003: TdxDBGridColumn;
    dxDBGrid1I500A_003: TdxDBGridColumn;
    dxDBGrid1I500A_004: TdxDBGridDateColumn;
    dxDBGrid1I500A_005: TdxDBGridMaskColumn;
    dxDBGrid1FCode: TdxDBGridColumn;
    dxDBGrid1FName: TdxDBGridColumn;
    dxDBGrid1I500A_007: TdxDBGridColumn;
    dxDBGrid1G100_002: TdxDBGridColumn;
    dxDBGrid1G100_003: TdxDBGridColumn;
    dxDBGrid1I500A_009: TdxDBGridMaskColumn;
    dxDBGrid1I100_002: TdxDBGridColumn;
    dxDBGrid1I100_003: TdxDBGridColumn;
    dxDBGrid1I500A_012: TdxDBGridDateColumn;
    dxDBGrid1I500A_013: TdxDBGridColumn;
    dxDBGrid1I500A_014: TdxDBGridDateColumn;
    dxDBGrid1I500A_015: TdxDBGridColumn;
    dxDBGrid1I500A_016: TdxDBGridCheckColumn;
    lblWhs: TLabel;
    cbWhs: TComboBox;
    qryInv100: TADOQuery;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbSearchClick(Sender: TObject);
    procedure ADOQuery1I500A_005GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
  private
    AObjTyp:array[0..3] of string;
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure InsertEvent; override;
    procedure UpdateEvent; override;
    procedure DeleteEvent; override;
    procedure BrowseEvent; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Inv500_01Form: TInv500_01Form;

implementation

uses Inv500_02, CommFun, SYSDATA, InvComm;

{$R *.dfm}

procedure TInv500_01Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('INV50001001');  //料品进出处理

  ADOQuery1I500A_001.DisplayLabel:=GetDBString('INV50001002');  //进出单号
//  ADOQuery1I500A_002.DisplayLabel:=GetDBString('INV50001003');  //
  ADOQuery1I550_002.DisplayLabel:=GetDBString('INV50001003');  //类型编号
  ADOQuery1I550_003.DisplayLabel:=GetDBString('INV50001004');  //类型名称
  ADOQuery1I500A_003.DisplayLabel:=GetDBString('INV50001005');  //摘要说明
  ADOQuery1I500A_004.DisplayLabel:=GetDBString('INV50001006');  //进出日期
  ADOQuery1I500A_005.DisplayLabel:=GetDBString('INV50001007');  //对象类型
//  ADOQuery1I500A_006.DisplayLabel:=GetDBString('INV50001008');  //
  ADOQuery1FCode.DisplayLabel:=GetDBString('INV50001008');  //对象编号
  ADOQuery1FName.DisplayLabel:=GetDBString('INV50001009');  //对象名称
  ADOQuery1I500A_007.DisplayLabel:=GetDBString('INV50001010');  //相关单据
//  ADOQuery1I500A_008.DisplayLabel:=GetDBString('INV50001011');  //
  ADOQuery1G100_002.DisplayLabel:=GetDBString('INV50001011');  //币别编号
  ADOQuery1G100_003.DisplayLabel:=GetDBString('INV50001012');  //币别名称
  ADOQuery1I500A_009.DisplayLabel:=GetDBString('INV50001013');  //币别汇率
  ADOQuery1I500A_010.DisplayLabel:=GetDBString('INV50001014');  //仓库编号
  ADOQuery1I500A_011.DisplayLabel:=GetDBString('INV50001015');  //备注说明
  ADOQuery1I500A_012.DisplayLabel:=GetDBString('INV50001016');  //制单日期
  ADOQuery1I500A_013.DisplayLabel:=GetDBString('INV50001017');  //制单人员
  ADOQuery1I500A_014.DisplayLabel:=GetDBString('INV50001018');  //修改日期
  ADOQuery1I500A_015.DisplayLabel:=GetDBString('INV50001019');  //修改人员
  ADOQuery1I500A_016.DisplayLabel:=GetDBString('INV50001020');  //已过帐否

  AObjTyp[0]:=GetDBString('INV50001021');  //空白
  AObjTyp[1]:=GetDBString('INV50001022');  //客户
  AObjTyp[2]:=GetDBString('INV50001023');  //员工
  AObjTyp[3]:=GetDBString('INV50001024');  //部门

  lblWhs.Caption:=GetDBString('INV50001025');  //仓库
  lblDate.Caption:=GetDBString('INV50001026');  //日期
  sbSearch.Caption:=GetDBString('INV50001027');  //查询

  cbWhs.Clear;
  cbWhs.Items.Add(GetDBString('INV50001028'));  //所有仓库
  qryInv100.Close;
  qryInv100.Open;
  while not qryInv100.Eof do
  begin
    cbWhs.Items.Add(qryInv100.FieldByName('I100_003').AsString);
    qryInv100.Next;
  end;
  cbWhs.ItemIndex:=0;
end;

procedure TInv500_01Form.FormCreate(Sender: TObject);
var
  ADate:TDateTime;
begin
  inherited;
  ADate:=GetServerDate;
  edtFromDate.Date:=GetMonthFirstDate(ADate);
  edtToDate.Date:=GetMonthEndDate(ADate);
  sbSearch.Click;
end;

procedure TInv500_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
//
end;

procedure TInv500_01Form.sbSearchClick(Sender: TObject);
var
  AWhsNo:Integer;
begin
  inherited;
//查询
  if (edtFromDate.Text='') or (edtToDate.Text='') then
  begin
    ShowMsg('UMS10000319');  //起止日期不可为空
    if edtFromDate.Text='' then edtFromDate.SetFocus else edtToDate.SetFocus;
    Abort;
  end;
  if edtFromDate.Date>edtToDate.Date then
  begin
    ShowMsg('UMS10000320');  //结束日期不能小于起始日期
    edtToDate.SetFocus;
    Abort;
  end;

  AWhsNo:=0;
  if cbWhs.ItemIndex<>0 then
  begin
    qryInv100.Locate('I100_003',cbWhs.Text,[]);
    AWhsNo:=qryInv100.FieldByName('I100_001').Value;
  end;

  Screen.Cursor:=crHourGlass;
  ADOQuery1.DisableControls;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select A.*,');
  ADOQuery1.SQL.Add('       B.*,');
  ADOQuery1.SQL.Add('       C.G100_001,C.G100_002,C.G100_003,');
  ADOQuery1.SQL.Add('       D.I100_001,D.I100_002,D.I100_003');
  ADOQuery1.SQL.Add('from INV500A A,INV550 B,GLD100 C,INV100 D');
  ADOQuery1.SQL.Add('where I500A_002=I550_001 and I500A_008=G100_001 and I500A_010=I100_001');
  if AWhsNo<>0 then ADOQuery1.SQL.Add(' and A.I500A_010='+IntToStr(AWhsNo));
  ADOQuery1.SQL.Add('order by I500A_001');
  ADOQuery1.Open;
  ADOQuery1.EnableControls;
  ARecordCount:=GetDataSetCount(ADOQuery1);
  Screen.Cursor:=crDefault;
end;

procedure TInv500_01Form.BrowseEvent;
begin
  inherited;
  Inv500_02Form:=TInv500_02Form.Create(Application);
  Inv500_02Form.OpenData(ADOQuery1.FieldByName('I500A_001').AsString);
  Inv500_02Form.ShowModal;
end;         

procedure TInv500_01Form.InsertEvent;
begin
  inherited;
//新增
  Inv500_02Form:=TInv500_02Form.Create(Application);
  Inv500_02Form.OpenData('');
  Inv500_02Form.ActInsert.Execute;
  Inv500_02Form.ShowModal;
end;

procedure TInv500_01Form.ReportGetValue(const ParName: String;
  var ParValue: Variant);
begin
  inherited;

end;

procedure TInv500_01Form.UpdateEvent;
begin
  inherited;
//修改
  if ADOQuery1.FieldByName('I500A_016').AsBoolean then
  begin
    ShowMsg('UMS10000612');  //不允许修改已经过帐的进出仓单
    Abort;
  end;
  if ADOQuery1I550_001.Value=14 Then
  begin
    ShowMsg('UMS10000613');  //不允许修改操作类型为盘点调整的料品进出单
    Abort;
  end;
  if IsExists('select 1 from INV500B where I500B_011='+''''+ADOQuery1I500A_001.AsString+'''') then
  begin
    ShowMsg('UMS10000614');  //不允许修改有相关单据的料品进出单
    Abort;
  end;
  Inv500_02Form:=TInv500_02Form.Create(Application);
  Inv500_02Form.OpenData(ADOQuery1.FieldByName('I500A_001').AsString);
  Inv500_02Form.ActUpdate.Execute;
  Inv500_02Form.ShowModal;
end;

procedure TInv500_01Form.DeleteEvent;
var
  ACode:String;
begin
//删除
  inherited;
  if ADOQuery1.FieldByName('I500A_016').AsBoolean then
  begin
    ShowMsg('UMS10000605');  //不允许删除已经过帐的进出仓单
    Abort;
  end;
  if ADOQuery1I550_001.Value=14 Then
  begin
    ShowMsg('UMS10000615');  //不允许删除操作类型为盘点调整的料品进出单
    Abort;
  end;
  if IsExists('select 1 from INV500B where I500B_011='+''''+ADOQuery1I500A_001.AsString+'''') then
  begin
    ShowMsg('UMS10000616');  //不允许删除有相关单据的料品进出单
    Abort;
  end;
  ACode:=ADOQuery1I500A_001.AsString;
  //更新相关的数据,当进出仓单更新时
  UpdateInv500B(ACode,'INV500','DEL',0);
  //删除进出单据
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('delete from INV500B where I500B_001='+''''+ACode+'''');
  SYSDM.qryQuery.ExecSQL;
  DeleteTableRecord(ADOQuery1,'INV500A','I500A_001='+''''+ACode+'''');
  //更新相关的数据,当进出仓单更新时
  UpdateInv500B(ACode,'INV500','DEL',0);
  //更新进出仓单的应收发数量
  UpdateInv500BOrdQty(ACode);
end;

procedure TInv500_01Form.ADOQuery1I500A_005GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  Text:=AObjTyp[Sender.AsInteger];
end;

initialization
  RegisterClass(TInv500_01Form);

finalization
  UnRegisterClass(TInv500_01Form);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -