📄 sfc_mnrequest.pas
字号:
unit Sfc_MnRequest;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Head, Menus, Db, ActnList, AdODB, Grids, DBGridEh, StdCtrls,
ExtCtrls, ComCtrls, ToolWin, DBCtrls, ExtPrintReport, jpeg;
Type
TFrm_Sfc_MnRequest = Class(TFrm_Base_Entry_Head)
AdoQry_Headmono: TStringField;
AdoQry_HeadMoLineno: TIntegerField;
AdoQry_HeadItemCode: TStringField;
AdoQry_HeadItemName: TStringField;
AdoQry_Headmoqty: TFloatField;
AdoQry_HeadmostArtworkdate: TDateTimeField;
AdoQry_HeadMoLinedate: TDateTimeField;
AdoQry_HeadMoLinestatus: TIntegerField;
AdoQry_HeadmoSpecial: TIntegerField;
Label1: TLabel;
DBText1: TDBText;
AdoQry_HeadMoNoFinishqty: TFloatField;
procedure Act_NewExecute(Sender: TObject);
procedure AdoQry_HeadBeforeInsert(DataSet: TDataSet);
private
{ Private declarations }
public
tmp_MoRequestshift:string;
tmp_DeptCode:string;
procedure SetFormParam(FrmParam1,FrmParam2,FrmParam3,FrmParam4,FrmParam5,FrmParam6:String);Override;
procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
{ Public declarations }
end;
var
Frm_Sfc_MnRequest: TFrm_Sfc_MnRequest;
implementation
uses Sfc_MnRequest_C, Sfc_MnRequest_B,Sfc_MnRequestOverPlan_B,Sys_Global;
{$R *.DFM}
procedure TFrm_Sfc_MnRequest.InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
begin
inherited;
//设置表头SQL
SelectFromSQL:='select '+
'l.mono,'+
'l.MoLineno,'+
'l.ItemCode,'+
'i.ItemName,'+
'l.moqty,'+
'l.MoNoFinishqty,'+
'l.mostArtworkdate,'+
'l.MoLinedate,'+
'l.MoLinestatus,'+
'm.moSpecial'+
' from MoLine l left join Item i on l.ItemCode=i.ItemCode '+
' left join mo m on l.mono=m.mono ';
//设置排序字段信息
OrderByFields:='mono,MoLineno';
//固定条件为不是拉式领料且数量不为零
ConditionUserDefine:='(l.BackFlush<>1 and l.MOQty<>0)';
//根据菜单处入来的参数快定显示窗体标题
if Param1='正常' then
begin
Caption:='生产领料请领制单';
pnl_title.Caption:='生产领料请领制单';
Frm_Entry_Body:=TFrm_Sfc_MnRequest_B.Create(Self);
end;
if Param1='超计划' then
begin
Caption:='生产超订单领料请领制单';
pnl_title.Caption:='生产超订单领料请领制单';
Frm_Entry_Body:=TFrm_Sfc_MnRequestOverPlan_B.Create(Self);
end;
//BODY窗体名的创建
Frm_Sys_Condition:=TFrm_Sfc_MnRequest_C.Create(Application);
Act_Filter.Execute;
end;
procedure TFrm_Sfc_MnRequest.Act_NewExecute(Sender: TObject);
var
tmp_locateid:string;
begin
if not AdoQry_Head.IsEmpty then
begin
//定单状态为‘下达‘才可以领料
if AdoQry_Head.fieldbyname('MoLinestatus').asinteger=6 then
begin
//当从BODY返回后,Head会刷新,下面语名用于刷新事重新定位
tmp_locateid:=AdoQry_Head.fieldbyname('mono').asstring;
inherited;
getdata;
AdoQry_Head.Locate('mono',tmp_locateid,[]);
end
else
begin
DispInfo('该订单行还未下达,不能请领料',1);
abort;
end;
end;
end;
procedure TFrm_Sfc_MnRequest.AdoQry_HeadBeforeInsert(DataSet: TDataSet);
begin
inherited;
abort;
end;
procedure TFrm_Sfc_MnRequest.SetFormParam(FrmParam1,FrmParam2,FrmParam3,FrmParam4,FrmParam5,FrmParam6:String);
begin
inherited;
//把参数从CONDITION窗体中传过来,用于在Head中显示
tmp_MoRequestshift:=FrmParam1;
tmp_DeptCode:=FrmParam2;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -