📄 mrp_enter_freeclosemo.pas
字号:
unit Mrp_Enter_FreeCloseMo;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Check, Menus, Db, ActnList, AdODB, Grids, DBGridEh, StdCtrls,
ExtCtrls, ComCtrls, ToolWin, DBCtrls,dbgrids, ExtPrintReport, jpeg;
Type
TFrm_Mrp_Enter_FreeCloseMo = Class(TFrm_Base_Check)
AdoQry_HeadMONO: TStringField;
AdoQry_HeadMoLineNO: TIntegerField;
AdoQry_HeadItemCode: TStringField;
AdoQry_HeadMOQTY: TFloatField;
AdoQry_HeadMoLineDATE: TDateTimeField;
AdoQry_HeadMoNoFinishQTY: TFloatField;
AdoQry_HeadMoLineSTATUS: TIntegerField;
AdoQry_HeadMOStArtWorkDate: TDateTimeField;
AdoQry_HeadDeptCode: TStringField;
AdoQry_HeadDeptName: TStringField;
AdoQry_HeadItemName: TStringField;
AdoQry_HeadMODATE: TDateTimeField;
AdoQry_HeadUomName: TStringField;
AdoQry_HeadDeptFlag: TStringField;
AdoQry_HeadItemFlag: TStringField;
Label1: TLabel;
DBText1: TDBText;
Label2: TLabel;
DBText2: TDBText;
Label3: TLabel;
DBText3: TDBText;
AdoQry_HeadMoLineCheck: TIntegerField;
AdoQry_HeadCloseRemArk: TStringField;
Label4: TLabel;
DBText4: TDBText;
AdoQry_Headplaflag: TStringField;
AdoQry_HeadPla_EmployeeCode: TStringField;
Label5: TLabel;
DBText5: TDBText;
Label6: TLabel;
DBText6: TDBText;
Label7: TLabel;
DBText7: TDBText;
AdoQry_HeadReferenceNo: TStringField;
procedure FormDestroy(Sender: TObject);
procedure Act_CheckExecute(Sender: TObject);
procedure Act_CancelCheckExecute(Sender: TObject);
procedure DBGridEhDblClick(Sender: TObject);
procedure DBGridEhTitleClick(Column: TColumnEh);
procedure AdoQry_HeadBeforeInsert(DataSet: TDataSet);
procedure Act_LookExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
Flag:Boolean;
{ Private declarations }
public
procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
{ Public declarations }
end;
var
Frm_Mrp_Enter_FreeCloseMo: TFrm_Mrp_Enter_FreeCloseMo;
implementation
uses Sys_Global, Mrp_Enter_CloseMo_MnItemList;
{$R *.DFM}
procedure TFrm_Mrp_Enter_FreeCloseMo.InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
begin
Application.ProcessMessages;
Inherited;
SelectFromSql:='Select MoLine.*,Mo.*,Dept.DeptName,Item.ItemName,Uom.UomName,'
+' Item.ItemCode+'''+' '+'''+Item.ItemName As ItemFlag,'
+' Dept.DeptCode+'''+' '+'''+Dept.DeptName As DeptFlag, '
+' Item.Pla_EmployeeCode,'
+' Item.Pla_EmployeeCode+'' ''+Employee.EmployeeName as plaflag '
+' 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 '
+' left Join Uom on Item.UomCode=Uom.UomCode '
+' left join Employee on Item.Pla_EmployeeCode=Employee.EmployeeCode ';
ConditionUserDefine := ' Mo.MoNo In( Select MoNo From Mo Where MoSpecial=1)'
+' And (MoLineStatus=6 Or MoLineStatus=7) ' ;
Condition:=' (MoLineStatus=6) ';
OrderByFields:='DeptCode,MoDate,MoNo';
GetData;
Flag:=False;
end;
procedure TFrm_Mrp_Enter_FreeCloseMo.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Mrp_Enter_FreeCloseMo:=Nil;
end;
procedure TFrm_Mrp_Enter_FreeCloseMo.Act_CheckExecute(Sender: TObject);
var
SqlText,BookMArk:String;
I:Integer;
begin
inherited;
If AdoQry_Head.RecordCount=0 Then
Abort;
BookMArk:=AdoQry_Head.BookmArk;
If DispInfo('确认关闭选定独立生产订单吗?',2)='y' Then
begin
DbConnect.beginTrans;
I:=1;
Try
AdoQry_Head.First;
While Not AdoQry_Head.Eof Do
If (AdoQry_Head.fieldbyname('MoLineCheck').AsInteger=1) And (AdoQry_Head.fieldbyname('MoLineStatus').AsInteger=6) Then
begin
SqlText:=' Select * From MoLine '
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And MoLineNo='''+IntToStr(AdoQry_Head.fieldbyname('MoLineNo').AsInteger)+''''
+' And MoLineStatus=6 ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.Open;
If AdoQry_Tmp.Eof Then
begin
If DbConnect.InTransaction Then
DbConnect.RollBackTrans;
DispInfo('选定的第'+IntToStr(I)+'条独立生产订单行状态已被其它用户修改,请刷新!',3);
Abort;
end;
saveMoLineHistory(dbconnect,AdoQry_Head.fieldbyname('mono').asstring,AdoQry_Head.fieldbyname('MoLineno').asinteger,userCode,5);
SqlText:=' Update MoLine '
+' set MoLineStatus=7,'
+' CloseRemArk='''+AdoQry_Head.fieldbyname('CloseRemArk').AsString+''''
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And MoLineNo='''+AdoQry_Head.fieldbyname('MoLineNo').AsString+''''
+' And MoLineStatus=6 ';
AdoQry_tmp.Close;
AdoQry_tmp.SQL.Text:=SqlText;
AdoQry_tmp.ExecSQL;
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('MoLineStatus').AsInteger:=7;
AdoQry_Head.fieldbyname('MoLineCheck').AsInteger:=0;
AdoQry_Head.Post;
I:=I+1;
end
Else
begin
I:=I+1;
AdoQry_Head.Next;
end;
DbConnect.CommitTrans;
Except
If DbConnect.InTransaction Then
DbConnect.RollBackTrans;
DispInfo('更改数据时发生错误,数据未更改,请重试!',1);
AdoQry_Head.BookMArk:=BookmArk;
Abort;
end;
end;
AdoQry_Head.BookMArk:=BookmArk;
Flag:=Not Flag;
end;
procedure TFrm_Mrp_Enter_FreeCloseMo.Act_CancelCheckExecute(Sender: TObject);
var
SqlText,BookMArk:String;
I:Integer;
begin
inherited;
If AdoQry_Head.RecordCount=0 Then
Abort;
BookMArk:=AdoQry_Head.BookmArk;
If DispInfo('确认打开选定独立生产订单吗?',2)='y' Then
begin
DbConnect.beginTrans;
I:=1;
Try
AdoQry_Head.First;
While Not AdoQry_Head.Eof Do
If (AdoQry_Head.fieldbyname('MoLineCheck').AsInteger=1) And (AdoQry_Head.fieldbyname('MoLineStatus').AsInteger=7) Then
begin
SqlText:=' Select * From MoLine '
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And MoLineNo='''+IntToStr(AdoQry_Head.fieldbyname('MoLineNo').AsInteger)+''''
+' And MoLineStatus=7 ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.Open;
If AdoQry_Tmp.Eof Then
begin
If DbConnect.InTransaction Then
DbConnect.RollBackTrans;
DispInfo('选定的第'+IntToStr(I)+'条独立生产订单行状态已被其它用户修改,请刷新!',3);
Abort;
end;
saveMoLineHistory(dbconnect,AdoQry_Head.fieldbyname('mono').asstring,AdoQry_Head.fieldbyname('MoLineno').asinteger,userCode,6);
SqlText:=' Update MoLine '
+' set MoLineStatus=6,'
+' CloseRemArk='''+AdoQry_Head.fieldbyname('CloseRemArk').AsString+''''
+' Where MoNo='''+AdoQry_Head.fieldbyname('MoNo').AsString+''''
+' And MoLineNo='''+AdoQry_Head.fieldbyname('MoLineNo').AsString+''''
+' And MoLineStatus=7 ';
AdoQry_tmp.Close;
AdoQry_tmp.SQL.Text:=SqlText;
AdoQry_tmp.ExecSQL;
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('MoLineStatus').AsInteger:=6;
AdoQry_Head.fieldbyname('MoLineCheck').AsInteger:=0;
AdoQry_Head.Post;
I:=I+1;
end
Else
begin
I:=I+1;
AdoQry_Head.Next;
end;
DbConnect.CommitTrans;
Except
If DbConnect.InTransaction Then
DbConnect.RollBackTrans;
DispInfo('更改数据时发生错误,数据未更改,请重试!',1);
AdoQry_Head.BookMArk:=BookmArk;
Abort;
end;
end;
AdoQry_Head.BookMArk:=BookmArk;
Flag:=Not Flag;
end;
procedure TFrm_Mrp_Enter_FreeCloseMo.DBGridEhDblClick(Sender: TObject);
begin
inherited;
If AdoQry_Head.RecordCount=0 Then
Abort;
If AdoQry_Head.fieldbyname('MoLineStatus').AsInteger=6 then
begin
Act_CheckExecute(Act_Check);
Abort;
end;
If AdoQry_Head.fieldbyname('MoLineStatus').AsInteger=7 then
begin
Act_CancelCheckExecute(Act_CancelCheck);
Abort;
end;
end;
procedure TFrm_Mrp_Enter_FreeCloseMo.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('MoLineCheck').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('MoLineCheck').AsInteger:=0;
AdoQry_Head.Post;
AdoQry_Head.Next;
end;
end;
AdoQry_Head.BookmArk:=BookMArk;
Flag:=Not Flag;
end;
procedure TFrm_Mrp_Enter_FreeCloseMo.AdoQry_HeadBeforeInsert(
DataSet: TDataSet);
begin
inherited;
Abort;
end;
procedure TFrm_Mrp_Enter_FreeCloseMo.Act_LookExecute(Sender: TObject);
begin
inherited;
If AdoQry_Head.RecordCount = 0 then exit;
If Frm_Mrp_Enter_CloseMo_MnItemList=Nil Then
begin
Frm_Mrp_Enter_CloseMo_MnItemList:=TFrm_Mrp_Enter_CloseMo_MnItemList.Create(Self);
Frm_Mrp_Enter_CloseMo_MnItemList.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
Frm_Mrp_Enter_CloseMo_MnItemList.Flag := 0;
Frm_Mrp_Enter_CloseMo_MnItemList.mono:=AdoQry_Head.fieldbyname('mono').asstring;
Frm_Mrp_Enter_CloseMo_MnItemList.MoLineno:=AdoQry_Head.fieldbyname('MoLineno').asinteger;
Frm_Mrp_Enter_CloseMo_MnItemList.InitForm(dbconnect,False);
end
Else
Frm_Mrp_Enter_CloseMo_MnItemList.Show;
end;
procedure TFrm_Mrp_Enter_FreeCloseMo.FormCreate(Sender: TObject);
begin
inherited;
dbgrideh.Options:=dbgrideh.Options+[dgediting]-[dgrowselect];
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -