📄 inv_itemcurrentinv.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 + -