📄 inv400_01.pas.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 + -