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;
{function CommOpen(fhandle:hwnd;sCommName:PAnsiChar;
                    IntTime:integer):integer;stdcall;external 'JCYData.DLL';
function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL';
  function CommOpen(fhandle:hwnd;sCommName:PAnsiChar;
                    IntTime:integer;IsMessage:integer):integer;stdcall;external 'JCYData.DLL';
  function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL';
  function CommOpen(fhandle:hwnd;sCommName:PAnsiChar;
                    IntTime:integer;IsMessage:integer):integer;stdcall;external 'JZCRS323C.DLL';
  function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JZCRS323C.DLL';

  function GetCommData(fhandle:hwnd;var defnum1,defnum2:double;var fisjz:integer):integer;stdcall;external 'JZCRS323C.DLL';

  function CommOpen1301(fhandle:hwnd;sCommName:PAnsiChar;
                    IntTime:integer;IsMessage:integer):integer;stdcall;external 'JZCRS323C.DLL';
  function CommClose1301(sCommName:PAnsiChar):integer;stdcall;external 'JZCRS323C.DLL';

  function GetCommData1301(fhandle:hwnd;var defnum1,defnum2:double;var fisjz:integer):integer;stdcall;external 'JZCRS323C.DLL';  }


type
  TfrmMJManageNewFDNewSF = class(TForm)
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxGridPopupMenu1: TcxGridPopupMenu;
    DataSource1: TDataSource;
    Order_MJ: TClientDataSet;
    ADOQueryMain: TADOQuery;
    ADOCmd: 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;
    Label38: TLabel;
    RM3: TRMGridReport;
    Label39: TLabel;
    Edit8: TEdit;
    mjxh: TEdit;
    ADOTmp: TADOQuery;
    MKXS: TEdit;
    Label40: TLabel;
    JuanSun: TEdit;
    v3Column6: TcxGridDBColumn;
    pnl_duopin: TPanel;
    Label41: TLabel;
    Label42: TLabel;
    Edit9: TEdit;
    Edit10: TEdit;
    Label43: TLabel;
    Button7: TButton;
    Button8: TButton;
    ToolButton2: TToolButton;
    Label44: TLabel;
    cbbMJLevel: TComboBox;
    Label45: TLabel;
    Panel1: TPanel;
    Label46: TLabel;
    lblPFM: TLabel;
    Label48: TLabel;
    lblMBMCDF: TLabel;
    ToolButton3: TToolButton;
    Label47: 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 Label9Click(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 MJQty4KeyPress(Sender: TObject; var Key: Char);
    procedure MKXSChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure MJQty2Change(Sender: TObject);
    procedure Edit8Click(Sender: TObject);
    procedure MJLenChange(Sender: TObject);
    procedure MJStr4Exit(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure Edit9Click(Sender: TObject);
    procedure cbbMJLevelClick(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
  private
    { Private declarations }
    FInt,PState,PrintInt,SCInitGrid,FState,FCK:Integer;
    FColumn,FBanZu,FAPID,FMainId,FSubId,FFFMJID:String;
    MValue,FCDName:String;
    isCommopen,IsJsMessage:boolean;
    fxsType:string;
    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 SavedataCK();
    procedure PrtData(FMJID:String);
    procedure OpenCom(DllName:string);
    procedure CloseCom(DllName:string);
    procedure On1301(Var Message:Tmessage);Message 1301;
    procedure On1201(Var Message:Tmessage);Message 1201;
  public
    fmanage:string;
    { Public declarations }

  end;

var
  frmMJManageNewFDNewSF: TfrmMJManageNewFDNewSF;
  newh,newh1:hwnd;

implementation
uses
  U_DataLink,U_Fun,U_RTFun,U_ZDYHelp,U_iniParam, U_ZDYHelpSel;

{$R *.dfm}
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.On1301(Var Message:Tmessage);
var
  i1,i2:integer;
  unitname:string;
  fdata:double;
begin
  i1:=message.WParam;
  i2:=message.LParam;
  IF IsJsMessage then
  begin
    IF trim(Edit7.Text)='√'  then
    begin
      MJLen.Text:= format('%.1f',[i1 /100000]);
      IF i2=0 then Label9.Caption:='M' else  Label9.Caption:='Y';
    end;
  end;

{
  //Edit1.Text:= floattostr(i1 *i2 /100000 );
  IF IsJsMessage then
  MJMaoZ.Text:= floattostr(i1 *i2 /100000 );  }
end;

procedure TfrmMJManageNewFDNewSF.On1201(Var Message:Tmessage);
var
  i1,i2:integer;
  unitname:string;
  fdata:double;
begin
  i1:=message.WParam;
  i2:=message.LParam;
  IF IsJsMessage then
  begin
    IF trim(Edit7.Text)='√'  then
    begin
      MJMaoZ.Text:= format('%.1f',[i1 /100000]);
    end;
  end;
end;

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

  if  isCommopen then
  begin
    closeCom(JCYDLL);
  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=''未入库'' ');
    Open;
  end;
  SCreateCDS20(ADOQueryMain,CDS_MJID);
  SInitCDSData20(ADOQueryMain,CDS_MJID);
end;

procedure TfrmMJManageNewFDNewSF.TBCloseClick(Sender: TObject);
var
  maxno:string;
begin
//  CloseCom();
  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:='英文名称';
      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
    OpenCom(JCYDLL);
    opencom(DllName);
    Edit7.Visible:=true;
    Label35.Visible:=true;
  end;
  JuanSun.Text:='1';
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
  FInt:=4;
  InitCDGridID();
end;

procedure TfrmMJManageNewFDNewSF.Tv3CellClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  exit;
  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;
  PState:=2;
  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);
  MJstr4.Text:=Trim(ADOTmp.fieldbyname('MJstr4').AsString);
  MJXH.Text:=Trim(ADOTmp.fieldbyname('MJXH').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
  if PState=1 then
      FMJID:=''
  else
  if PState=2 then
      FMJID:=Trim(CDS_MJID.fieldbyname('MJID').AsString)
  else
  if PState<1 then Exit;
  try

    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:=strtointdef(trim(mjxh.Text),0);
      FieldByName('MJTypeOther').Value:=Trim(Label9.Caption);
      FieldByName('JYPerson').Value:=Trim(Label44.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);
      FieldByName('MBMCDF').Value:=Trim(lblMBMCDF.Caption);
      FieldByName('MJLevel').Value:=Trim(cbbMJLevel.Text);

      FieldByName('baoNO').Value:='';
      FieldByName('baoID').Value:='';
      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:='多拼';
        FieldByName('dpnote').Value:=Trim(Label42.Caption);
      end;
      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;
      Post;
    end;
    if PState=1 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.MJID<>WFB_MJJY.MJID and WFB_MJJY.MJstr4=X.MJstr4),0)');
        sql.Add('where MJID='''+Trim(maxno)+'''');
        execsql;
      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;

    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 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;

     //出入库
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('exec P_Do_JYCRK @MJID='''+trim(FMJID)+'''');
      sql.Add(',@KuWei='''+trim(label47.Caption)+'''');   
      execsql;
    end;
   
    ADOCmd.Connection.CommitTrans;
    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,j:Integer;
begin
  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(Label44.Caption)='检验人：' then
  begin
    Application.MessageBox('检验人不能为空!','提示',0);
    Exit;
  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 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;

  IF (strtofloatdef(trim(JuanSun.Text),0)<1) or  (strtofloatdef(trim(JuanSun.Text),0)>20) then
  begin
    Application.MessageBox('卷数不能超过20!','提示',0);
    Exit;
  end;

  IF (strtofloatdef(trim(MJLen.Text),0)=0) and  (strtofloatdef(trim(MJQty4.Text),0)=0) then
  begin
    Application.MessageBox('长度和重量不能都为0!','提示',0);
    Exit;
  end;

  for j:=1 to StrToInt(Trim(JuanSun.Text)) do
  begin
    if SaveData() then
    begin
      MJXH.Text:=inttostr(strTointdef(trim(MJXH.Text),0)+1);
    end;
    //打印标签
    if Trim(Edit6.Text)='√' then
    begin
      PrtData(FFFMJID);
    end;
    Label16.Caption:='';
    BTAdd.Click;
    Sleep(200);
  end;
  //更新检验进度
  with ADOCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('exec [P_Update_Order_JD_ByOther] @MainType=''机台检验''');
    sql.Add(',@OrdMainId='+quotedstr(Trim(FMainId)));
    SQL.Add(',@OrdSubId='+quotedstr(Trim(FSubId)));
    execsql;
  end;
  if Edit7.Text='√' then
  begin
    MJLen.Text:='';
  end;

  MJMaoZ.Text:='';
  MJQty1.Text:='';
  MJQty2.Text:='';
  Label15.Caption:='';
  MJQty4.Text:='';
  if Edit4.Text<>'' then
  begin
    Edit4.Text:='';
    Edit3.Text:='√';
  end;
  MJLen.SetFocus;
  CDS_MJID.Last;
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(' P_Do_PrintJyBq'+quotedstr(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
  begin
    fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LBName').AsString)+'.rmf';
  end
  else
  begin
    if Trim(ADOQueryPrint.fieldbyname('MJType').AsString)='多拼' then
    begin
     fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\通用英文标签1.rmf' ;
    end
    else
    begin
      fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\通用英文标签.rmf' ;
    end;
  end;

  if FileExists(fPrintFile) then
  begin
    RMVariables['QRBARCODE']:=fImagePath;
    RM2.LoadFromFile(fPrintFile);
    Rm2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1);
  //  RM2.ShowReport;
    RM2.PrintReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(ADOQueryPrint.fieldbyname('LBName').AsString)),'提示',0);
  end;
end;
procedure TfrmMJManageNewFDNewSF.SavedataCK();
var
  CRID:Integer;
  MaxCkNo,MaxCkSubNo:String;
begin
  //if Trim(Cds_Main.fieldbyname('SubType').AsString)='大卷' then
  //////////////////////////////////////////////////////////////保存到半成品仓库////////////////////////////////////////////////
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1');
      sql.Add('select * from CK_BanCP_CRID');
      Open;
    end;
    CRID:=ADOCmd.fieldbyname('CRID').Value;
    if GetLSNo(ADOCmd,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then
    begin
      ADOCmd.Connection.RollbackTrans;
      Application.MessageBox('取半成品仓库最大号失败！','提示',0);
      Exit;
    end;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from CK_BanCP_CR where 1<>1');
      Open;
    end;
    with ADOCmd do
    begin
      Append;
      FieldByName('MainId').Value:=Trim(FMainId);
      FieldByName('SubId').Value:=Trim(FSubId);
      FieldByName('APID').Value:=Trim(FAPID);
      FieldByName('MJID').Value:=Trim(CDS_MJID.fieldbyname('MJId').AsString);
      FieldByName('BCID').Value:=Trim(MaxCkNo);
      FieldByName('CRTime').Value:=SGetServerDateTime(ADOTmp);
      FieldByName('CRFlag').Value:='入库';
      FieldByName('CRType').Value:='检验入库';
      //FieldByName('JTType').Value:=Trim(XJFlag);
      FieldByName('CRID').Value:=CRID;
      if Trim(MJMaoZ.Text)<>'' then
      begin
        FieldByName('KGQty').Value:=StrToFloat(MJMaoZ.Text);
      end;
      if Trim(MJLen.Text)<>'' then
      begin
        FieldByName('Qty').Value:=StrToFloat(MJLen.Text);
      end;
      FieldByName('QtyUnit').Value:=Trim(Label9.Caption);
      FieldByName('Filler').Value:=Trim(DName);
      FieldByName('FillTime').Value:=SGetServerDateTime(ADOTmp);
      if Trim(Edit3.Text)<>'' then
      begin
        FieldByName('CPType').Value:='正品';
      end;
      if Trim(Edit4.Text)<>'' then
      begin
        FieldByName('CPType').Value:='次品';
      end;
      Post;
    end;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from CK_BanCP_KC where 1<>1');
      Open;
    end;
    with ADOCmd do
    begin
      Append;
      FieldByName('CRID').Value:=CRID;
      FieldByName('BCID').Value:=Trim(MaxCkNo);
      FieldByName('MJID').Value:=Trim(CDS_MJID.fieldbyname('MJID').AsString);
      if Trim(MJMaoZ.Text)<>'' then
      begin
        FieldByName('KCKGQty').Value:=StrToFloat(MJMaoZ.Text);
      end;
      if Trim(MJLen.Text)<>'' then
      begin
        FieldByName('KCQty').Value:=StrToFloat(MJLen.Text);
      end;
      FieldByName('KCQtyUnit').Value:=Trim(Label9.Caption);
      Post;
    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;
    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
  InitJP();
end;

procedure TfrmMJManageNewFDNewSF.Button5Click(Sender: TObject);
begin
  if CDS_MJID.IsEmpty then Exit;
  PrtData(CDS_MJID.fieldbyname('MJID').AsString);
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
    fxsType:='';
    with ADOTmp do
    begin
      Close;
      sql.Clear;
      sql.Add('select A.*,B.MPRTBZNote,B.MPRTYaoFeng,B.MPRTTangJin,B.MPRTJiBenNote,B.MPRTTeBieNote,B.xsType,B.MPRTKaiJian  ');
      sql.Add(',B.MPRTMF,B.MPRTKZ,');
      SQL.Add('OrderNoM=(select top 1 OrderNo from JYOrder_Main X where X.Mainid=A.OrdMainIDCK),');
      SQL.Add('PRTColor=(select top 1 PRTColor from JYOrder_Sub X where X.Subid=A.OrdsubIDCK), ');
      sql.Add('PiZhong=(select top 1  PiZhong from JYOrder_Main X where X.Mainid=A.OrdMainIDCK),');
      sql.Add('maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.OrdsubIDCK and isnull(X.MJstr4,'''')=isnull(A.GangNo,'''') ),0)');
      sql.Add(',OrderUnit=(select top 1  OrderUnit from JYOrderCon_Main X left join JYOrderCon_Sub Y on X.MainId=Y.MainId where X.ConNo=B.ConNo and Y.PRTCode=B.MPRTCode)');
      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
      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);
      fxsType:=Trim(ADOTmp.fieldbyname('xsType').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('OrderUnit').AsString)<>'' then
      begin
        if ((Trim(ADOTmp.fieldbyname('OrderUnit').AsString)='码') or (Trim(ADOTmp.fieldbyname('OrderUnit').AsString)='Y')) then
           Label9.Caption:='Y'
        else
           Label9.Caption:='M';
           
        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:='';
      Exit;
    end;
    APID.Text:='';
    BTAdd.Click;
    MJLen.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;
  pnl_duopin.Visible:=false;
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;
  pnl_duopin.Visible:=false;
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;
  pnl_duopin.Visible:=True;
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.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.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;
  if TryStrToFloat(MJQty4.Text,FReal)=False then Exit;
  if Trim(MJQty3.Text)<>'' then
  begin
    if TryStrToFloat(MJQty3.Text,FReal)=True then
      MJMaoZ.Text:=FloatToStr(StrToFloat(MJQty4.Text)+StrToFloat(MJQty3.Text));
  end else
  begin
    MJMaoZ.Text:=MJQty4.Text;
  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;
  if TryStrToFloat(MJMaoZ.Text,FReal)=False then Exit;
  if Trim(MJQty3.Text)<>'' then
  begin
    if TryStrToFloat(MJQty3.Text,FReal)=False then Exit;
    MJQty4.Text:=FloatToStr(StrToFloat(MJMaoZ.Text)-StrToFloat(MJQty3.Text));
  end else
  begin
    MJQty4.Text:=MJMaoZ.Text;
  end;
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 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),');
      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:='√';
    JuanSun.Text:='1';
    if not IsCommOpen then OpenCom(JCYDLL);
    IsJsMessage:=true;
  end
  else
  begin
    Edit7.Text:='';
    IsJsMessage:=true;
  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
  begin
    //MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
    MJQty4.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
    MJMaoZ.Text:=FloatToStr(StrToFloatdef(trim(MJQty4.Text),0)+StrToFloatdef(trim(MJQty3.Text),0));
  end;
