inv_invinandpo.pas

来自「一个MRPII系统源代码版本」· PAS 代码 · 共 106 行

PAS
106
字号
unit Inv_InvInAndPo;

Interface

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

Type
  TFrm_Inv_InvInAndPO = Class(TFrm_Base_Qry)
    lbl_Status: TLabel;
    AdODataSet_Main: TAdODataSet;
    procedure FormCreate(Sender: TObject);
    procedure Act_nextExecute(Sender: TObject);
  private
    { Private declarations }
  public
    procedure InitForm(Adoconnect:TAdoConnection);
    { Public declarations }
  end;

var
  Frm_Inv_InvInAndPO: TFrm_Inv_InvInAndPO;

implementation
uses Inv_QueryStatus;
{$R *.DFM}

{ TFrm_Inv_InvInAndPO }

procedure TFrm_Inv_InvInAndPO.InitForm(Adoconnect: TAdoConnection);
begin
  AdODataSet_Main.Connection:=Adoconnect;
  AdoQry_Main.Connection:=Adoconnect;
  AdoQry_Tmp.Connection:=Adoconnect;
  Frm_Inv_QueryStatus.SetFocus;
  act_next.Execute;
end;

procedure TFrm_Inv_InvInAndPO.FormCreate(Sender: TObject);
begin
  inherited;
  TlBtn_Look.Action:=act_next;
  act_next.Visible:=False;
  Frm_Inv_QueryStatus:=TFrm_Inv_QueryStatus.Create(Application);
  Frm_Inv_QueryStatus.Show;
  Frm_Inv_QueryStatus.refresh;
end;

procedure TFrm_Inv_InvInAndPO.Act_nextExecute(Sender: TObject);
var
  Sql_Txt:String;
begin
  inherited;
  lbl_Status.Caption:='正在查询,请稍候......';
  lbl_Status.Refresh;
  sql_txt:=
           '   select a.pono 订单号,a.polineno 订单行号,'+
           '          a.ItemCode+'' ''+I.ItemName 物料标识,'+
           '          a.InvBillqty 单据数量,a.porealinqty 订单实入数量, '+
           '          a.porealinqty-a.InvBillqty 差异 '+
           ' from '+
           '     (select   '+
           '         bl.pono, '+
           '         bl.polineno, '+
           '         bl.ItemCode, '+
           '         case when bl.InvBillqty is null then 0 else bl.InvBillqty end InvBillqty,'+
           '         pl.porealinqty '+
           '       from poline pl '+
           '       left join'+
           '         (select b.pono,bl.polineno,ItemCode,sum(InvBillqty) InvBillqty'+
           '            from InvInBillline bl,InvInBill b '+
           '            where b.InvBillid=bl.InvBillid and b.pono is not null '+
           '            group by b.pono,bl.polineno,ItemCode) bl '+
           '         on bl.pono=pl.pono and bl.polineno=pl.polineno '+
           '     ) a,Item I '+
           '     where InvBillqty-porealinqty<>0 and '+
           '   a.ItemCode=I.ItemCode ';
  with AdODataSet_Main do
  begin
    CommandTimeout:=0;
    Close;
    CommandText:=sql_txt;
    Open;
    lbl_Status.Caption:='记录共_'+inttostr(RecordCount)+'条';
  end;
  with DBGridEh do
  begin
    TFloatField(AdODataSet_Main.Fields[3]).displayFormat:='0.##';
    TFloatField(AdODataSet_Main.Fields[4]).displayFormat:='0.##';
    TFloatField(AdODataSet_Main.Fields[5]).displayFormat:='0.##';
    Columns[0].Width:=80;
    Columns[1].Width:=80;
    Columns[2].Width:=300;
    Columns[3].Width:=80;
    Columns[4].Width:=80;
    Columns[5].Width:=80;
    Frm_Inv_QueryStatus.Close;    
    Frozencols:=2;
    ReFresh;
  end;
end;

end.

⌨️ 快捷键说明

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