unit U_TatMachInsp;

interface

uses
  Windows, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxGridLevel,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
  cxControls, cxGridCustomView, cxGrid, RM_Common, RM_Class, RM_GridReport,
  RM_System, RM_Dataset, ADODB, DBClient, cxGridCustomPopupMenu, cxGridPopupMenu,
  ExtCtrls, ComCtrls, ToolWin, cxTextEdit, Buttons, cxSplitter, cxCheckBox,
  MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, Menus,
  U_BaseList, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
  dxBarBuiltInMenu, cxContainer, cxImage, cxDBEdit, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, ShellAPI, IdFTP,
  FireDAC.Stan.StorageXML, cxPC, XMLDoc, XMLIntf, DateUtils, cxMaskEdit,
  cxButtonEdit, BtnEdit, dxScrollbarAnnotations;

type
  TfrmTatMachInsp = class(TfrmBaseList)
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    GPM_1: TcxGridPopupMenu;
    ADOQueryMain: TADOQuery;
    ADOCmd: TADOQuery;
    RMDB_1: TRMDBDataSet;
    DS_2: TDataSource;
    CDS_2: TClientDataSet;
    ADOQueryPrint: TADOQuery;
    GPM_2: TcxGridPopupMenu;
    ADOQueryMainDSC: TADOQuery;
    RM1: TRMGridReport;
    ADOTmp: TADOQuery;
    ScrollBox1: TScrollBox;
    SpeedButton13: TSpeedButton;
    SpeedButton14: TSpeedButton;
    SpeedButton15: TSpeedButton;
    SpeedButton16: TSpeedButton;
    SpeedButton17: TSpeedButton;
    SpeedButton18: TSpeedButton;
    SpeedButton21: TSpeedButton;
    SpeedButton22: TSpeedButton;
    SpeedButton23: TSpeedButton;
    SpeedButton24: TSpeedButton;
    SpeedButton25: TSpeedButton;
    SpeedButton26: TSpeedButton;
    SpeedButton29: TSpeedButton;
    SpeedButton30: TSpeedButton;
    SpeedButton31: TSpeedButton;
    SpeedButton32: TSpeedButton;
    SpeedButton33: TSpeedButton;
    SpeedButton34: TSpeedButton;
    SpeedButton37: TSpeedButton;
    SpeedButton38: TSpeedButton;
    SpeedButton39: TSpeedButton;
    SpeedButton40: TSpeedButton;
    SpeedButton41: TSpeedButton;
    SpeedButton42: TSpeedButton;
    SpeedButton45: TSpeedButton;
    SpeedButton46: TSpeedButton;
    SpeedButton47: TSpeedButton;
    SpeedButton48: TSpeedButton;
    SpeedButton50: TSpeedButton;
    SpeedButton51: TSpeedButton;
    SpeedButton54: TSpeedButton;
    SpeedButton55: TSpeedButton;
    SpeedButton56: TSpeedButton;
    SpeedButton57: TSpeedButton;
    SpeedButton58: TSpeedButton;
    SpeedButton59: TSpeedButton;
    SpeedButton62: TSpeedButton;
    SpeedButton63: TSpeedButton;
    SpeedButton64: TSpeedButton;
    SpeedButton65: TSpeedButton;
    SpeedButton66: TSpeedButton;
    SpeedButton67: TSpeedButton;
    SpeedButton70: TSpeedButton;
    SpeedButton71: TSpeedButton;
    SpeedButton72: TSpeedButton;
    SpeedButton73: TSpeedButton;
    SpeedButton74: TSpeedButton;
    SpeedButton75: TSpeedButton;
    SpeedButton19: TSpeedButton;
    SpeedButton20: TSpeedButton;
    SpeedButton27: TSpeedButton;
    SpeedButton28: TSpeedButton;
    SpeedButton35: TSpeedButton;
    SpeedButton36: TSpeedButton;
    SpeedButton43: TSpeedButton;
    SpeedButton44: TSpeedButton;
    SpeedButton52: TSpeedButton;
    SpeedButton53: TSpeedButton;
    SpeedButton60: TSpeedButton;
    SpeedButton61: TSpeedButton;
    SpeedButton68: TSpeedButton;
    SpeedButton69: TSpeedButton;
    SpeedButton76: TSpeedButton;
    SpeedButton77: TSpeedButton;
    SpeedButton78: TSpeedButton;
    SpeedButton79: TSpeedButton;
    SpeedButton80: TSpeedButton;
    SpeedButton81: TSpeedButton;
    SpeedButton82: TSpeedButton;
    SpeedButton83: TSpeedButton;
    CDS_3: TClientDataSet;
    DS_3: TDataSource;
    ADOQueryImage: TADOQuery;
    DataSource2: TDataSource;
    IdFTP1: TIdFTP;
    Panel4: TPanel;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    v3Column1: TcxGridDBColumn;
    v3Column4: TcxGridDBColumn;
    v3Column5: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    Tv3Column1: TcxGridDBColumn;
    MovePanel1: TMovePanel;
    Label17: TLabel;
    Label18: TLabel;
    lblLenUnit1: TLabel;
    CIFBeg: TEdit;
    Button1: TButton;
    Button4: TButton;
    CIFEnd: TEdit;
    CIFQty: TEdit;
    RadioGroup1: TRadioGroup;
    Button2: TButton;
    Tv3Column3: TcxGridDBColumn;
    Tv3Column4: TcxGridDBColumn;
    cxStyle4: TcxStyle;
    cxPageControl1: TcxPageControl;
    cxTabSheet1: TcxTabSheet;
    查看: TcxTabSheet;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    tv2CDType: TcxGridDBColumn;
    tv2CDWZ: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    Tv2CDQty: TcxGridDBColumn;
    Tv2CDReason: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    v2Column3: TcxGridDBColumn;
    v2Column4: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    cxGrid1: TcxGrid;
    TV1: TcxGridDBTableView;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridLevel3: TcxGridLevel;
    DS_1: TDataSource;
    CDS_1: TClientDataSet;
    lblCIFName: TLabel;
    Label2: TLabel;
    Label8: TLabel;
    CIFNumber: TEdit;
    Panel9: TPanel;
    Panel2: TPanel;
    lblLenUnit: TLabel;
    Label5: TLabel;
    InputLen: TEdit;
    BTPrint: TButton;
    Button6: TButton;
    Button8: TButton;
    ToolBar2: TToolBar;
    ToolButton3: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    GPM_3: TcxGridPopupMenu;
    Panel6: TPanel;
    Label35: TLabel;
    Label16: TLabel;
    Label26: TLabel;
    edtChen: TEdit;
    edtMaBiao: TEdit;
    ComboBox1: TComboBox;
    Edit6: TEdit;
    Label6: TLabel;
    Panel10: TPanel;
    Label14: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label1: TLabel;
    PCId: TEdit;
    Loom: TEdit;
    Repairer: TEdit;
    CodeName: TEdit;
    edtScan: TEdit;
    Button3: TButton;
    ToolButton4: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    Label7: TLabel;
    edtMBDW: TEdit;
    Label9: TLabel;
    MinLen: TEdit;
    Label15: TLabel;
    MinWeight: TEdit;
    MaxLen: TEdit;
    MaxWeight: TEdit;
    Label19: TLabel;
    MPlace: TEdit;
    Label20: TLabel;
    Label21: TLabel;
    YPlace: TEdit;
    Label27: TLabel;
    KgPlace: TEdit;
    Label28: TLabel;
    Label33: TLabel;
    Label13: TLabel;
    BatchNo: TEdit;
    Label22: TLabel;
    Grade: TComboBox;
    Label10: TLabel;
    C_ColorDepth: TComboBox;
    Label12: TLabel;
    Label34: TLabel;
    Label49: TLabel;
    WorkShift: TComboBox;
    SCPerson: TcxButtonEdit;
    JBSCPerson: TcxButtonEdit;
    Label36: TLabel;
    OutPutQty1: TEdit;
    Label38: TLabel;
    OutPutQty2: TEdit;
    Label4: TLabel;
    Label11: TLabel;
    InputWeight: TEdit;
    Tare: TEdit;
    Label3: TLabel;
    Coefficient: TEdit;
    Label29: TLabel;
    Label30: TLabel;
    SPEC: TEdit;
    MF: TEdit;
    Label32: TLabel;
    KZ: TEdit;
    Button5: TButton;
    Label31: TLabel;
    code: TEdit;
    Label50: TLabel;
    Label37: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    JBSCPerson3: TcxButtonEdit;
    JBSCPerson4: TcxButtonEdit;
    OutPutQty3: TEdit;
    OutPutQty4: TEdit;
    Label42: TLabel;
    Label43: TLabel;
    JBSCPerson5: TcxButtonEdit;
    OutPutQty5: TEdit;
    Panel3: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    SpeedButton11: TSpeedButton;
    SpeedButton12: TSpeedButton;
    Button7: TButton;
    Panel1: TPanel;
    Label44: TLabel;
    Label45: TLabel;
    SpeedButton113: TSpeedButton;
    Button9: TButton;
    carno: TEdit;
    Label46: TLabel;
    Label47: TLabel;
    JBSCPerson6: TcxButtonEdit;
    OutPutQty6: TEdit;
    Label48: TLabel;
    Label51: TLabel;
    JBSCPerson7: TcxButtonEdit;
    OutPutQty7: TEdit;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure BTPrintClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton12Click(Sender: TObject);
    procedure SpeedButton13Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure edtScanKeyPress(Sender: TObject; var Key: Char);
    procedure CIFBegClick(Sender: TObject);
    procedure CIFEndChange(Sender: TObject);
    procedure Edit6Click(Sender: TObject);
    procedure MJstr3KeyPress(Sender: TObject; var Key: Char);
    procedure Button2Click(Sender: TObject);
    procedure edtScanClick(Sender: TObject);
    procedure NetWeightKeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure edtChenClick(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure edtYJClick(Sender: TObject);
    procedure Pic_Image1DblClick(Sender: TObject);
    procedure Tv3CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    procedure lblLenUnitClick(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure MinLenExit(Sender: TObject);
    procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure JBSCPersonPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure Button5Click(Sender: TObject);
    procedure carnoBtnClick(Sender: TObject);
    procedure OutPutQty1Change(Sender: TObject);
    procedure SCPersonClick(Sender: TObject);
    procedure JBSCPersonClick(Sender: TObject);
    procedure carnoClick(Sender: TObject);
    procedure JBSCPerson3Click(Sender: TObject);
    procedure JBSCPerson4Click(Sender: TObject);
    procedure JBSCPerson5Click(Sender: TObject);
    procedure OutPutQty1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure OutPutQty2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure OutPutQty3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure OutPutQty4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure OutPutQty5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Button7Click(Sender: TObject);
    procedure SpeedButton113Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure JBSCPerson6Click(Sender: TObject);
    procedure JBSCPerson7Click(Sender: TObject);
    procedure OutPutQty6MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure OutPutQty7MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure InputWeightChange(Sender: TObject);
  private
    { Private declarations }
    FCIID, FOperationStatus, FCIFName, FWorkshop: string;
    FOrderNo, FMainId, FSubId, FPCId, FConNo, FConMId, FConSId: string;
    FLoom, FBatchNO, FLenUnit, FC_Code, FC_Name, FC_Spec, FC_Width, FC_GramWeight: string;
    FC_Color, FC_ColorNo, FC_StyleNo, FC_Pattern, FC_CustPattern, FC_ColorDepth: string;
    FFtyPCId, FGangNo: string;
    FPieceNo: Integer;
    IsCommopen: boolean;
    procedure SetINIFile();  //设置配置文件
    procedure GetINIFile(); //设置长度单位
    procedure SetUnit(MUnit: string); //设置长度单位
    procedure SetDdetails(); //刷新详细信息
    procedure InitCDPanel(); //刷新疵点选项
    procedure InitCDGrid(MCIID: string); //刷新疵点登记信息
    procedure InitCDGridCX(MCIID: string); //刷新疵点查询信息
    procedure InitJYGrid(); //刷新检验信息
    function CheckData(CKType: string): Boolean; //校验数据
    function SaveData(): Boolean; //保存数据
    procedure InitLCK(MPCId: string);  //扫描流程卡
    procedure InitJTM(MCIID: string);  //扫描卷条码
    procedure ClearGlobal(); //清除全局ID
    procedure PrtData(MCIID: string);  //打印卷标签
    procedure QuantityConversion();  //数量换算
    procedure InitImage(YFTPName: string);    //图片
    procedure InitImageHX(HXSID: string);
    procedure LookImage(FileName: string);
    procedure OpenCom(DllName: string);     //打开串口
    procedure CloseCom(DllName: string);    //关闭串口
    procedure On1201(var Message: Tmessage); message 1201;   //电子称
    procedure On1301(var Message: Tmessage); message 1301;   //码表

  public
    fmanage: string;
    fFlileFlag: string;
    { Public declarations }
  end;

var
  frmTatMachInsp: TfrmTatMachInsp;
  newh, newh1: hwnd;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_iniParam, U_EmployeeSel, U_TatClothInfoSel,
  U_SCPersonColor;

{$R *.dfm}

procedure TfrmTatMachInsp.SetINIFile();
begin
  if edtChen.Text = '√' then
    IsDZCDYDll := '1'
  else
    IsDZCDYDll := '0';

  if edtMaBiao.Text = '√' then
    IsMBDYDll := '1'
  else
    IsMBDYDll := '0';

  if edtMBDW.Text = '√' then
    IsMBDYDllUnit := '1'
  else
    IsMBDYDllUnit := '0';

  LabQty := ComboBox1.Text;
  FMinLen := MinLen.Text;
  FMaxLen := MaxLen.Text;
  FMinWeight := MinWeight.Text;
  FMaxWeight := MaxWeight.Text;

  FMPlace := MPlace.Text;
  FYPlace := YPlace.Text;
  FKgPlace := KgPlace.Text;

  WriteINIFile();

end;

procedure TfrmTatMachInsp.GetINIFile();
begin
  if IsDZCDYDll = '1' then
    edtChen.Text := '√'
  else
    edtChen.Text := '';

  if IsMBDYDll = '1' then
    edtMaBiao.Text := '√'
  else
    edtMaBiao.Text := '';

  if IsMBDYDllUnit = '1' then
    edtMBDW.Text := '√'
  else
    edtMBDW.Text := '';

  ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(trim(LabQty));

  MinLen.Text := FMinLen;
  MaxLen.Text := FMaxLen;
  MinWeight.Text := FMinWeight;
  MaxWeight.Text := FMaxWeight;

  MPlace.Text := FMPlace;
  YPlace.Text := FYPlace;
  KgPlace.Text := FKgPlace;
end;

procedure TfrmTatMachInsp.SetDdetails();
begin
//  AOrdDefNote1.Text := '';
//  AOrdDefNote1.Text := AOrdDefNote1.Text + '卡号:' + FPCId + #13;
//  AOrdDefNote1.Text := AOrdDefNote1.Text + '品名:' + FC_Name + #13;
//  AOrdDefNote1.Text := AOrdDefNote1.Text + '颜色:' + FC_Color + #13;
//  AOrdDefNote1.Text := AOrdDefNote1.Text + '色号:' + FC_ColorNo + #13;

end;

procedure TfrmTatMachInsp.SetUnit(MUnit: string);
begin
  lblLenUnit.Caption := MUnit;
  lblLenUnit1.Caption := MUnit;
end;

procedure TfrmTatMachInsp.InitImage(YFTPName: string);
begin
//  with ADOQueryImage do
//  begin
//    close;
//    sql.Clear;
//    sql.Add('select * from TC_File A');
//    sql.Add('where isnull(WBID,'''')<>'''' and WBID=' + quotedstr(YFTPName));
////    showmessage(sql.text);
//    open;
//  end;
end;

procedure TfrmTatMachInsp.InitImageHX(HXSID: string);
begin
//  with Qry_ImgHX do
//  begin
//    close;
//    sql.Clear;
//    sql.Add('select * from TC_File A');
//    sql.Add('where isnull(WBID,'''')<>'''' and WBID=' + quotedstr(HXSID));
////    ShowMessage(SQL.Text);
//    open;
//  end;
end;

procedure TfrmTatMachInsp.QuantityConversion();
begin
  if StrToFloatDef(Coefficient.Text, 0) <> 0 then
  begin
//    if lblRuleConversion.Caption = '米转公斤' then
//    begin
//      InputWeight.Text := floattostr(StrToFloatdef(trim(InputLen.Text), 0) * StrToFloatdef(trim(Coefficient.Text), 0));
//    end
//    else
//    begin
    InputLen.Text := floattostr(StrToFloatdef(trim(InputWeight.Text), 0) * StrToFloatdef(trim(Coefficient.Text), 0));
//    end;
  end;

end;

function TfrmTatMachInsp.CheckData(CKType: string): Boolean;
var
  mvalue: Double;
begin
  try
//    if Trim(FPCId) = '' then
//      raise Exception.Create('请扫描流程卡！');

    if Trim(CKType) = '提交' then
    begin
      if trim(CodeName.text) = '' then
        raise Exception.Create('品名不能为空!');

      if trim(lblLenUnit.Caption) = '' then
        raise Exception.Create('长度单位不能为空!');

      if Trim(InputWeight.Text) <> '' then
      begin
        if TryStrToFloat(InputWeight.Text, mvalue) = False then
          raise Exception.Create('重量录入错误!');
        if strtofloatdef(trim(InputWeight.Text), 0) < Strtofloatdef(MinWeight.Text, 0) then
          raise Exception.Create('重量不能小于' + MinWeight.Text + '!');
        if strtofloatdef(trim(InputWeight.Text), 0) > Strtofloatdef(MaxWeight.Text, 0) then
          raise Exception.Create('重量不能大于' + MaxWeight.Text + '!');
      end;

      if Trim(InputLen.Text) <> '' then
      begin
        if TryStrToFloat(InputLen.Text, mvalue) = False then
          raise Exception.Create('长度录入错误!');
        if strtofloatdef(trim(InputLen.Text), 0) < Strtofloatdef(MinLen.Text, 0) then
          raise Exception.Create('长度不能小于' + MinLen.Text + '米!');
        if strtofloatdef(trim(InputLen.Text), 0) > Strtofloatdef(MaxLen.Text, 0) then
          raise Exception.Create('长度不能大于' + MaxLen.Text + '米!');
      end;

      if (strtofloatdef(trim(InputLen.Text), 0) = 0) and (strtofloatdef(trim(InputWeight.Text), 0) = 0) then
        raise Exception.Create('长度和重量不能都为0!!');
    end;
    Result := True;
  except
    Result := false;
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
  end;
end;

procedure TfrmTatMachInsp.ClearGlobal();
begin
  FOrderNo := '';
  FConNo := '';
  FConMId := '';
  FConSId := '';
  FMainId := '';
  FSubId := '';
  FPCId := '';
  FC_CustPattern := '';
  FC_ColorDepth := '';
  FFtyPCId := '';
  FGangNo := '';
  FC_Code := '';
  FC_Name := '';
  FBatchNO := '';
  FC_Spec := '';
  FC_Color := '';
  FC_ColorNo := '';
  FC_StyleNo := '';
  FC_Width := '';
  FC_GramWeight := '';
  FC_Pattern := '';
  FCIID := '';
  FWorkshop := '';
  InputLen.Text := '';
  Coefficient.Text := '';
//  AOrdDefNote1.Text := '';
  Tare.Text := '';
  InputWeight.Text := '';
  FLenUnit := '';
  FLoom := '';
end;

procedure TfrmTatMachInsp.LookImage(FileName: string);
var
  sFieldName: string;
begin
  sFieldName := leftbstr(ExtractFilePath(Application.ExeName), 1) + ':\图片查看';
  if not DirectoryExists(pchar(sFieldName)) then
    CreateDirectory(pchar(sFieldName), nil);
  sFieldName := sFieldName + '\' + trim(FileName);
  try
    IdFTP1.Host := ReadINIFileStr('SYSTEMSET.INI', 'SERVER', '服务器地址', '127.0.0.1');
    IdFTP1.Username := 'three';
    IdFTP1.Password := '641010';
    IdFTP1.Connect();
  except
    ;
  end;
  if IdFTP1.Connected then
  begin
    try
      IdFTP1.Get(fFlileFlag + '\' + Trim(FileName), sFieldName, true, false);
    except
      Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING);
      IdFTP1.Quit;
      Exit;
    end;
  end
  else
  begin
    Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING);
    IdFTP1.Quit;
    Exit;
  end;
  if IdFTP1.Connected then
    IdFTP1.Quit;
  ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL);
