📄 inv410_01.pas.svn-base
字号:
unit Inv410_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;
type
TInv410_01Form = class(TBas200_03Form)
lblDate: TLabel;
sbSearch: TSpeedButton;
lblWhs: TLabel;
edtFromDate: TwwDBDateTimePicker;
edtToDate: TwwDBDateTimePicker;
cbWhs: TComboBox;
ADOQuery1I150_001: TAutoIncField;
ADOQuery1I150_002: TWideStringField;
ADOQuery1I150_003: TWideStringField;
ADOQuery1I150_004: TWideStringField;
ADOQuery1I140_003: TWideStringField;
ADOQuery1FOpen: TFloatField;
ADOQuery1FIn: TFloatField;
ADOQuery1FOut: TFloatField;
ADOQuery1FBalance: TFloatField;
dxDBGrid1I150_002: TdxDBGridColumn;
dxDBGrid1I150_003: TdxDBGridColumn;
dxDBGrid1I150_004: TdxDBGridColumn;
dxDBGrid1I140_003: TdxDBGridColumn;
dxDBGrid1FOpen: TdxDBGridMaskColumn;
dxDBGrid1FOut: TdxDBGridMaskColumn;
dxDBGrid1FBalance: TdxDBGridMaskColumn;
dxDBGrid1FTims: TdxDBGridColumn;
ADOQuery1FTimes: TFloatField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sbSearchClick(Sender: TObject);
procedure ADOQuery1CalcFields(DataSet: TDataSet);
private
{ Private declarations }
public
procedure SetInterface; override;
procedure BrowseEvent; override;
procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
{ Public declarations }
end;
var
Inv410_01Form: TInv410_01Form;
implementation
uses SYSDATA, CommFun, InvComm;
{$R *.dfm}
procedure TInv410_01Form.SetInterface;
begin
inherited;
Caption:=GetDBString('INV41001001'); //周转次数分析
lblWhs.Caption:=GetDBString('INV41001002'); //仓库
lblDate.Caption:=GetDBString('INV41001003'); //日期
sbSearch.Caption:=GetDBString('INV41001004'); //查询
ADOQuery1.FieldByName('I150_002').DisplayLabel:=GetDBString('INV41001005'); //料品编号
ADOQuery1.FieldByName('I150_003').DisplayLabel:=GetDBString('INV41001006'); //料品名称
ADOQuery1.FieldByName('I150_004').DisplayLabel:=GetDBString('INV41001007'); //规格型号
ADOQuery1.FieldByName('I140_003').DisplayLabel:=GetDBString('INV41001008'); //计量单位
ADOQuery1.FieldByName('FOpen').DisplayLabel:=GetDBString('INV41001009'); //期初数量
ADOQuery1.FieldByName('FOut').DisplayLabel:=GetDBString('INV41001010'); //出库数量
ADOQuery1.FieldByName('FBalance').DisplayLabel:=GetDBString('INV41001011'); //库存数量
ADOQuery1.FieldByName('FTimes').DisplayLabel:=GetDBString('INV41001012'); //周转次数
GetAllWhs(cbWhs);
end;
procedure TInv410_01Form.FormCreate(Sender: TObject);
var
ADate:TDateTime;
begin
inherited;
ADate:=GetServerDate;
edtFromDate.Date:=GetMonthFirstDate(ADate);
edtToDate.Date:=GetMonthEndDate(ADate);
sbSearch.Click;
end;
procedure TInv410_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
//
end;
procedure TInv410_01Form.sbSearchClick(Sender: TObject);
var
AFromDate,AToDate:TDateTime;
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;
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;
//取得所有物料的出入数量及库存数量
GetAllItemInvBalance(ADOQuery1,AWhsNo,0,AFromDate,AToDate);
ARecordCount:=GetDataSetCount(ADOQuery1);
end;
procedure TInv410_01Form.BrowseEvent;
begin
inherited;
end;
procedure TInv410_01Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
end;
procedure TInv410_01Form.ADOQuery1CalcFields(DataSet: TDataSet);
var
AValue:Double;
begin
inherited;
//周转次数:周转次数 = 出库总数 / 平均库存 = (出库总数 * 2 ) / (期初库存 + 期末库存)
AValue:=ADOQuery1FOpen.AsFloat+ADOQuery1FBalance.AsFloat;
if AValue=0 then
ADOQuery1FTimes.Value:=0
else
ADOQuery1FTimes.Value:=(ADOQuery1FOut.AsFloat*2)/AValue;
end;
initialization
RegisterClass(TInv410_01Form);
finalization
UnRegisterClass(TInv410_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -