unit U_MCP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
  cxEdit, DB, cxDBData, ToolWin, ComCtrls, cxGridCustomTableView,
  cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, StdCtrls, ExtCtrls,
  cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxButtonEdit, BtnEdit,
  cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL, cxTLData, cxContainer,
  cxCurrencyEdit, cxCheckBox, cxSplitter, cxLookAndFeels, cxLookAndFeelPainters,
  cxNavigator, cxTLdxBarBuiltInMenu;

type
  TfrmMCP = class(TForm)
    ToolBar1: TToolBar;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    DataSource1: TDataSource;
    ClientDataSet1: TClientDataSet;
    TBClose: TToolButton;
    ADOConnection1: TADOConnection;
    ThreeImgList: TImageList;
    DataSource2: TDataSource;
    ML_GYS: TClientDataSet;
    DataSource3: TDataSource;
    ML_GX: TClientDataSet;
    ADOQuery6: TADOQuery;
    ADOQuery2: TADOQuery;
    ADOQuery3: TADOQuery;
    Panel4: TPanel;
    Panel5: TPanel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Button1: TButton;
    DataSource4: TDataSource;
    ADOQueryTree: TADOQuery;
    Order_Tree: TClientDataSet;
    Panel6: TPanel;
    cxGrid1: TcxGrid;
    TV1: TcxGridDBTableView;
    V1BPCode: TcxGridDBColumn;
    V1BPName: TcxGridDBColumn;
    V1BPMF1: TcxGridDBColumn;
    V1BPKZ: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    ToolBar2: TToolBar;
    ToolButton1: TToolButton;
    Panel7: TPanel;
    cxDBTreeList1: TcxDBTreeList;
    cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
    ToolBar3: TToolBar;
    cxGridPopupMenu1: TcxGridPopupMenu;
    cxGridPopupMenu2: TcxGridPopupMenu;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyleRepository2: TcxStyleRepository;
    cxStyle2: TcxStyle;
    BPMF: TEdit;
    BPKZ: TEdit;
    MXCode: TEdit;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    BPCodeM: TEdit;
    V1BPNote: TcxGridDBColumn;
    Label14: TLabel;
    BPNote: TEdit;
    V1BPPrice: TcxGridDBColumn;
    Label15: TLabel;
    BPPrice: TEdit;
    Label16: TLabel;
    Label3: TLabel;
    MXName: TEdit;
    V1BPCF: TcxGridDBColumn;
    Label4: TLabel;
    BPCF: TEdit;
    TV1Column1: TcxGridDBColumn;
    Label5: TLabel;
    PMHH: TEdit;
    Label10: TLabel;
    GYSName: TBtnEditC;
    TV1Column2: TcxGridDBColumn;
    TV1Column3: TcxGridDBColumn;
    BPNameM: TComboBox;
    ADOQuery1: TADOQuery;
    ADOQuery4: TADOQuery;
    ADOQuery5: TADOQuery;
    IsKC: TCheckBox;
    TV1Column4: TcxGridDBColumn;
    TV1Column5: TcxGridDBColumn;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBAddClick(Sender: TObject);
    procedure TBSaveClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BPNamehange(Sender: TObject);
    procedure v1note1PropertiesEditValueChanged(Sender: TObject);
    procedure V1BPCodePropertiesEditValueChanged(Sender: TObject);
    procedure V1BPNamePropertiesEditValueChanged(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure BPCodeMChange(Sender: TObject);
    procedure Tv3CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure ToolButton1Click(Sender: TObject);
    procedure Button1KeyPress(Sender: TObject; var Key: Char);
    procedure cxDBTreeList1Click(Sender: TObject);
    procedure MXCodeKeyPress(Sender: TObject; var Key: Char);
    procedure MXNameKeyPress(Sender: TObject; var Key: Char);
    procedure FormDestroy(Sender: TObject);
    procedure BPPriceKeyPress(Sender: TObject; var Key: Char);
    procedure BPNoteKeyPress(Sender: TObject; var Key: Char);
    procedure BPMFKeyPress(Sender: TObject; var Key: Char);
    procedure BPKZKeyPress(Sender: TObject; var Key: Char);
    procedure TBCopyClick(Sender: TObject);
    procedure GYSNameBtnDnClick(Sender: TObject);
    procedure TV1DblClick(Sender: TObject);
    procedure IsKCClick(Sender: TObject);
  private
    FBPID, FCPID, FCPNo, FCPName, FGCName: string;
    procedure InitGrid();
    procedure SaveData();
    procedure initTree();
    { Private declarations }
  public
    flag, flagname, snote, MainType, FGYName, Fint, canshu1: string;
    fnote, fnote1, forderno, fZdyFlag, ViewFlag, fHelpType: Boolean;
    PPSTE, isCopy, sfprice: integer;
    { Public declarations }
  end;

var
  frmMCP: TfrmMCP;

implementation

uses
  U_DataLink, U_Fun10, U_GYSList, U_BPZDY_LRM;

{$R *.dfm}
procedure TfrmMCP.initTree();
begin
  with ADOQueryTree do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select *');
    sql.Add(', Case when isnull(CPNo,'''')<>'''' then RTrim(CPNo)+''/''+CPName else CPName end as CP ');
    SQL.Add('from M_Tree order by CPlevel,XHInt,CPOrder,CPName');
    Open;
  end;
  SCreateCDS20(ADOQueryTree, Order_Tree);
  SInitCDSData20(ADOQueryTree, Order_Tree);
  cxDBTreeList1.Items[0].Expand(true);
end;

procedure TfrmMCP.SaveData();
var
  maxno: string;
begin
  if FGYName <> '' then
    exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    ClientDataSet1.DisableControls;
    with ClientDataSet1 do
    begin
      First;
      while not eof do
      begin
        if Trim(ClientDataSet1.FieldByName('BPID').AsString) = '' then
        begin
          if GetLSNo(ADOQueryTemp, maxno, 'BP', 'M_ZDY', 3, 1) = False then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            ClientDataSet1.EnableControls;
            Application.MessageBox('取最大编号失败！', '提示', 0);
            Exit;
          end;
        end
        else
        begin
          maxno := Trim(ClientDataSet1.fieldbyname('BPID').AsString);
        end;
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from M_ZDY where BPID=''' + Trim(maxno) + '''');
          Open;
        end;
        if ADOQueryCmd.IsEmpty then
        begin
          ADOQueryCmd.Append;
        end
        else
        begin
          ADOQueryCmd.Edit;
        end;
        ADOQueryCmd.FieldByName('BPID').Value := Trim(maxno);
        SSetSaveDataCDSNew(ADOQueryCmd, Tv1, ClientDataSet1, 'M_ZDY', 3);
        ADOQueryCmd.FieldByName('BPType').Value := flagName;
        ADOQueryCmd.FieldByName('BPFlag').Value := flag;
        ADOQueryCmd.FieldByName('valid').Value := 'Y';
        ADOQueryCmd.Post;
        with ADOQueryTemp do
        begin
          Close;
          sql.Clear;
          sql.add('select * from M_ZDY where BPCode=''' + Trim(ClientDataSet1.fieldbyname('BPCode').AsString) + '''');
          sql.Add(' and BPFlag=''' + trim(flag) + '''');
          Open;
        end;
        if ADOQueryTemp.IsEmpty = False then
        begin
          if ADOQueryTemp.RecordCount > 1 then
          begin
            with ADOQueryCmd do
            begin
              Close;
              sql.Clear;
              SQL.Add('delete M_ZDY where BPID=''' + Trim(ClientDataSet1.fieldbyname('BPID').AsString) + '''');
              ExecSQL;
            end;
            ADOQueryCmd.Connection.RollbackTrans;
            ClientDataSet1.EnableControls;
            Application.MessageBox('编号重复！', '提示', 0);
            Exit;
          end;
        end;
        with ADOQueryTemp do
        begin
          Close;
          sql.Clear;
          sql.add('select * from M_ZDY where BPName=''' + Trim(ClientDataSet1.fieldbyname('BPName').AsString) + '''');
          sql.add(' and isnull(BPMF,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPMF').AsString) + '''');
          sql.add(' and isnull(BPKZ,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPKZ').AsString) + '''');
          sql.add(' and isnull(BPJS,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPJS').AsString) + '''');
          sql.add(' and isnull(BPWS,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPWS').AsString) + '''');
          sql.add(' and isnull(BPMiDu,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPMiDu').AsString) + '''');
          sql.add(' and isnull(BPUnit,'''')=''' + Trim(ClientDataSet1.fieldbyname('BPUnit').AsString) + '''');
          sql.Add(' and BPFlag=''' + trim(flag) + '''');
          Open;
        end;
        if ADOQueryTemp.IsEmpty = False then
        begin
          if ADOQueryTemp.RecordCount > 1 then
          begin
            with ADOQueryCmd do
            begin
              Close;
              sql.Clear;
              SQL.Add('delete M_ZDY where BPID=''' + Trim(ClientDataSet1.fieldbyname('BPID').AsString) + '''');
              ExecSQL;
            end;
            ADOQueryCmd.Connection.RollbackTrans;
            ClientDataSet1.EnableControls;
            Application.MessageBox('名称门幅克重经纱纬纱重复！', '提示', 0);
            Exit;
          end;
        end;
        ClientDataSet1.Edit;
        ClientDataSet1.FieldByName('BPID').Value := Trim(maxno);
        //ClientDataSet1.Post;
        Next;
      end;
      ClientDataSet1.EnableControls;
    end;
    TV1.OptionsData.Editing := false;
    TV1.OptionsSelection.CellSelect := false;
    ADOQueryCmd.Connection.CommitTrans;
  except
    ;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('保存失败！', '提示', 0);
  end;
end;

procedure TfrmMCP.FormCreate(Sender: TObject);
begin
  try
    //cxGrid1.Align:=alClient;
    with ADOConnection1 do
    begin
      Connected := false;
      ConnectionString := DConString;
      //ConnectionString:='';
      Connected := true;
    end;
  except
    frmMCP.Free;
  end;
  canshu1 := Trim(DParameters1);
end;

procedure TfrmMCP.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ToolBar1.SetFocus;
  Action := caFree;
end;

procedure TfrmMCP.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      sql.Clear;
      sql.Add(' exec P_Select_M2 :Code,:PState,:CYType,:Stats ');
      Parameters.ParamByName('Code').Value := '';
      Parameters.ParamByName('PState').Value := 0;
      Parameters.ParamByName('CYType').Value := Trim(Order_Tree.fieldbyname('CPID').AsString);
      if IsKC.Checked then
      begin
        Parameters.ParamByName('Stats').Value := '1';
      end
      else
      begin
        Parameters.ParamByName('Stats').Value := '';
      end;
      Open;
    end;
    SCreateCDS20(ADOQueryMain, ClientDataSet1);
    SInitCDSData20(ADOQueryMain, ClientDataSet1);
  finally
    ADOQueryMain.EnableControls;
  end;

  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('select distinct(BPName) AS name  from M_ZDY where CPID not like ''%CP%''  ');
    Open;
  end;
  BPNameM.Items.Clear; //清空
  BPNameM.Items.Add(Trim(''));
  while not ADOQueryCmd.eof do
  begin
    BPNameM.Items.Add(ADOQueryCmd.fieldbyname('name').AsString);
    ADOQueryCmd.next;
  end;
end;

procedure TfrmMCP.TBAddClick(Sender: TObject);
var
  i: Integer;
begin
  if Order_Tree.FieldByName('CPLevel').AsInteger <> 3 then
  begin
    Panel5.Visible := False;
    Application.MessageBox('没有选择类型，不能新增!', '提示', 0);
    Exit;
  end
  else
  begin
    Panel5.Visible := True;
    SClearData(Panel5, 2);
    BPMF.Text := '151';
    BPPrice.Text := '0';
//    MXName.Text := '棉'; //trim(FCPName);
    MXName.Text := trim(FCPName);
    FBPID := '';
    MXCode.SetFocus;
    Button1.Caption := '新增保存';
  end;

end;

procedure TfrmMCP.TBSaveClick(Sender: TObject);
var
  maxno: string;
begin
  if ClientDataSet1.IsEmpty then
    Exit;
  Toolbar1.SetFocus;
  if ClientDataSet1.Locate('BPCode', null, []) then
  begin
    Application.MessageBox('编号不能为空！', '提示', 0);
    Exit;
  end;
  if ClientDataSet1.Locate('BPCode', '', []) then
  begin
    Application.MessageBox('编号不能为空！', '提示', 0);
    Exit;
  end;
  if ClientDataSet1.Locate('BPName', null, []) then
  begin
    Application.MessageBox('名称不能为空！', '提示', 0);
    Exit;
  end;
  if ClientDataSet1.Locate('BPName', '', []) then
  begin
    Application.MessageBox('名称不能为空！', '提示', 0);
    Exit;
  end;
  SaveData();
  Application.MessageBox('保存成功！', '提示', 0);
end;

procedure TfrmMCP.TBDelClick(Sender: TObject);
begin
  MXCode.SetFocus;
  if ClientDataSet1.IsEmpty then
    Exit;
  if Trim(ClientDataSet1.FieldByName('BPID').AsString) <> '' then
  begin
    if application.MessageBox('确定要删除吗?', '提示信息', 1) = 2 then
      exit;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete M_ZDY where BPID=''' + Trim(ClientDataSet1.fieldbyname('BPID').AsString) + '''');
      ExecSQL;
    end;
  end;
  ClientDataSet1.Delete;
  SClearData(Panel5, 2);
  BPMF.Text := '160';
  FBPID := '';
end;

procedure TfrmMCP.TBCloseClick(Sender: TObject);
begin
  panel1.SetFocus;
  WriteCxGrid('自定义' + Trim(flag) + '1YX111', TV1, '自定义数据');
  Close;
end;

procedure TfrmMCP.FormShow(Sender: TObject);
begin
  initTree();
  InitGrid();
  ReadCxGrid('自定义' + Trim(flag) + '1YX111', TV1, '自定义数据');
  frmMCP.Caption := Trim(flagname);
  V1BPPrice.Visible := False;

end;

procedure TfrmMCP.BPNamehange(Sender: TObject);
var
  fsj: string;
begin
  if Trim(BPNameM.Text) <> '' then
  begin
    fsj := ' BPName like ''' + '%' + Trim(BPNameM.Text) + '%' + '''';
  end;
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, fsj);
    SCreateCDS20(ADOQueryMain, ClientDataSet1);
    SInitCDSData20(ADOQueryMain, ClientDataSet1);
  end;
end;

procedure TfrmMCP.v1note1PropertiesEditValueChanged(Sender: TObject);
var
  mvalue: string;
begin
  mvalue := TcxTextEdit(Sender).EditingText;
  with ClientDataSet1 do
  begin
    Edit;
    FieldByName('BPMiDu').Value := mvalue;
    Post;
  end;
end;

procedure TfrmMCP.V1BPCodePropertiesEditValueChanged(Sender: TObject);
var
  mvalue: string;
begin
  mvalue := TcxTextEdit(Sender).EditingText;
  with ClientDataSet1 do
  begin
    Edit;
    FieldByName('BPCode').Value := mvalue;
  end;
end;

procedure TfrmMCP.V1BPNamePropertiesEditValueChanged(Sender: TObject);
var
  mvalue: string;
begin
  mvalue := TcxTextEdit(Sender).EditingText;
  with ClientDataSet1 do
  begin
    Edit;
    FieldByName('BPName').Value := mvalue;
  end;
end;

procedure TfrmMCP.ToolButton4Click(Sender: TObject);
begin
  if Order_Tree.FieldByName('CPLevel').AsInteger <> 3 then
  begin
    Panel5.Visible := False;
    Application.MessageBox('没有选择类型，不能导入!', '提示', 0);
    Exit;
  end
  else
  begin
    try
      frmMCP := TfrmMCP.Create(Application);
      with frmMCP do
      begin
        TV1Column3.Visible := True;
        ToolButton1.Visible := True;
        frmMCP.isCopy := 1;

        if Self.Caption = '棉品名(低权限)*' then
        begin
          sfPrice := 0;
        end;

        if Self.Caption = '棉品名(高权限)*' then
        begin
          sfPrice := 1;
        end;
        if ShowModal = 1 then
        begin
          with frmMCP.ClientDataSet1 do
          begin
            First;
            while not Eof do
            begin
              if Fieldbyname('ssel').AsBoolean then
              begin
                with ADOQuery3 do
                begin
                  Close;
                  SQL.Clear;
                  SQL.Add('exec P_MCopy ');
                  sql.Add('@BPID=' + quotedstr(Trim(frmMCP.ClientDataSet1.fieldbyname('BPID').AsString)));
                  sql.Add(',@CPID=' + quotedstr(Trim(Self.FCPID)));
                  sql.Add(',@CPNo=' + quotedstr(Trim(Self.FCPNo)));
                  sql.Add(',@CPName=' + quotedstr(Trim(Self.FCPName)));
//                  ShowMessage(sql.text);      ToolButton3
                  ExecSQL;
                end;
              end;
              Next;
            end;
          end;
          self.InitGrid();
        end;
      end;
    finally
      frmMCP.Free;
    end;
  end;
//  ToolBar1.SetFocus;
//  if ClientDataSet1.IsEmpty then
//    exit;
//  if ClientDataSet1.FieldByName('BPID').AsString = '' then
//  begin
//    application.MessageBox('请保存主信息', '提示');
//    exit;
//  end;
//  with ML_GYS do
//  begin
//    Append;
//    post;
//  end;
end;

procedure TfrmMCP.BPCodeMChange(Sender: TObject);
var
  fsj: string;
begin
  if Trim(BPCodeM.Text) <> '' then
  begin
    fsj := ' BPCode like ''' + '%' + Trim(BPCodeM.Text) + '%' + '''';
  end;
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, fsj);
    SCreateCDS20(ADOQueryMain, ClientDataSet1);
    SInitCDSData20(ADOQueryMain, ClientDataSet1);
  end;
end;

procedure TfrmMCP.Tv3CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
var
  i: Integer;
begin
  if ML_GX.IsEmpty then
    exit;
  ML_GX.Delete;
  i := 1;
  ML_GX.DisableControls;
  with ML_GX do
  begin
    first;
    while not eof do
    begin
      Edit;
      FieldByName('BPMiDu').Value := i;
      i := i + 1;
      next;
    end;
  end;
  ML_GX.EnableControls;
end;

procedure TfrmMCP.ToolButton1Click(Sender: TObject);
begin
  ModalResult := 1;
end;

procedure TfrmMCP.Button1KeyPress(Sender: TObject; var Key: Char);
var
  maxno: string;
begin
  if Key = #13 then
  begin
    if MXCode.Text = '' then
    begin
      application.MessageBox('明细编号不能为空', '提示');
      exit;
    end;
    try
      ADOQueryCmd.Connection.BeginTrans;
      if FBPID = '' then
      begin
        if GetLSNo(ADOQueryTemp, FBPID, 'BP', 'M_ZDY', 3, 1) = False then
        begin
          ADOQueryCmd.Connection.RollbackTrans;
          Application.MessageBox('取最大编号失败！', '提示', 0);
          Exit;
        end;
      end;
      with ADOQueryCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('select * from M_ZDY where BPID=''' + Trim(FBPID) + '''');
        Open;
      end;
      if ADOQueryCmd.IsEmpty then
      begin
        ADOQueryCmd.Append;
      end
      else
      begin
        ADOQueryCmd.Edit;
      end;
      ADOQueryCmd.FieldByName('BPID').Value := Trim(FBPID);
      SSetsaveSqlNew(ADOQueryCmd, 'M_ZDY', panel5, 2);
      ADOQueryCmd.FieldByName('BPType').Value := flagName;
      ADOQueryCmd.FieldByName('BPFlag').Value := flag;
      ADOQueryCmd.FieldByName('valid').Value := 'Y';
      ADOQueryCmd.FieldByName('CPID').Value := trim(FCPID);
      ADOQueryCmd.FieldByName('CPNo').Value := trim(FCPNo);
      ADOQueryCmd.FieldByName('CPName').Value := trim(FCPName);
      ADOQueryCmd.FieldByName('BPCode').Value := trim(FCPNo) + trim(MXCode.Text);
      ADOQueryCmd.FieldByName('BPName').Value := trim(MXName.Text);
      ADOQueryCmd.FieldByName('PMHH').Value := trim(PMHH.Text);
      ADOQueryCmd.FieldByName('GYSName').Value := trim(GYSName.Text);
      ADOQueryCmd.Post;
      with ADOQueryTemp do
      begin
        Close;
        sql.Clear;
        sql.add('select * from M_ZDY where BPCode=''' + Trim(trim(FCPNo) + trim(MXCode.Text)) + '''');
        sql.Add(' and BPFlag=''' + trim(flag) + '''');
        Open;
      end;
      if ADOQueryTemp.IsEmpty = False then
      begin
        if ADOQueryTemp.RecordCount > 1 then
        begin
          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;
            SQL.Add('delete M_ZDY where BPID=''' + Trim(FBPID) + '''');
            ExecSQL;
          end;
          ADOQueryCmd.Connection.RollbackTrans;
          Application.MessageBox('编号重复！', '提示', 0);
          Exit;
        end;
      end;
      with ADOQueryTemp do
      begin
        Close;
        sql.Clear;
        sql.add('select * from M_ZDY where BPName=''' + Trim(trim(FCPName) + trim(MXName.Text)) + '''');
        sql.add(' and isnull(BPMF,'''')=''' + Trim(BPMF.Text) + '''');
        sql.add(' and isnull(BPKZ,'''')=''' + Trim(BPKZ.Text) + '''');
        sql.Add(' and BPFlag=''' + trim(flag) + '''');
        Open;
      end;
      if ADOQueryTemp.IsEmpty = False then
      begin
        if ADOQueryTemp.RecordCount > 1 then
        begin
          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;
            SQL.Add('delete M_ZDY where BPID=''' + Trim(FBPID) + '''');
            ExecSQL;
          end;
          ADOQueryCmd.Connection.RollbackTrans;
          Application.MessageBox('名称门幅克重经纱纬纱重复！', '提示', 0);
          Exit;
        end;
      end;
      with ClientDataSet1 do
      begin
        if Button1.Caption <> '确定修改' then
          Append
        else
          edit;
        FieldByName('BPID').Value := Trim(FBPID);
        FieldByName('BPCode').Value := Trim(MXCode.Text);
        FieldByName('BPName').Value := Trim(MXName.Text);
        FieldByName('BPMF').Value := Trim(BPMF.Text);
        FieldByName('BPKZ').Value := Trim(BPKZ.Text);
        FieldByName('MXCode').Value := Trim(MXCode.Text);
        FieldByName('MXName').Value := Trim(MXName.Text);
        FieldByName('PMHH').Value := Trim(PMHH.Text);
        FieldByName('GYSName').Value := Trim(GYSName.Text);
        post;
      end;
      MXCode.Text := '';
      MXName.Text := '';
      BPMF.Text := '';
      BPKZ.Text := '';
      PMHH.Text := '';
      GYSName.Text := '';
      FBPID := '';
      MXCode.SetFocus;
      ADOQueryCmd.Connection.CommitTrans;
    except
      ;
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('保存失败！', '提示', 0);
    end;
    Application.MessageBox('保存成功', '提示');
  end;
end;

procedure TfrmMCP.cxDBTreeList1Click(Sender: TObject);
begin
  InitGrid();
  Panel5.Visible := False;
  if Order_Tree.FieldByName('CPLevel').AsInteger <> 3 then
  begin

  end
  else
  begin
    FBPID := '';
    FCPID := Trim(Order_Tree.fieldbyname('CPID').AsString);
    FCPNo := Trim(Order_Tree.fieldbyname('CPNo').AsString);
    FCPName := Trim(Order_Tree.fieldbyname('DefStr1').AsString);
    FGCName := Trim(Order_Tree.fieldbyname('CPName').AsString);

  end;
  Label16.Caption := Trim(Order_Tree.fieldbyname('CPNo').AsString);
end;

procedure TfrmMCP.MXCodeKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    MXName.SetFocus;
  end;
end;

procedure TfrmMCP.MXNameKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    BPMF.SetFocus;
  end;
end;

procedure TfrmMCP.FormDestroy(Sender: TObject);
begin
  frmMCP := nil;
end;

procedure TfrmMCP.BPPriceKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    BPNote.SetFocus;
  end;
end;

procedure TfrmMCP.BPNoteKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Button1.SetFocus;
  end;

end;

procedure TfrmMCP.BPMFKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    BPKZ.SetFocus;
  end;
end;

procedure TfrmMCP.BPKZKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    BPPrice.SetFocus;
  end;
end;

procedure TfrmMCP.TBCopyClick(Sender: TObject);
begin
  Panel5.Visible := True;
  SClearData(Panel5, 2);
  BPMF.Text := Trim(ClientDataSet1.fieldbyname('BPMF').AsString);
  BPPrice.Text := Trim(ClientDataSet1.fieldbyname('BPPrice').AsString);
  BPCF.Text := Trim(ClientDataSet1.fieldbyname('BPCF').AsString);
  BPNote.Text := Trim(ClientDataSet1.fieldbyname('BPNote').AsString);
  PMHH.Text := Trim(ClientDataSet1.fieldbyname('PMHH').AsString);
  GYSName.Text := Trim(ClientDataSet1.fieldbyname('GYSName').AsString);
//  MXName.Text := '棉';
  MXName.Text := trim(FCPName);
  FBPID := '';
  MXCode.SetFocus;
  Button1.Caption := '新增保存';
end;

procedure TfrmMCP.GYSNameBtnDnClick(Sender: TObject);
begin
  TBtnEditC(Sender).Text := '';
  TBtnEditC(Sender).TxtCode := '';
end;

procedure TfrmMCP.TV1DblClick(Sender: TObject);
begin
  ModalResult := 1;
end;

procedure TfrmMCP.IsKCClick(Sender: TObject);
begin
  InitGrid();
end;

end.

