unit U_MJManageNewFDNew;

interface

uses
  Windows, Messages,strUtils, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView,
  cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView,
  cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView,
  cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu,
  cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, RM_Common, RM_Class,
  RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxCheckBox, Menus,
  MovePanel, cxTextEdit, Buttons;
type
  TfrmMJManageNewFDNew = 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;
    ToolBar1: TToolBar;
    TBClose: TToolButton;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    tv2CDType: TcxGridDBColumn;
    tv2CDWZ: TcxGridDBColumn;
    Tv2CDQty: TcxGridDBColumn;
    Tv2CDReason: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    TBCD: TToolButton;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    DataSource2: TDataSource;
    CDS_MJCD: TClientDataSet;
    DataSource3: TDataSource;
    CDS_MJID: TClientDataSet;
    v2Column1: TcxGridDBColumn;
    Timer1: TTimer;
    ADOQueryPrint: TADOQuery;
    v2Column2: TcxGridDBColumn;
    ToolButton1: TToolButton;
    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;
    Panel1: TPanel;
    Label1: TLabel;
    APID: TEdit;
    Label2: TLabel;
    BTAdd: TButton;
    BTEdit: TButton;
    Label16: TLabel;
    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;
    Label5: TLabel;
    Label6: TLabel;
    BTPrint: TButton;
    Button5: TButton;
    Edit3: TEdit;
    Label10: TLabel;
    Edit4: TEdit;
    Label12: TLabel;
    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;
    Label24: TLabel;
    Label25: TLabel;
    v3Column3: TcxGridDBColumn;
    Label28: TLabel;
    Edit5: TEdit;
    Label26: TLabel;
    Edit6: TEdit;
    C_CodeName: TEdit;
    Label4: TLabel;
    C_Color: TEdit;
    Label11: TLabel;
    BCGangNo: TEdit;
    Label13: TLabel;
    Label14: TLabel;
    CheckBox3: TCheckBox;
    MJQty1: TEdit;
    Label27: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Edit7: TEdit;
    Label32: TLabel;
    Edit8: TEdit;
    Label33: TLabel;
    Label34: TLabel;
    Edit9: TEdit;
    Label35: TLabel;
    Edit10: TEdit;
    Label36: TLabel;
    ADOQueryTmp: TADOQuery;
    Button2: TButton;
    Label37: TLabel;
    ComboBox1: TComboBox;
    Label38: TLabel;
    Cmb_BZ: TComboBox;
    RMDBMain: TRMDBDataSet;
    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;
    Button3: TButton;
    v2Column3: TcxGridDBColumn;
    v2Column4: TcxGridDBColumn;
    C_CodeNameZ: TEdit;
    Label39: TLabel;
    batchNo: TEdit;
    factoryName: TEdit;
    Label40: TLabel;
    Label41: TLabel;
    note: TEdit;
    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 MJLenKeyPress(Sender: TObject; var Key: Char);
    procedure MJQty1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit7Click(Sender: TObject);
    procedure Edit8Click(Sender: TObject);
    procedure Edit9Click(Sender: TObject);
    procedure C_CodeNameKeyPress(Sender: TObject; var Key: Char);
    procedure C_CodeNameExit(Sender: TObject);
    procedure C_ColorExit(Sender: TObject);
    procedure BCGangNoExit(Sender: TObject);
    procedure SpeedButton19Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    fCKName:string;
    isCommopen,IsJsMessage:boolean;
    { Private declarations }
    FInt,PState,PrintInt,SCInitGrid,FState:Integer;
    FColumn,FBanZu,FAPID,FMainId,FSubId:String;
    MValue,FCDName: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 OpenCom(DllName:string);
    procedure CloseCom(DllName:string);
    procedure On1201(Var Message:Tmessage);Message 1201;
    Procedure PrintData(fMJID:string);
  public
    canshu:string;

    { Public declarations }
  end;
var
  frmMJManageNewFDNew: TfrmMJManageNewFDNew;
  newh,newh1:hwnd;

implementation
uses
  U_DataLink,U_Fun,U_ZDYHelp,U_iniParam;

{$R *.dfm}
procedure TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.PrintData(fMJID:string);
var
  fPrintFile:String;
  Txt,fImagePath:string;
  Moudle: THandle;
  Makebar:TMakebar;
  Mixtext:TMixtext;