//   MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
//  MJQty4.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);

//  MJQty4.Text:=FloatToStr(StrToFloat(MJMaoZ.Text)-StrToFloat(MJQty3.Text));
//  MJMaoZ.Text:=FloatToStr(StrToFloat(MJQty4.Text)+StrToFloat(MJQty3.Text));
end;

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

procedure TfrmMJManageNewFDNewSF.MJQty2Change(Sender: TObject);
var
  FReal:double;
begin
 { IF trim(MKXS.Text)<>'' then
  begin
    if TryStrToFloat(MKXS.Text,FReal)=true then
    begin
      MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
      MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]);
    end;
  end
  else
  begin
    if Trim(MJSJKZ.Text)='' then Exit;
    if TryStrToFloat(MJSJKZ.Text,FReal)=False then
    begin
    Application.MessageBox('克重录入错误!','提示',0);
    Exit;
    end;
    if Trim(MJFK.Text)='' then Exit;
    if TryStrToFloat(MJFK.Text,FReal)=False then
    begin
    Application.MessageBox('幅宽录入错误!','提示',0);
    Exit;
    end;
    if StrToFloat(MJSJKZ.Text)*StrToFloat(MJFK.Text)=0 then Exit;
   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)]);
     MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]);
   end else
   begin
     MJLen.Text:=format('%.1f',[StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936]);
      MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]);
    //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.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.MJLenChange(Sender: TObject);
