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

📄 mrp_enter_freeclosemo.pas

📁 一个MRPII系统源代码版本
💻 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 + -