unit U_CKProductBCPKCList;

interface

uses
  Windows, Messages, SysUtils, strUtils, Variants, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System,
  RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, BtnEdit, cxTextEdit,
  cxButtonEdit, cxDropDownEdit, MovePanel, cxContainer, cxCurrencyEdit,
  cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack,
  dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom,
  dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
  dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
  dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
  dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
  dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
  dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
  dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
  dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
  dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
  dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters,
  dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue,
  dxSkinscxPCPainter;

type
  TfrmCKProductBCPKCList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBExport: TToolButton;
    TBPrint: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    Label3: TLabel;
    C_CodeName: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    CDS_Main: TClientDataSet;
    Tv1: TcxGridDBTableView;
    cxGrid2Level1: TcxGridLevel;
    cxGrid2: TcxGrid;
    v2Column1: TcxGridDBColumn;
    v2Column3: TcxGridDBColumn;
    v2Column5: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    Label5: TLabel;
    conNo: TEdit;
    Label6: TLabel;
    MJID: TEdit;
    v1Column7: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    Label8: TLabel;
    KZ: TEdit;
    Label9: TLabel;
    MF: TEdit;
    Label7: TLabel;
    CPType: TComboBox;
    v1Column3: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    Panel4: TPanel;
    Label11: TLabel;
    Panel10: TPanel;
    Image2: TImage;
    RichEdit1: TRichEdit;
    MovePanel2: TMovePanel;
    v1gangNO: TcxGridDBColumn;
    v1C_Color: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    Label10: TLabel;
    C_Color: TEdit;
    Label4: TLabel;
    AOrdDefStr1: TEdit;
    TBKWChg: TToolButton;
    kcKw: TBtnEditA;
    v1Column11: TcxGridDBColumn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ToolButton1: TToolButton;
    v1KCROllNum: TcxGridDBColumn;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    Edit1: TEdit;
    Label12: TLabel;
    Edit2: TEdit;
    AdoPrint: TADOQuery;
    RMDB_MD: TRMDBDataSet;
    RMGridReport1: TRMGridReport;
    RMXLSExport2: TRMXLSExport;
    ToolButton4: TToolButton;
    ADOQueryPrint: TADOQuery;
    RMDB_Main: TRMDBDataSet;
    CheckBox1: TCheckBox;
    ToolButton5: TToolButton;
    ADOQueryTmp: TADOQuery;
    v1Column12: TcxGridDBColumn;
    CheckBox2: TCheckBox;
    v1Column13: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    TBNoBH: TToolButton;
    ToolButton6: TToolButton;
    Panel2: TPanel;
    Label18: TLabel;
    Label24: TLabel;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Edit_C_CodeName: TEdit;
    Edit_C_Color: TEdit;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    Button9: TButton;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoMChange(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure C_CodeNameChange(Sender: TObject);
    procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure Image2Click(Sender: TObject);
    procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure TBKWChgClick(Sender: TObject);
    procedure kcKwBtnClick(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure TBPrintClick(Sender: TObject);
    procedure kcKwExit(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure v1Column5PropertiesEditValueChanged(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure TBNoBHClick(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
  private
    TblCprk: string;
    FLeft, FTop: Integer;
    procedure InitGrid();
    { Private declarations }
  public
    procedure CreateTable();
    procedure DropTable();
    { Public declarations }
  end;

  TMakebar = procedure(ucData: pchar; nDataLen: integer; nErrLevel: integer; nMask: integer; nBarEdition: integer; szBmpFileName: pchar; nScale: integer); stdcall;

  TMixtext = procedure(szSrcBmpFileName: PChar; szDstBmpFileName: PChar; sztext: PChar; fontsize, txtheight, hmargin, vmargin, txtcntoneline: integer); stdcall;

var
  frmCKProductBCPKCList: TfrmCKProductBCPKCList;

implementation

uses
  U_DataLink, U_Fun, U_ZDYHelp, U_kcchEdit, U_KCEdit;

{$R *.dfm}

procedure TfrmCKProductBCPKCList.DropTable();
var
  strSQL: string;
begin
 // TblCprk := '[##CP_INOut123' + trim(DCode) + IntToStr(Handle)+formatdatetime('hhnnsszzz',time) + ']';
	//������ʱ��
  strSQL := 'IF OBJECT_ID(''tempdb..' + TblCprk + ''') IS NOT NULL DROP TABLE ' + TblCprk;
  with ADOQueryCmd do
  begin
    Close;
    SQL.Clear;
    SQL.Add(strSQL);
    ExecSQL;
  end;
end;

procedure TfrmCKProductBCPKCList.CreateTable();
var
  strSQL: string;
begin
  TblCprk := '[##CP_PPack' + trim(DCode) + IntToStr(Handle) + formatdatetime('hhnnsszzz', time) + ']';
	//������ʱ��
  strSQL := 'IF OBJECT_ID(''tempdb..' + TblCprk + ''') IS NOT NULL DROP TABLE ' + TblCprk + #13 + 'CREATE TABLE ' + TblCprk + ' (' + 'MainID VARCHAR(20),' + 'CRID  VARCHAR(20),' + 'BCID   Varchar(20))'#13;
  with ADOQueryCmd do
  begin
    Close;
    SQL.Clear;
    SQL.Add(strSQL);
    ExecSQL;
  end;
end;

procedure TfrmCKProductBCPKCList.FormDestroy(Sender: TObject);
begin
  frmCKProductBCPKCList := nil;
end;

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

procedure TfrmCKProductBCPKCList.FormCreate(Sender: TObject);
begin
  //cxGrid1.Align:=alClient;
  BegDate.DateTime := SGetServerDateTime(ADOQueryTemp);
  EndDate.DateTime := SGetServerDateTime(ADOQueryTemp)
end;

procedure TfrmCKProductBCPKCList.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      SQL.Add('exec P_View_CPKCMX');
      SQl.Add('@ConNo=' + quotedstr(trim(conNo.Text)));
      SQl.Add(',@C_CodeName=' + quotedstr(trim(C_CodeName.Text)));
      SQl.Add(',@C_Color=' + quotedstr(trim(C_Color.Text)));
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
  TBFind.Click;
end;

procedure TfrmCKProductBCPKCList.TBRafreshClick(Sender: TObject);
begin
 // BegDate.SetFocus;
  MovePanel2.Visible := True;
  MovePanel2.Refresh;
  InitGrid();

  MovePanel2.Visible := False;
end;

procedure TfrmCKProductBCPKCList.ConNoMChange(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  end;
end;

procedure TfrmCKProductBCPKCList.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('�ֿ����б�', Tv1, '��Ʒ�ֿ�');
  Close;
end;

procedure TfrmCKProductBCPKCList.FormShow(Sender: TObject);
begin
  ReadCxGrid('�ֿ����б�', Tv1, '��Ʒ�ֿ�');
  if Trim(DParameters1) <> '��Ȩ��' then
  begin
    TBKWChg.Visible := False;
    kcKw.Visible := False;
    ToolButton1.Visible := fALSE;
    ToolButton2.Visible := false;
    v2Column6.Options.Editing := false;
    v1Column5.Options.Editing := TRUE;            
    ToolButton3.Visible := false;
    ToolButton5.Visible := false;
    TBNoBH.Visible := false;
    ToolButton6.Visible := false;
  end
  else
  begin
    TBKWChg.Visible := True;
    kcKw.Visible := True;
    ToolButton1.Visible := fALSE;
    ToolButton2.Visible := fALSE;
    v2Column6.Options.Editing := true;
    v1Column5.Options.Editing := TRUE;
    ToolButton3.Visible := true;
    ToolButton5.Visible := true;
    TBNoBH.Visible := true;
    ToolButton6.Visible := true;
  end;
  
  //InitGrid();
end;

procedure TfrmCKProductBCPKCList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
  TcxGridToExcel('����б�', cxGrid2);
end;

procedure TfrmCKProductBCPKCList.TBFindClick(Sender: TObject);
var
  strwhere: string;
begin

  if ADOQueryMain.Active then
  begin
    strwhere := SGetFilters(Panel1, 1, 2);

    if (trim(strwhere) = '') and (trim(Edit1.Text) <> '') then
    begin
      strwhere := ' KCQty>=' + floattostr(strtofloatdef(trim(edit1.Text), 0));
    end
    else if (trim(strwhere) <> '') and (trim(Edit1.Text) <> '') then
    begin
      strwhere := strwhere + ' and KCQty>=' + floattostr(strtofloatdef(trim(edit1.Text), 0));
    end;

    if (trim(strwhere) = '') and (trim(Edit2.Text) <> '') then
    begin
      strwhere := ' KCQty<=' + floattostr(strtofloatdef(trim(Edit2.Text), 0));
    end
    else if (trim(strwhere) <> '') and (trim(Edit2.Text) <> '') then
    begin
      strwhere := strwhere + ' and KCQty<=' + floattostr(strtofloatdef(trim(Edit2.Text), 0));
    end;


 {   if (trim(strwhere)='')  then
    begin

      IF trim(CPType.Text)='��Ʒ' then
      strwhere:=' CPType=''��Ʒ'' ';
      IF trim(CPType.Text)='��Ʒ' then
      strwhere:=' CPType<>''��Ʒ'' ';
    end;

    if (trim(strwhere)<>'')  then
    begin

      IF trim(CPType.Text)='��Ʒ' then
      strwhere:=strwhere+' and CPType=''��Ʒ'' ';
      IF trim(CPType.Text)='��Ʒ' then
      strwhere:=strwhere+' and CPType<>''��Ʒ'' ';
    end;  }

    SDofilter(ADOQueryMain, strwhere);
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
  end;

end;

procedure TfrmCKProductBCPKCList.C_CodeNameChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCKProductBCPKCList.Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  TWinControl(Panel4).Perform(WM_SYSCOMMAND, $F012, 0);
end;

procedure TfrmCKProductBCPKCList.Image2Click(Sender: TObject);
begin
  Panel4.Visible := False;
end;

procedure TfrmCKProductBCPKCList.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  FLeft := X;
  FTop := Y;
end;

procedure TfrmCKProductBCPKCList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  {if Trim(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName)<>'CDQK' then Exit;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select CDQK=dbo.F_Get_Order_SubStr(:MJID,''MJCDHZSL'')');
    Parameters.ParamByName('MJID').Value:=Trim(CDS_Main.fieldbyname('MJID').AsString);
    Open;
  end;
  with CDS_Main do
  begin
    Edit;
    FieldByName('CDQK').Value:=Trim(ADOQueryTemp.fieldbyname('CDQK').AsString);
    Post;
  end; }
  Panel4.Left := FLeft;
  Panel4.Top := FTop + 110;
  Panel4.Visible := True;
  Panel4.Refresh;
  Panel10.Caption := Trim(TV1.Controller.FocusedColumn.Caption);

  RichEdit1.Text := CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString;
end;

procedure TfrmCKProductBCPKCList.N1Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, True);
end;

procedure TfrmCKProductBCPKCList.N2Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, False);
end;

procedure TfrmCKProductBCPKCList.TBKWChgClick(Sender: TObject);
begin
  if not CDS_Main.Active then
    exit;
  if CDS_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;
 { if Trim(kcKw.Text)='' then
  begin
    Application.MessageBox('�׺Ų���Ϊ��!','��ʾ',0);
    Exit;
  end;  }
  if Application.MessageBox('ȷ��Ҫִ�д˲�����', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  conNo.SetFocus;
  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      while CDS_Main.Locate('SSel', True, []) do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('Update CK_BanCP_CR Set BCGANGnO=''' + Trim(kcKw.Text) + '''');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          sql.Add('Update CK_BanCP_KC Set BCGANGnO=''' + Trim(kcKw.Text) + '''');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          ExecSQL;
        end;
        Edit;
        FieldByName('SSel').Value := False;
        FieldByName('AOrdDefStr1').Value := Trim(kcKw.Text);
        Post;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Application.MessageBox('�����ɹ�!', '��ʾ', 0);
    Exit;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmCKProductBCPKCList.kcKwBtnClick(Sender: TObject);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'CPKWFlag';
      flagname := '��λ��Ϣ';
      V1Name.Caption := '�����';
      V1Note.Caption := 'Ӣ������';
//      MainType:=Trim(DName);
      fnote := FALSE;
      if ShowModal = 1 then
      begin
        kcKw.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmCKProductBCPKCList.ToolButton1Click(Sender: TObject);
var
  CRID: integer;
  i, J: integer;
  fAPTM: string;
  Isedit: boolean;
  RollNum1: integer;
  num1: double;
  fBCID, FCRID: string;
begin
  if not CDS_Main.Active then
    exit;
  if CDS_Main.IsEmpty then
    exit;
  Isedit := false;
  frmkcchEdit := TfrmkcchEdit.create(self);
  with frmkcchEdit do
  begin
   // fBCID:=trim(CDS_Main.fieldbyname('BCID').AsString);
  //  FCRID:=trim(CDS_Main.fieldbyname('CRID').AsString);
    edit1.text := trim(CDS_Main.fieldbyname('KCROllNum').AsString);
    edit2.text := trim(CDS_Main.fieldbyname('KCqty').AsString);
    if showmodal = 1 then
    begin
      RollNum1 := strtointdef(cxCurrencyEdit1.Text, 0);
      num1 := strtofloatdef(cxCurrencyEdit2.Text, 0);
    //  i:=RadioGroup1.ItemIndex;
      Isedit := true;
    end;
    free;
  end;

  if RollNum1 < 1 then
    exit;
  if Isedit = false then
    exit;

  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      while CDS_Main.Locate('SSel', True, []) do
      begin
        with ADOQueryTemp do
        begin
          close;
          sql.Clear;
          sql.Add(' select * from  CK_BanCP_KC  ');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
        //  sql.Add(' and  KCQty=0.0 ');
          open;
          if ADOQueryTemp.fieldbyname('KCQty').AsFloat = 0.0 then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            application.MessageBox('��ѡ��¼���г��⣬���ܵ�����', '��ʾ��Ϣ', MB_ICONERROR);
            exit;
          end;
        end;
        fBCID := trim(CDS_Main.fieldbyname('BCID').AsString);
        FCRID := trim(CDS_Main.fieldbyname('CRID').AsString);
        for J := 1 to RollNum1 do
        begin
          if GetLSNo(ADOQueryCmd, fAPTM, 'C', 'APTM', 4, 1) = False then
          begin
            Application.MessageBox('ȡ����ˮ��ʧ�ܣ�', '��ʾ', 0);
            Exit;
          end;
          with ADOQueryTmp do
          begin
            close;
            sql.Clear;
            sql.Add('select * from CK_BanCP_KC A');
            sql.Add('where BCID=' + quotedstr(trim(fBCID)));
            sql.Add('and CRID=' + quotedstr(trim(FCRID)));
            open;
          end;
          with ADOQueryCmd 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 := ADOQueryCmd.fieldbyname('CRID').AsInteger;
          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('select * from CK_BanCP_KC A');
            sql.Add('where 1=2 ');
            open;
          end;
          ADOQueryCmd.Append;
          for i := 0 to ADOQueryCmd.FieldCount - 1 do
          begin
            ADOQueryCmd.fields[i].value := ADOQueryTmp.Fields[i].Value;
          end;
          ADOQueryCmd.FieldByName('CRID').Value := CRID;
          ADOQueryCmd.FieldByName('KCROllNum').Value := 1;
          ADOQueryCmd.FieldByName('KCQty').Value := num1;
          ADOQueryCmd.FieldByName('oldCRID').Value := FCRID;
          ADOQueryCmd.FieldByName('MJID').Value := trim(fAPTM);
          ADOQueryCmd.Post;

          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('select * from CK_BanCP_KC A');
            sql.Add('where CRID=''' + trim(FCRID) + '''');
            open;
          end;
          ADOQueryCmd.Edit;
          ADOQueryCmd.FieldByName('KCROllNum').Value := 1;
          ADOQueryCmd.FieldByName('KCQty').Value := ADOQueryCmd.FieldByName('KCQty').AsFloat - num1;
          ADOQueryCmd.Post;

          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('update  CK_BanCP_KC SET KCROllNum=0 ');
            sql.Add('where CRID=''' + trim(FCRID) + ''' and KCQty<=0 ');
            execsql;
          end;

        end;
     {   with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('UPDATE CK_BanCp_KC SET KCRollNum =1 ');
          sql.Add('WHERE (KCQty<>0 or KCKgQty<>0)and KcRollNum=0  ');
          ExecSQL;
        end;
        }

        Edit;
      //  FieldByName('kcqty').Value:=kcQty;
        FieldByName('SSel').Value := False;
        post;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Application.MessageBox('�����ɹ�!', '��ʾ', 0);
    TBRafresh.Click;
    CDS_Main.Locate('CRID', FCRID, []);
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmCKProductBCPKCList.ToolButton2Click(Sender: TObject);
var
  i, FCRID: integer;
  fconNo, FC_CodeName, FC_Color: string;
  fRollNum, FQty: double;
begin
  if not CDS_Main.Active then
    exit;
  if not CDS_Main.Locate('SSel', True, []) then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;
  if Application.MessageBox('ȷ��Ҫ�ϲ�������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  i := 0;
  with CDS_Main do
  begin
    DisableControls;
    First;
    while not eof do
    begin
      if Fieldbyname('Ssel').AsBoolean then
      begin
        with ADOQueryTemp do
        begin
          close;
          sql.Clear;
          sql.Add(' select * from  CK_BanCP_KC  ');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          sql.Add(' and  KCQty=0.0 ');
          open;
          if not ADOQueryTemp.IsEmpty then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            application.MessageBox('��ѡ��¼���г��⣬���ܵ�����', '��ʾ��Ϣ', MB_ICONERROR);
            exit;
          end;
        end;
        if i = 0 then
        begin
          fconNo := trim(Fieldbyname('ConNo').AsString);
          FC_CodeName := trim(Fieldbyname('C_CodeName').AsString);
          FC_Color := trim(Fieldbyname('C_Color').AsString);
        end
        else
        begin
          if trim(fconNo) <> trim(Fieldbyname('ConNo').AsString) then
          begin
            EnableControls;
            application.MessageBox('���񵥺Ų�ͬ�����ܺϲ���', '��ʾ��Ϣ', 0);
            exit;
          end;
          if trim(FC_CodeName) <> trim(Fieldbyname('C_CodeName').AsString) then
          begin
            EnableControls;
            application.MessageBox('��Ʒ���Ʋ�ͬ�����ܺϲ���', '��ʾ��Ϣ', 0);
            exit;
          end;
          if trim(FC_Color) <> trim(Fieldbyname('C_Color').AsString) then
          begin
            EnableControls;
            application.MessageBox('��ɫ��ͬ�����ܺϲ���', '��ʾ��Ϣ', 0);
            exit;
          end;
        end;
        i := i + 1;
      end;
      next;
    end;
    EnableControls;
    First;
  end;

  if i < 2 then
    exit;

  ADOQueryCmd.Connection.BeginTrans;
  try

    fRollNum := 0;
    FQty := 0;
    with CDS_Main do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if Fieldbyname('Ssel').AsBoolean then
        begin
          FCRID := Fieldbyname('CRID').AsInteger;
          fRollNum := fRollNum + Fieldbyname('KCROllNum').AsFloat;
          FQty := FQty + Fieldbyname('kcQty').AsFloat;

          with adoqueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('select * from CK_BanCP_KC ');
            sql.Add('where CRID=' + quotedstr(trim(CDS_Main.Fieldbyname('CRID').AsString)));
            open;
            edit;
            fieldbyname('KCROllNum').Value := 0;
            fieldbyname('kcQty').Value := 0;
            post;
          end;
        end;
        next;
      end;
      EnableControls;
      First;
    end;

    with adoqueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('select * from CK_BanCP_KC ');
      sql.Add('where CRID=' + quotedstr(inttostr(FCRID)));
      open;
      edit;
      fieldbyname('KCROllNum').Value := 1;
      fieldbyname('kcQty').Value := FQty;
      post;
    end;

    ADOQueryCmd.Connection.CommitTrans;
    application.MessageBox('���ݺϲ��ɹ���', '��ʾ��Ϣ');
    TBRafresh.Click;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox('���ݺϲ�ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;

end;

procedure TfrmCKProductBCPKCList.ToolButton3Click(Sender: TObject);
var
  oldQty, kcQty: double;
begin
  if not CDS_Main.Active then
    exit;
  if CDS_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;

  if Application.MessageBox('ȷ��Ҫִ�д˲�����', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  conNo.SetFocus;
  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      while CDS_Main.Locate('SSel', True, []) do
      begin
        with ADOQueryTemp do
        begin
          close;
          sql.Clear;
          sql.Add(' select * from  CK_BanCP_KC  ');
          sql.Add(' where CRID=' + quotedstr(trim(Cds_Main.Fieldbyname('CRID').AsString)));
          open;
          if Fieldbyname('KCQty').AsFloat = 0.0 then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            application.MessageBox('��ѡ��¼���г��⣬���ܵ�����', '��ʾ��Ϣ', MB_ICONERROR);
            exit;
          end;
        end;

        oldQty := ADOQueryTemp.fieldbyname('KCQty').AsFloat;
        kcQty := CDS_Main.fieldbyname('kcQty').AsFloat;
        if oldQty < 100 then
        begin
          if abs(oldQty - kcQty) > 5.0 then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            application.MessageBox('���������ܳ���5M', '��ʾ��Ϣ', MB_ICONERROR);
            exit;
          end;
        end
        else
        begin
          if strtofloat(format('%.1f', [abs(oldQty - kcQty) / oldQty * 100])) > 3.0 then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            application.MessageBox('���������ܳ���ԭ������%3', '��ʾ��Ϣ', MB_ICONERROR);
            exit;
          end;
        end;

        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add(' Update CK_BanCP_KC Set ZDYFlote1=KCqty ');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          sql.Add(' and ZDYFlote1=0 ');
          sql.Add(' Update CK_BanCP_KC Set kcqty=''' + floattostr(kcQty) + ''',ZDYStr1=''������'' ');
          sql.Add(' ,kcNote=' + quotedstr(trim(CDS_Main.fieldbyname('kcnote').AsString)));
          sql.Add(' ,CPType=' + quotedstr(trim(CDS_Main.fieldbyname('CPType').AsString)));
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          sql.Add(' Update CK_BanCP_KC Set kcRollNum=0 ');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          sql.Add(' and kcqty=0 and kcRollNum<>0 ');
          sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
          sql.Add(' ' + quotedstr(trim(DName)));
          sql.Add(',getdate() ');
          sql.Add(',' + quotedstr(trim(self.Caption)));
          sql.Add(',' + quotedstr(trim('������')));
          sql.Add(',' + quotedstr(trim('���ţ�' + trim(CDS_Main.FieldByName('MJID').AsString))));
          sql.Add(',' + quotedstr(trim('�ɹ�')));
          sql.Add(')');
          ExecSQL;
        end;
        Edit;
        FieldByName('kcqty').Value := kcQty;
        FieldByName('SSel').Value := False;
        post;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Application.MessageBox('�����ɹ�!', '��ʾ', 0);
    Exit;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmCKProductBCPKCList.TBPrintClick(Sender: TObject);
var
  filepath: string;
begin
  if CDS_Main.IsEmpty then
    exit;
  CreateTable();
  with CDS_Main do
  begin
    DisableControls;
    first;
    while not eof do
    begin
      with adoqueryCmd do
      begin
        Close;
        SQL.Clear;
        SQL.Add(' insert into ' + TblCprk + '(BCID,CRID) values( ');
        SQL.Add(' ' + quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString)));
        SQL.Add(',' + quotedstr(trim(CDS_Main.fieldbyname('CRID').AsString)));
        sql.add(')');
        execsql;
      end;
      next;
    end;
    First;
    EnableControls;
  end;
  with AdoPrint do
  begin
    close;
    sql.Clear;
    sql.Add('exec P_Get_CpkcList ');
    sql.Add('@mainID=' + quotedstr(trim('')));
    sql.Add(',@TblCprk=' + quotedstr(trim(TblCprk)));
    sql.Add(',@flag=' + quotedstr(trim('1')));
    open;
  end;
  try
    filepath := ExtractFilePath(Application.ExeName) + 'report\�����Ϣ��.rmf';
    if not FileExists(Pchar(filepath)) then
    begin
      application.MessageBox(pchar('�ļ�[' + filepath + ']�����ڣ�'), '��ʾ��Ϣ', MB_IConError);
      exit;
    end;
    RMVariables['begdate'] := FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ' - ' + FormatDateTime('yyyy-MM-dd', enddate.DateTime);
    RMVariables['dtxz'] := FormatDateTime('yyyy-mm-dd', date());
    RMVariables['zdr'] := trim(DName);
//    RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString);
    RMGridReport1.LoadFromFile(filepath);
    RMGridReport1.ShowReport;
  finally

  end;
  DropTable();
end;

procedure TfrmCKProductBCPKCList.kcKwExit(Sender: TObject);
var
  mvalue: string;
begin
  mvalue := kcKw.Text;

  if trim(mvalue) = '' then
    exit;

  if rightBstr(trim(mvalue), 1) <> 'W' then
  begin
    mvalue := trim(mvalue) + 'W';
  end;

  kcKw.Text := trim(mvalue);
end;

procedure TfrmCKProductBCPKCList.ToolButton4Click(Sender: TObject);
var
  fPrintFile: string;
  Txt, fImagePath: string;
  Moudle: THandle;
  Makebar: TMakebar;
  Mixtext: TMixtext;
begin
  if CDS_Main.IsEmpty then
    Exit;
  if CDS_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;
  CDS_Main.DisableControls;
  with CDS_Main do
  begin
    First;
    while not Eof do
    begin
      if CDS_Main.FieldByName('SSel').AsBoolean = True then
      begin
        try
          Moudle := LoadLibrary('MakeQRBarcode.dll');
          @Makebar := GetProcAddress(Moudle, 'Make');
          @Mixtext := GetProcAddress(Moudle, 'MixText');
          Txt := Trim(CDS_Main.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);
          CDS_Main.EnableControls;
          exit;
        end;
        with ADOQueryPrint do     //Ӣ�����Ʋ�Ҫ����Ʒ���ж�ȡ��Ҫ�ڿͻ��Զ�����ж�ȡ��note�ֶΡ�
        begin
          Close;
          SQL.Clear;
          sql.Add('select A.*,kcQty as mjlen,kcQtyUnit as MJTypeother,A.CPType as MJType,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(' from CK_BanCP_KC A');
          SQL.Add(' where A.MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + '''');
          SQL.Add(' and KCQty>0 ');
          Open;
        end;
        fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨ�ñ�ǩ.rmf';
        if FileExists(fPrintFile) then
        begin
          RMVariables['QRBARCODE'] := fImagePath;
          RMGridReport1.LoadFromFile(fPrintFile);
        //  RMGridReport1.ShowReport;
          RMGridReport1.PrintReport;
        end
        else
        begin
          CDS_Main.EnableControls;
          Application.MessageBox(PChar('û���ҵ�' + trim(fPrintFile)), '��ʾ', 0);
          Exit;
        end;
      end;
      Next;
    end;
  end;
  CDS_Main.EnableControls;
end;

procedure TfrmCKProductBCPKCList.CheckBox1Click(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    exit;
  with CDS_Main do
  begin
    DisableControls;
    first;
    while not eof do
    begin
      edit;
      fieldbyname('ssel').Value := checkbox1.Checked;
      post;
      next;
    end;
    First;
    EnableControls;
  end;
end;

procedure TfrmCKProductBCPKCList.ToolButton5Click(Sender: TObject);
var
  oldQty, kcQty, num1: Extended;
  i: integer;
  isEdit: boolean;
  str1: string;
begin
  //showmessage(format('%.1f',[117.50 * 0.98]));
  if not CDS_Main.Active then
    exit;
  if CDS_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;
  isEdit := false;

  frmKCEdit := TfrmKCEdit.create(self);
  with frmKCEdit do
  begin
    if showmodal = 1 then
    begin
      num1 := strtofloatdef(cxCurrencyEdit2.Text, 0);
      i := RadioGroup1.ItemIndex;
      isEdit := true;
    end;
    free;
  end;

  if isEdit = false then
    exit;

  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      while CDS_Main.Locate('SSel', True, []) do
      begin
        with ADOQueryTemp do
        begin
          close;
          sql.Clear;
          sql.Add(' select * from  CK_BanCP_KC  ');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
     //     sql.Add(' and  KCQty=0.0 ');
          open;
          if ADOQueryTemp.fieldbyname('KCQty').AsFloat = 0.0 then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            application.MessageBox('��ѡ��¼���г��⣬���ܵ�����', '��ʾ��Ϣ', MB_ICONERROR);
            exit;
          end;
        end;

        oldQty := ADOQueryTemp.fieldbyname('KCQty').AsFloat;
        if i = 0 then
          kcQty := CDS_Main.fieldbyname('kcQty').AsFloat + num1;
        if i = 1 then
          kcQty := CDS_Main.fieldbyname('kcQty').AsFloat - num1;
        if i = 2 then
        begin
         // str1:=format('%.1f',[CDS_Main.fieldbyname('kcQty').AsFloat*1.00 * num1]);
          kcQty := strtofloat(format('%.1f', [CDS_Main.fieldbyname('kcQty').AsFloat * 1.00 * num1]));
        end;
        if i = 3 then
          kcQty := strtofloat(format('%.1f', [CDS_Main.fieldbyname('kcQty').AsFloat * 1.00 / num1]));
     //   kcQty:=CDS_Main.fieldbyname('kcQty').AsFloat;
        if oldQty < 100 then
        begin
          if abs(oldQty - kcQty) > 5.0 then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            application.MessageBox('���������ܳ���5M', '��ʾ��Ϣ', MB_ICONERROR);
            exit;
          end;
        end
        else
        begin
          if strtofloat(format('%.1f', [abs(oldQty - kcQty) / oldQty * 100])) > 3.0 then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            application.MessageBox('���������ܳ���ԭ������%3', '��ʾ��Ϣ', MB_ICONERROR);
            exit;
          end;
        end;
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add(' Update CK_BanCP_KC Set ZDYFlote1=KCqty ');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          sql.Add(' and ZDYFlote1=0 ');
          sql.Add(' Update CK_BanCP_KC Set kcqty=''' + floattostr(kcQty) + ''',ZDYStr1=''������'' ');
          sql.Add(' ,kcNote=' + quotedstr(trim(CDS_Main.fieldbyname('kcnote').AsString)));
          sql.Add(' ,CPType=' + quotedstr(trim(CDS_Main.fieldbyname('CPType').AsString)));
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          sql.Add(' Update CK_BanCP_KC Set kcRollNum=0 ');
          sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
          sql.Add(' and kcqty=0 and kcRollNum<>0 ');

          sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
          sql.Add(' ' + quotedstr(trim(DName)));
          sql.Add(',getdate() ');
          sql.Add(',' + quotedstr(trim(self.Caption)));
          sql.Add(',' + quotedstr(trim('������')));
          sql.Add(',' + quotedstr(trim('���ţ�' + trim(CDS_Main.FieldByName('MJID').AsString))));
          sql.Add(',' + quotedstr(trim('�ɹ�')));
          sql.Add(')');
          ExecSQL;
        end;
        Edit;
        FieldByName('kcqty').Value := kcQty;
        FieldByName('SSel').Value := False;
        post;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Application.MessageBox('�����ɹ�!', '��ʾ', 0);
    Exit;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;

end;

procedure TfrmCKProductBCPKCList.v1Column5PropertiesEditValueChanged(Sender: TObject);
var
  Fieldname: string;
begin
  Fieldname := Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;

  with CDS_Main do
  begin
    edit;
    fieldbyname(Fieldname).Value := TcxTextEdit(Sender).EditingText;
   // FieldByName('PrtMoney').Value:=strtofloat(format('%.2f',[Fieldbyname('PRTOrderQty').AsFloat*Fieldbyname('PrtPrice').AsFloat ]));
    post;
  end;
  Tv1.Controller.EditingController.ShowEdit();
  try
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add(' Update CK_BanCP_KC Set kcNote=' + quotedstr(trim(CDS_Main.fieldbyname('kcnote').AsString)));
      sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
      ExecSQL;
    end;
  except
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmCKProductBCPKCList.CheckBox2Click(Sender: TObject);
begin
  if CheckBox2.Checked then
  begin
    MJID.Tag := 1;
    C_CodeName.Tag := 1;
    C_Color.Tag := 1;
    AOrdDefStr1.Tag := 1;
  end
  else
  begin
    MJID.Tag := 2;
    C_CodeName.Tag := 2;
    C_Color.Tag := 2;
    AOrdDefStr1.Tag := 2;
  end;
  TBFind.Click;
end;

procedure TfrmCKProductBCPKCList.TBNoBHClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    exit;
  if CDS_Main.fieldbyName('BHFlag').AsInteger = 1 then
  begin
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add(' Update CK_BanCP_KC Set BHFlag=0 ');
      sql.Add(' where CRID=' + Cds_Main.Fieldbyname('CRID').AsString);
      ExecSQL;
    end;
    CDS_Main.Edit;
    CDS_Main.FieldByName('BHFlag').Value := 0;
    CDS_Main.Post;
    tv1.Controller.EditingController.ShowEdit();
  end;
end;

procedure TfrmCKProductBCPKCList.ToolButton6Click(Sender: TObject);
begin
  Panel2.Left := (self.Width - Panel2.Width) div 2;
  Panel2.Visible := True;
end;

procedure TfrmCKProductBCPKCList.Button4Click(Sender: TObject);
begin
  panel2.Visible := False;
end;

procedure TfrmCKProductBCPKCList.Button3Click(Sender: TObject);
var
  FCodeName: string;
begin
  if trim(Edit_C_CodeName.Text) = '' then
  begin
    application.MessageBox('��Ʒ������Ϊ�գ�', '��ʾ��Ϣ', 0);
    exit;
  end;
  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      while CDS_Main.Locate('SSel', True, []) do
      begin
        FCodeName := trim(CDS_Main.fieldbyname('C_CodeName').AsString);
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
//          sql.Add('update CK_BanCP_CR SET C_CodeName=''' + trim(Edit_C_CodeName.Text) + ''' where MJID=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');
          sql.Add('update CK_BanCP_KC SET C_CodeName=''' + trim(Edit_C_CodeName.Text) + ''' where MJID=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');

          sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
          sql.Add(' ' + quotedstr(trim(DName)));
          sql.Add(',getdate() ');
          sql.Add(',' + quotedstr(trim(self.Caption)));
          sql.Add(',' + quotedstr(trim('�����ɫ����')));
          sql.Add(',' + quotedstr(trim('�޸�ǰ����Ʒ����:' + trim(FCodeName) + ',���ţ�' + trim(CDS_Main.FieldByName('MJID').AsString))));
          sql.Add(',' + quotedstr(trim('�ɹ�')));
          sql.Add(')');
          ExecSQL;
        end;
        Edit;
        FieldByName('SSel').Value := False;
        FieldByName('C_CodeName').Value := Trim(Edit_C_CodeName.Text);
        Post;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Application.MessageBox('�����ɹ�!', '��ʾ', 0);
    Panel2.Visible := false;
    Edit_C_CodeName.Text := '';
    Exit;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmCKProductBCPKCList.Button5Click(Sender: TObject);
var
  FColor: string;
begin
  if trim(Edit_C_Color.Text) = '' then
  begin
    application.MessageBox('����ɫ����Ϊ�գ�', '��ʾ��Ϣ', 0);
    exit;
  end;
  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      while CDS_Main.Locate('SSel', True, []) do
      begin
        FColor := trim(CDS_Main.fieldbyname('C_Color').AsString);
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
//          sql.Add('update CK_BanCP_CR SET C_Color=''' + trim(Edit_C_Color.Text) + ''' where MJID=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');
          sql.Add('update CK_BanCP_KC SET C_color=''' + trim(Edit_C_Color.Text) + ''' where MJID=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');

          sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
          sql.Add(' ' + quotedstr(trim(DName)));
          sql.Add(',getdate() ');
          sql.Add(',' + quotedstr(trim(self.Caption)));
          sql.Add(',' + quotedstr(trim('����Ʒ����')));
          sql.Add(',' + quotedstr(trim('�޸�ǰ����ɫ:' + trim(FColor) + ',���ţ�' + trim(CDS_Main.FieldByName('MJID').AsString))));
          sql.Add(',' + quotedstr(trim('�ɹ�')));
          sql.Add(')');
          ExecSQL;
        end;
        Edit;
        FieldByName('SSel').Value := False;
        FieldByName('C_Color').Value := Trim(Edit_C_Color.Text);
        Post;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Application.MessageBox('�����ɹ�!', '��ʾ', 0);
    Panel2.Visible := false;
    Edit_C_Color.Text := '';
    Exit;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmCKProductBCPKCList.Button9Click(Sender: TObject);
var
  FColor, FCodeName: string;
begin
  if (trim(Edit_C_CodeName.Text) = '') and checkbox3.Checked then
  begin
    application.MessageBox('��Ʒ������Ϊ�գ�', '��ʾ��Ϣ', 0);
    exit;
  end;
  if (trim(Edit_C_Color.Text) = '') and checkbox4.Checked then
  begin
    application.MessageBox('����ɫ����Ϊ�գ�', '��ʾ��Ϣ', 0);
    exit;
  end;

  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      while CDS_Main.Locate('SSel', True, []) do
      begin
        FCodeName := trim(CDS_Main.fieldbyname('C_CodeName').AsString);
        FColor := trim(CDS_Main.fieldbyname('C_Color').AsString);
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          if checkbox3.Checked then
          begin
//            sql.Add('update CK_BanCP_CR SET C_CodeName=''' + trim(Edit_C_CodeName.Text) + ''' where MJID=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');
            sql.Add('update CK_BanCP_KC SET C_CodeName=''' + trim(Edit_C_CodeName.Text) + ''' where MJID=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');
          end;
          if CheckBox4.Checked then
          begin
//            sql.Add('update CK_BanCP_CR SET C_Color=''' + trim(Edit_C_Color.Text) + ''' where MJID=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');
            sql.Add('update CK_BanCP_KC SET C_color=''' + trim(Edit_C_Color.Text) + ''' where MJID=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' ');
          end;
          sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
          sql.Add(' ' + quotedstr(trim(DName)));
          sql.Add(',getdate() ');
          sql.Add(',' + quotedstr(trim(self.Caption)));
          sql.Add(',' + quotedstr(trim('����Ʒ��ɫ����')));
          sql.Add(',' + quotedstr(trim('�޸�ǰ����Ʒ��ɫ:' + trim(FCodeName) + ',' + trim(FColor) + ',���ţ�' + trim(CDS_Main.FieldByName('MJID').AsString))));
          sql.Add(',' + quotedstr(trim('�ɹ�')));
          sql.Add(')');
          ExecSQL;
        end;
        Edit;
        FieldByName('SSel').Value := False;
        if CheckBox2.Checked then
        begin
          FieldByName('C_CodeName').Value := Trim(Edit_C_CodeName.Text);
        end;
        if CheckBox3.Checked then
        begin
          FieldByName('C_Color').Value := Trim(Edit_C_Color.Text);
        end;
        Post;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Application.MessageBox('�����ɹ�!', '��ʾ', 0);
    Panel2.Visible := false;
    Edit_C_CodeName.Text := '';
    Edit_C_Color.Text := '';
    Exit;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

end.