begin
  IF strtofloatdef(trim(MKXS.Text),0)<>0 then
  begin
    //MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
    MJQty4.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]);
    MJMaoZ.Text:=FloatToStr(StrToFloatdef(trim(MJQty4.Text),0)+StrToFloatdef(trim(MJQty3.Text),0));
  end;
end;

procedure TfrmMJManageNewFDNewSF.MJStr4Exit(Sender: TObject);
begin
  with ADOTmp do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select isnull(cast(max(MJXH) as int),0)+1 MMJXH from WFB_MJJY where SubId='+quotedstr(Trim(FSubId))+' and MJStr4='+quotedstr(Trim(MJStr4.Text)));
    Open;
  end;
  mjxh.Text:=ADOTmp.fieldbyname('MMJXH').AsString;
end;

procedure TfrmMJManageNewFDNewSF.Button7Click(Sender: TObject);
begin
  if ((Trim(Edit9.Text)='') or (Trim(Edit10.Text)='')) then
  begin
     Application.MessageBox('请输入米数！','提示',0);
  end
  else
  begin
    MJLen.Text:=IntToStr(StrToInt(Trim(Edit9.Text))+StrToInt(Trim(Edit10.Text)));
    Label42.Caption:=Trim(Edit9.Text)+'+'+Trim(Edit10.Text);
  end;

