📄 sfc_enter_mounitmnrequesth.pas
字号:
unit Sfc_Enter_MoUnitMnRequestH;
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_Enter_MoUnitMnRequestH = Class(TFrm_Base_Entry_Head)
Label1: TLabel;
DBText1: TDBText;
AdoQry_HeadCheckFlag: TIntegerField;
AdoQry_HeadMoNo: TStringField;
AdoQry_HeadMoLineNo: TIntegerField;
AdoQry_HeadMoLineStatus: TIntegerField;
AdoQry_HeadDeptCode: TStringField;
AdoQry_HeadDeptName: TStringField;
AdoQry_HeadMoSpecial: TIntegerField;
AdoQry_HeadItemCode: TStringField;
AdoQry_HeadItemName: TStringField;
AdoQry_HeadMoQty: TFloatField;
AdoQry_HeadMoNoFinishQty: TFloatField;
AdoQry_HeadMoStArtWorkDate: TDateTimeField;
AdoQry_HeadMoLineDate: TDateTimeField;
AdoQry_HeadDeptFlag: TStringField;
procedure Act_NewExecute(Sender: TObject);
procedure AdoQry_HeadBeforeInsert(DataSet: TDataSet);
procedure FormDestroy(Sender: TObject);
procedure DBGridEhTitleClick(Column: TColumnEh);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure AdoQry_HeadBeforeEdit(DataSet: TDataSet);
procedure AdoQry_HeadAfterPost(DataSet: TDataSet);
procedure Act_FilterExecute(Sender: TObject);
procedure DBGridEhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
Flag : Boolean;
SelectedCount : Integer;
{ Private declarations }
public
tmp_MoRequestshift:string;
tmp_DeptCode:string;
procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
{ Public declarations }
end;
var
Frm_Sfc_Enter_MoUnitMnRequestH: TFrm_Sfc_Enter_MoUnitMnRequestH;
implementation
uses Sfc_Enter_MoUnitMnRequest,Sys_Global;
{$R *.DFM}
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
var SqlText : String;
begin
inherited;
Application.ProcessMessages;
Flag := False;
Tmp_DeptCode := '';
SelectedCount := 0;
//设置表头SQL
SqlText := 'select CheckFlag=0,'+
' MoLine.MoNo,'+
' MoLine.MoLineNo,'+
' MoLine.MoLineStatus,'+
' Mo.DeptCode, '+
' Dept.DeptName, ' +
' Mo.DeptCode+'' ''+Dept.DeptName as DeptFlag, '+
' Mo.MoSpecial, ' +
' MoLine.ItemCode,'+
' Item.ItemName,'+
' MoLine.MoQty,'+
' MoLine.MoNoFinishQty,'+
' MoLine.MoStArtWorkDate,'+
' MoLine.MoLineDate '+
' Into #TmPMoLine '+
' from MoLine '+
' Join Mo On MoLine.MoNo=Mo.MoNo '+
' left join Item on MoLine.ItemCode=Item.ItemCode '+
' left join Dept On Mo.DeptCode=Dept.DeptCode '+
' Where BackFlush<>1 and MoQty>0 and MoLineStatus=6 ';
ExecuteSql(AdoQry_Tmp,SqlText,1);
SelectFromSql := 'Select * from #TmPMoLine';
//设置排序字段信息
OrderByFields := 'DeptCode,ItemCode,MoNo,MoLineNo';
//固定条件为不是拉式领料且数量不为零
Frm_Entry_Body := TFrm_Sfc_Enter_MoUnitMnRequest.Create(Self);
Act_Filter.Execute;
// GetData;
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.Act_NewExecute(Sender: TObject);
var
tmp_locateid:string;
begin
If AdoQry_Head.State In [dsEdit,dsInsert] Then AdoQry_Head.Post;
If SelectedCount = 0 then exit;
Inherited;
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.AdoQry_HeadBeforeInsert(DataSet: TDataSet);
begin
inherited;
abort;
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Sfc_Enter_MoUnitMnRequestH:=nil;
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.DBGridEhTitleClick(
Column: TColumnEh);
var
BookMArk:String;
begin
inherited;
If Trim(Column.Title.Caption)<>'标记' Then
Abort;
If AdoQry_Head.RecordCount=0 Then
Abort;
BookMArk:=AdoQry_Head.BookmArk;
If Not Flag Then
begin
AdoQry_Head.First;
While Not AdoQry_Head.Eof Do
begin
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('CheckFlag').AsInteger:=1;
AdoQry_Head.Post;
AdoQry_Head.Next;
end;
end
Else
begin
AdoQry_Head.First;
While Not AdoQry_Head.Eof Do
begin
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('CheckFlag').AsInteger:=0;
AdoQry_Head.Post;
AdoQry_Head.Next;
end;
end;
AdoQry_Head.BookmArk:=BookMArk;
Flag:=Not Flag;
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
Try
ExecuteSql(AdoQry_Tmp,'Drop Table #TmPMoLine',1);
Except
end;
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.AdoQry_HeadBeforeEdit(
DataSet: TDataSet);
begin
inherited;
If Tmp_DeptCode='' then exit;
If SelectedCount=0 Then exit;
If AdoQry_Head.fieldbyname('DeptFlag').AsString <> Tmp_DeptCode then
begin
DispInfo('只能选择同一受单部门的生产订单!',3);
Abort;
end;
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.AdoQry_HeadAfterPost(
DataSet: TDataSet);
var SQlText : String;
begin
inherited;
If AdoQry_Head.fieldbyname('CheckFlag').AsInteger =1 Then
begin
Tmp_DeptCode := AdoQry_Head.fieldbyname('DeptFlag').AsString;
Inc(SelectedCount);
end
Else
if SelectedCount>0 Then
Dec(SelectedCount);
SqlText := 'Update #TmPMoLine '
+' set CheckFlag='+AdoQry_Head.fieldbyname('CheckFlag').AsString
+' Where MoNo='+QuotedStr(AdoQry_Head.fieldbyname('MoNo').AsString)
+' and MoLineNo='+AdoQry_Head.fieldbyname('MoLineNo').AsString;
ExecuteSql(AdoQry_Tmp,SqlText,1);
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.Act_FilterExecute(
Sender: TObject);
var tmpC : String;
begin
TmpC := Condition;
If AdoQry_Head.State In [dsEdit,dsInsert] Then AdoQry_Head.Post;
inherited;
ExecuteSql(AdoQry_tmp,'Update #TmPMoLine set checkflag=0 '
+' where CheckFlag=1 '+IifString(Trim(Tmpc)='','',' and '+TmpC),1);
ExecuteSql(AdoQry_tmp,'select * from #TmPMoLine where CheckFlag=1 '+IifString(Trim(Condition)='','',' and '+Condition),0);
If AdoQry_Tmp.RecordCount=0 then
begin
SelectedCount := 0;
tmp_DeptCode := ''
end
else
begin
SelectedCount := AdoQry_Tmp.RecordCount;
Tmp_DeptCode := AdoQry_Tmp.fieldbyname('DeptFlag').AsString;
end;
GetData;
end;
procedure TFrm_Sfc_Enter_MoUnitMnRequestH.DBGridEhKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
If Key = Vk_Space then
begin
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('CheckFlag').AsInteger := IifInteger(AdoQry_Head.fieldbyname('CheckFlag').AsInteger=0,1,0);
AdoQry_Head.Post;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -