(* 关键工序控制开始处 *)
    (* 检查送下一工序内容时,前面应该做的工序是否都做了 *)   
    (* ------------------------------------------------------------------------------------- *)  

    bmemProcedure := true;

    if memProcedure.Text = '' then
    begin
      Application.Messagebox(Pchar('获取当前工序流程出现错误,将不能正常检查提示未做工序!'),Pchar('提示'),Mb_IconInforMation+MB_OK);
      bmemProcedure := false;
    end;           

    //针织->验布->备布->染色(缸内不过软)->新开幅机开幅轧水->SANTEX 烘干(涂层前测试)->中检->定型过软->
    //反面抓毛->SANTEX过水抛干->剪毛->涂层(反面涂层)->干拉->中检->定型->打包->后检
    strTempProcedure := Trim(memProcedure.Text);

    i := Pos(StrProcedure+'-', strTempProcedure);         //加一个"-"符号是为了分割下一工序之前的工序;否则比如"定型",可能取到"定型过软"
    if i < 1 then bmemProcedure := false;

    //进入处理
    if bmemProcedure then
    begin                        
      strTempProcedure := copy(strTempProcedure,
                               1,
                               i-1);
      strTempProcedure := StringReplace(strTempProcedure,'>', '', [rfReplaceAll, rfIgnoreCase]);     //去掉这个符号
      //strTempProcedure := StringReplace(strTempProcedure,'-', ',', [rfReplaceAll, rfIgnoreCase]);
      //Delete(strTempProcedure, '>', 1);
      //ShowMessage(strTempProcedure);

     
      // 放到 TStringList
      ListProcedure := TStringList.Create;

      ListProcedure.Clear;
      ListProcedure.Delimiter := '-';                                      //以 "-" 为分割符号切割字串
      //ListProcedure.CommaText:= Trim(memProcedure.Text);
      //StringReplace(strTempProcedure,'>','', [rfReplaceAll]);
      //ListProcedure.CommaText := strTempProcedure;
      ListProcedure.DelimitedText := strTempProcedure;
                                  
      //已配置该检查的工序列表
      strSQL := 'SELECT a.Operation_Code_Next, b.Operation FROM pdfncheckProcedureList a ' +
                'INNER JOIN systemdb.dbo.pboperationlist b ON a.Operation_Code_Next=b.Operation_Code ' +
                'WHERE a.Operation_Code=''' + Code + ''' ';

      adoqryQuery.Close;
      adoqryQuery.SQL.Clear;
      adoqryQuery.SQL.Add(strSQL);
      adoqryQuery.Open;

      //要不要提示的标识
      bShowOperationHits := false;
      strOperationList := '';

      //取出工序流程和已配置的工序都存在的工序,并保存在 UndoProcedureList 下
      //二者都有的,表示是等会需要检查的工序
      UndoProcedureList := TStringList.Create;

      while not adoqryQuery.Eof do
      begin
        for i:=0 to ListProcedure.Count - 1 do
          begin
            //ShowMessage(ListProcedure[i]);
            if adoqryQuery.fieldbyname('Operation').AsString = ListProcedure[i] then
                 UndoProcedureList.Add(adoqryQuery.fieldbyname('Operation_Code_Next').AsString + '-'+ ListProcedure[i]);
          end;
        adoqryQuery.Next;
      end;


      //开始检查配置的工序内容
      for i:=0 to UndoProcedureList.Count - 1 do
      begin
        //看跟踪表的工序有没有进行
        strSQL := 'SELECT 1 FROM PdFnJobTrace WHERE Batch_No=''' + Trim(edtBatchNo.Text) + ''' AND Operation_Code=''' +
                  Copy(UndoProcedureList[i], 1, Pos('-', UndoProcedureList[i])-1) + '''';

        qryExistsProcedure.Close;
        qryExistsProcedure.SQL.Clear;
        qryExistsProcedure.SQL.Add(strSQL);
        qryExistsProcedure.Open;

        if qryExistsProcedure.Eof or qryExistsProcedure.IsEmpty then
        begin
          //有多个工序未做时,更改为集中一次性弹出
          bShowOperationHits := true;
          strOperationList := strOperationList + UndoProcedureList[i] + '、';
  //          if Application.Messagebox(Pchar('工序【' + adoqryQuery.fieldbyname('Operation').AsString + '】还没进行,你确定要送下一工序【' + StrProcedure+'】吗?'),
  //            Pchar('提示'),MB_ICONWARNING+MB_YesNo) = IDNo then Exit;
        end;

      end;

      //释放StringList
      ListProcedure.Free;
      UndoProcedureList.Free;

      //提示工序未做
      if bShowOperationHits then
      begin
        //strOperationList := Copy(strOperationList, 1, Length(strOperationList)-1);
        Delete(strOperationList, Length(strOperationList), 1);

//        strOperationList := '以下工序还没进行:' + #13#10 +
//                             strOperationList + #13#10 + #13#10 +
//                            '你确定要继续送下一工序【' + StrProcedure+'】吗?' + #13#10 +
//                            '提示讯息:'+ #13#10 +
//                            '--> 输入 "OK" 进行确认!' + #13#10 +
//                            '--> 输入其它任何信息则取消退出!';


//        strConfirmationOK := InputBox('请注意!!!', strOperationList, '');
//        if not (UpperCase(strConfirmationOK) = 'OK') then Exit;
                                 
        //弹出提示框,新增了一个form,方便控制
        iRetvalMsg := TfrmCheckProcedureMsgBox.Create(Application).ShowModal;

        if iRetvalMsg <> mrOK then Exit;

      end;

    end; 


  (* 关键工序控制结束处 *)
  (* ------------------------------------------------------------------------------------- *)