end;

procedure TfrmTatMachInsp.Pic_Image1DblClick(Sender: TObject);
begin
  if TcxDBImage(Sender).Picture.Height = 0 then
    exit;
  LookImage(ADOQueryImage.fieldbyname(TcxDBImage(Sender).Hint).asstring);
end;

procedure TfrmTatMachInsp.InitLCK(MPCId: string);
begin
  with ADOTmp do
  begin
    Close;
    sql.Clear;
//    sql.Add('EXEC P_Tat_Insp_Get_PlanCard @PCID=''' + Trim(MPCId) + '''');
    sql.Add('EXEC P_Tat_Insp_Get_ORDERNO @MAINID=''' + Trim(MPCId) + '''');
    Open;
  end;

  if ADOTmp.IsEmpty = False then
  begin
//    if Trim(ADOTmp.fieldbyname('Status').AsString) <> '9' then
//    begin
//      application.MessageBox('流程卡不在已审核状态！', '提示信息', MB_ICONERROR);
//      ClearGlobal();
//    end
//    else
    begin
        //    InitImage(Trim(ADOTmp.fieldbyname('YFTPName').AsString));
//    InitImageHX(Trim(ADOTmp.fieldbyname('HXSID').AsString));
//      FLenUnit := Trim(ADOTmp.fieldbyname('LenUnit').AsString);
//      SetUnit(FLenUnit);
      FConNo := Trim(ADOTmp.fieldbyname('ConNo').AsString);
      FOrderNo := Trim(ADOTmp.fieldbyname('OrderNo').AsString);
      FMainId := Trim(ADOTmp.fieldbyname('MainId').AsString);
      FSubId := Trim(ADOTmp.fieldbyname('SubId').AsString);
//      FPCId := Trim(ADOTmp.fieldbyname('PCId').AsString);

//      FWorkshop := Trim(ADOTmp.fieldbyname('Workshop').AsString);
      FC_Code := Trim(ADOTmp.fieldbyname('C_Code').AsString);
      FC_Name := Trim(ADOTmp.fieldbyname('C_Name').AsString);
      FC_Spec := Trim(ADOTmp.fieldbyname('C_Spec').AsString);
      FC_Color := Trim(ADOTmp.fieldbyname('C_Color').AsString);
      FC_ColorNo := Trim(ADOTmp.fieldbyname('C_ColorNo').AsString);
      FC_Width := Trim(ADOTmp.fieldbyname('C_Width').AsString);
      FC_GramWeight := Trim(ADOTmp.fieldbyname('C_GramWeight').AsString);
      FC_Pattern := Trim(ADOTmp.fieldbyname('C_Pattern').AsString);
//      FLoom := Trim(ADOTmp.fieldbyname('Loom').AsString);
//      FBatchNO := Trim(ADOTmp.fieldbyname('BatchNO').AsString);

//    PieceNo.Text := Trim(ADOTmp.fieldbyname('maxRoll').AsString);
      Coefficient.Text := '0';

      CodeName.Text := FC_Name;
//      BatchNO.Text := FBatchNO;
      spec.Text := FC_Spec;
      Code.Text := FC_Code;
      mf.Text := FC_Width;
      KZ.Text := FC_GramWeight;
      Label14.Caption := Trim(ADOTmp.fieldbyname('orderno').AsString);
      Loom.Text := FLoom;

//      Repairer.Text := Trim(ADOTmp.fieldbyname('Repairer').AsString);
      SetDdetails();
      InputLen.SetFocus;
      CIFBegClick(InputLen);
    end;

  end
  else
  begin
    application.MessageBox('计划单不存在！', '提示信息', MB_ICONERROR);
    ClearGlobal();
  end;

  InitJYGrid();
  InitCDGrid(FCIID);
  edtScan.Text := '';

end;

procedure TfrmTatMachInsp.InputWeightChange(Sender: TObject);
begin
  QuantityConversion();
end;

procedure TfrmTatMachInsp.JBSCPerson3Click(Sender: TObject);
begin
  inherited;
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        JBSCPerson3.Text := frmEmployeeSel.FRName;
        JBSCPerson3.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.JBSCPerson4Click(Sender: TObject);
begin
  inherited;
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        JBSCPerson4.Text := frmEmployeeSel.FRName;
        JBSCPerson4.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.JBSCPerson5Click(Sender: TObject);
begin
  inherited;
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        JBSCPerson5.Text := frmEmployeeSel.FRName;
        JBSCPerson5.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.JBSCPerson6Click(Sender: TObject);
begin
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        JBSCPerson6.Text := frmEmployeeSel.FRName;
        JBSCPerson6.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.JBSCPerson7Click(Sender: TObject);
begin
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        JBSCPerson7.Text := frmEmployeeSel.FRName;
        JBSCPerson7.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.JBSCPersonClick(Sender: TObject);
begin
  inherited;
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        JBSCPerson.Text := frmEmployeeSel.FRName;
        JBSCPerson.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.JBSCPersonPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        JBSCPerson.Text := frmEmployeeSel.FRName;
        JBSCPerson.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.InitJTM(MCIID: string);
begin
  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Tat_Cloth_IO where StkId=''' + Trim(MCIID) + ''' and IOFlag=''入库''');
    Open;
  end;
  if not ADOTmp.IsEmpty then
  begin
    Application.MessageBox('已产生入库数据不能操作!', '提示', 0);
    Exit;
  end;
  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Tat_Cloth_IO where StkId=''' + Trim(MCIID) + ''' and IOFlag=''出库''');
    Open;
  end;
  if not ADOTmp.IsEmpty then
  begin
    Application.MessageBox('已产生出库数据不能操作!', '提示', 0);
    Exit;
  end;
  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Tat_Cloth_Inspect where CIID=''' + Trim(MCIID) + '''');
    Open;
  end;
  if not ADOTmp.IsEmpty then
  begin
    FOperationStatus := '卷条码';
    FCIID := MCIID;
    InitCDGrid(MCIID);
  end;

end;

procedure TfrmTatMachInsp.CloseCom(DllName: string);
type
  TMyFunc = function(sCommName: PAnsiChar): HWND; stdcall;
var
  Tf1: TMyFunc;
  Tp1: TFarProc;
  Th1: Thandle;
begin
  Th1 := LoadLibrary(Pchar(trim(DllName)));
  if Th1 > 0 then
  begin
    try
      Tp1 := GetProcAddress(Th1, 'CommClose');
      if Tp1 <> nil then
      begin
        Tf1 := TMyFunc(Tp1);
        newh1 := Tf1('Comm1');
      end
      else
      begin

      end;
    finally
    // FreeLibrary(Th1);
    end;
  end
  else
  begin
    application.MessageBox(Pchar('找不到 ' + trim(DllName) + ' 文件！'), '提示');
  end;
end;

procedure TfrmTatMachInsp.ComboBox1Change(Sender: TObject);
begin
  SetINIFile();
end;

procedure TfrmTatMachInsp.OpenCom(DllName: string);
type
  TMyFunc = function(fhandle: hwnd; sCommName: PAnsiChar; IntTime: integer; IsMessage: integer): HWND; stdcall;
var
  Tf: TMyFunc;
  Tp: TFarProc;
  Th: Thandle;
begin
 //  closeCom(FComFile);
  Th := LoadLibrary(Pchar(trim(DllName)));
  if Th > 0 then
  begin
    try
      Tp := GetProcAddress(Th, 'CommOpen');
      if Tp <> nil then
      begin
        Tf := TMyFunc(Tp);
        newh := Tf(self.Handle, 'Comm1', 500, 1);
        if newh < 1 then
        begin
          application.MessageBox(Pchar('打开串口失败！'), '提示');
        end
        else
          IsCommOpen := true;
      end
      else
      begin
        IsCommOpen := false;
      end;
    finally
    // FreeLibrary(Th);
    end;
  end
  else
  begin
    IsCommOpen := false;
    application.MessageBox(Pchar('找不到 ' + trim(DllName) + ' 文件！'), '提示');
  end;
end;

procedure TfrmTatMachInsp.OutPutQty1Change(Sender: TObject);
begin
  inherited;
  if JBSCPerson.Text <> '' then
  begin
    OutPutQty2.Text := floattostr(strtofloatdef(InputLen.Text, 0) - strtofloatdef(OutPutQty1.Text, 0));
  end;

end;

procedure TfrmTatMachInsp.OutPutQty1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  if Trim(SCPerson.Text) = '' then
  begin
    raise Exception.Create('先输入挡车工1!');
  end;
end;

procedure TfrmTatMachInsp.OutPutQty2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  if Trim(JBSCPerson.Text) = '' then
  begin
    raise Exception.Create('先输入挡车工2!');
  end;
end;

procedure TfrmTatMachInsp.OutPutQty3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  if Trim(JBSCPerson3.Text) = '' then
  begin
    raise Exception.Create('先输入挡车工3!');
  end;
end;

procedure TfrmTatMachInsp.OutPutQty4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  if Trim(JBSCPerson4.Text) = '' then
  begin
    raise Exception.Create('先输入挡车工4!');
  end;
end;

procedure TfrmTatMachInsp.OutPutQty5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  if Trim(JBSCPerson5.Text) = '' then
  begin
    raise Exception.Create('先输入挡车工5!');
  end;
end;

procedure TfrmTatMachInsp.OutPutQty6MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Trim(JBSCPerson6.Text) = '' then
  begin
    raise Exception.Create('先输入挡车工6!');
  end;
end;

procedure TfrmTatMachInsp.OutPutQty7MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Trim(JBSCPerson7.Text) = '' then
  begin
    raise Exception.Create('先输入挡车工7!');
  end;
end;

procedure TfrmTatMachInsp.FormDestroy(Sender: TObject);
begin
  inherited;
  frmTatMachInsp := nil;
end;

procedure TfrmTatMachInsp.On1301(var Message: Tmessage);
var
  i1, i2: integer;
  unitname: string;
  fdata: double;
begin
  i1 := Message.WParam;
  i2 := Message.LParam;

  if (trim(edtMaBiao.Text) = '√') then
  begin
    InputLen.Text := format('%.1f', [i1 / 100000]);
  end;
  if (trim(edtMBDW.Text) = '√') then
  begin
    if i2 = 0 then
    begin
      SetUnit('M');
    end
    else
    begin
      SetUnit('Y');
    end;
  end;
end;

procedure TfrmTatMachInsp.On1201(var Message: Tmessage);
var
  i1, i2: integer;
  unitname: string;
  fdata: double;
begin
  i1 := Message.WParam;
  i2 := Message.LParam;

  if trim(edtChen.Text) = '√' then
  begin
    InputWeight.Text := format('%.2f', [i1 / 100000]);
  end;

end;

procedure TfrmTatMachInsp.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  if isCommopen then
  begin
    closeCom(DZCDYDllName);
    closeCom(MBDYDllName);
  end;
  Action := caFree;
end;

procedure TfrmTatMachInsp.InitCDGrid(MCIID: string);
begin
  cxPageControl1.ActivePageIndex := 0;
  with ADOTmp do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from Tat_Cloth_Inspect_Flaw where CIID=' + quotedstr(Trim(MCIID)));
    Open;
  end;
  SCreateCDS(ADOTmp, CDS_2);
  SInitCDSData(ADOTmp, CDS_2);
end;

procedure TfrmTatMachInsp.InitCDGridCX(MCIID: string);
begin
  cxPageControl1.ActivePageIndex := 1;
  with ADOTmp do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from Tat_Cloth_Inspect_Flaw where CIID=' + quotedstr(Trim(MCIID)));
    Open;
  end;
  SCreateCDS(ADOTmp, CDS_1);
  SInitCDSData(ADOTmp, CDS_1);
end;

procedure TfrmTatMachInsp.InitJYGrid();
var
  MNetWeight, MJYLen: double;
begin
  with ADOQueryMain do
  begin
    Close;
    SQL.Clear;
    if FMainId <> '' then
    begin
      sql.Add('select A.*');
      sql.Add('from Tat_Cloth_Inspect A '); //where PCId=''' + Trim(FPCId) + '''');

      sql.Add('where  mainid=' + quotedstr(fmainid));
      sql.Add('and filler=' + quotedstr(dname));
      sql.Add('order by filltime desc');
    end
    else
    begin
      sql.Add('select A.*');
      sql.Add('from Tat_Cloth_Inspect A '); //where PCId=''' + Trim(FPCId) + '''');
      sql.Add('where  convert(varchar(10),filltime,120)=convert(varchar(10),getdate(),120)');
      sql.Add('and filler=' + quotedstr(dname));
      sql.Add('and mainid=''无订单''');
      sql.Add('order by filltime desc');
    end;


