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

📄 inv400_01.pas.svn-base

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

interface

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

type
  TInv400_01Form = class(TBas200_03Form)
    lblDate: TLabel;
    sbSearch: TSpeedButton;
    edtFromDate: TwwDBDateTimePicker;
    edtToDate: TwwDBDateTimePicker;
    lblWhs: TLabel;
    cbWhs: TComboBox;
    ADOQuery1I100_002: TWideStringField;
    ADOQuery1I100_003: TWideStringField;
    ADOQuery1I150_002: TWideStringField;
    ADOQuery1I150_003: TWideStringField;
    ADOQuery1I150_004: TWideStringField;
    ADOQuery1I140_003: TWideStringField;
    dxDBGrid1I100_002: TdxDBGridColumn;
    dxDBGrid1I100_003: TdxDBGridColumn;
    dxDBGrid1I150_002: TdxDBGridColumn;
    dxDBGrid1I150_003: TdxDBGridColumn;
    dxDBGrid1I150_004: TdxDBGridColumn;
    dxDBGrid1I140_003: TdxDBGridColumn;
    dxDBGrid1FQty: TdxDBGridMaskColumn;
    ADOQuery1FDayUse: TFloatField;
    dxDBGrid1FDayUse: TdxDBGridMaskColumn;
    ADOQuery1FQty: TFloatField;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sbSearchClick(Sender: TObject);
  private
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure BrowseEvent; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Inv400_01Form: TInv400_01Form;

implementation

uses SYSDATA, CommFun, InvComm;

{$R *.dfm}

procedure TInv400_01Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('INV40001001');  //料品用量分析
  lblWhs.Caption:=GetDBString('INV40001002');  //仓库
  lblDate.Caption:=GetDBString('INV40001003');  //日期
  sbSearch.Caption:=GetDBString('INV40001004');  //查询

  ADOQuery1.FieldByName('I100_002').DisplayLabel:=GetDBString('INV40001005');  //仓库编号
  ADOQuery1.FieldByName('I100_003').DisplayLabel:=GetDBString('INV40001006');  //仓库名称
  ADOQuery1.FieldByName('I150_002').DisplayLabel:=GetDBString('INV40001007');  //料品编号
  ADOQuery1.FieldByName('I150_003').DisplayLabel:=GetDBString('INV40001008');  //料品名称
  ADOQuery1.FieldByName('I150_004').DisplayLabel:=GetDBString('INV40001009');  //规格型号
  ADOQuery1.FieldByName('I140_003').DisplayLabel:=GetDBString('INV40001010');  //计量单位
  ADOQuery1.FieldByName('FQty').DisplayLabel:=GetDBString('INV40001011');  //耗用数量
  ADOQuery1.FieldByName('FDayUse').DisplayLabel:=GetDBString('INV40001012');  //日均数量

  GetAllWhs(cbWhs);
end;

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

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

procedure TInv400_01Form.sbSearchClick(Sender: TObject);
var
  AFromDate,AToDate:TDateTime;
  ADay,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;
  AFromDate:=edtFromDate.Date;
  AToDate:=edtToDate.Date;

  ADay:=DaysBetween(AToDate,AFromDate)+1;

  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select I100_001 from INV100 where ''[''+I100_002+'']''+I100_003='+''''+cbWhs.Text+'''');
  SYSDM.qryQuery.Open;
  AWhsNo:=SYSDM.qryQuery.Fields[0].AsInteger;

  Screen.Cursor:=crHourGlass;
  ADOQuery1.DisableControls;

  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select I100_002,I100_003,I150_002,I150_003,I150_004,I140_003,sum(I500_011) as FQty,sum(I500_011)/'+IntToStr(ADay)+' as FDayUse');
  ADOQuery1.SQL.Add('from ((INV500 A left join INV100 B on A.I500_007=B.I100_001)');
  ADOQuery1.SQL.Add('              left join INV150 C on A.I500_009=C.I150_001)');
  ADOQuery1.SQL.Add('              left join INV140 D on A.I500_010=D.I140_001');
  ADOQuery1.SQL.Add('where I500_004=2 and I500_005>='+GetDateString(AFromDate)+' and I500_005<='+GetDateString(AToDate));
  if AWhsNo<>0 then ADOQuery1.SQL.Add(' and I500_007='+IntToStr(AWhsNo));
  ADOQuery1.SQL.Add('group by I100_002,I100_003,I150_002,I150_003,I150_004,I140_003');
  ADOQuery1.SQL.Add('order by I100_002,I150_002');
  ADOQuery1.Open;
  ARecordCount:=GetDataSetCount(ADOQuery1);

  ADOQuery1.EnableControls;
  Screen.Cursor:=crDefault;
end;

procedure TInv400_01Form.BrowseEvent;
begin
  inherited;

end;

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

end;

initialization
  RegisterClass(TInv400_01Form);

finalization
  UnRegisterClass(TInv400_01Form);

end.

⌨️ 快捷键说明

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