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

📄 inv_invanditem.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Inv_InvAndItem;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Qry, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,pr_PrintReportType,
  StdCtrls, ExtCtrls, ComCtrls, ToolWin, DBCtrls;

Type
  TFrm_Inv_InvAndItem = Class(TFrm_Base_Qry)
    CheckBox1: TCheckBox;
    Label1: TLabel;
    lbl_Page: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    DBText1: TDBText;
    AdODataSet_Main: TAdODataSet;
    AdODataSet_MainItemflag: TStringField;
    AdODataSet_MainonhandInv: TFloatField;
    AdODataSet_MainCurrentonhandInv: TFloatField;
    AdODataSet_MainDiffrentonhandInv: TFloatField;
    AdODataSet_MainonCheckInv: TFloatField;
    AdODataSet_MainCurrentonCheckInv: TFloatField;
    AdODataSet_MainDiffrentonCheckInv: TFloatField;
    AdODataSet_MainfreezeInv: TFloatField;
    AdODataSet_MainCurrentfreezeInv: TFloatField;
    AdODataSet_MainDiffrentfreezeInv: TFloatField;
    AdODataSet_MainwasterInv: TFloatField;
    AdODataSet_MainCurrentwasterInv: TFloatField;
    AdODataSet_MainDiffrentwasterInv: TFloatField;
    AdODataSet_MainonShipInv: TFloatField;
    AdODataSet_MainCurrentonShipInv: TFloatField;
    AdODataSet_MainDiffrentonShipInv: TFloatField;
    procedure Act_nextExecute(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    procedure InitForm(AdoQry:TAdOConnection);
    procedure GetData; Override;
    { Public declarations }
  end;

var
  Frm_Inv_InvAndItem: TFrm_Inv_InvAndItem;
implementation
uses Inv_QueryStatus;
{$R *.DFM}


procedure TFrm_Inv_InvAndItem.Act_nextExecute(Sender: TObject);
var
  i:integer;
begin
  //inherited;
  SelectFromSQL:='select '+
           '      Item.ItemCode+'' ''+Item.ItemName as Itemflag ,'+
           '      case when c.onhandInv is null then 0 else c.onhandInv end onhandInv,'+
           '      CurrentonhandInv, '+
           '      CurrentonhandInv-case when c.onhandInv is null then 0 else c.onhandInv end DiffrentonhandInv,'+
           '      case when c.onCheckInv is null then 0 else c.onCheckInv end onCheckInv,'+
           '      CurrentonCheckInv,'+
           '      CurrentonCheckInv-case when c.onCheckInv is null then 0 else c.onCheckInv end DiffrentonCheckInv,'+
           '      case when c.freezeInv is null then 0 else c.freezeInv end freezeInv,'+
           '      CurrentfreezeInv,'+
           '      CurrentfreezeInv-case when c.freezeInv is null then 0 else c.freezeInv end  DiffrentfreezeInv,'+
           '      case when c.wasterInv is null then 0 else c.wasterInv end wasterInv,'+
           '      CurrentwasterInv,'+
           '      CurrentwasterInv-case when c.wasterInv is null then 0 else c.wasterInv end  DiffrentwasterInv,'+
           '      case when c.onShipInv is null then 0 else c.onShipInv end onShipInv,'+
           '      CurrentonShipInv,'+
           '      CurrentonShipInv-case when c.onShipInv is null then 0 else c.onShipInv end  DiffrentonShipInv '+
           '  from Item '+
           '  left join '+
           '       (select ItemCode,sum(onhandInv) onhandInv,sum(onCheckInv) onCheckInv,'+
           '               sum(freezeInv) freezeInv,sum(wasterInv) wasterInv,sum(onShipInv) onShipInv '+
           '          from CurrentInv '+
           '         group by ItemCode) c '+
           '       on Item.ItemCode=c.ItemCode ';

  conditionuserDefine:=
           '         (abs(CurrentonhandInv-case when c.onhandInv is null then 0 else c.onhandInv end)>0.0001) or '+
           '         (abs(CurrentonCheckInv-case when c.onCheckInv is null then 0 else c.onCheckInv end)>0.0001) or '+
           '         (abs(CurrentfreezeInv-case when c.freezeInv is null then 0 else c.freezeInv end)>0.0001) or '+
           '         (abs(CurrentwasterInv-case when c.wasterInv is null then 0 else c.wasterInv end)>0.0001) or '+
           '         (abs(CurrentonShipInv-case when c.onShipInv is null then 0 else c.onShipInv end)>0.0001)';
  with AdODataSet_Main do
  begin
    CommandTimeout:=0;
    //Close;
    //CommandText:=sql_txt;
    //Open;
    getdata;
    lbl_Page.Caption:=inttostr(RecordCount);
  end;
  with DBGridEh do
  begin
    for i:=1 to 15 do
    TFloatField(AdODataSet_Main.Fields[i]).displayFormat:='0.##';
    Columns[0].Title.Caption:='物料标识';
    Columns[1].Title.Caption:='可用库存|库存记录';
    Columns[2].Title.Caption:='可用库存|物料主文件';
    Columns[3].Title.Caption:='可用库存|差异';
    Columns[4].Title.Caption:='待检库存|库存记录';
    Columns[5].Title.Caption:='待检库存|物料主文件';
    Columns[6].Title.Caption:='待检库存|差异';
    Columns[7].Title.Caption:='冻结库存|库存记录';
    Columns[8].Title.Caption:='冻结库存|物料主文件';
    Columns[9].Title.Caption:='冻结库存|差异';
    Columns[10].Title.Caption:='废品库存|库存记录';
    Columns[11].Title.Caption:='废品库存|物料主文件';
    Columns[12].Title.Caption:='废品库存|差异';
    Columns[13].Title.Caption:='在运库存|库存记录';
    Columns[14].Title.Caption:='在运库存|物料主文件';
    Columns[15].Title.Caption:='在运库存|差异';
    Columns[0].Width:=210;
    Columns[1].Width:=60;
    Columns[2].Width:=70;
    Columns[3].Width:=60;
    Columns[4].Width:=60;
    Columns[5].Width:=70;
    Columns[6].Width:=60;
    Columns[7].Width:=60;
    Columns[8].Width:=70;
    Columns[9].Width:=60;
    Columns[10].Width:=60;
    Columns[11].Width:=70;
    Columns[12].Width:=60;
    Columns[13].Width:=60;
    Columns[14].Width:=70;
    Columns[15].Width:=60;
    Frozencols:=1;
    Frm_Inv_QueryStatus.Close;
    Refresh;
    UseMultiTitle:=True;
  end;
end;

procedure TFrm_Inv_InvAndItem.InitForm(AdoQry: TAdOConnection);
begin
  self.SetDBConnect(AdoQry);
  AdODataSet_Main.Connection:=AdoQry;
  AdoQry_Main.Connection:= AdoQry;
  AdoQry_Tmp.Connection:=AdoQry;
  TlBtn_Look.Action:=Act_next;
  Act_next.Visible:=False;
  Frm_Inv_QueryStatus.SetFocus;  
  Act_Next.Execute;
end;

procedure TFrm_Inv_InvAndItem.CheckBox1Click(Sender: TObject);
begin
  inherited;
  DBGridEh.AutoFitColWidths:=CheckBox1.Checked;
end;

procedure TFrm_Inv_InvAndItem.GetData;
begin
  if SelectFromSQL<>'' then
  begin
    AdODataSet_Main.DisableControls;
    AdODataSet_Main.Close;
    AdODataSet_Main.CommandText:=SelectFromSQL;
    if(Condition<>'')then
    begin
      if(ConditionUserDefine<>'')then
        AdODataSet_Main.CommandText:=AdODataSet_Main.CommandText+' Where '+Condition+' and '+ConditionUserDefine
      else
        AdODataSet_Main.CommandText:=AdODataSet_Main.CommandText+' Where '+Condition;
    end
    else if(ConditionUserDefine<>'')then
      AdODataSet_Main.CommandText:=AdODataSet_Main.CommandText+' Where '+ConditionUserDefine;
    if(GroupByFields<>'')then
      AdODataSet_Main.CommandText:=AdODataSet_Main.CommandText+' Group By '+GroupByFields;
    AdODataSet_Main.Open;
    AdODataSet_Main.Sort:=OrderByFields;
    AdODataSet_Main.EnableControls;
  end;
end;

procedure TFrm_Inv_InvAndItem.FormCreate(Sender: TObject);
begin
  inherited;
  Frm_Inv_QueryStatus:=TFrm_Inv_QueryStatus.Create(Application);
  Frm_Inv_QueryStatus.Show;
  Frm_Inv_QueryStatus.refresh;
end;

end.

⌨️ 快捷键说明

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