//    ShowMessage(SQL.Text);
    Open;
  end;
  SCreateCDS(ADOQueryMain, CDS_3);
  SInitCDSData(ADOQueryMain, CDS_3);

  with ADOTmp do
  begin
    Close;
    SQL.Clear;
    sql.Add('select COUNT(*)JS,SUM(METER)METER');
    sql.Add('from Tat_Cloth_Inspect A '); //where PCId=''' + Trim(FPCId) + '''');
    sql.Add('where  convert(varchar(10),filltime,120)=convert(varchar(10),getdate(),120)');
    sql.Add('and filler=' + quotedstr(dname));
    sql.Add('and mainid=''无订单''');
    Open;
  end;
  if ADOTmp.IsEmpty = FALSE then
  begin
    LABEL45.Caption := '今日已打匹数:' + ADOTmp.FieldByName('JS').AsString;
    LABEL44.Caption := '今日已打长度:' + ADOTmp.FieldByName('METER').AsString;
  end;

end;

procedure TfrmTatMachInsp.FormShow(Sender: TObject);
begin
  inherited;
  ReadCxGrid(trim(Self.Caption) + 'Tv1', Tv1, '贸易检验管理');
  ReadCxGrid(trim(Self.Caption) + 'Tv2', Tv2, '贸易检验管理');
  ReadCxGrid(trim(Self.Caption) + 'Tv3', Tv3, '贸易检验管理');
  fFlileFlag := UserDataFlag + 'HX';
  InitCDPanel();
  InitCDGrid(FCIID);
  InitJYGrid();
  if IsINIFile() then
    ReadINIFile()
  else
    WriteINIFile;
  GetINIFile();
  if trim(fmanage) <> '高权限' then
  begin
    if trim(DZCDYDllName) <> '' then
      OpenCom(DZCDYDllName);
    if trim(MBDYDllName) <> '' then
      OpenCom(MBDYDllName);

