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

📄 mrp_enter_freemoh.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Mrp_Enter_FreeMoH;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Entry_Head, Menus, Db, ActnList, AdODB, Grids, DBGridEh, StdCtrls,
  ExtCtrls, ComCtrls, ToolWin, jpeg, ExtPrintReport;

Type
  TFrm_Mrp_Enter_FreeMoH = Class(TFrm_Base_Entry_Head)
    AdoQry_HeadMONO: TStringField;
    AdoQry_HeadDeptCode: TStringField;
    AdoQry_HeadMODATE: TDateTimeField;
    AdoQry_HeadMORemArk: TStringField;
    AdoQry_HeadDeptName: TStringField;
    AdoQry_HeadSysParamCode: TStringField;
    AdoQry_HeadSysParamValuec: TStringField;
    Label1: TLabel;
    Lbl_DeptFlag: TLabel;
    Label3: TLabel;
    Lbl_MoNo: TLabel;
    Label5: TLabel;
    Lbl_SaleFlag: TLabel;
    AdoQry_HeadStandardFlag: TIntegerField;
    AdoQry_HeadReferenceNo: TStringField;
    procedure FormDestroy(Sender: TObject);
    procedure DataSourceDataChange(Sender: TObject; Field: TField);
    procedure Act_DeleteExecute(Sender: TObject);
  private
    { Private declarations }
  public
    procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
    { Public declarations }
  end;

var
  Frm_Mrp_Enter_FreeMoH: TFrm_Mrp_Enter_FreeMoH;

implementation
uses  Mrp_Enter_FreeMo,Sys_Global;

{$R *.DFM}

procedure TFrm_Mrp_Enter_FreeMoH.InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
begin
  Application.ProcessMessages;
  inherited;
  lbl_Condition.Caption:=iifstring(ReadOnly,'订单行未全关闭','订单行未全下达 ');
  If (ReadOnly) Then
  begin
    Act_New.Enabled:=False;
    Act_New.Visible:=False;
    Act_Modify.Enabled:=False;
    Act_Modify.Visible:=False;
    Pnl_Title.Caption:='独立生产订单查询';
    Frm_Mrp_Enter_FreeMoH.Caption:='独立生产订单查询';
  end
  Else
  begin
    Pnl_Title.Caption:='独立生产订单准备';
    Frm_Mrp_Enter_FreeMoH.Caption:='独立生产订单准备';
  end;
  SelectFromSql:='Select Mo.*,Dept.DeptName,SysParam.SysParamCode,SysParam.SysParamValuec'
               +' From Mo,Dept,SysParam ';
  ConditionUserDefine:='(Mo.DeptCode=Dept.DeptCode'
                     +' And SysParam.SysParamCode=*Mo.SaleType '
                     +' And MOSpecial=1) ';
  Condition:=' Exists (Select mono From MoLine where Mo.MoNo=MoLine.MoNo'
            +' And MoLine.MoLineStatus'+iifstring(ReadOnly,'<7','=5')+')';
  OrderByFields:='DeptCode,MoDate,MoNo';
  GetData;
  Frm_Entry_Body:=TFrm_Mrp_Enter_FreeMo.Create(Application);
end;


procedure TFrm_Mrp_Enter_FreeMoH.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Mrp_Enter_FreeMoH:=Nil;
end;

procedure TFrm_Mrp_Enter_FreeMoH.DataSourceDataChange(Sender: TObject;
  Field: TField);
begin
  inherited;
  Lbl_DeptFlag.Caption:=AdoQry_Head.fieldbyname('DeptCode').AsString+' '+AdoQry_Head.fieldbyname('DeptName').AsString;
  Lbl_MoNo.Caption:=AdoQry_Head.fieldbyname('MoNo').AsString;
  Lbl_SaleFlag.Caption:=AdoQry_Head.fieldbyname('SysParamCode').AsString +' '+AdoQry_Head.fieldbyname('SysParamValuec').AsString;
end;

procedure TFrm_Mrp_Enter_FreeMoH.Act_DeleteExecute(Sender: TObject);
var sqltext:string;
    AdoQry:TAdoQuery;
begin
  inherited;
if AdoQry_Head.RecordCount=0 then exit;
if DispInfo('确认删除此订单吗?',2)<>'y' then exit;
AdoQry:=TAdoQuery.Create(self);
AdoQry.Connection:=dbconnect;
 sqltext:='select * from MoLine '
         +' where mono='+quotedstr(AdoQry_Head.fieldbyname('mono').asstring)
         +'  and  MoLinestatus<>5 ';
 Executesql(AdoQry_tmp,sqltext,0);
 if AdoQry_tmp.RecordCount>0 then       
  begin
    DispInfo('该生产订单有订单行不是准备状态,不可删除!',1);
    abort;
  end;
 try
  dbconnect.beginTrans;
  Executesql(AdoQry_tmp,'select * from MoLine where mono='+quotedstr(AdoQry_Head.fieldbyname('mono').asstring),0);
  AdoQry_tmp.First;
   while not AdoQry_tmp.Eof do
    begin
      saveMoLineHistory(dbconnect,AdoQry_tmp.fieldbyname('mono').asstring,AdoQry_tmp.fieldbyname('MoLineno').asinteger,userCode,2);
      AdoQry_tmp.Next;
    end;
  sqltext:='delete from mnItemList where mono='+quotedstr(AdoQry_Head.fieldbyname('mono').asstring);
  Executesql(AdoQry_tmp,sqltext,1);  
  sqltext:='delete from MoLine where mono='+quotedstr(AdoQry_Head.fieldbyname('mono').asstring);
  Executesql(AdoQry_tmp,sqltext,1);
  savemohistory(dbconnect,AdoQry_Head.fieldbyname('mono').asstring,userCode,2);
  sqltext:='delete from mo where mono='+quotedstr(AdoQry_Head.fieldbyname('mono').asstring);
  Executesql(AdoQry_tmp,sqltext,1);
  AdoQry_Head.Delete;
  AdoQry.Free;
  dbconnect.CommitTrans;
 except
  if AdoQry<>nil then
   AdoQry.Free;
  if dbconnect.InTransaction then
    dbconnect.RollBackTrans;
  DispInfo('删除失败,订单未删除!',3);
  abort;
 end;
end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -