unit U_MJManageNewFDNew;

interface

uses
  Windows, Messages, SysUtils, 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;


type
  TfrmMJManageNewFDNewSF = class(TForm)
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxGridPopupMenu1: TcxGridPopupMenu;
    DataSource1: TDataSource;
    Order_MJ: TClientDataSet;
    ADOQueryMain: TADOQuery;
    ADOCmd: TADOQuery;
    ADOTmp: TADOQuery;
    RMDB_Main: TRMDBDataSet;
    RM2: TRMGridReport;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    DataSource2: TDataSource;
    CDS_MJCD: TClientDataSet;
    DataSource3: TDataSource;
    CDS_MJID: TClientDataSet;
    Timer1: TTimer;
    ADOQueryPrint: 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;
    cxStyleRepository2: TcxStyleRepository;
    cxStyle3: TcxStyle;
    cxStyleRepository3: TcxStyleRepository;
    cxStyle4: TcxStyle;
    cxStyleRepository4: TcxStyleRepository;
    cxStyle5: TcxStyle;
    cxStyleRepository5: TcxStyleRepository;
    cxStyle6: TcxStyle;
    cxGridPopupMenu2: TcxGridPopupMenu;
    ADOQueryMainDSC: TADOQuery;
    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;
    Panel2: TPanel;
    Label9: TLabel;
    MJFK: TEdit;
    Label3: TLabel;
    MJLen: TEdit;
    Label4: TLabel;
    MJMaoZ: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Label11: TLabel;
    BTPrint: TButton;
    Button5: TButton;
    Edit3: TEdit;
    Label10: TLabel;
    Edit4: TEdit;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    MJQty1: TEdit;
    Label15: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    MJSJKZ: 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;
    SpeedButton49: TSpeedButton;
    v3Column1: TcxGridDBColumn;
    v3Column2: TcxGridDBColumn;
    v3Column3: TcxGridDBColumn;
    Label27: TLabel;
    MJQty2: TEdit;
    Label28: TLabel;
    Edit5: TEdit;
    Label26: TLabel;
    Edit6: TEdit;
    Label29: TLabel;
    MJstr3: TEdit;
    Label30: TLabel;
    MJQty3: TEdit;
    Label31: TLabel;
    Label32: TLabel;
    MJQty4: TEdit;
    Label33: TLabel;
    Panel4: TPanel;
    MovePanel1: TMovePanel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button4: TButton;
    Edit2: TEdit;
    CDQty: TEdit;
    RadioGroup1: TRadioGroup;
    Button2: TButton;
    Panel5: TPanel;
    Panel6: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label16: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    APID: TEdit;
    BTAdd: TButton;
    BTEdit: TButton;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    TBCD: TToolButton;
    TBClose: TToolButton;
    Panel7: TPanel;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    tv2CDType: TcxGridDBColumn;
    tv2CDWZ: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    Tv2CDQty: TcxGridDBColumn;
    Tv2CDReason: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    v2Column3: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    Panel8: TPanel;
    Button3: TButton;
    AOrdDefNote1: TRichEdit;
    Label34: TLabel;
    ComboBox1: TComboBox;
    Edit7: TEdit;
    Label35: TLabel;
    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;
    v3Column4: TcxGridDBColumn;
    Button6: TButton;
    Label36: TLabel;
    MJStr4: TEdit;
    Label37: TLabel;
    v3Column5: TcxGridDBColumn;
    MKXS: TEdit;
    Label38: TLabel;
    RM3: TRMGridReport;
    Label39: TLabel;
    Edit8: TEdit;
    Timer2: TTimer;
    MJXH: TEdit;
    Panel1: TPanel;
    Button7: TButton;
    Label_KF: TLabel;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure Tv2CellClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure TBCDClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure MJMaoZClick(Sender: TObject);
    procedure MJLenClick(Sender: TObject);
    procedure MJFKClick(Sender: TObject);
    procedure MJBanZuClick(Sender: TObject);
    procedure MJSJKZClick(Sender: TObject);
    procedure Tv1CellClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure Tv3CellClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure FormClick(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure BTAddClick(Sender: TObject);
    procedure BTEditClick(Sender: TObject);
    procedure BTPrintClick(Sender: TObject);
    procedure Tv2CDQtyPropertiesEditValueChanged(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton12Click(Sender: TObject);
    procedure SpeedButton13Click(Sender: TObject);
    procedure cxGridDBColumn2PropertiesChange(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure SpeedButton49Click(Sender: TObject);
    procedure APIDKeyPress(Sender: TObject; var Key: Char);
    procedure Edit1Click(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Click(Sender: TObject);
    procedure Edit4Click(Sender: TObject);
    procedure Edit5Click(Sender: TObject);
    procedure Edit6Click(Sender: TObject);
    procedure MJstr3KeyPress(Sender: TObject; var Key: Char);
    procedure MJQty3Exit(Sender: TObject);
    procedure MJMaoZExit(Sender: TObject);
    procedure Label9Click(Sender: TObject);
    procedure MJLenExit(Sender: TObject);
    procedure MJQty4Exit(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure MJQty4Change(Sender: TObject);
    procedure MJMaoZChange(Sender: TObject);
    procedure APIDClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure MJFKChange(Sender: TObject);
    procedure Edit7Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure MJQty4KeyPress(Sender: TObject; var Key: Char);
    procedure MKXSChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure MJQty2Change(Sender: TObject);
    procedure Edit8Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private declarations }
    FInt,PState,PrintInt,SCInitGrid,FState,FCK:Integer;
    FColumn,FBanZu,FAPID,FMainId,FSubId,FFFMJID:String;
    MValue,FCDName:String;
    fRollType,fZsType:string;
    fmjlen:string;
    isCommopen,IsJsMessage:boolean;
    procedure InitJP();
    procedure InitCDGrid();
    procedure InitCDGridID();
    procedure AddCD(Fbtn:TButton);
    procedure AddSL(Fbtn:TButton);
    function  SaveData():Boolean;
    procedure BtnStatus(BSInt:Boolean);
    procedure AddSLNew(Fbtn:TSpeedButton);
    procedure AddCDNew(Fbtn:TSpeedButton);
    procedure PrtData(FMJID:String);
    procedure OpenCom(DllName:string);
    procedure CloseCom(DllName:string);
    procedure On1201(Var Message:Tmessage);Message 1201;
    procedure On1301(Var Message:Tmessage);Message 1301;
    function saveRk(FMJID:String):boolean;
    Procedure JsKF();
  public
    fmanage:string;
    { Public declarations }
  end;

var
  frmMJManageNewFDNewSF: TfrmMJManageNewFDNewSF;
  newh,newh1:hwnd;

implementation
uses
  U_DataLink,U_Fun,U_ZDYHelp,U_iniParam, U_ClothHCList;

{$R *.dfm}
Procedure TfrmMJManageNewFDNewSF.JsKF();
var
  fKouFenQty,fNum,fmf,fkf:double;
begin
  fKouFenQty:=0;
  Fmf:=0;
  IF not CDS_MJCD.IsEmpty then
  begin
    fKouFenQty:= tv2.DataController.Summary.FooterSummaryValues[1];
    IF CDS_MJCD.Locate('CDName','测副宽',[]) then
    Fmf:= CDS_MJCD.fieldbyName('CDQty').AsFloat/2.54;
  end;

  IF trim(Label9.Caption)='M' then
  fNum:=strtofloatdef(trim(MJLen.Text),0)/0.9144
  else
  fNum:=strtofloatdef(trim(MJLen.Text),0);

  IF fNum*Fmf>0 then
  fKf:=(fKouFenQty*3600)/(fNum*Fmf)
  else
  fKf:=0;

  Label_KF.Caption:=format('%.2f',[fKf]);

end;
function TfrmMJManageNewFDNewSF.saveRk(FMJID:String):boolean;
var
  CRID,MaxRkNo:string;
begin
  result:=false;
  try
    with ADOQueryMain do
    begin
      close;
      sql.Clear;
      sql.Add('select * from WFB_MJJY where MJID='''+FMJID+'''');
      open;
    end;
    IF ADOQueryMain.IsEmpty then
    begin
      result:=true;
      exit;
    end;
    with ADOTmp  do
    begin
      Close;
      sql.Clear;
      SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1');
      sql.Add('select CRID from CK_BanCP_CRID');
      Open;
    end;
    CRID:=ADOTmp.fieldbyname('CRID').Value;

    if not GetLSNo(ADOTmp,MaxRkNo,'JR','CK_BanCP_CR',4,1) then Exit;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from CK_BanCP_CR where 1=2');
      Open;
    end;
    with ADOCmd do
    begin
          Append;
          FieldByName('MainId').Value:=Trim(ADOQueryMain.fieldbyname('MainId').AsString);
          FieldByName('SubId').Value:=Trim(ADOQueryMain.fieldbyname('SubId').AsString);
          FieldByName('APID').Value:=Trim(ADOQueryMain.fieldbyname('APID').AsString);
          FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJId').AsString);
          FieldByName('BCID').Value:=Trim(MaxRkNo);
          FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',now());
          FieldByName('CRFlag').Value:='入库';
          FieldByName('CRType').Value:='检验入库';
          FieldByName('CRID').Value:=CRID;
          FieldByName('KGQty').Value:=ADOQueryMain.fieldbyname('MJMaoZ').Value;
          FieldByName('Qty').Value:=ADOQueryMain.fieldbyname('MJlen').Value;
          FieldByName('QtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value;
          FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value;
          FieldByName('Filler').Value:=Trim(DName);
          FieldByName('RKOrdId').Value:=Trim(MaxRkNo);
          FieldByName('BaoNo').Value:='';
          FieldByName('BaoID').Value:='';
          FieldByName('RKPlace').Value:='';
          Post;
    end;
    with ADOCmd do
    begin
     Close;
     sql.Clear;
     sql.Add('select * from CK_BanCP_KC where 1=2');
     Open;
    end;
    with ADOCmd do
    begin
      Append;
      FieldByName('CRID').Value:=CRID;
      FieldByName('BCID').Value:=Trim(MaxRkNo);
      FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJID').AsString);
      FieldByName('KCKGQty').Value:=ADOQueryMain.fieldbyname('MJMaoZ').Value;
      FieldByName('KCQty').Value:=ADOQueryMain.fieldbyname('MJlen').Value;
      FieldByName('KCQtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value;
      Post;
    end;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('Update WFB_MJJY Set MJStr2=''已入库'' ');
      sql.Add('where MJID='''+Trim(ADOQueryMain.fieldbyname('MJID').AsString)+'''');
      ExecSQL;
    end;
    result:=true;
  except

  end;
end;
procedure TfrmMJManageNewFDNewSF.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 TfrmMJManageNewFDNewSF.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 TfrmMJManageNewFDNewSF.FormDestroy(Sender: TObject);
begin
  frmMJManageNewFDNewSF:=nil;
end;
procedure TfrmMJManageNewFDNewSF.On1201(Var Message:Tmessage);
var
  i1,i2:integer;
  unitname:string;
  fdata:double;
begin
  i1:=message.WParam;
  i2:=message.LParam;

  //Edit1.Text:= floattostr(i1 *i2 /100000 );
  IF IsJsMessage then
  MJMaoZ.Text:= floattostr(i1 *i2 /100000 );
end;
procedure TfrmMJManageNewFDNewSF.On1301(Var Message:Tmessage);
var
  i1,i2:integer;
  unitname:string;
  fdata:double;
begin
  i1:=message.WParam;
  i2:=message.LParam;

  //Edit1.Text:= floattostr(i1 *i2 /100000 );
  IF IsJsMessage then
  begin
    IF ISJCX='2' then
    begin
      MJlen.Text:= format('%.1f',[i1 /100000]);
      Edit1.Text:= format('%.1f',[i1 /100000]);
    end
    else IF ISJCX='1' then
    begin
     // MJlen.Text:= format('%.1f',[i1 /100000]);
      Edit1.Text:= format('%.1f',[i1 /100000]);
    end;
  end;
//  IF i2=0 then Label9.Caption:='M' else  Label9.Caption:='Y';
end;

procedure TfrmMJManageNewFDNewSF.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  //DataLink_WFBProducttion.ADOLink.Connected:=False;

  if  isCommopen then
  begin
    IF ISJCX='2' then
    begin
      closeCom(JCYDLL);
    end
    else
    IF ISJCX='1' then
    begin
      closeCom(JCYDLL);
      closeCom(dllName);
    end
    else
    begin
      closeCom(dllName);
    end;
  end;
  Action:=caFree;
end;
procedure TfrmMJManageNewFDNewSF.InitCDGrid();
begin
  with ADOQueryMain do
  begin
    Close;
    SQL.Clear;
    if PState=1 then
      sql.Add('select * from WFB_MJJY_CD where MJID='''' ')
    else
      sql.Add('select * from WFB_MJJY_CD where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryMain,CDS_MJCD);
  SInitCDSData20(ADOQueryMain,CDS_MJCD);
end;
procedure TfrmMJManageNewFDNewSF.InitCDGridID();
begin
  with ADOQueryMain do
  begin
    Close;
    SQL.Clear;
    sql.Add('select A.*');
    sql.Add('from WFB_MJJY A where APID='''+Trim(FAPID)+'''');
    if Trim(SCXFlag)<>'' then
      sql.Add(' and JTType='''+Trim(SCXFlag)+'''');

    sql.Add(' and Filler='''+Trim(DName)+'''');
    sql.Add(' and MJstr2=''未入库'' ');
    sql.Add(' order by MJID');
    Open;
  end;
  SCreateCDS20(ADOQueryMain,CDS_MJID);
  SInitCDSData20(ADOQueryMain,CDS_MJID);
end;

procedure TfrmMJManageNewFDNewSF.TBCloseClick(Sender: TObject);
var
  maxno:string;
begin
  if CDS_MJCD.IsEmpty=False then
  begin
    if Trim(CDS_MJCD.FieldByName('MCID').AsString)='' then
    begin
      //try
        //ADOCmd.Connection.BeginTrans;
        {with ADOCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('delete from WFB_MJJY_CD_Temp where JTType='''+Trim(SCXFlag)+'''');
          Execsql;
        end;
        with CDS_MJCD do
        begin
          First;
          while not Eof do
          begin
            if GetLSNo(ADOCmd,maxno,'LS','WFB_MJJY_CD_Temp',2,1)=False then
            begin
             // ADOCmd.Connection.RollbackTrans;
              Application.MessageBox('取疵点临时最大号失败！','提示',0);
              Exit;
            end;
            with ADOCmd do
            begin
              Close;
              sql.Clear;
              sql.Add('select * from WFB_MJJY_CD_Temp where 1<>1');
              Open;
            end;
            with ADOCmd do
            begin
              Append;
              FieldByName('MCID').Value:=Trim(maxno);
              SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD_Temp',0);
              FieldByName('JTType').Value:=Trim(SCXFlag);
              Post;
            end;
            Next;
          end;
        end; }
        close;
        //ADOCmd.Connection.CommitTrans;
        //ModalResult:=1;
      //except
        //ADOCmd.Connection.RollbackTrans;
        //Application.MessageBox('保存临时表失败！','提示',0);
      //end;
    end else
    begin
      Close;
    end;
  end else
  begin
    Close;
  end;



end;

procedure TfrmMJManageNewFDNewSF.Tv2CellClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
var
  fsj:string;
begin
  //FInt:=0;
  //Tv1.DataController.FocusedRecordIndex;
  //fsj:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName;
end;

procedure TfrmMJManageNewFDNewSF.TBCDClick(Sender: TObject);
begin
  try
    frmZDYHelp:=TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag:='WFBCD';
      flagname:='疵点';
      fnote:=True;
      V1Note.Caption:='英文名称';
      fnote1:=true;
      V1note1.Caption:='代码';
      if ShowModal=1 then
      begin
        Self.InitJP();
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmMJManageNewFDNewSF.FormShow(Sender: TObject);
begin
  InitJP();
  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select BanZu from SY_User where UserId='''+Trim(DCode)+'''');
    Open;
    FBanZu:=Trim(Fieldbyname('BanZu').AsString);
  end;
  {if Trim(FBanZu)='' then
  begin
    Application.MessageBox('班组为空，请设置班组！','提示',0);
    Exit;
  end;  }
  APID.SetFocus;
  {if CommOpen(frmMJManageNewFDNewSF.Handle,pchar(PortNoStr),500,1)<1 then
  begin
    FCK:=1;
    showmessage('串口打开失败!');
  end else
  begin
    FCk:=9;
  end; }
  IF trim(Edit7.Text)='√'then
  IsJsMessage:=true;

  IF trim(fmanage)<>'高权限' then
  begin
    IF ISJCX='2' then
    begin
      OpenCom(JCYDLL);
    end
    else
    IF ISJCX='1' then
    begin
      OpenCom(JCYDLL);
      OpenCom(dllName);
    end
    else
    begin
      OpenCom(dllName);
    end;

    Edit7.Visible:=true;
    Label35.Visible:=true;
  end;
end;
procedure TfrmMJManageNewFDNewSF.InitJP();
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'' 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 TfrmMJManageNewFDNewSF.AddCD(Fbtn:TButton);
begin
  if PState<1 then Exit;
  if Order_MJ.IsEmpty then Exit;
  with CDS_MJCD do
  begin
    Append;
    FieldByName('cdname').Value:=Trim(TButton(Fbtn).Caption);
    Post;
  end;
end;
procedure TfrmMJManageNewFDNewSF.AddCDNew(Fbtn:TSpeedButton);
begin
  with CDS_MJCD do
  begin
    Append;
    FieldByName('cdname').Value:=Trim(TSpeedButton(Fbtn).Hint);
    Post;
  end;
end;
procedure TfrmMJManageNewFDNewSF.AddSL(Fbtn:TButton);
begin
  if PState<1 then Exit;
  if Order_MJ.IsEmpty then Exit;

  //if MJMaoZ.Focused then
  if FInt=4 then Exit;
  if CDS_MJCD.IsEmpty=False then
  begin
    FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName;
    if Trim(FColumn)<>'' then
    begin
      with CDS_MJCD do
      begin
        Edit;
        FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption);
        if Trim(fieldbyname('CDQtyS').AsString)<>'' then
          Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString);
        Post;
      end;
    end;
  end;
end;
procedure TfrmMJManageNewFDNewSF.AddSLNew(Fbtn:TSpeedButton);
begin
  if PState<1 then Exit;
  if Trim(FAPID)='' then Exit;

  //if MJMaoZ.Focused then
  if FInt=4 then Exit;
  if FInt=11 then
  begin
    if TSpeedButton(Fbtn).Tag=9 then Exit;
    Edit1.Text:=Trim(Edit1.Text)+Trim(TSpeedButton(Fbtn).Caption);
    Edit1.SelectAll;
  end else
  if FInt=12 then
  begin
    if TSpeedButton(Fbtn).Tag=9 then Exit;
    Edit2.Text:=Trim(Edit2.Text)+Trim(TSpeedButton(Fbtn).Caption);
    Edit2.SelectAll;
  end;{ else
  if CDS_MJCD.IsEmpty=False then
  begin
    FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName;
    if Trim(FColumn)<>'' then
    begin
      with CDS_MJCD do
      begin
        Edit;
        FieldByName(FColumn).Value:=Trim(FieldByName(FColumn).AsString)+Trim(TButton(Fbtn).Caption);
        if Trim(fieldbyname('CDQtyS').AsString)<>'' then
          Fieldbyname('CDQty').Value:=Trim(fieldbyname('CDQtyS').AsString);
        Post;
      end;
    end;
  end; }
end;

procedure TfrmMJManageNewFDNewSF.Tv2CellDblClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  //if Tv2.OptionsSelection.CellSelect=True then
  if CDS_MJCD.IsEmpty then Exit;

  if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then
  begin
    if Application.MessageBox('确定要删除数据吗？','提示',32+4)<>IDYES then Exit;
    CDS_MJCD.Delete;
  end;

end;

procedure TfrmMJManageNewFDNewSF.MJMaoZClick(Sender: TObject);
begin
  FInt:=1;
  FColumn:='';
  panel3.Visible:=True;
end;

procedure TfrmMJManageNewFDNewSF.MJLenClick(Sender: TObject);
begin
  FInt:=2;
  FColumn:='';
  panel3.Visible:=True;
end;

procedure TfrmMJManageNewFDNewSF.MJFKClick(Sender: TObject);
begin
  FInt:=3;
  FColumn:='';
  panel3.Visible:=True;
end;

procedure TfrmMJManageNewFDNewSF.MJBanZuClick(Sender: TObject);
begin
  FInt:=4;
end;

procedure TfrmMJManageNewFDNewSF.MJSJKZClick(Sender: TObject);
begin
  FInt:=4;
end;

procedure TfrmMJManageNewFDNewSF.Tv1CellClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  //DataLink_WFBProducttion.ADOLink.Connected:=False;
  FInt:=4;
 // if PState=1 then Exit;
  InitCDGridID();
  //InitCDGrid();
  {with ADOTmp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+'''');
    Open;
  end;
  if ADOTmp.IsEmpty then
  begin
    MJMaoZ.Text:='';
    MJLen.Text:='';
    MJFK.Text:='';
    MJSJKZ.Text:='';
  end else
    SSetWinData(ADOTmp,Panel5); }
end;

procedure TfrmMJManageNewFDNewSF.Tv3CellClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
{  if CDS_MJCD.IsEmpty=False then
  begin
    if Trim(CDS_MJCD.fieldbyname('MJID').AsString)='' then
    begin
      Application.MessageBox('数据未保存,不能浏览数据!','提示',0);
      Exit;
    end;
  end;

  FInt:=4;
  PState:=0;
  InitCDGrid();
  with ADOTmp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from WFB_MJJY where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+'''');
    Open;
  end;
  MJFK.Text:=Trim(ADOTmp.fieldbyname('MJFK').AsString);
  MJSJKZ.Text:=Trim(ADOTmp.fieldbyname('MJSJKZ').AsString);

  MJQty1.Text:=Trim(ADOTmp.fieldbyname('MJQty1').AsString);
  MJQty2.Text:=Trim(ADOTmp.fieldbyname('MJQty2').AsString);
  MJMaoZ.Text:=Trim(ADOTmp.fieldbyname('MJMaoZ').AsString);
  Label15.Caption:=Trim(CDS_MJID.fieldbyname('MJID').AsString);
  MJLen.Text:=Trim(ADOTmp.fieldbyname('MJLen').AsString);
  if Trim(ADOTmp.fieldbyname('MJType').AsString)='正品' then
  begin
    Edit3.Text:='√';
    Edit4.Text:='';
    Edit5.Text:='';
  end else
  if Trim(ADOTmp.fieldbyname('MJType').AsString)='次品' then
  begin
    Edit4.Text:='√';
    Edit3.Text:='';
    Edit5.Text:='';
  end else
  if Trim(ADOTmp.fieldbyname('MJType').AsString)='留样' then
  begin
    Edit4.Text:='';
    Edit3.Text:='';
    Edit5.Text:='√';
  end;
  BtnStatus(False);
  Label16.Caption:='';}
end;


procedure TfrmMJManageNewFDNewSF.FormClick(Sender: TObject);
begin
  FInt:=4;
end;

procedure TfrmMJManageNewFDNewSF.Button12Click(Sender: TObject);
var
  fsj:string;
begin
  if PState<1 then Exit;
  if Trim(FAPID)='' then Exit;
  if FInt=4 then Exit;
  begin
    FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName;
    if Trim(FColumn)<>'' then
    begin
      if Trim(CDS_MJCD.FieldByName(FColumn).AsString)<>'' then
      begin
        with CDS_MJCD do
        begin
          Edit;
          if Length(CDS_MJCD.FieldByName(FColumn).AsString)=1 then
          begin
            FieldByName(FColumn).Value:=null ;
            FieldByName('CDQty').Value:=0;
          end
          else
          begin
            FieldByName(FColumn).Value:=Copy(Trim(FieldByName(FColumn).AsString),1,Length(Trim(FieldByName(FColumn).AsString))-1);
            FieldByName('CDQty').Value:=FieldByName(FColumn).Value;
          end;
          Post;
        end;
      end;

      
    end;
  end;
end;

function  TfrmMJManageNewFDNewSF.SaveData():Boolean;
var
  maxno,FMJID,BZID,strsql:String;
  FMJLen:Double;
  FOrder:Integer;
begin
  BTPrint.Enabled:=false;
  Timer2.Enabled:=true; 
  if PState=1 then
      FMJID:=''
  else if PState=2 then
     FMJID:=Trim(CDS_MJID.fieldbyname('MJID').AsString)
  else if PState<1 then Exit;
  try

    IF trim(fmanage)<>'高权限' then
    begin
      IF fRollType='按缸号生成'then
      begin
        with ADOCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('select maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.OrdsubIDCK and X.MJStr4=A.gangNo),0)');
          sql.Add('from CK_SXPB_CR A');
          sql.Add('where A.SPID='''+Trim(FAPID)+'''');
          Open;
          MJXH.Text:=Trim(fieldbyname('maxRoll').AsString);
        end;
      end
      else
      begin
        with ADOCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('select maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.OrdsubIDCK),0)');
          sql.Add('from CK_SXPB_CR A');
          sql.Add('where A.SPID='''+Trim(FAPID)+'''');
          Open;
          MJXH.Text:=Trim(fieldbyname('maxRoll').AsString);
        end;
      end;
    end;


    ADOCmd.Connection.BeginTrans;


    ///保存主表
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      SQL.Add('select * from WFB_MJJY where MJId='''+Trim(FMJID)+'''');
      Open;
    end;
    with ADOCmd do
    begin
      if Trim(FMJID)='' then
      begin
        Append;
        if GetLSNo(ADOTmp,maxno,Trim(SCXFlag),'WFB_MJJY',4,1)=False then
        begin
          ADOCmd.Connection.RollbackTrans;
          Application.MessageBox('生成流水号异常！','提示',0);
          exit;
        end;
      end
      else begin
        maxno:=Trim(FMJID);
        Edit;
      end;
      FieldByName('MainId').value:=Trim(FMainId);
      FieldByName('SubId').value:=Trim(FSubId);
      FieldByName('APId').value:=Trim(FAPID);
      FieldByName('MJID').Value:=Trim(maxno);
      FieldByName('MJStr2').Value:='未入库';
      FieldByName('MJBanZu').Value:=Trim(FBanZu);
      FieldByName('MJstr3').Value:=Trim(MJstr3.Text);
      FieldByName('MJstr4').Value:=Trim(MJstr4.Text);
      FieldByName('mjxh').Value:=Trim(mjxh.Text);
      FieldByName('MJTypeOther').Value:=Trim(Label9.Caption);
      FieldByName('MJStr1').Value:=Trim(Label13.Caption);
      FieldByName('MJLen').Value:=StrToFloatdef(trim(MJLen.Text),0);
      FieldByName('MJQty1').Value:=StrToFloatdef(trim(MJQty1.Text),0);
      FieldByName('MJQty2').Value:=StrToFloatdef(trim(MJQty2.Text),0);
      FieldByName('MJQty3').Value:=StrToFloatdef(trim(MJQty3.Text),0);
      FieldByName('MJQty4').Value:=StrToFloatdef(trim(MJQty4.Text),0);
      FieldByName('MKXS').Value:=StrToFloatdef(trim(MKXS.Text),0);

      FieldByName('MJFK').Value:=StrToFloatdef(trim(MJFK.Text),0);
      FieldByName('MJSJKZ').Value:=StrToFloatdef(trim(MJSJKZ.Text),0);
      FieldByName('MJMaoZ').Value:=StrToFloatdef(trim(MJMaoZ.Text),0);
      if Trim(Edit3.Text)<>'' then
      begin
        FieldByName('MJType').Value:='正品';
      end;
      if Trim(Edit4.Text)<>'' then
      begin
        FieldByName('MJType').Value:='次品';
      end;
      if Trim(Edit5.Text)<>'' then
      begin
        FieldByName('MJType').Value:='多拼';
      end;

      FieldByName('MJStr1').Value:=Trim(Label13.Caption);

      if Trim(FMJID)='' then
      begin
        FieldByName('Filler').Value:=Trim(DName);
      end else
      begin
        FieldByName('Editer').Value:=Trim(DName);
        FieldByName('EditTime').Value:=SGetServerDateTime(ADOTmp);
      end;
      if Trim(SCXFlag)<>'' then
      begin
        FieldByName('JTType').Value:=Trim(SCXFlag);
      end;

      FieldByName('MJTypeOther').Value:=Trim(Label9.Caption);
      Post;
    end;
    IF trim(fmanage)<>'高权限' then
    begin
      IF FRollType='按缸号生成'then
      begin
        with ADOCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=WFB_MJJY.subID and X.mjstr4=WFB_MJJY.mjstr4 and X.MJID<>WFB_MJJY.MJID),0)');
          sql.Add('where MJID='''+Trim(maxno)+'''');
          execsql;
        end;
      end
      else
      begin
        with ADOCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=WFB_MJJY.subID and X.MJID<>WFB_MJJY.MJID),0)');
          sql.Add('where MJID='''+Trim(maxno)+'''');
          execsql;
        end;
      end;
      with ADOCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('select MJXH from WFB_MJJY');
        sql.Add('where MJID='''+Trim(maxno)+'''');
        open;
        If not IsEmpty then
        begin
          MJXH.Text:=fieldbyname('mjxh').AsString;
        end;
      end;
    end
    else
    begin
      with ADOCmd do
      begin
      Close;
      sql.Clear;
      sql.Add('select MainId ');
      sql.Add('from WFB_MJJY A ');
      sql.Add('where A.subID='''+Trim(FSubId)+''' ');
      sql.Add(' and Mjstr4='+quotedstr(trim(mjstr4.Text)));
      sql.add(' and MJID<>'''+Trim(maxno)+'''  and mjxh='''+Trim(mjxh.Text)+''' ');
      Open;
      end;
      IF not ADOCmd.IsEmpty then
      begin
        ADOCmd.Connection.RollbackTrans;
        Application.MessageBox('卷号重复！','提示',0);
        Exit;
      end;
    end;

    FMJID:=Trim(maxno);
    FFFMJID:=Trim(maxno);
    ///保存母卷疵点表
    with CDS_MJCD do
    begin
      First;
      while not Eof do
      begin
        if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then
        begin
          if GetLSNo(ADOTmp,maxno,'MC','WFB_MJJY_CD',5,1)=False then
          begin
            ADOCmd.Connection.RollbackTrans;
            Application.MessageBox('取子流水号失败！','提示',0);
            Exit;
          end;
        end else
        begin
          maxno:=Trim(CDS_MJCD.fieldbyname('MCID').AsString);
        end;
        with ADOCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from WFB_MJJY_CD  ');
          sql.Add(' where MCID='''+Trim(maxno)+'''');
          Open;
        end;
        with ADOCmd do
        begin
          if Trim(CDS_MJCD.fieldbyname('MCID').AsString)='' then
            Append
          else
            Edit;
          FieldByName('MJId').Value:=Trim(FMJID);
          FieldByName('MCID').Value:=Trim(maxno);
          SSetSaveDataCDSNew(ADOCmd,Tv2,CDS_MJCD,'WFB_MJJY_CD',0);
          FieldByName('KouFenType').Value:=CDS_MJCD.fieldbyname('KouFenType').Value;
          Post;
        end;
        CDS_MJCD.Edit;
        CDS_MJCD.FieldByName('MCID').Value:=Trim(maxno);
        Next;
      end;
    end;
    with CDS_MJID do
    begin
      Append;
      FieldByName('MJID').Value:=Trim(FMJID);
      Post;
    end;
    with ADOCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update WFB_MJJY SET CDList= dbo.F_Get_Order_SubStr(MJID,''MJCDHZSL'')');
      sql.Add('where MJID='''+Trim(FMJID)+''' ');
      execsql;
    end;

    if (Trim(Edit4.Text)<>'') OR (Trim(Edit5.Text)<>'') then
    begin
      IF not saveRK(FMJID) then
      begin
        ADOCmd.Connection.RollbackTrans;
        Application.MessageBox('保存失败！','提示',0);
        exit;
      end;
    end;
   

    ADOCmd.Connection.CommitTrans;
    with ADOCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update WFB_MJJY SET HXFlag=1 ');
      sql.Add('FROM WFB_MJJY A ');
      sql.Add('inner join CK_SXPB_CR B on B.SPID=A.APID and B.CRFlag=''出库'' ');
      sql.Add('inner join CK_SXPB_CR C on C.SPID=B.FZSPID and C.CRFlag=''入库'' ');
      sql.Add('where C.CRType=''回修完成'' and HXFlag=0 ');
      execsql;
    end;
    Result:=True;
    PState:=0;
  except
    Result:=False;
    ADOCmd.Connection.RollbackTrans;
    Application.MessageBox('保存失败！','提示',0);
  end;
end;

procedure TfrmMJManageNewFDNewSF.BTAddClick(Sender: TObject);
begin
  if Trim(Label24.Caption)='' then Exit;


  PState:=1;
  InitCDGridID();
  InitCDGrid();
  BtnStatus(True);
  Label16.Caption:='新增';
end;

procedure TfrmMJManageNewFDNewSF.BTEditClick(Sender: TObject);
begin
  if CDS_MJID.IsEmpty then Exit;
  PState:=2;
  Label16.Caption:='修改';
end;

procedure TfrmMJManageNewFDNewSF.BTPrintClick(Sender: TObject);
var
  fPrintFile:String;
  mvalue:Double;
  i:Integer;

begin
  fmjlen:=trim(MJlen.Text);
  IF ISJCX<>'2' then
  begin
    if trim(MJMaoZ.Text)='' then
    begin
      application.MessageBox('毛重不能为空！','提示信息',0);
      exit;
    end;
    if trim(MJLen.Text)='' then
    begin
      application.MessageBox('长度不能为空！','提示信息',0);
      exit;
    end;
    if strtofloatdef(trim(MJQty4.Text),0)>70 then
    begin
      application.MessageBox('重量不能大于70KG！','提示信息',0);
      exit;
    end;
    if fzsType='公斤'then
    begin
      if strtofloatdef(trim(MJQty2.Text),0)>5.0 then
      begin
        application.MessageBox(pchar('赠送重量不能超过15'+Label9.caption),'提示信息',0);
        exit;
      end;
    end
    else
    begin
      if strtofloatdef(trim(MJQty2.Text),0)>15.0 then
      begin
        application.MessageBox(pchar('赠送长度不能超过15'+Label9.caption),'提示信息',0);
        exit;
      end;
    end;

    if strtofloatdef(trim(MKXS.Text),0)>10.0 then
    begin
      application.MessageBox('换算系数不能大于10！','提示信息',0);
      exit;
    end;
    if (trim(MJMaoZ.Text)='') and (trim(MJQty4.Text)='')  then
    begin
      Application.MessageBox('净重，毛重不能都为空!','提示',0);
      Exit;
    end;
    if strtofloatdef(trim(MJQty4.Text),0)<0.00 then
    begin
      application.MessageBox('重量不能小于0！','提示信息',0);
      exit;
    end;
    if strtofloatdef(trim(MJLen.Text),0)<0.00 then
    begin
      Application.MessageBox('长度不能小于0！','提示信息',0);
      exit;
    end;
  end
  else
  begin
    If strtofloatdef(trim(mjlen.Text),0)<=0 then
    begin
      Application.MessageBox('长度不能为空或者零','提示信息',MB_IConerror);
      exit;
    end;
  end;

  if trim(MJQty4.Text)='' then
  begin
    MJQty4.Text:=floattostr(strtofloatdef(trim(MJMaoZ.Text),0)-strtofloatdef(trim(MJQty3.Text),0) );
  end;

  if trim(MJQty3.Text)='' then
   MJQty3.Text:=floattostr(strtofloatdef(trim(MJMaoZ.Text),0)-strtofloatdef(trim(MJQty4.Text),0) );

  if Trim(FAPID)='' then Exit;
  if FInt=4  then
  begin
    if CDS_MJID.IsEmpty=False then
    begin
      Application.MessageBox('已打过条码？请尝试重打。','提示',0);
      Exit;
    end;
  end;

  IF trim(Label9.Caption)='' then
  begin
    Application.MessageBox('长度单位不能为空!','提示',0);
    Exit;
  end;

  if Trim(MJQty1.Text)<>'' then
  begin
    if TryStrToFloat(MJQty1.Text,mvalue)=False then
    begin
      Application.MessageBox('原码录入错误!','提示',0);
      Exit;
    end;
  end;

  if Trim(MJFK.Text)<>'' then
  begin
    if TryStrToFloat(MJFK.Text,mvalue)=False then
    begin
      Application.MessageBox('幅宽录入错误!','提示',0);
      Exit;
    end;
  end;
  if Trim(MJMaoZ.Text)<>'' then
  begin
    if TryStrToFloat(MJMaoZ.Text,mvalue)=False then
    begin
      Application.MessageBox('重量录入错误!','提示',0);
      Exit;
    end;
  end;
  if Trim(MJSJKZ.Text)<>'' then
  begin
    if TryStrToFloat(MJSJKZ.Text,mvalue)=False then
    begin
      Application.MessageBox('克重录入错误!','提示',0);
      Exit;
    end;
  end;
  if Trim(MJQty2.Text)<>'' then
  begin
    if TryStrToFloat(MJQty2.Text,mvalue)=False then
    begin
      Application.MessageBox('赠送米数录入错误!','提示',0);
      Exit;
    end;
  end;

  if PState=1 then
  begin
 //   if Application.MessageBox('是否要打印条码？打印后数据将不能修改！','提示',32+4)<>IDYES then Exit;
  end;
  if SaveData() then
  begin
    //BtnStatus(False);
    //MJFK.Text:='';
    //MJSJKZ.Text:='';
    MJLen.Text:='';
    MJMaoZ.Text:='';
    MJQty1.Text:='';
    MJQty2.Text:='';
    //MJSJKZ.Text:='';
    Label15.Caption:='';
    //MJQty3.Text:='';
    MJQty4.Text:='';
    Edit3.Text:='√';
    Edit4.Text:='';
    Edit5.Text:='';
    Label_KF.Caption:='';
    MJXH.Text:=inttostr(strTointdef(trim(MJXH.Text),0)+1);
  end;
  if Trim(Edit6.Text)='√' then
  begin
    PrtData(FFFMJID);
  end;
  Label16.Caption:='';
  BTAdd.Click;
  MJMaoZ.SetFocus;
end;
procedure TfrmMJManageNewFDNewSF.PrtData(FMJID:String);
var
   fPrintFile:String;
   Txt,fImagePath:string;
   Moudle: THandle;
   Makebar:TMakebar;
   Mixtext:TMixtext;
begin
  with ADOQueryPrint do
  begin
    Close;
    SQL.Clear;
    sql.Add('select QtyUnit=A.MJTypeOther,B.orderNo,B.conNo,D.GangNo,PRTColorEng=E.Note,B.LBName,B.NLBName ');
    sql.Add(',khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=B.conNO) ');
    sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)');
    sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.SOrddefstr4,B.MPRTCodeName,B.MPRTSpec,B.MPRTKuanNO,D.note as AOrdDefNote1,C.*,A.* ');
    sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty');
    sql.Add(' from WFB_MJJY A') ;
    sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid');
    sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId');
    sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' ');
    sql.Add(' inner join CK_SXPB_CR D on A.APId=D.SPId ');
    SQL.Add(' where A.MJID='''+Trim(FMJID)+'''');
    Open;
  end;

  try
      Moudle:=LoadLibrary('MakeQRBarcode.dll');
      @Makebar:=GetProcAddress(Moudle,'Make');
      @Mixtext:=GetProcAddress(Moudle,'MixText');
      Txt:=Trim(ADOQueryPrint.fieldbyname('MJID').AsString);
      fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ;
      if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then
          CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil);
      if FileExists(fImagePath) then DeleteFile(fImagePath);
      Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3);
  except
      application.MessageBox('条形码生成失败！','提示信息',MB_ICONERROR);
      exit;
  end;

  if Trim(ADOQueryPrint.fieldbyname('LBName').AsString)<>'' then
    fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LBName').AsString)+'.rmf'
  else
    fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\通用英文标签.rmf' ;
  if FileExists(fPrintFile) then
  begin
    RMVariables['QRBARCODE']:=fImagePath;
    RM2.LoadFromFile(fPrintFile);
    Rm2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1);
 //   RM2.ShowReport;
    RM2.PrintReport;

    IF Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)<>'' then
    begin
       fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('NLBName').AsString)+'.rmf';
       if FileExists(fPrintFile) then
       begin
         RMVariables['QRBARCODE']:=fImagePath;
         RMVariables['MJLen']:=trim(fmjlen);
      //   RMVariables['jingzhong']:=trim(MJQty4.Text);
         RM3.LoadFromFile(fPrintFile);
         RM3.DefaultCopies:=1;
    //RM2.ShowReport;
         RM3.PrintReport;
       end;
    end;
  end
  else
  begin
    Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LBName').AsString)),'提示',0);
  end;
end;

procedure TfrmMJManageNewFDNewSF.BtnStatus(BSInt:Boolean);
begin
 // Tv2.OptionsSelection.CellSelect:=BSInt;
end;
procedure TfrmMJManageNewFDNewSF.Tv2CDQtyPropertiesEditValueChanged(Sender: TObject);
var
  mvalue:string;
begin
  try
    mvalue:=TcxTextEdit(Sender).EditingText;
    if Trim(mvalue)<>'' then
    begin
      CDS_MJCD.Edit;
      CDS_MJCD.FieldByName('CDQty').Value:=mvalue;
      CDS_MJCD.Post;
    end else
    begin
      CDS_MJCD.Edit;
      CDS_MJCD.FieldByName('CDQty').Value:=0;
      CDS_MJCD.Post;
    end;
    CDS_MJCD.Edit;
    CDS_MJCD.FieldByName('CDQtyS').Value:=mvalue;
  except
    Application.MessageBox('非法数字！','提示',0);
  end;
end;

procedure TfrmMJManageNewFDNewSF.SpeedButton1Click(Sender: TObject);
var
  fsj:string;
begin
  fsj:=Trim(TSpeedButton(Sender).Hint);
  if Trim(fsj)='' 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 TfrmMJManageNewFDNewSF.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 TfrmMJManageNewFDNewSF.SpeedButton13Click(Sender: TObject);
var
  i:Integer;
begin
  if Trim(Label24.Caption)='' then Exit;
  if Label24.Visible=False then Exit;
  {with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Order_JYResult where APID='''+Trim(FAPID)+'''');
    Open;
  end;
  if ADOTmp.IsEmpty then
  begin
    Application.MessageBox('门幅克重未录入,不能检验!','提示',0);
    Exit;
  end;  }
  if Trim(CDS_MJCD.fieldbyname('MJID').AsString)<>'' then
  begin
    BTAdd.Click;
  end;
  if Trim(Label15.Caption)<>'' then
  begin
    //MJFK.Text:='';
    //MJSJKZ.Text:='';
    MJLen.Text:='';
    MJMaoZ.Text:='';
    MJQty1.Text:='';
    //MJSJKZ.Text:='';
    Label15.Caption:='';

  end;
  if Trim(FAPID)='' then Exit;
  FCDName:=Trim(TSpeedButton(Sender).Hint);
  MovePanel1.Visible:=True;
  Label21.Caption:=Trim(FCDName);
  FInt:=11;
  Edit1.SetFocus;
  //CDQty.SetFocus;
  Panel3.Visible:=True;
  PState:=1;
  with Panel3 do
  begin
    for i:=0 to ControlCount-1 do
    begin
      if Controls[i] is TSpeedButton then
      begin
        TSpeedButton(Controls[i]).Hint:=Trim(Edit1.Name);
      end;
    end;
  end;

end;

procedure TfrmMJManageNewFDNewSF.cxGridDBColumn2PropertiesChange(Sender: TObject);
var
  fsj:String;
begin

  fsj:=Trim(Order_MJ.fieldbyname('SubId').AsString);
  Order_MJ.DisableControls;
  with Order_MJ do
  begin
    First;
    while not Eof do
    begin
      if Trim(Order_MJ.fieldbyname('SubId').AsString)<>fsj then
      begin
        Edit;
        FieldByName('SSel').Value:=False;
      end;
      Next;
    end;
  end;
  Order_MJ.EnableControls;
  Order_MJ.Locate('SubId',fsj,[]);
end;

procedure TfrmMJManageNewFDNewSF.Button1Click(Sender: TObject);
var
  mvalue:Double;
begin
 { if Trim(Edit1.Text)='' then
  begin
    Application.MessageBox('位置不能为空！','提示',0);
    exit;
  end;  }
  if Trim(Edit1.Text)<>'' then
  begin
    if Trim(Edit2.Text)<>'' then
    begin
      if StrToFloat(Edit2.Text)<StrToFloat(Edit1.Text) then
      begin
        Application.MessageBox('疵点位置录入错误!','提示',0);
        Exit;
      end;
    end;
  end;
  if CDQty.Text<>'' then
  begin
    if TryStrToFloat(CDQty.Text,mvalue)=False then
    begin
      Application.MessageBox('非法数字!','提示',0);
      Exit;
    end;
  end;
  with CDS_MJCD do
  begin
    Append;
    FieldByName('cdname').Value:=Trim(FCDName);
    FieldByName('CDbeg').Value:=Trim(Edit1.Text);
    FieldByName('CDEnd').Value:=Trim(Edit2.Text);
    FieldByName('KouFenQty').Value:=0;
    if RadioGroup1.ItemIndex>-1 then
      FieldByName('KouFenType').Value:=RadioGroup1.Items.Strings[RadioGroup1.ItemIndex];
    if RadioGroup1.ItemIndex>-1 then
    begin
      if RadioGroup1.ItemIndex<3 then
      begin
        FieldByName('KouFenQty').Value:=RadioGroup1.ItemIndex+1;
      end
      else
      begin
        FieldByName('KouFenQty').Value:=4;
      end;
    end;
    IF Trim(FCDName)='测幅宽' then
    FieldByName('KouFenQty').Value:=0;
    IF Trim(FCDName)='测副宽' then
    FieldByName('KouFenQty').Value:=0;
    FieldByName('CDQty').Value:=StrToFloatdef(trim(CDQty.Text),0);
    {if Trim(Edit2.Text)<>'' then
    begin
      FieldByName('CDQty').Value:=StrToFloat(Edit2.Text)-StrToFloat(Edit1.Text);
    end else
    begin
      FieldByName('CDQty').Value:=0;
    end; }

    Post;
  end;
  Edit1.Text:='';
  Edit2.Text:='';
  CDQty.Text:='';
  MovePanel1.Visible:=False;
  Panel3.Visible:=False;
end;

procedure TfrmMJManageNewFDNewSF.Button4Click(Sender: TObject);
begin
  Edit1.Text:='';
  Edit2.Text:='';
  CDQty.Text:='';
  MovePanel1.Visible:=False;
  Panel3.Visible:=False;
end;

procedure TfrmMJManageNewFDNewSF.ToolButton1Click(Sender: TObject);
begin
  //InitGrid();
  InitJP();
end;

procedure TfrmMJManageNewFDNewSF.Button5Click(Sender: TObject);
var
   fPrintFile:String;
   i:Integer;
begin
  if CDS_MJID.IsEmpty then Exit;
  CDS_MJID.Last;
  with ADOCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('Update WFB_MJJY Set PrtAgnFlag=1,PrtAgnDate=getdate(),PrtAgnPerson='''+Trim(DName)+'''');
    sql.Add(' where MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+'''');
    ExecSQL;
  end;

  PrtData(Trim(CDS_MJID.fieldbyname('MJID').AsString));

  PState:=1;
  MJLen.Text:='';
  MJMaoZ.Text:='';
  MJQty1.Text:='';
  MJQty2.Text:='';
  Label15.Caption:='';
  MJQty4.Text:='';
  Edit3.Text:='√';
  Edit4.Text:='';
  Edit5.Text:='';
  BTAdd.Click;
  FInt:=11;
 { with ADOQueryPrint do
  begin
    Close;
    SQL.Clear;
    with ADOQueryPrint do
    begin
      Close;
      SQL.Clear;
      sql.Add('select A.MJID,A.MJXH,A.mjstr3,QtyUnit=A.MJTypeOther,B.orderNo,GangNo=D.AOrddefStr1,PRTColorEng=E.Note,B.LBName ');
      sql.Add(',case when MJQty2>0 then Cast(MJLen as varchar(20))+''+''+Cast(MJQty2 as varchar(20)) else Cast(MJLen as varchar(20)) end as Qty   ');
      sql.Add(',MPRTCodeNameEng=ISNULL((select Top 1 F.note from KH_Zdy F where F.zdyname=B.MPRTCodeName and F.Type=''PRTCodeName''),B.MPRTCodeName)');
      sql.Add(',B.MPRTCF,B.MPRTMF,B.MPRTKZ,C.SOrddefstr4,B.MPRTCodeName,C.*,A.* ');
      sql.Add(',Case when A.MJSJKZ*A.MJFK<>0 then Cast(A.MJQty4*1000/A.MJSJKZ/(A.MJFK/100) as int) else 0 end as MQty');
      sql.Add(' from WFB_MJJY A') ;
      sql.Add(' inner join JYOrder_Main B On A.Mainid=B.Mainid');
      sql.Add(' inner join JYOrder_Sub C on A.SubId=C.SubId');
      sql.Add(' left join KH_Zdy E on C.PRTColor=E.ZdyName and E.Type=''OrdColor'' ');
      sql.Add(' inner join JYOrder_Sub_AnPai D on A.APId=D.APId ');
      SQL.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+'''');
      Open;
    end;
    //SQL.Add(' where A.MJID='''+Trim(CDS_MJID.fieldbyname('MJID').AsString)+'''');
    //Open;
  end;
  if Trim(ADOQueryPrint.fieldbyname('LBName').AsString)<>'' then
    fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LBName').AsString)+'.rmf'
  else
    fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\通用英文标签.rmf' ;
  if FileExists(fPrintFile) then
  begin
    RM2.LoadFromFile(fPrintFile);
    //RM2.ShowReport;
    RM2.PrintReport;
  end else
  begin
    Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\卷标签.rmf'),'提示',0);
  end; }

end;

procedure TfrmMJManageNewFDNewSF.SpeedButton49Click(Sender: TObject);
begin
  Panel3.Visible:=False;
end;

procedure TfrmMJManageNewFDNewSF.APIDKeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
  begin
    with ADOTmp do
    begin
      close;
      sql.Clear;
      sql.Add('select Orddefstr14,Orddefstr15 from JYOrder_Main A');
      sql.Add('where exists(select SPID from CK_SXPB_CR X where X.OrdMainIDCK=A.MainID and X.SPID='''+Trim(APID.Text)+''' )');
      open;
    end;
    if not ADOTmp.IsEmpty then
    begin
      fRollType:=trim(ADOTmp.fieldbyname('Orddefstr15').AsString);
      fZSType:=trim(ADOTmp.fieldbyname('Orddefstr14').AsString);
    end;
    with ADOTmp do
    begin
      Close;
      sql.Clear;
      sql.Add('select A.*,B.MPRTBZNote,B.MPRTYaoFeng,B.MPRTTangJin,B.MPRTJiBenNote,B.MPRTTeBieNote,B.MPRTKaiJian  ');
      sql.Add(',B.MPRTMF,B.MPRTKZ,');
      SQL.Add('OrderNoM=(select OrderNo from JYOrder_Main B where B.Mainid=A.OrdMainIDCK),');
      SQL.Add('PRTColor=(select PRTColor from JYOrder_Sub B where B.Subid=A.OrdsubIDCK), ');
      sql.Add('PiZhong=(select PiZhong from JYOrder_Main B where B.Mainid=A.OrdMainIDCK),');
      IF trim(fRollType)='按缸号生成'then
      sql.Add('maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.OrdsubIDCK and X.MJStr4=A.GangNo),0)')
      else
      sql.Add('maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.OrdsubIDCK),0)');
      sql.Add('from CK_SXPB_CR A');
      SQL.Add('inner join JYOrder_Main B on A.OrdMainIDCK=B.MainId');
      sql.Add('where SPID='''+Trim(APID.Text)+'''');
      Open;
    end;
    if ADOTmp.IsEmpty=False then
    begin
      Label2.Visible:=True;
      Label2.Caption:=Trim(ADOTmp.fieldbyname('gangNo').AsString);
      Label24.Visible:=True;
      Label24.Caption:=Trim(ADOTmp.fieldbyname('OrderNoM').AsString);
      Label25.Visible:=True;
      Label25.Caption:=Trim(ADOTmp.fieldbyname('PRTColor').AsString);
      FAPID:=Trim(APID.Text);
      FMainId:=Trim(ADOTmp.fieldbyname('OrdMainIDCK').AsString);
      FSubId:=Trim(ADOTmp.fieldbyname('OrdsubIDCK').AsString);
      MJXH.Text:= Trim(ADOTmp.fieldbyname('maxRoll').AsString);
      MKXS.Text:=Trim(ADOTmp.fieldbyname('Xs').AsString);
      MJstr4.Text:=Trim(ADOTmp.fieldbyname('gangNo').AsString);
      //AOrdDefNote1.Text:=Trim(ADOTmp.fieldbyname('AOrdDefNote1').AsString);
      AOrdDefNote1.Text:='包装要求:'+Trim(ADOTmp.fieldbyname('MPRTBZNote').AsString)+#13
                        +'封条:'+Trim(ADOTmp.fieldbyname('MPRTYaoFeng').AsString)+#13
                        +'烫金:'+Trim(ADOTmp.fieldbyname('MPRTTangJin').AsString)+#13
                        +'开剪:'+Trim(ADOTmp.fieldbyname('MPRTKaiJian').AsString)+#13
                        +'门幅:'+Trim(ADOTmp.fieldbyname('MPRTMF').AsString)+#13
                        +'克重:'+Trim(ADOTmp.fieldbyname('MPRTKZ').AsString)+#13
                        +'基本要求:'+Trim(ADOTmp.fieldbyname('MPRTJiBenNote').AsString)+#13
                        +'特别提示:'+Trim(ADOTmp.fieldbyname('MPRTTeBieNote').AsString);
      MJQty3.Text:=Trim(ADOTmp.fieldbyname('PiZhong').AsString);
    {  if Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString)='KG' OR
         Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString)='G'  OR
         Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString)='公斤' OR
         Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString)='斤' then
      begin
       Label4.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString);
      end;}
      if Trim(ADOTmp.fieldbyname('defstr1').AsString)<>'' then
      begin
        Label9.Caption:=Trim(ADOTmp.fieldbyname('defstr1').AsString);
        Label19.Caption:=Label9.Caption;
        Label20.Caption:=Label9.Caption;
        Label7.Caption:=Label9.Caption;
      end;
      Label13.Caption:=Trim(ADOTmp.fieldbyname('QtyUnit').AsString);
      if ADOTmp.FieldByName('defflt1').Value>0 then
        MJFK.Text:=Trim(ADOTmp.fieldbyname('defflt1').AsString);
      if ADOTmp.FieldByName('defflt2').Value>0 then
        MJSJKZ.Text:=Trim(ADOTmp.fieldbyname('defflt2').AsString);
   //   Label19.Caption:=Trim(Label9.Caption);
   //   Label20.Caption:=Trim(Label9.Caption);
   //   Label7.Caption:=Trim(Label9.Caption);
    end else
    begin
      Application.MessageBox('条码错误!','提示',0);
      Label2.Visible:=False;
      Label2.Caption:='';
      APID.Text:='';
      FAPID:='';
      FMainId:='';
      FSubId:='';
      AOrdDefNote1.Text:='';
      Exit;
    end;
    {if Trim(SCXFlag)<>Trim(ADOTmp.fieldbyname('AOrdDefNote29').AsString) then
    begin
      APID.Text:='';
      if Application.MessageBox('分配机台与当前机台不一致,'+#13+'是否继续检验？','提示',32+4)<>IDYES then
      begin
        Label2.Visible:=False;
        Label2.Caption:='';
        FAPID:='';
        FMainId:='';
        FSubId:='';
        Exit;
      end;

    end; }
    APID.Text:='';
    BTAdd.Click;
      MJMaoZ.SetFocus;
  end;
end;

procedure TfrmMJManageNewFDNewSF.Edit1Click(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 TfrmMJManageNewFDNewSF.Edit2Change(Sender: TObject);
var
  mvalue:Double;
begin
  if Trim(Edit1.Text)<>'' then
  begin
    if TryStrToFloat(Edit1.Text,mvalue)=False then
    begin
      Application.MessageBox('非法数字!','提示',0);
      Exit;
    end;
  end else
  begin
    Exit;
  end;
  if Trim(Edit2.Text)<>'' then
  begin
    if TryStrToFloat(Edit2.Text,mvalue)=False then
    begin
      Application.MessageBox('非法数字!','提示',0);
      Exit;
    end;
  end else
  begin
    Exit;
  end;
  CDQty.Text:=FloatToStr(StrToFloat(Edit2.Text)-StrToFloat(Edit1.Text));
end;

procedure TfrmMJManageNewFDNewSF.Edit3Click(Sender: TObject);
begin
  if Trim(Edit3.Text)='' then
  begin
    Edit3.Text:='√';
    Edit4.Text:='';
    Edit5.Text:='';
  end else
  begin
    Edit3.Text:='';
    Edit4.Text:='√';
    Edit5.Text:='';
  end;
end;

procedure TfrmMJManageNewFDNewSF.Edit4Click(Sender: TObject);
begin
  if Trim(Edit4.Text)='' then
  begin
    Edit4.Text:='√';
    Edit3.Text:='';
    Edit5.Text:='';
  end else
  begin
    Edit4.Text:='';
    Edit3.Text:='√';
    Edit5.Text:='';
  end;
end;

procedure TfrmMJManageNewFDNewSF.Edit5Click(Sender: TObject);
begin
  if Trim(Edit5.Text)='' then
  begin
    Edit5.Text:='√';
    Edit3.Text:='';
    Edit4.Text:='';
  end else
  begin
    Edit5.Text:='';
    Edit3.Text:='√';
    Edit4.Text:='';
  end;
end;

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

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

procedure TfrmMJManageNewFDNewSF.MJQty3Exit(Sender: TObject);
begin
  if (trim(MJMaoZ.Text)='') and (trim(MJQty4.Text)='') then exit;
  if (trim(MJMaoZ.Text)='') and (trim(MJQty3.Text)='') then exit;
  if (trim(MJQty4.Text)='') and (trim(MJQty3.Text)='') then exit;

  if (trim(MJQty3.Text)='') then exit;

  if (trim(MJQty4.Text)<>'') then
  begin
    MJMaoZ.Text:=floattostr(strtofloatdef(trim(MJQty3.Text),0)+strtofloatdef(trim(MJQty4.Text),0) );
    exit;
  end;

end;

procedure TfrmMJManageNewFDNewSF.MJMaoZExit(Sender: TObject);
begin
  if (trim(MJMaoZ.Text)='') and (trim(MJQty4.Text)='') then exit;
  if (trim(MJMaoZ.Text)='') and (trim(MJQty3.Text)='') then exit;
  if (trim(MJQty4.Text)='') and (trim(MJQty3.Text)='') then exit;

  if (trim(MJQty3.Text)='') then exit;

  if (trim(MJMaoZ.Text)<>'') then
  begin
    MJQty4.Text:=floattostr(strtofloatdef(trim(MJMaoZ.Text),0)-strtofloatdef(trim(MJQty3.Text),0) );
    exit;
  end;
end;

procedure TfrmMJManageNewFDNewSF.Label9Click(Sender: TObject);
begin
  if  trim(Label9.Caption)='M' then
  begin
  Label9.Caption:='Y';
  Label19.Caption:='Y';
  Label20.Caption:='Y';
  Label7.Caption:='Y';
  end
  else
  begin
  Label9.Caption:='M';
  Label19.Caption:='M';
  Label20.Caption:='M';
  Label7.Caption:='M';
  end;
end;

procedure TfrmMJManageNewFDNewSF.MJLenExit(Sender: TObject);
begin
  MJQty3.OnExit(self);
end;

procedure TfrmMJManageNewFDNewSF.MJQty4Exit(Sender: TObject);
begin
  if (trim(MJMaoZ.Text)='') and (trim(MJQty4.Text)='') then exit;
  if (trim(MJMaoZ.Text)='') and (trim(MJQty3.Text)='') then exit;
  if (trim(MJQty4.Text)='') and (trim(MJQty3.Text)='') then exit;

  if (trim(MJQty3.Text)='') then exit;

  if (trim(MJQty4.Text)<>'') then
  begin
    MJMaoZ.Text:=floattostr(strtofloatdef(trim(MJQty3.Text),0)+strtofloatdef(trim(MJQty4.Text),0) );
    exit;
  end;
end;

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

procedure TfrmMJManageNewFDNewSF.MJQty4Change(Sender: TObject);
var
  FReal:Double;
begin
  if Trim(MJQty4.Text)='' then
  begin
    MJLen.Text:='';
    MJMaoZ.Text:='';
    Exit;
  end;

  MJMaoZ.Text:=FloatToStr(StrToFloatdef(trim(MJQty4.Text),0)+StrToFloatdef(trim(MJQty3.Text),0));



  IF strtofloatdef(trim(MKXS.Text),0)<>0 then
  begin
    if TryStrToFloat(MKXS.Text,FReal)=true then
    begin
      MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
      IF trim(fzsType)<>'公斤'then
      MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]);
    end;
  end;

end;

procedure TfrmMJManageNewFDNewSF.MJMaoZChange(Sender: TObject);
var
  FReal:Double;
begin
 // if StrToFloat(MJSJKZ.Text)*StrToFloat(MJFK.Text)=0 then Exit;
  if Trim(MJMaoZ.Text)='' then
  begin
    MJLen.Text:='';
    MJQty4.Text:='';
    Exit;
  end;
  MJQty4.Text:=FloatToStr(StrToFloatdef(trim(MJMaoZ.Text),0)-StrToFloatdef(trim(MJQty3.Text),0) );



end;

procedure TfrmMJManageNewFDNewSF.APIDClick(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 TfrmMJManageNewFDNewSF.Button3Click(Sender: TObject);
begin
    with ADOTmp do
    begin
      close;
      sql.Clear;
      sql.Add('select Orddefstr14,Orddefstr15 from JYOrder_Main A');
      sql.Add('where exists(select APID from JYOrder_Sub_AnPai X where X.MainID=A.MainID and X.APID='''+Trim(APID.Text)+''' )');
      open;
    end;
    if not ADOTmp.IsEmpty then
    begin
      fRollType:=trim(ADOTmp.fieldbyname('Orddefstr15').AsString);
      fZSType:= trim(ADOTmp.fieldbyname('Orddefstr14').AsString);
    end;
    with ADOTmp do
    begin
      Close;
      sql.Clear;
      sql.Add('select A.*,B.MPRTBZNote,B.MPRTYaoFeng,B.MPRTTangJin,B.MPRTJiBenNote,B.MPRTTeBieNote,  ');
      sql.add('B.MPRTKaiJian,B.MPRTMF,B.MPRTKZ,');
      SQL.Add('OrderNoM=(select OrderNo from JYOrder_Main B where B.Mainid=A.MainId),');
      SQL.Add('PRTColor=(select PRTColor from JYOrder_Sub B where B.Subid=A.Subid), ');
      sql.Add('PiZhong=(select PiZhong from JYOrder_Main B where B.Mainid=A.MainId),');
      IF trim(fRollType)='按缸号生成'then
      sql.Add('maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.subID and X.MJStr4=A.AOrddefstr1),0)')
      else
      sql.Add('maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.subID),0)');
      sql.Add('from JYOrder_Sub_AnPai A');
      SQL.Add(' inner join JYOrder_Main B on A.MainId=B.MainId');
      sql.Add('where APID='''+Trim(APID.Text)+'''');
      Open;
    end;
    if ADOTmp.IsEmpty=False then
    begin
      Label2.Visible:=True;
      Label2.Caption:=Trim(ADOTmp.fieldbyname('AOrddefStr1').AsString);
      Label24.Visible:=True;
      Label24.Caption:=Trim(ADOTmp.fieldbyname('OrderNoM').AsString);
      Label25.Visible:=True;
      Label25.Caption:=Trim(ADOTmp.fieldbyname('PRTColor').AsString);
      FAPID:=Trim(APID.Text);
      FMainId:=Trim(ADOTmp.fieldbyname('MainId').AsString);
      FSubId:=Trim(ADOTmp.fieldbyname('SubId').AsString);
      MJXH.Text:=Trim(ADOTmp.fieldbyname('maxRoll').AsString);
      AOrdDefNote1.Text:='包装要求:'+Trim(ADOTmp.fieldbyname('MPRTBZNote').AsString)+#13
                        +'封条:'+Trim(ADOTmp.fieldbyname('MPRTYaoFeng').AsString)+#13
                        +'烫金:'+Trim(ADOTmp.fieldbyname('MPRTTangJin').AsString)+#13
                        +'开剪:'+Trim(ADOTmp.fieldbyname('MPRTKaiJian').AsString)+#13
                        +'门幅:'+Trim(ADOTmp.fieldbyname('MPRTMF').AsString)+#13
                        +'克重:'+Trim(ADOTmp.fieldbyname('MPRTKZ').AsString)+#13
                        +'基本要求:'+Trim(ADOTmp.fieldbyname('MPRTJiBenNote').AsString)+#13
                        +'特别提示:'+Trim(ADOTmp.fieldbyname('MPRTTeBieNote').AsString);
      MJQty3.Text:=Trim(ADOTmp.fieldbyname('PiZhong').AsString);
      Label13.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString);
      MJFK.Text:=Trim(ADOTmp.fieldbyname('JYMF').AsString);
      MJSJKZ.Text:=Trim(ADOTmp.fieldbyname('JYKZ').AsString);
      MKXS.Text:=Trim(ADOTmp.fieldbyname('ZSXS').AsString);
      MJstr4.Text:=Trim(ADOTmp.fieldbyname('AOrddefstr1').AsString);
      if Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString)<>'' then
      begin
        Label9.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString);
        Label19.Caption:=Label9.Caption;
        Label20.Caption:=Label9.Caption;
        Label7.Caption:=Label9.Caption;
      end;
    end else
    begin
      Application.MessageBox('条码错误!','提示',0);
      Label2.Visible:=False;
      Label2.Caption:='';
      APID.Text:='';
      FAPID:='';
      FMainId:='';
      FSubId:='';
      AOrdDefNote1.Text:='';
      MJStr4.Text:='';
      Exit;
    end;
  //  MJXH.Text:='1';
    APID.Text:='';
    BTAdd.Click;
    MJMaoZ.SetFocus;
end;

procedure TfrmMJManageNewFDNewSF.MJFKChange(Sender: TObject);
var
  FReal:Double;
begin
 // if StrToFloat(MJSJKZ.Text)*StrToFloat(MJFK.Text)=0 then Exit;

  if TryStrToFloat(MJQty4.Text,FReal)=False then Exit;
  if Trim(MJSJKZ.Text)='' then Exit;
  if TryStrToFloat(MJSJKZ.Text,FReal)=False then
  begin
    Exit;
  end;
  if Trim(MJFK.Text)='' then Exit;
  if TryStrToFloat(MJFK.Text,FReal)=False then
  begin
    Exit;
  end;
  if StrToFloat(MJSJKZ.Text)*StrToFloat(MJFK.Text)=0 then Exit;
  IF trim(MKXS.Text)='' then
  begin
    if Trim(Label9.Caption)='M' then
    begin
    //MJLen.Text:=FloatToStr(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text));
    MJLen.Text:=format('%.1f',[StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)]);
    end else
    begin
     MJLen.Text:=format('%.1f',[StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936]);
    //MJLen.Text:=FloatToStr(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936);
  //  MJLen.Text:=floatToStr(Round(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936));
    end;
  end;
end;

procedure TfrmMJManageNewFDNewSF.Edit7Click(Sender: TObject);
begin
  if Trim(Edit7.Text)='' then
  begin
    Edit7.Text:='√';
    if not IsCommOpen then
    begin
      IF ISJCX='2' then
      begin
        OpenCom(JCYDLL);
      end
      else
      IF ISJCX='1' then
      begin
        OpenCom(JCYDLL);
        OpenCom(dllName);
      end
      else
      begin
        OpenCom(dllName);
      end;
    end;
    IsJsMessage:=true;
  end
  else
  begin
    Edit7.Text:='';
    IsJsMessage:=true;
  end;
end;

procedure TfrmMJManageNewFDNewSF.Button6Click(Sender: TObject);
begin
  frmClothHCList:=TfrmClothHCList.create(self);
  with frmClothHCList do
  begin
    fType:='10';
    if showmodal=1 then
    begin
      APID.Text:=trim(Order_Main.fieldbyname('APID').asstring);
      Button3.Click;
    end;
    free;
  end;
end;

procedure TfrmMJManageNewFDNewSF.MJQty4KeyPress(Sender: TObject;
  var Key: Char);
begin
  IF key=#13 then
  begin
    BTPrint.Click;
  end;
end;

procedure TfrmMJManageNewFDNewSF.MKXSChange(Sender: TObject);
begin
   IF strtofloatdef(trim(MKXS.Text),0)<>0 then
   MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
end;

procedure TfrmMJManageNewFDNewSF.FormCreate(Sender: TObject);
begin
  IsCommopen:=false;
  IsJsMessage:=false;
end;

procedure TfrmMJManageNewFDNewSF.MJQty2Change(Sender: TObject);
var
  FReal:double;
begin
  IF trim(fzsType)='公斤'then
  begin
    MJQty4.Text:=floattostr(StrToFloatdef(trim(MJQty4.Text),0)- StrToFloatdef(trim(MJQty2.Text),0));
    MJMaoZ.Text:=FloatToStr(StrToFloat(MJQty4.Text)+StrToFloat(MJQty3.Text));

    IF strtofloatdef(trim(MKXS.Text),0)<>0 then
    begin
      if TryStrToFloat(MKXS.Text,FReal)=true then
      begin
        MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
      end;
    end;
  end
  else
  begin
    MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]);
  end;
end;

procedure TfrmMJManageNewFDNewSF.Edit8Click(Sender: TObject);
begin
  if Trim(Edit8.Text)='' then
  begin
    Edit8.Text:='√';
    Button5.Visible:=true;
  end
  else
  begin
    Edit8.Text:='';
    Button5.Visible:=false;
  end;
end;

procedure TfrmMJManageNewFDNewSF.Timer2Timer(Sender: TObject);
begin
  BTPrint.Enabled:=true;
  Timer2.Enabled:=false; 
end;

procedure TfrmMJManageNewFDNewSF.Button7Click(Sender: TObject);
begin
  JsKF();
end;

end.