//    edtScan.SetFocus;

  end;
end;

procedure TfrmTatMachInsp.InitCDPanel();
var
  AA: array[0..100] of string;
  i, j: Integer;
begin
  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select ZDYName from KH_Zdy where Type=''WFBCD''and MainType=''梭织'' order by ZDYNO ');
    Open;
  end;
  if ADOTmp.IsEmpty then
  begin
    Application.MessageBox('没有定义疵点！', '提示', 0);
    Exit;
  end;
  with ADOTmp do
  begin
    First;
    i := 0;
    while not Eof do
    begin
      AA[i] := Trim(fieldbyname('ZDYName').AsString);
      i := i + 1;
      Next;
    end;
  end;
  i := i - 1;
  if i > 69 then
  begin
    i := 69;
  end;
  for j := 0 to i do
  begin
    with ScrollBox1 do
    begin
      TSpeedButton(Controls[j]).Visible := True;
      TSpeedButton(Controls[j]).Hint := AA[j];
      if Length(AA[j]) > 4 then
      begin
        TSpeedButton(Controls[j]).Caption := Copy(Trim(AA[j]), 1, 4) + #13 + Copy(Trim(AA[j]), 5, Length(AA[j]) - 4);
      end
      else
        TSpeedButton(Controls[j]).Caption := AA[j];
    end;
  end;