end;

procedure TfrmMJManageNewFDNewSF.Button8Click(Sender: TObject);
begin
pnl_duopin.Visible:=false;
end;

procedure TfrmMJManageNewFDNewSF.ToolButton2Click(Sender: TObject);
var
  str:string;
begin
  str:='检验人：';
  try
    frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application);

    with frmZDYHelpSel do
    begin
      TV1.Styles.Content:=cxStyle1;
      flag:='JYPerson';
      flagname:='添加检验人';
      if ShowModal=1 then
      begin
        with ClientDataSet1 do
        begin
          First;
          while not Eof do
          begin
            if FieldByName('SSel').AsBoolean=True then
            begin
             str:=str+FieldByName('ZDYName').AsString+' '
            end;
            Next;
          end;
        end;
        Label44.Caption:=Trim(str);
      end;
    end;
  finally
    frmZDYHelpSel.Free;
  end;
end;


procedure TfrmMJManageNewFDNewSF.Edit9Click(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.cbbMJLevelClick(Sender: TObject);
var
  FKouFen:Integer;
  FKZ:Integer;
  FMF,PFM,PFMKF,Flen,FWet:Double;
begin
  if TV2.DataController.Summary.FooterSummaryValues[2]=null then Exit;
  FKouFen:=TV2.DataController.Summary.FooterSummaryValues[2];
  if Trim(MJFK.Text)<>'' then
    FMF:=StrToInt(MJFK.Text)/100;
  if Trim(MJSJKZ.Text)<>'' then
  FKZ:=StrToInt(MJSJKZ.Text);
  if ((Trim(MJLen.Text)<>'' ) and (Trim(MJLen.Text)<>'0')) then
  begin
    //      平方码=（长度/0.9144*有效门幅）
//     平方码=（码长*有效门幅）
// 疵点总分/平方码*100=每百码疵点分
    Flen:=StrToFloat(Trim(MJLen.Text));
    if FMF<>0 then
    begin
      if  ((Label9.Caption='M') or (Label9.Caption='米'))  then
      begin
        PFM:=Flen/0.9144*FMF ;
        PFMKF:=FKouFen/PFM*100;
      end;
      if ((Label9.Caption='Y') or (Label9.Caption='码')) then
      begin
        PFM:=Flen*FMF;
        PFMKF:=FKouFen/PFM*100;
      end;
    end;
  end
  else
  begin
//   长度=kg*1000/(有效门幅*克重)
    if Trim(MJQty4.Text)='' then Exit;
    FWet:=StrToFloat(MJQty4.Text);
    Flen:=FWet*1000/(FMF*FKZ);
    PFM:=Flen/0.9144*FMF ;
    PFMKF:=FKouFen/PFM*100;
  end;
  lblPFM.Caption:= FloatToStr(RoundFloat(PFM,0));
  lblMBMCDF.Caption:= FloatToStr(RoundFloat(PFMKF,1));
end;

procedure TfrmMJManageNewFDNewSF.ToolButton3Click(Sender: TObject);
begin
  try
    frmZDYHelp:=TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      TV1.Styles.Content:=cxStyle1;
      flag:='KuWei';
      flagname:='库位';
      if ShowModal=1 then
      begin
        label47.Caption:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

end.