begin
  try
    Moudle:=LoadLibrary('MakeQRBarcode.dll');
    @Makebar:=GetProcAddress(Moudle,'Make');
    @Mixtext:=GetProcAddress(Moudle,'MixText');
    Txt:=Trim(fMJID);
    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;
  with ADOQueryPrint do
  begin
    Close;
    SQL.Clear;
    sql.Add('select A.*,C_CodeNameZW=(select Top 1 defnote3 from KH_Zdy_Attachment X where X.ZdyName=A.C_CodeName and Type=''CP'') ');
    sql.Add(',C_colorName=(select Top 1 DEFstr6 from KH_Zdy_Attachment X where X.ZdyName=A.C_CodeName and X.DEFstr3=A.C_Color and Type=''CP'') ');
    sql.Add(',factoryNameJZ=(select Top 1 zdyNameZ from KH_Zdy_Attachment X where X.ZdyName=A.factoryName and Type=''GYS'') ');
    sql.Add(' from WFB_MJJY A') ;
    SQL.Add(' where A.MJID='''+Trim(fMJID)+'''');
    Open;
  end;

  fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+trim(Cmb_BZ.Text)+'.rmf' ;
  if FileExists(fPrintFile) then
  begin
    RMVariables['QRBARCODE']:=fImagePath;
    RM2.LoadFromFile(fPrintFile);
    RM2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1);
    RM2.PrintReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找到'+trim(fPrintFile)),'提示',0);
  end;
end;
procedure TfrmMJManageNewFDNew.On1201(Var Message:Tmessage);
var
  i1,i2:integer;
  unitname:string;
  fdata:double;
begin
  i1:=message.WParam;
  i2:=message.LParam;

  IF not CheckBox3.Checked then exit;

 // IF trim(DParameters10)='含小数'then
 // MJLen.Text:= format('%.2f',[i1/100000])
 // else
  MJLen.Text:= format('%.1f',[i1/100000]);
  IF i2=0 then Label9.Caption:='M' else  Label9.Caption:='Y';
end;


procedure TfrmMJManageNewFDNew.FormDestroy(Sender: TObject);
begin
  frmMJManageNewFDNew:=nil;
end;

procedure TfrmMJManageNewFDNew.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  IF trim(canshu)<>'高权限' then
  begin
    IF trim(JCYDLL)<>'' then closeCom(trim(JCYDLL));
    IF trim(DllName)<>'' then closeCom(trim(DllName));
  end;
  Action:=caFree;
end;
procedure TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.InitCDGridID();
begin
  with ADOQueryMain do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from WFB_MJJY where APID='''+Trim(FAPID)+'''');
    sql.Add('and Filler='+quotedstr(trim(DName)));
    sql.Add('and convert(char(10),FillTime,120)='''+formatdateTime('yyyy-MM-dd',date())+''' ');
    if Trim(SCXFlag)<>'' then
    sql.Add(' and JTType='''+Trim(SCXFlag)+'''');
    sql.Add(' order by MJID desc');
    Open;
  end;
  SCreateCDS20(ADOQueryMain,CDS_MJID);
  SInitCDSData20(ADOQueryMain,CDS_MJID);
end;

procedure TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.FormShow(Sender: TObject);
begin
  Label2.Caption:='';
  Label24.Caption:='';
  Label25.Caption:='';
  Label29.Caption:='';
  Label30.Caption:='';
  Label31.Caption:='';
  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(canshu)<>'高权限' then
  begin
    IF trim(JCYDLL)<>'' then OpenCom(trim(JCYDLL));
    IF trim(DllName)<>'' then OpenCom(trim(DllName));
  end;
  APID.SetFocus;
end;
procedure TfrmMJManageNewFDNew.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>63 then
  begin
    i:=63;
  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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.AddCDNew(Fbtn:TSpeedButton);
begin
  with CDS_MJCD do
  begin
    Append;
    FieldByName('cdname').Value:=Trim(TSpeedButton(Fbtn).Hint);
    Post;
  end;
end;
procedure TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.MJMaoZClick(Sender: TObject);
begin
  FInt:=1;
  FColumn:='';
  panel3.Visible:=True;
end;

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

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

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

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

procedure TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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;
  C_CodeName.Text:=Trim(ADOTmp.fieldbyname('C_CodeName').AsString);
  C_Color.Text:=Trim(ADOTmp.fieldbyname('C_Color').AsString);
  BCgangNo.Text:=Trim(ADOTmp.fieldbyname('BCgangNo').AsString);
  MJFK.Text:=Trim(ADOTmp.fieldbyname('MJFK').AsString);
  MJSJKZ.Text:=Trim(ADOTmp.fieldbyname('MJSJKZ').AsString);
  MJLen.Text:=Trim(ADOTmp.fieldbyname('MJLen').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);
  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 TfrmMJManageNewFDNew.FormClick(Sender: TObject);
begin
  FInt:=4;
end;

procedure TfrmMJManageNewFDNew.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  TfrmMJManageNewFDNew.SaveData():Boolean;
var
  maxno,fapTM,FMJID,BZID:String;
  FMJLen,fhcQty:Double;
  FOrder,i: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;

  fmjlen:=StrToFloatdef(trim(MJLen.Text),0);
  if trim(Edit7.Text)<>'' then fmjlen:=fmjlen+1;
  if trim(Edit8.Text)<>'' then fmjlen:=fmjlen+2;
  if trim(Edit9.Text)<>'' then fmjlen:=fmjlen+3;
  if fmjlen<0 then fmjlen:=0;
  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
        {with ADOTmp do
        begin
          Close;
          sql.Clear;
          SQL.Add('select * from JYOrder_Sub_AnPai_MX where AOrdQty3=0 and APID='''+Trim(FAPID)+''' order by ApsubId ');
          Open;
        end;
        if ADOTmp.IsEmpty then
        begin
          if GetLSNo(ADOQueryTmp,maxno,'','APTM',4,1)=False then
          begin
            ADOCmd.Connection.RollbackTrans;
            Application.MessageBox('生成流水号异常！','提示',0);
            exit;
          end;
          fapTM:=maxno;
          maxno:=trim(SCXFlag)+trim(fapTM);
        end
        else
        begin
          fapTM:=trim(ADOTmp.fieldbyname('APTm').AsString);
          fhcQty:=ADOTmp.fieldbyname('AOrdQty1').AsFloat;
          maxno:=trim(SCXFlag)+trim(fapTM);
        end; }
        if GetLSNo(ADOQueryTmp,maxno,'','APTM',4,1)=False then
        begin
          ADOCmd.Connection.RollbackTrans;
          Application.MessageBox('生成流水号异常！','提示',0);
          exit;
        end;
        fapTM:=maxno;
        maxno:=trim(SCXFlag)+trim(fapTM);
        Append;
      end
      else
      begin
        maxno:=Trim(FMJID);
        Edit;
      end;
      FieldByName('MainId').value:=Trim(FMainId);
      FieldByName('SubId').value:=Trim(FSubId);
      FieldByName('APId').value:=Trim(FAPID);
      FieldByName('CKName').value:=Trim(fCKName);
      FieldByName('MJID').Value:=Trim(maxno);
      FieldByName('MJStr2').Value:='未入库';
      FieldByName('MJBanZu').Value:=Trim(FBanZu);

      FieldByName('C_CodeName').Value:=Trim(C_CodeName.Text);
      FieldByName('C_CodeNameZ').Value:=Trim(C_CodeNameZ.Text);
      FieldByName('C_Color').Value:=Trim(C_Color.Text);
      FieldByName('BCGangNo').Value:=Trim(BCGangNo.Text);
      FieldByName('batchNo').Value:=Trim(batchNo.Text);
      FieldByName('factoryName').Value:=Trim(factoryName.Text);
      FieldByName('note').Value:=Trim(note.Text);
      FieldByName('MJQTy1').Value:=fhcQty;
      FieldByName('MJLen').Value:=fmjlen;

      if Trim(MJFK.Text)<>'' then
      begin
        FieldByName('MJFK').Value:=StrToFloat(MJFK.Text);
      end;

      if Trim(MJSJKZ.Text)<>'' then
      begin
        FieldByName('MJSJKZ').Value:=StrToFloat(MJSJKZ.Text);
      end;
      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('MJTypeOther').Value:=Trim(Label9.Caption);
      FieldByName('MJStr1').Value:=Trim(Label13.Caption);
       FieldByName('MJXH').Value:=1;
      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;
    {
      with ADOCmd do
      begin
        Close;
        SQL.Clear;
        sql.Add('select * from JYOrder_Sub_AnPai_MX where APTM='''+Trim(FAPTM)+'''');
        Open;
        if IsEmpty then
        begin
          with ADOTmp do
          begin
            Close;
            SQL.Clear;
            sql.Add('select isnull(max(ApsubId),0)+1 as fApsubId from JYOrder_Sub_AnPai_MX where Apid='''+Trim(FAPID)+'''');
            Open;
            i:=fieldbyname('fApsubId').AsInteger;
          end;
          append;
          FieldByName('ApId').Value:=Trim(FAPID);
          FieldByName('ApsubId').Value:=i;
          FieldByName('APTM').Value:=Trim(maxno);
          FieldByName('AOrdQty2').Value:=0;
          FieldByName('AOrdQty1').Value:=0;
          FieldByName('AOrdQty3').Value:=fmjlen;
          FieldByName('AorddefNote1').Value:='';
          if Trim(Edit3.Text)<>'' then
          begin
            FieldByName('Aorddefstr1').Value:='正品';
          end;
          if Trim(Edit4.Text)<>'' then
          begin
            FieldByName('Aorddefstr1').Value:='一等次品';
          end;
          if Trim(Edit5.Text)<>'' then
          begin
            FieldByName('Aorddefstr1').Value:='二等次品';
          end;
          post;
        end
        else
        begin
          edit;
          FieldByName('APTM').Value:=Trim(maxno);
          FieldByName('AOrdQty3').Value:=fmjlen;
          if Trim(Edit3.Text)<>'' then
          begin
            FieldByName('Aorddefstr1').Value:='正品';
          end;
          if Trim(Edit4.Text)<>'' then
          begin
            FieldByName('Aorddefstr1').Value:='一等次品';
          end;
          if Trim(Edit5.Text)<>'' then
          begin
            FieldByName('Aorddefstr1').Value:='二等次品';
          end;
          post;
        end;
      end;  }
    FMJID:=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;

 {   with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('exec P_Do_JYCRK @MJID='''+trim(FMJID)+'''');
      execsql;
    end; }
    ADOCmd.Connection.CommitTrans;
    Result:=True;
    PState:=0;
  except
    Result:=False;
    ADOCmd.Connection.RollbackTrans;
    Application.MessageBox('保存失败！','提示',0);
  end;
end;

procedure TfrmMJManageNewFDNew.BTAddClick(Sender: TObject);
begin
  if Trim(Label2.Caption)='' then Exit;
  PState:=1;
  FInt:=11;
 // pint=1;
  InitCDGridID();
  InitCDGrid();
  BtnStatus(True);
  Label16.Caption:='新增';
end;

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

procedure TfrmMJManageNewFDNew.BTPrintClick(Sender: TObject);
var
  fPrintFile:String;
  mvalue:Double;
  fRoll:Tstringlist;
  i:integer;
begin
  if Trim(FAPID)='' then Exit;
  MJLen.SetFocus;
  if FInt=4  then
  begin
    if CDS_MJID.IsEmpty=False then
    begin
      Application.MessageBox('已打过条码？请尝试重打。','提示',0);
      Exit;
    end;
  end;
  if trim(C_CodeName.Text)='0' then
  begin
    Application.MessageBox('品名不能为空!','提示',0);
    Exit;
  end;
  if trim(C_Color.Text)='0' then
  begin
    Application.MessageBox('颜色不能为空!','提示',0);
    Exit;
  end;
  if Trim(MJLen.Text)='' then
  begin
    Application.MessageBox('长度不能为空!','提示',0);
    Exit;
  end;
  if TryStrToFloat(MJLen.Text,mvalue)=False then
  begin
    Application.MessageBox('长度录入错误!','提示',0);
    Exit;
  end;



  IF strtointdef(trim(Edit10.Text),1)<0 then
  begin
    application.MessageBox('匹数不能小于1！','提示',0);
    exit;
  end;

  if LeftStr(trim(C_Color.Text),1)='0' 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(MJSJKZ.Text)<>'' then
  begin
    if TryStrToFloat(MJSJKZ.Text,mvalue)=False then
    begin
      Application.MessageBox('克重录入错误!','提示',0);
      Exit;
    end;
  end;
  if Trim(cmb_bz.Text)='' then
  begin
    Application.MessageBox('标签不能为空!','提示',0);
    Exit;
  end;

 { if PState=1 then
  begin
    if Application.MessageBox('是否要打印条码？打印后数据将不能修改！','提示',32+4)<>IDYES then Exit;
  end;  }

  fRoll:=Tstringlist.Create;
  for i:=1 to strtointdef(Edit10.Text,1) do
  begin
    if SaveData() then
    begin
      fRoll.Add(CDS_MJID.FieldByName('MJID').AsString);
      BTAdd.Click;
    end
    else
    exit;
  end;

  IF fRoll.Count<1 then exit;
    //BtnStatus(False);
  //  MJFK.Text:='';
    //MJSJKZ.Text:='';
    MJLen.Text:='';
   // MJMaoZ.Text:='';
 //   MJQty1.Text:='';
 //   MJQty2.Text:='';
 //   MJSJKZ.Text:='';
    Label15.Caption:='';
    Edit3.Text:='√';
    Edit4.Text:='';
    Edit5.Text:='';
   // Edit7.Text:='';
   // Edit8.Text:='';
   // Edit9.Text:='';
    if Trim(Edit6.Text)='√' then
    begin
      for i:=0 to fRoll.Count-1 do
      begin
        Printdata(fRoll.Strings[i]);
      end;
    end;
  MJLen.SetFocus;
  Label16.Caption:='';
  BTAdd.Click;
end;
procedure TfrmMJManageNewFDNew.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(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(MJLen.Text)<>'' then
      begin
        FieldByName('KCQty').Value:=StrToFloat(MJLen.Text);
      end;
      FieldByName('KCQtyUnit').Value:=Trim(Label9.Caption);
      Post;
    end;
end;
procedure TfrmMJManageNewFDNew.BtnStatus(BSInt:Boolean);
begin
 // Tv2.OptionsSelection.CellSelect:=BSInt;
end;
procedure TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.SpeedButton13Click(Sender: TObject);
var
  i:Integer;
begin
  if Trim(Label2.Caption)='' then Exit;
//  if Label2.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;
  PState:=1;
  Edit1.SetFocus;
  //CDQty.SetFocus;
  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(Edit1.Name);
      end;
    end;
  end;

end;

procedure TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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);
    if Trim(CDQty.Text)<>'' then
    begin
      FieldByName('CDQty').Value:=StrToFloat(CDQty.Text);
    end else
    begin
      FieldByName('CDQty').Value:=0;
    end;
     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(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 TfrmMJManageNewFDNew.Button4Click(Sender: TObject);
begin
  Edit1.Text:='';
  Edit2.Text:='';
  CDQty.Text:='';
  MovePanel1.Visible:=False;
  Panel3.Visible:=False;
end;

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

procedure TfrmMJManageNewFDNew.Button5Click(Sender: TObject);
var
   fPrintFile:String;
  Txt,fImagePath:string;
  Moudle: THandle;
  Makebar:TMakebar;
  Mixtext:TMixtext;
  NewFile: TFileStream;
  OldFile: TFileStream;
begin
  if CDS_MJID.IsEmpty then Exit;
  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;
  Printdata(CDS_MJID.fieldbyname('MJID').AsString);

end;

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

procedure TfrmMJManageNewFDNew.APIDKeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
  begin
    Button2.Click;
   { with ADOTmp do
    begin
      Close;
      sql.Clear;
      sql.Add('select A.*  ');
      sql.Add('from JYOrder_Sub_AnPai A');
      sql.Add('where APID='''+Trim(APID.Text)+'''');
      Open;
    end;
    if ADOTmp.IsEmpty=False then
    begin
    //  Label2.Visible:=True;
      Label2.Caption:=Trim(ADOTmp.fieldbyname('APID').AsString);
   //   Label24.Visible:=True;
      Label24.Caption:='品名：'+Trim(ADOTmp.fieldbyname('C_CodeName').AsString);
   //   Label25.Visible:=True;
      Label25.Caption:='颜色：'+Trim(ADOTmp.fieldbyname('C_Color').AsString);
      Label29.Caption:='匹数：'+Trim(ADOTmp.fieldbyname('AordQty2').AsString);
      Label30.Caption:='数量：'+Trim(ADOTmp.fieldbyname('AordQty1').AsString);
      Label31.Caption:='缸号：'+Trim(ADOTmp.fieldbyname('AOrddefStr1').AsString);
      FAPID:=Trim(APID.Text);
      FMainId:=Trim(ADOTmp.fieldbyname('MainId').AsString);
      FSubId:=Trim(ADOTmp.fieldbyname('SubId').AsString);
      Label9.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr3').AsString);
      Label13.Caption:=Trim(ADOTmp.fieldbyname('AOrddefstr2').AsString);
      Label19.Caption:=Trim(Label9.Caption);
      Label20.Caption:=Trim(Label9.Caption);
      Label7.Caption:=Trim(Label9.Caption);
      C_CodeName.Text:=Trim(ADOTmp.fieldbyname('C_CodeName').AsString);
      C_Color.Text:=Trim(ADOTmp.fieldbyname('C_Color').AsString);
      BCGangNo.Text:=Trim(ADOTmp.fieldbyname('AOrddefstr1').AsString);
      BTAdd.Click;
    end else
    begin
      Application.MessageBox('条码错误!','提示',0);
      //Label2.Visible:=False;
      Label2.Caption:='';
      Label24.Caption:='';
      Label25.Caption:='';
      Label29.Caption:='';
      Label30.Caption:='';
      Label31.Caption:='';
      C_CodeName.Text:='';
      C_Color.Text:='';
      BCGangNo.Text:='';
      mjlen.Text:='';

      APID.Text:='';
      FAPID:='';
      FMainId:='';
      FSubId:='';
      Exit;
    end;

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

procedure TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.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 TfrmMJManageNewFDNew.Edit6Click(Sender: TObject);
begin
  if Trim(Edit6.Text)='' then
  begin
    Edit6.Text:='√';
  end else
  begin
    Edit6.Text:='';
  end;
end;

procedure TfrmMJManageNewFDNew.MJLenKeyPress(Sender: TObject;
  var Key: Char);
begin
  iF key=#13 then
  begin
    BTPrint.Click;
  end;
end;

procedure TfrmMJManageNewFDNew.MJQty1KeyPress(Sender: TObject;
  var Key: Char);
begin
  iF key=#13 then
  begin
    MJLen.SetFocus;
  end;
end;

procedure TfrmMJManageNewFDNew.Edit7Click(Sender: TObject);
begin
  if Trim(Edit7.Text)='' then
  begin
    Edit7.Text:='√';
    Edit8.Text:='';
    Edit9.Text:='';
  end else
  begin
    Edit7.Text:='';
    Edit8.Text:='';
    Edit9.Text:='';
  end;
end;

procedure TfrmMJManageNewFDNew.Edit8Click(Sender: TObject);
begin
  if Trim(Edit8.Text)='' then
  begin
    Edit7.Text:='';
    Edit8.Text:='√';
    Edit9.Text:='';
  end else
  begin
    Edit7.Text:='';
    Edit8.Text:='';
    Edit9.Text:='';
  end;
end;

procedure TfrmMJManageNewFDNew.Edit9Click(Sender: TObject);
begin
  if Trim(Edit9.Text)='' then
  begin
    Edit7.Text:='';
    Edit8.Text:='';
    Edit9.Text:='√';
  end else
  begin
    Edit7.Text:='';
    Edit8.Text:='';
    Edit9.Text:='';
  end;
end;

procedure TfrmMJManageNewFDNew.C_CodeNameKeyPress(Sender: TObject;
  var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
  end;
end;

procedure TfrmMJManageNewFDNew.C_CodeNameExit(Sender: TObject);
begin
  IF trim(C_CodeName.Text)='' then exit;

  IF rightBstr(trim(C_CodeName.Text),1)<>'#'THEN
  BEGIn
    C_CodeName.Text:=trim(C_CodeName.Text)+'#';
  END;
end;

procedure TfrmMJManageNewFDNew.C_ColorExit(Sender: TObject);
begin
  IF trim(C_Color.Text)='' then exit;

  IF rightBstr(trim(C_Color.Text),1)<>'#'THEN
  BEGIn
    C_Color.Text:=trim(C_Color.Text)+'#';
  END;
end;

procedure TfrmMJManageNewFDNew.BCGangNoExit(Sender: TObject);
begin
 { IF trim(BCGangNo.Text)='' then exit;

  IF rightBstr(trim(BCGangNo.Text),1)<>'W'THEN
  BEGIn
    BCGangNo.Text:=trim(BCGangNo.Text)+'W';
  END;  }
end;

procedure TfrmMJManageNewFDNew.SpeedButton19Click(Sender: TObject);

begin
 // TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).OnKeyPress(owers,#13) ;

end;

procedure TfrmMJManageNewFDNew.Button2Click(Sender: TObject);
begin
  if trim(APID.Text)<>'' then
  begin
    with ADOTmp do
    begin
      Close;
      sql.Clear;
      sql.Add('select A.*,  ');
      sql.Add('maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=A.OrdsubIDCK ),0),');
      sql.Add('C_CodeNameZ=(select Top 1 defnote3 from KH_Zdy_Attachment X where X.ZdyName=A.SPName and Type=''CP'') ');
      sql.Add('from CK_SXPB_CR A');
      sql.Add('where SPID='''+Trim(APID.Text)+'''');
      Open;
    end;
    if ADOTmp.IsEmpty=False then
    begin
    //  Label2.Visible:=True;
      Label2.Caption:=Trim(ADOTmp.fieldbyname('SPID').AsString);
   //   Label24.Visible:=True;
      Label24.Caption:='品名：'+Trim(ADOTmp.fieldbyname('SPName').AsString);
      Label25.Caption:='颜色：'+Trim(ADOTmp.fieldbyname('SPColor').AsString);
    //  Label29.Caption:='匹数：'+Trim(ADOTmp.fieldbyname('AordQty2').AsString);
     // Label30.Caption:='数量：'+Trim(ADOTmp.fieldbyname('AordQty1').AsString);
      Label31.Caption:='缸号：'+Trim(ADOTmp.fieldbyname('gangNo').AsString);
      FAPID:=Trim(APID.Text);
      fckName:=Trim(ADOTmp.fieldbyname('ckName').AsString);
      FMainId:=Trim(ADOTmp.fieldbyname('ORDMainIdCK').AsString);
      FSubId:=Trim(ADOTmp.fieldbyname('ORDSubIdCK').AsString);
      Label9.Caption:=uppercase(Trim(ADOTmp.fieldbyname('QtyUnit').AsString));
      Label13.Caption:=uppercase(Trim(ADOTmp.fieldbyname('QtyUnit').AsString));
      Label19.Caption:=Trim(Label9.Caption);
   //   Label20.Caption:=Trim(Label9.Caption);
   //   Label7.Caption:=Trim(Label9.Caption);
      C_CodeName.Text:=Trim(ADOTmp.fieldbyname('SPName').AsString);
      C_CodeNameZ.Text:=Trim(ADOTmp.fieldbyname('C_CodeNameZ').AsString);
      C_Color.Text:=Trim(ADOTmp.fieldbyname('SPColor').AsString);
      note.Text:=Trim(ADOTmp.fieldbyname('note').AsString);
   //   C_hx.Text:=Trim(ADOTmp.fieldbyname('SPHX').AsString);
      BCGangNo.Text:=Trim(ADOTmp.fieldbyname('gangNo').AsString);
      BTAdd.Click;
    end else
    begin
      Application.MessageBox('条码错误!','提示',0);
      //Label2.Visible:=False;
      Label2.Caption:='';
      Label24.Caption:='';
      Label25.Caption:='';
      Label29.Caption:='';
      Label30.Caption:='';
      Label31.Caption:='';
      C_CodeName.Text:='';
      C_Color.Text:='';
      BCGangNo.Text:='';
      mjlen.Text:='';

      APID.Text:='';
      FAPID:='';
      FMainId:='';
      FSubId:='';
      Exit;
    end;
    Edit7.Text:='';
    Edit8.Text:='';
    Edit9.Text:='';
    APID.Text:='';
    BTAdd.Click;
  end;
end;

end.