end;

procedure TfrmTatMachInsp.Tv3CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('Grade').Index] = '次品' then
    ACanvas.Brush.Color := clRed;
end;

procedure TfrmTatMachInsp.Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if CDS_3.isEmpty then
    exit;

  InitCDGridCX(CDS_3.FieldByName('CIID').AsString);
end;

function TfrmTatMachInsp.SaveData(): Boolean;
var
  maxno, MCIID, strsql: string;
  MInputLen, MMeter, MYardage: Double;
  MInputWeight, MGrossWeight, MNetWeight, MTare: Double;
begin
  fmainid := '';
  fsubid := '';
  if FOperationStatus = '卷条码' then
  begin
    MCIID := FCIID;
  end
  else
  begin
    MCIID := '';
  end;
  try
    ADOCmd.Connection.BeginTrans;
    ///保存主表
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      SQL.Add('select * from Tat_Cloth_Inspect where CIID=''' + Trim(MCIID) + '''');
      Open;
    end;
    with ADOCmd do
    begin
      if Trim(MCIID) = '' then
      begin
        if not GetLSNo(ADOTmp, maxno, 'T' + Trim(SCXFlag), 'Tat_Cloth_Inspect', 4, 1) then
          raise Exception.Create('获取条码失败！');
        Append;
        FieldByName('Filler').Value := Trim(DName);
        FieldByName('CIID').Value := Trim(maxno);
      end
      else
      begin
        maxno := Trim(MCIID);
        Edit;
        FieldByName('Editer').Value := Trim(DName);
        FieldByName('EditTime').Value := SGetServerDateTime(ADOTmp);
      end;

     /////////////////////////           保存重量         /////////////////////////

      MTare := StrToFloatdef(trim(Tare.Text), 0);
      MInputWeight := RoundFloat(StrToFloatdef(trim(InputWeight.Text), 0), StrTointdef(KgPlace.Text, 0));
      MGrossWeight := MInputWeight + MTare; //毛重
      MNetWeight := MInputWeight;  //净重
      FieldByName('InputWeight').Value := MInputWeight;
      FieldByName('GrossWeight').Value := MGrossWeight;
      FieldByName('NetWeight').Value := MNetWeight;
      FieldByName('Tare').Value := MTare;
      /////////////////////////           保存重量         /////////////////////////
      ///
      /////////////////////////           保存长度         /////////////////////////
      MInputLen := RoundFloat(StrToFloatdef(trim(InputLen.Text), 0), 1);
      if lblLenUnit.Caption = 'M' then
      begin
        MMeter := RoundFloat(StrToFloatdef(trim(InputLen.Text), 0), StrTointdef(MPlace.Text, 0));
        MYardage := RoundFloat(MMeter / 0.9144, StrTointdef(YPlace.Text, 0));
      end
      else
      begin
        MYardage := RoundFloat((StrToFloatdef(trim(InputLen.Text), 0)), StrTointdef(YPlace.Text, 0));
        MMeter := RoundFloat(MYardage * 0.9144, StrTointdef(MPlace.Text, 0));
      end;

      FieldByName('InputLen').Value := RoundFloat(StrToFloatdef(trim(InputLen.Text), 0), 1);
      FieldByName('Meter').Value := MMeter;
      FieldByName('Yardage').Value := MYardage;
      FieldByName('LenUnit').Value := TRIM(lblLenUnit.Caption);
      /////////////////////////           保存长度         /////////////////////////
      FieldByName('Coefficient').Value := StrToFloatdef(Coefficient.text, 0);

      FieldByName('Grade').Value := Grade.text;

      FieldByName('PieceNo').Value := 0;

      FieldByName('OrderNo').value := Trim(FOrderNo);
      if fmainid = '' then
      begin
        FieldByName('MainId').value := '无订单';
      end
      else
      begin
        FieldByName('MainId').value := Trim(FMainId);
      end;
      if FSubId = '' then
      begin
        FieldByName('SubId').value := '无订单';
      end
      else
      begin
        FieldByName('SubId').value := Trim(FSubId);
      end;

      FieldByName('Workshop').value := Trim(FWorkshop);
      FieldByName('CIIOFlag').Value := '未入库';
      FieldByName('PCId').value := FPCId;
      FieldByName('C_Code').value := trim(code.Text);
      FieldByName('C_Name').value := trim(codename.Text);

      FieldByName('C_Spec').value := trim(Spec.Text);
      FieldByName('C_Color').value := FC_Color;
      FieldByName('C_ColorNo').value := FC_ColorNo;
      FieldByName('C_StyleNo').value := FC_StyleNo;
      FieldByName('C_Width').value := trim(mf.Text);
      FieldByName('C_GramWeight').value := trim(kz.Text);
      FieldByName('C_Pattern').value := FC_Pattern;
      FieldByName('C_CustPattern').value := FC_CustPattern;
      FieldByName('C_ColorDepth').value := C_ColorDepth.Text;
      FieldByName('CIMachNo').Value := Trim(SCXFlag);

      FieldByName('CARNO').Value := Trim(CARNO.Text);

      FieldByName('SCPerson').Value := Trim(SCPerson.Text);
      FieldByName('JBSCPerson').Value := Trim(JBSCPerson.Text);
      FieldByName('JBSCPerson3').Value := Trim(JBSCPerson3.Text);
      FieldByName('JBSCPerson4').Value := Trim(JBSCPerson4.Text);
      FieldByName('JBSCPerson5').Value := Trim(JBSCPerson5.Text);
      FieldByName('JBSCPerson6').Value := Trim(JBSCPerson6.Text);
      FieldByName('JBSCPerson7').Value := Trim(JBSCPerson7.Text);

      FieldByName('OutPutQty1').Value := strtofloatdef(OutPutQty1.Text, 0);
      FieldByName('OutPutQty2').Value := strtofloatdef(OutPutQty2.Text, 0);
      FieldByName('OutPutQty3').Value := strtofloatdef(OutPutQty3.Text, 0);
      FieldByName('OutPutQty4').Value := strtofloatdef(OutPutQty4.Text, 0);
      FieldByName('OutPutQty5').Value := strtofloatdef(OutPutQty5.Text, 0);
      FieldByName('OutPutQty6').Value := strtofloatdef(OutPutQty6.Text, 0);
      FieldByName('OutPutQty7').Value := strtofloatdef(OutPutQty7.Text, 0);
      Post;
    end;

    MCIID := Trim(maxno);   //卷条码
    FCIID := Trim(maxno);

    //保存挡车工信息


    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Tat_Cloth_knitter where CIID=' + quotedstr(maxno));
      sql.Add('insert into Tat_Cloth_knitter(CIID,CKID,knittid,knitter,OutPutQty)');
      sql.Add('values(' + quotedstr(maxno) + ',' + quotedstr(maxno + '1') + ',' + quotedstr(SCPerson.Hint) + ',' + quotedstr(SCPerson.Text) + ',' + quotedstr(IntToStr(StrtoIntdef(OutPutQty1.Text, 0))) + ')');
      sql.Add('insert into Tat_Cloth_knitter(CIID,CKID,knittid,knitter,OutPutQty)');
      sql.Add('values(' + quotedstr(maxno) + ',' + quotedstr(maxno + '2') + ',' + quotedstr(JBSCPerson.Hint) + ',' + quotedstr(JBSCPerson.Text) + ',' + quotedstr(IntToStr(StrtoIntdef(OutPutQty2.Text, 0))) + ')');
      execsql;
    end;

//////////////////       保存疵点信息       //////////////////
    with CDS_2 do
    begin
      First;
      while not Eof do
      begin
        if Trim(CDS_2.fieldbyname('CIFID').AsString) = '' then
        begin
          if not GetLSNo(ADOTmp, maxno, 'JC', 'Tat_Cloth_Inspect_Flaw', 5, 1) then
            raise Exception.Create('获取疵点失败！');
        end
        else
        begin
          maxno := Trim(CDS_2.fieldbyname('CIFID').AsString);
        end;
        with ADOCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from Tat_Cloth_Inspect_Flaw  ');
          sql.Add(' where CIFID=''' + Trim(maxno) + '''');
          Open;
        end;
        with ADOCmd do
        begin
          if Trim(CDS_2.fieldbyname('CIFID').AsString) = '' then
            Append
          else
            Edit;
          RTSetSaveDataCDS(ADOCmd, Tv2, CDS_2, 'Tat_Cloth_Inspect_Flaw', 0);
          FieldByName('CIID').Value := Trim(MCIID);
          FieldByName('CIFID').Value := Trim(maxno);
          Post;
        end;
        CDS_2.Edit;
        CDS_2.FieldByName('CIID').Value := Trim(MCIID);
        CDS_2.FieldByName('CIFID').Value := Trim(maxno);
        Next;
      end;
    end;
//////////////////       保存疵点信息       //////////////////
///
//////////////////       更新卷号疵点信息       //////////////////
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('exec P_Tat_Insp_Up @CIID=''' + trim(MCIID) + '''');
      if FOperationStatus = '布票' then
        sql.Add(',@InspType=' + QuotedStr('布票'))
      else
        sql.Add(',@InspType=' + QuotedStr('单卷修改'));
      execsql;
    end;
//////////////////       更新卷号疵点信息       //////////////////
//////////////////       更新进度       //////////////////
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('insert into Tat_Need_Up(UType,UDataId) values(''机台检验'',' + quotedstr(maxno) + ')  ');
      execsql;
    end;
//////////////////       更新进度       //////////////////
///
    ADOCmd.Connection.CommitTrans;

//////////////////       出入库及库存       //////////////////
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('exec P_Tat_Insp_In_Stk @CIID=''' + trim(MCIID) + '''');
      Open;
    end;
    if ADOCmd.FieldByName('intReturn').AsInteger = -1 then
    begin
      application.MessageBox(PChar(trim(ADOCmd.FieldByName('ShowMsg').AsString)), '提示信息', 0);
      Result := False;
    end
    else
    begin
      Result := True;
    end;
//////////////////       出入库及库存       //////////////////
    Result := True;
  except
    ADOCmd.Connection.RollbackTrans;
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
    Result := False;
  end;
end;

procedure TfrmTatMachInsp.SCPersonClick(Sender: TObject);
begin
  inherited;
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        SCPerson.Text := frmEmployeeSel.FRName;
        SCPerson.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.BTPrintClick(Sender: TObject);
var
  fPrintFile: string;
  mvalue: Double;
  i: Integer;
begin
  CodeName.SetFocus;
  if CheckData('提交') = False then
    exit;

  if SaveData() then
  begin
    InputLen.Text := '';
    InputWeight.Text := '';
    if Trim(Edit6.Text) = '√' then
    begin
      PrtData(FCIID);
    end;

  end;
  InputLen.SetFocus;
  CIFBegClick(InputLen);
  FOperationStatus := '布票';
  InitJYGrid();
  InitCDGrid('');
  FCIID := '';

  CodeName.Text := '';
  carno.Text := '';

  SCPerson.Text := '';
  JBSCPerson.Text := '';
  JBSCPerson3.Text := '';
  JBSCPerson4.Text := '';
  JBSCPerson5.Text := '';
  JBSCPerson6.Text := '';
  JBSCPerson7.Text := '';
  OutPutQty1.Text := '';
  OutPutQty2.Text := '';
  OutPutQty3.Text := '';
  OutPutQty4.Text := '';
  OutPutQty5.Text := '';
  OutPutQty6.Text := '';
  OutPutQty7.Text := '';
end;

procedure TfrmTatMachInsp.PrtData(MCIID: string);
var
  fPrintFile, FLBName: string;
begin
  with ADOQueryPrint do
  begin
    Close;
    SQL.Clear;
    sql.Add(' EXEC P_Tat_Insp_Prt_Lab ');
    SQL.Add(' @CIID=''' + Trim(MCIID) + '''');
    Open;
  end;
  if ADOQueryPrint.IsEmpty then
  begin
    application.MessageBox('标签内容未找到！', '提示信息', MB_ICONERROR);
    exit;
  end;

  FLBName := Trim(ADOQueryPrint.fieldbyname('LBName').AsString);

  ExportFtErpFile(FLBName + '.rmf', ADOTmp);
  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLBName + '.rmf';

  if FileExists(fPrintFile) then
  begin
    RM1.LoadFromFile(fPrintFile);
    RM1.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1);
    RM1.PrintReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0);
  end;
end;

procedure TfrmTatMachInsp.SpeedButton1Click(Sender: TObject);
var
  fsj: string;
begin
  fsj := Trim(TSpeedButton(Sender).Hint);
  if Trim(fsj) = '' then
    Exit;
  if TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Name = 'KuangHao' then
    Exit;
  fsj := Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text);
  TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text := fsj + Trim(TSpeedButton(Sender).Caption);
  TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll;
end;

procedure TfrmTatMachInsp.SpeedButton113Click(Sender: TObject);
begin
  inherited;
  panel3.Visible := False;
end;

procedure TfrmTatMachInsp.SpeedButton12Click(Sender: TObject);
var
  fsj: string;
begin
  fsj := Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text);
  if Trim(fsj) = '' then
    Exit;
  TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text := Copy(fsj, 1, Length(fsj) - 1);
  TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll;
end;

procedure TfrmTatMachInsp.SpeedButton13Click(Sender: TObject);
var
  i: Integer;
begin
  if CheckData('疵点') = False then
    exit;

  FCIFName := Trim(TSpeedButton(Sender).Hint);
  MovePanel1.Visible := True;
  lblCIFName.Caption := Trim(FCIFName);

  //显示数字键盘
  CIFBeg.Text := InputLen.Text;
  with Panel3 do
  begin
    for i := 0 to ControlCount - 1 do
    begin
      if Controls[i] is TSpeedButton then
      begin
        TSpeedButton(Controls[i]).Hint := Trim(CIFBeg.Name);
      end;
    end;
  end;

end;

procedure TfrmTatMachInsp.cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmEmployeeSel := TfrmEmployeeSel.Create(self);
    with frmEmployeeSel do
    begin
      FPost := '挡车工';
      if ShowModal = 1 then
      begin
        SCPerson.Text := frmEmployeeSel.FRName;
        SCPerson.Hint := frmEmployeeSel.FRCode;
      end;
    end;
  finally
    frmEmployeeSel.Free;
  end;
end;

procedure TfrmTatMachInsp.Button1Click(Sender: TObject);
var
  mvalue: Double;
begin

  if Trim(CIFBeg.Text) <> '' then
  begin
    if Trim(CIFEnd.Text) <> '' then
    begin
      if StrToFloat(CIFEnd.Text) < StrToFloat(CIFBeg.Text) then
      begin
        Application.MessageBox('疵点位置录入错误!', '提示', 0);
        Exit;
      end;
    end;
  end;
  if CIFQty.Text <> '' then
  begin
    if TryStrToFloat(CIFQty.Text, mvalue) = False then
    begin
      Application.MessageBox('非法数字!', '提示', 0);
      Exit;
    end;
  end;
  with CDS_2 do
  begin
    Append;
    if RadioGroup1.ItemIndex = 5 then
      FieldByName('CIFName').Value := '连续性' + Trim(FCIFName)
    else if RadioGroup1.ItemIndex = 4 then
      FieldByName('CIFName').Value := '整匹' + Trim(FCIFName)
    else
      FieldByName('CIFName').Value := Trim(FCIFName);
    FieldByName('CIFbeg').Value := Trim(CIFBeg.Text);
    FieldByName('CIFEnd').Value := Trim(CIFEnd.Text);
    FieldByName('CIFPoints').Value := 0;

    if RadioGroup1.ItemIndex > -1 then
    begin
      if RadioGroup1.ItemIndex < 3 then
      begin
        FieldByName('CIFPoints').Value := RadioGroup1.ItemIndex + 1;
      end
      else
      begin
        FieldByName('CIFPoints').Value := 4;
      end;
    end;
    FieldByName('CIFQty').Value := StrToFloatdef(trim(CIFQty.Text), 0);

    Post;
  end;
  CIFBeg.Text := '';
  CIFEnd.Text := '';
  CIFQty.Text := '';
  MovePanel1.Visible := False;
  cxPageControl1.ActivePageIndex := 0;
end;

procedure TfrmTatMachInsp.edtScanKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    if trim(edtScan.Text) = '' then
      exit;
    if trim(edtScan.Text) = FPCId then
      exit;
    ClearGlobal();
    FOperationStatus := '布票';
    InitLCK(edtScan.Text);
    InitJYGrid();
    InputLen.SetFocus;
  end;
end;

procedure TfrmTatMachInsp.CIFBegClick(Sender: TObject);
var
  i: Integer;
begin
  panel3.Visible := true;
  with Panel3 do
  begin

    for i := 0 to ControlCount - 1 do
    begin
      if Controls[i] is TSpeedButton then
      begin
        TSpeedButton(Controls[i]).Hint := Trim(TEdit(Sender).Name);
      end;
    end;
  end;
end;

procedure TfrmTatMachInsp.CIFEndChange(Sender: TObject);
var
  mvalue: Double;
begin
  if Trim(CIFBeg.Text) <> '' then
  begin
    if TryStrToFloat(CIFBeg.Text, mvalue) = False then
    begin
      Application.MessageBox('非法数字!', '提示', 0);
      Exit;
    end;
  end
  else
  begin
    Exit;
  end;
  if Trim(CIFEnd.Text) <> '' then
  begin
    if TryStrToFloat(CIFEnd.Text, mvalue) = False then
    begin
      Application.MessageBox('非法数字!', '提示', 0);
      Exit;
    end;
  end
  else
  begin
    Exit;
  end;
  CIFQty.Text := FloatToStr(StrToFloat(CIFEnd.Text) - StrToFloat(CIFBeg.Text));
end;

procedure TfrmTatMachInsp.Edit6Click(Sender: TObject);
begin
  if Trim(Edit6.Text) = '' then
  begin
    Edit6.Text := '√';
  end
  else
  begin
    Edit6.Text := '';
  end;
end;

procedure TfrmTatMachInsp.MinLenExit(Sender: TObject);
begin
  SetINIFile();
end;

procedure TfrmTatMachInsp.MJstr3KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0;
    SelectNext(ActiveControl as TWinControl, True, True);
  end;
end;

procedure TfrmTatMachInsp.Button2Click(Sender: TObject);
begin
  RadioGroup1.ItemIndex := -1;
end;

procedure TfrmTatMachInsp.Button3Click(Sender: TObject);
begin
  if Panel6.Visible then
    Panel6.Visible := False
  else
    Panel6.Visible := True;
end;

procedure TfrmTatMachInsp.edtScanClick(Sender: TObject);
var
  i: Integer;
begin
  Panel3.Visible := True;
  with Panel3 do
  begin
    for i := 0 to ControlCount - 1 do
    begin
      if Controls[i] is TSpeedButton then
      begin
        TSpeedButton(Controls[i]).Hint := Trim(TEdit(Sender).Name);
      end;
    end;
  end;
end;

procedure TfrmTatMachInsp.NetWeightKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    BTPrint.Click;
  end;
end;

procedure TfrmTatMachInsp.FormCreate(Sender: TObject);
begin
  inherited;
  IsCommopen := false;
end;

procedure TfrmTatMachInsp.lblLenUnitClick(Sender: TObject);
begin
//  if Trim(lblLenUnit.Caption) = 'M' then
//    SetUnit('Y')
//  else
//    SetUnit('M');
end;

procedure TfrmTatMachInsp.Button4Click(Sender: TObject);
begin
  MovePanel1.Visible := false;
end;

procedure TfrmTatMachInsp.Button5Click(Sender: TObject);
begin
  inherited;
//  try
//    frmTatClothInfoSel := TfrmTatClothInfoSel.Create(Application);
//    with frmTatClothInfoSel do
//    begin
//      if ShowModal = 1 then
//      begin
//        Self.Code.Text := frmTatClothInfoSel.CDS_1.fieldbyname('C_Code').AsString;
//        Self.CodeName.Text := frmTatClothInfoSel.CDS_1.fieldbyname('C_Name').AsString;
//        Self.MF.Text := frmTatClothInfoSel.CDS_1.fieldbyname('C_Width').AsString;
//        Self.KZ.Text := frmTatClothInfoSel.CDS_1.fieldbyname('C_GramWeight').AsString;
//
//        Self.SPEC.Text := frmTatClothInfoSel.CDS_1.fieldbyname('C_SPEC').AsString;
//
//      end;
//    end;
//  finally
//    frmTatClothInfoSel.Free;
//  end;
  try
    frmSCPersonColor := TfrmSCPersonColor.Create(self);
    with frmSCPersonColor do
    begin
      if ShowModal = 1 then
      begin
        with ADOTmp do
        begin
          Close;
          sql.Clear;
          sql.Add('SELECT A.* FROM Bs_Cloth_Info A where  A.C_name=''' + Trim(FName) + '''');
          Open;
        end;
        Self.Code.Text := ADOTmp.fieldbyname('C_Code').AsString;
        Self.CodeName.Text := ADOTmp.fieldbyname('C_Name').AsString;
        Self.MF.Text := ADOTmp.fieldbyname('C_Width').AsString;
        Self.KZ.Text := ADOTmp.fieldbyname('C_GramWeight').AsString;

        Self.SPEC.Text := ADOTmp.fieldbyname('C_SPEC').AsString;

      end;
    end;
  finally
    frmSCPersonColor.close;
  end;
  fmainid := '';
  fsubid := '';
  Label14.Caption := '订单号';
end;

procedure TfrmTatMachInsp.ToolButton3Click(Sender: TObject);
begin
  if CDS_3.IsEmpty then
    Exit;
  PrtData(CDS_3.fieldbyname('CIID').AsString);

end;

procedure TfrmTatMachInsp.ToolButton4Click(Sender: TObject);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      MainType := '梭织';
      flag := 'WFBCD';
      flagname := '疵点';
      fnote := True;
      V1Note.Caption := '英文名称';
      if ShowModal = 1 then
      begin
        Self.InitCDPanel();
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;

end;

procedure TfrmTatMachInsp.ToolButton5Click(Sender: TObject);
begin
  if CDS_3.IsEmpty then
    Exit;
  if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
    Exit;
  ADOCmd.Connection.BeginTrans;
  try

    with ADOCmd do
    begin
      Close;
      Sql.Clear;
      Sql.Add('exec P_Tat_Cloth_ReIn ');
      Sql.Add('@StkIds=' + quotedstr(Trim(CDS_3.fieldbyname('CIID').AsString)));
      Sql.Add(',@IOIDS=' + quotedstr(trim('')));
      Sql.Add(',@FillId=' + Quotedstr(DCode));
      Sql.Add(',@Filler=' + Quotedstr(DName));
//      ShowMessage(sql.Text);
      Open;
    end;

    if ADOCmd.FieldByName('intReturn').AsInteger = -1 then
    begin
      raise Exception.Create(pchar(trim(ADOCmd.FieldByName('ShowMsg').AsString)));
    end;

    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('insert into Tat_Need_Up(UType,UDataId) values(''检验删除'',' + quotedstr(Trim(CDS_3.fieldbyname('CIID').AsString)) + ')  ');
      ExecSQL;
    end;
    with ADOCmd do
    begin
      Close;
      Sql.Clear;
      Sql.Add('exec P_Tat_Insp_Del ');
      Sql.Add('@CIIDS=' + quotedstr(Trim(CDS_3.fieldbyname('CIID').AsString)));
      Sql.Add(',@DCode=' + Quotedstr(DCode));
      Sql.Add(',@DName=' + Quotedstr(DName));
      Open;
    end;
    if ADOCmd.FieldByName('intReturn').AsInteger = -1 then
    begin
      raise Exception.Create(pchar(trim(ADOCmd.FieldByName('ShowMsg').AsString)));
    end;
    ADOCmd.Connection.CommitTrans;
    CDS_3.Delete;
    application.MessageBox('删除成功！', '提示信息');
  except
    ADOCmd.Connection.RollbackTrans;
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
  end;
end;

procedure TfrmTatMachInsp.ToolButton6Click(Sender: TObject);
begin
  if CDS_3.IsEmpty then
    Exit;
  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Tat_Cloth_IO where StkId=''' + Trim(CDS_3.fieldbyname('CIID').AsString) + ''' and IOFlag=''入库''');
    Open;
  end;
  if not ADOTmp.IsEmpty then
  begin
    Application.MessageBox('已产生入库数据不能删除!', '提示', 0);
    Exit;
  end;
  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Tat_Cloth_IO where StkId=''' + Trim(CDS_3.fieldbyname('CIID').AsString) + ''' and IOFlag=''出库''');
    Open;
  end;
  if not ADOTmp.IsEmpty then
  begin
    Application.MessageBox('已产生出库数据不能删除!', '提示', 0);
    Exit;
  end;
  InitJTM(CDS_3.fieldbyname('CIID').AsString);
end;

procedure TfrmTatMachInsp.ToolButton7Click(Sender: TObject);
begin
  WriteCxGrid(trim(Self.Caption) + 'Tv1', Tv1, '贸易检验管理');
  WriteCxGrid(trim(Self.Caption) + 'Tv2', Tv2, '贸易检验管理');
  WriteCxGrid(trim(Self.Caption) + 'Tv3', Tv3, '贸易检验管理');

end;

procedure TfrmTatMachInsp.ToolButton8Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmTatMachInsp.edtChenClick(Sender: TObject);
begin
  if Trim(TEdit(Sender).Text) = '' then
  begin
    TEdit(Sender).Text := '√';
  end
  else
  begin
    TEdit(Sender).Text := '';
  end;
  SetINIFile();
end;

procedure TfrmTatMachInsp.edtYJClick(Sender: TObject);
begin
  if Trim(TEdit(Sender).Text) = '' then
  begin
    TEdit(Sender).Text := '√';
  end
  else
  begin
    TEdit(Sender).Text := '';
  end;
end;

procedure TfrmTatMachInsp.Button6Click(Sender: TObject);
begin
  if ScrollBox1.Visible then
    ScrollBox1.Visible := False
  else
    ScrollBox1.Visible := True;
end;

procedure TfrmTatMachInsp.Button7Click(Sender: TObject);
begin
  inherited;
  if OutPutQty1.Text = '' then
  begin
    if SCPerson.Text <> '' then
    begin
      OutPutQty1.Text := InputLen.Text;
    end
    else
    begin
      Application.MessageBox('请先选择挡车工1!', '提示', 0);
      Exit;
    end;

  end
  else if OutPutQty2.Text = '' then
  begin
    if JBSCPerson.Text <> '' then
    begin
      OutPutQty2.Text := FLOATTOSTR(STRTOFLOATDEF(InputLen.Text, 0) - STRTOFLOATDEF(OutPutQty1.Text, 0));
    end
    else
    begin
      Application.MessageBox('请先选择挡车工2!', '提示', 0);
      Exit;
    end;

  end
  else if OutPutQty3.Text = '' then
  begin
    if JBSCPerson3.Text <> '' then
    begin
      OutPutQty3.Text := FLOATTOSTR(STRTOFLOATDEF(InputLen.Text, 0) - STRTOFLOATDEF(OutPutQty1.Text, 0) - STRTOFLOATDEF(OutPutQty2.Text, 0));
    end
    else
    begin
      Application.MessageBox('请先选择挡车工3!', '提示', 0);
      Exit;
    end;

  end
  else if OutPutQty4.Text = '' then
  begin
    if JBSCPerson4.Text <> '' then
    begin
      OutPutQty4.Text := FLOATTOSTR(STRTOFLOATDEF(InputLen.Text, 0) - STRTOFLOATDEF(OutPutQty1.Text, 0) - STRTOFLOATDEF(OutPutQty2.Text, 0) - STRTOFLOATDEF(OutPutQty3.Text, 0));
    end
    else
    begin
      Application.MessageBox('请先选择挡车工4!', '提示', 0);
      Exit;
    end;

  end
  else if OutPutQty5.Text = '' then
  begin
    if JBSCPerson5.Text <> '' then
    begin
      OutPutQty5.Text := FLOATTOSTR(STRTOFLOATDEF(InputLen.Text, 0) - STRTOFLOATDEF(OutPutQty1.Text, 0) - STRTOFLOATDEF(OutPutQty2.Text, 0) - STRTOFLOATDEF(OutPutQty3.Text, 0) - STRTOFLOATDEF(OutPutQty4.Text, 0));
    end
    else
    begin
      Application.MessageBox('请先选择挡车工5!', '提示', 0);
      Exit;
    end;

  end
  else if OutPutQty6.Text = '' then
  begin
    if JBSCPerson6.Text <> '' then
    begin
      OutPutQty6.Text := FLOATTOSTR(STRTOFLOATDEF(InputLen.Text, 0) - STRTOFLOATDEF(OutPutQty1.Text, 0) - STRTOFLOATDEF(OutPutQty2.Text, 0) - STRTOFLOATDEF(OutPutQty3.Text, 0) - STRTOFLOATDEF(OutPutQty4.Text, 0) - STRTOFLOATDEF(OutPutQty5.Text, 0));
    end
    else
    begin
      Application.MessageBox('请先选择挡车工6!', '提示', 0);
      Exit;
    end;

  end
  else if OutPutQty7.Text = '' then
  begin
    if JBSCPerson7.Text <> '' then
    begin
      OutPutQty7.Text := FLOATTOSTR(STRTOFLOATDEF(InputLen.Text, 0) - STRTOFLOATDEF(OutPutQty1.Text, 0) - STRTOFLOATDEF(OutPutQty2.Text, 0) - STRTOFLOATDEF(OutPutQty3.Text, 0) - STRTOFLOATDEF(OutPutQty4.Text, 0) - STRTOFLOATDEF(OutPutQty5.Text, 0) - STRTOFLOATDEF(OutPutQty6.Text, 0));
    end
    else
    begin
      Application.MessageBox('请先选择挡车工7!', '提示', 0);
      Exit;
    end;

  end;

end;

procedure TfrmTatMachInsp.Button8Click(Sender: TObject);
begin
//  if Panel7.Visible then
//    Panel7.Visible := False
//  else
//    Panel7.Visible := True;
end;

procedure TfrmTatMachInsp.Button9Click(Sender: TObject);
begin

  try
    frmSCPersonColor := TfrmSCPersonColor.Create(self);
    with frmSCPersonColor do
    begin
      FType := '机台号';
      if ShowModal = 1 then
      begin
        carno.text := trim(fname);

      end;
    end;
  finally
    frmSCPersonColor.close;
  end;
end;

procedure TfrmTatMachInsp.carnoBtnClick(Sender: TObject);
begin
  inherited;
  try
    frmSCPersonColor := TfrmSCPersonColor.Create(self);
    with frmSCPersonColor do
    begin
      FType := '机台号';
      if ShowModal = 1 then
      begin
        carno.text := trim(fname);

      end;
    end;
  finally
    frmSCPersonColor.close;
  end;
end;

procedure TfrmTatMachInsp.carnoClick(Sender: TObject);
begin
  inherited;
  try
    frmSCPersonColor := TfrmSCPersonColor.Create(self);
    with frmSCPersonColor do
    begin
      FType := '机台号';
      if ShowModal = 1 then
      begin
        carno.text := trim(fname);

      end;
    end;
  finally
    frmSCPersonColor.close;
  end;
end;

end.

