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

📄 inv_itemcurrentinv.pas

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

Interface

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

Type
  TFrm_Inv_ItemCurrentInv = Class(TFrm_Base_Qry)
    Splitter1: TSplitter;
    DBGridEh1: TDBGridEh;
    AdoQuery: TAdoQuery;
    DataSource1: TDataSource;
    AdoQry_MainItemCode: TStringField;
    AdoQry_MainItemName: TStringField;
    AdoQry_MainUomName: TStringField;
    AdoQry_MainWHName: TStringField;
    AdoQry_MainEmployeeName: TStringField;
    Label1: TLabel;
    Edit1: TEdit;
    procedure AdoQry_MainAfterScroll(DataSet: TDataSet);
    procedure Act_PreviewExecute(Sender: TObject);
    procedure Act_PrintExecute(Sender: TObject);
    procedure Act_ExcelExecute(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
    procedure SetReport;
  public
    { Public declarations }
    procedure InitForm(AdOConnection:TAdOConnection;ShowExtendColumn:Boolean);Override;
  end;

var
  Frm_Inv_ItemCurrentInv: TFrm_Inv_ItemCurrentInv;

implementation

{$R *.DFM}

{ TFrm_Inv_ItemCurrentInv }

procedure TFrm_Inv_ItemCurrentInv.InitForm(AdOConnection: TAdOConnection;
  ShowExtendColumn: Boolean);
begin
  inherited;
  SelectFromSQL:='Select Item.ItemCode'
    +',Item.ItemName'
    +',Uom.UomName'
    +',Warehouse.WHName'
    +',Employee.EmployeeName'
    +' From Item'
    +' Left Join Uom On Item.UomCode=Uom.UomCode'
    +' Left Join Warehouse On Item.WHCode=Warehouse.WHCode'
    +' Left Join Employee On Item.WH_EmployeeCode=Employee.EmployeeCode';
  OrderByFields:='ItemCode';
  AdoQuery.Connection:=AdOConnection;
  GetData;
end;

procedure TFrm_Inv_ItemCurrentInv.AdoQry_MainAfterScroll(
  DataSet: TDataSet);
begin
  inherited;
  AdoQuery.Close;
  AdoQuery.SQL.Text:='Select CurrentInv.WHCode'
    +',CurrentInv.WHCode+'' ''+Warehouse.WHName As WHCodeName'
    +',Sum(CurrentInv.OnHandInv+CurrentInv.OnCheckInv+CurrentInv.FreezeInv'
    +'+CurrentInv.WasterInv+CurrentInv.OnShipInv) As TotalQry'
    +',Sum(CurrentInv.OnHandInv) As OnHandInv'
    +',Sum(CurrentInv.OnCheckInv) As OnCheckInv'
    +',Sum(CurrentInv.FreezeInv) As FreezeInv'
    +',Sum(CurrentInv.WasterInv) As WasterInv'
    +',Sum(CurrentInv.OnShipInv) As OnShipInv'
    +' From CurrentInv'
    +' Join Warehouse On CurrentInv.WHCode=Warehouse.WHCode'
    +' Where CurrentInv.ItemCode='''+AdoQry_Main.fieldbyname('ItemCode').AsString+''''
    +' Group By CurrentInv.WHCode,Warehouse.WHName';
  AdoQuery.Open;
end;

procedure TFrm_Inv_ItemCurrentInv.SetReport;
var
  i,j,k:integer;
  GroupCaption,ColumnTitle,StrTemp:String;
begin
  if AdoQuery.Active=False then
    Abort;
  GroupCaption:='';
  ExtPrintReport.DataSet:=nil;
  ExtPrintReport.Headers.clear;
  i:=0;
  k:=-1;
  with ExtPrintReport do
  begin
    for j:=0 to DBGridEH1.Columns.Count-1 do
      if DBGridEH1.Columns[j].Visible then
      begin
        Headers.Add;
        ColumnTitle:=DBGridEH1.Columns[j].Title.Caption;
        Headers.Items[i].Caption :=Copy(ColumnTitle,Pos('|',ColumnTitle)+1,Length(ColumnTitle)-Pos('|',ColumnTitle));
        Headers.Items[i].FieldName :=DBGridEH1.Columns[j].FieldName;
        Headers.Items[i].DisplayWidth:=DBGridEH1.Columns[j].Width div (DBGridEH1.Canvas.TextWidth(' '));
        Headers.Items[i].Alignment :=DBGridEH1.Columns[j].Alignment;
        if (DBGridEH1.UseMultiTitle)and(Pos('|',DBGridEH1.Columns[j].Title.Caption)<>0) then
        begin
          ColumnTitle:=Copy(DBGridEH1.Columns[j].Title.Caption,1,Pos('|',DBGridEH1.Columns[j].Title.Caption)-1);
          if GroupCaption<>ColumnTitle then
          begin
            Inc(k);
            GroupCaption:=ColumnTitle;
            HeaderGroups.Add;
            HeaderGroups.Items[k].Caption:=GroupCaption;
            HeaderGroups.Items[k].StArtCol:=i+1;
            HeaderGroups.Items[k].endCol:=i+1;
          end
          else
          begin
            HeaderGroups.Items[k].endCol:=i+1;
          end;
        end
        else
          GroupCaption:='';
        Inc(i);
      end;
    DataSet:=AdoQuery;
    InitReport;
    StrTemp:='  ';
    for i:=0 to Length(AdoQry_Main.fieldbyname('ItemCode').AsString)-
      Length(AdoQry_Main.fieldbyname('UomName').AsString)-1 do
      StrTemp:=StrTemp+' ';
    ExtPrintReport.Subtitle2:='物料代码:'+AdoQry_Main.fieldbyname('ItemCode').AsString
      +'  '+'物料描述:'+AdoQry_Main.fieldbyname('ItemName').AsString;
    ExtPrintReport.Subtitle3:='计量单位:'+AdoQry_Main.fieldbyname('UomName').AsString
      +StrTemp+'缺省仓库:'+AdoQry_Main.fieldbyname('WHName').AsString
      +'  '+'缺省仓管员:'+AdoQry_Main.fieldbyname('EmployeeName').AsString;
  end;
end;

procedure TFrm_Inv_ItemCurrentInv.Act_PreviewExecute(Sender: TObject);
begin
  SetReport;
  ExtPrintReport.Preview;
end;

procedure TFrm_Inv_ItemCurrentInv.Act_PrintExecute(Sender: TObject);
begin
  inherited;
  SetReport;
  ExtPrintReport.Print(self);
end;

procedure TFrm_Inv_ItemCurrentInv.Act_ExcelExecute(Sender: TObject);
begin
  DBGridEhToExcel(DBGridEh1);
end;

procedure TFrm_Inv_ItemCurrentInv.Edit1Change(Sender: TObject);
begin
  inherited;
  if TEdit(Sender).Text<>'' then
    AdoQry_Main.Locate('ItemCode',TEdit(Sender).Text,[loPArtialKey]);
end;

end.

⌨️ 快捷键说明

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