unit U_CKProductBCPKCListSel10;

interface

uses
  Windows, Messages, 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, MovePanel, cxCheckBox,
  cxSplitter, cxCalendar, BtnEdit, cxContainer, cxTextEdit, cxCurrencyEdit;

type
  TfrmCKProductBCPKCListsel10 = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    Label3: TLabel;
    Label4: TLabel;
    C_CodeName: TEdit;
    C_Color: 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;
    ToolButton1: TToolButton;
    v1KCRollNum: TcxGridDBColumn;
    v1gangNO: TcxGridDBColumn;
    v1C_Color: TcxGridDBColumn;
    cxGrid1: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridDBColumn11: TcxGridDBColumn;
    cxGridDBColumn12: TcxGridDBColumn;
    cxGridDBColumn13: TcxGridDBColumn;
    cxGridDBColumn14: TcxGridDBColumn;
    cxGridDBColumn15: TcxGridDBColumn;
    cxGridDBColumn16: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    cxSplitter1: TcxSplitter;
    CDS_SubSel: TClientDataSet;
    DSSubSel: TDataSource;
    cxGridPopupMenu2: TcxGridPopupMenu;
    Label10: TLabel;
    KCQtyStr: TEdit;
    Label12: TLabel;
    AOrdDefStr1: TEdit;
    v1KCKW: TcxGridDBColumn;
    Label13: TLabel;
    KCKW: TEdit;
    Panel2: TPanel;
    Panel3: TPanel;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    v1OrderNo: TcxGridDBColumn;
    v1ConNo: TcxGridDBColumn;
    v1OrdDefStr1: TcxGridDBColumn;
    cxGridDBColumn17: TcxGridDBColumn;
    v1OrdPerson1: TcxGridDBColumn;
    v1JGFactoryName: TcxGridDBColumn;
    v1PRTColor: TcxGridDBColumn;
    v1OrdDate: TcxGridDBColumn;
    v1DeliveryDate: TcxGridDBColumn;
    v1CustomerNoName: TcxGridDBColumn;
    v1MPRTCodeName: TcxGridDBColumn;
    v1MPRTSpec: TcxGridDBColumn;
    v1MPRTCF: TcxGridDBColumn;
    v1MPRTMF: TcxGridDBColumn;
    v1MPRTKZ: TcxGridDBColumn;
    cxGridDBColumn18: TcxGridDBColumn;
    v1PRTRollNum: TcxGridDBColumn;
    v1PRTOrderQty: TcxGridDBColumn;
    cxGridDBColumn19: TcxGridDBColumn;
    cxGridDBColumn20: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    Order_Main: TClientDataSet;
    DataSource2: TDataSource;
    v2RollNum: TcxGridDBColumn;
    v2Qty: TcxGridDBColumn;
    cxGridPopupMenu3: TcxGridPopupMenu;
    v1Ssel: TcxGridDBColumn;
    Button1: TButton;
    v3Column1: TcxGridDBColumn;
    v3Column2: TcxGridDBColumn;
    v3Column3: TcxGridDBColumn;
    v3Column4: TcxGridDBColumn;
    v3Column5: TcxGridDBColumn;
    v3Column6: TcxGridDBColumn;
    v3Column7: TcxGridDBColumn;
    v3Column8: TcxGridDBColumn;
    v3Column9: TcxGridDBColumn;
    v3Column10: TcxGridDBColumn;
    v3gangNum: TcxGridDBColumn;
    Label14: TLabel;
    v2Column2: TcxGridDBColumn;
    Label15: TLabel;
    PHYG: TBtnEditA;
    CDS_Print: TClientDataSet;
    CheckBox1: TCheckBox;
    Tseldd: TToolButton;
    packNo: TcxCurrencyEdit;
    Label16: TLabel;
    defstr2: TComboBox;
    v2defstr2: TcxGridDBColumn;
    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 ToolButton1Click(Sender: TObject);
    procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure Tv3FocusedRecordChanged(Sender: TcxCustomGridTableView;
      APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
      ANewItemRecordFocusingChanged: Boolean);
    procedure Button1Click(Sender: TObject);
    procedure PHYGBtnClick(Sender: TObject);
    procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView;
      ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo;
      var ADone: Boolean);
    procedure Tv2CustomDrawIndicatorCell(Sender: TcxGridTableView;
      ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo;
      var ADone: Boolean);
    procedure CheckBox1Click(Sender: TObject);
    procedure TselddClick(Sender: TObject);
  private
    FLeft,FTop:Integer;
    fCodeName:string;
    fColor:string;
    fmainID:string;
    procedure InitGrid();
    procedure InitGridNull();
    Procedure DoQuery();
    function  SaveData():Boolean;
    { Private declarations }
  public
    fkeyNo:string;
    fType:integer;
    { Public declarations }
  end;

var
  frmCKProductBCPKCListsel10: TfrmCKProductBCPKCListsel10;

implementation
uses
  U_DataLink,U_Fun, U_UserHelp, U_ProductOrderNewListSEl;

{$R *.dfm}

function TfrmCKProductBCPKCListsel10.SaveData():Boolean;
var
  phID:string;
  P_ID:integer;
begin
  Result:=false;

  IF fType=0 then
  begin
    if GetLSNo(ADOQueryTemp,fkeyNo,'PN','CK_BanCP_PH',4,1)=False then
    begin
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('取配货单号失败！','提示',0);
      Exit;
    end;
  end;
  P_ID:=1;
  ADOQueryCmd.Connection.BeginTrans;

  try

    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update  CK_BanCP_KC SET kcstatus=null ');
      sql.Add('from CK_BanCP_KC  A ');
      sql.Add('inner join  CK_BanCP_PH  B on B.CRID=A.crid and B.mjid=A.mjid ');
      sql.Add('where P_NO='+quotedstr(trim(fkeyNo)));
      execsql;
    end;

    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('delete from CK_BanCP_PH ');
      sql.Add('where P_NO='+quotedstr(trim(fkeyNo)));
      execsql;
    end;

    with CDS_SubSel do
    begin
      DisableControls;
      first;
      while not eof do
      begin
        if fieldbyname('qty').AsFloat=0 then continue;
        if GetLSNo(ADOQueryTemp,phID,'PH','CK_BanCP_PH',4,1)=False then
        begin
          ADOQueryCmd.Connection.RollbackTrans;
          Application.MessageBox('取配货单号失败！','提示',0);
          Exit;
        end;
        with ADOQueryCmd do
        begin
          close;
          sql.Clear;
          sql.Add('select * from CK_BanCP_PH ');
          sql.Add('where P_NO='+quotedstr(trim(fkeyNo)));
          open;
        end;
        ADOQueryCmd.Append;
        ADOQueryCmd.FieldByName('phID').Value:=trim(phID);
        ADOQueryCmd.FieldByName('p_No').Value:=trim(fkeyNo);
        ADOQueryCmd.FieldByName('p_ID').Value:=P_ID;
        ADOQueryCmd.FieldByName('conNo').Value:=trim(fieldbyname('conNo').AsString);
        ADOQueryCmd.FieldByName('MainID').Value:=trim(Order_Main.fieldbyname('MainID').AsString);
        ADOQueryCmd.FieldByName('SubID').Value:=trim(Order_Main.fieldbyname('SubID').AsString);
        ADOQueryCmd.FieldByName('PMainID').Value:=trim(fieldbyname('MainID').AsString);
        ADOQueryCmd.FieldByName('PSubID').Value:=trim(fieldbyname('SubID').AsString);
        ADOQueryCmd.FieldByName('mjID').Value:=trim(fieldbyname('mjID').AsString);
        ADOQueryCmd.FieldByName('CRID').Value:=trim(fieldbyname('CRID').AsString);
        ADOQueryCmd.FieldByName('qtyunit').Value:=trim(fieldbyname('kcqtyunit').AsString);
        ADOQueryCmd.FieldByName('defstr2').Value:=trim(fieldbyname('defstr2').AsString);
        ADOQueryCmd.FieldByName('packNo').Value:=trim(fieldbyname('packNo').AsString);
        ADOQueryCmd.FieldByName('qty').Value:=fieldbyname('qty').AsFloat;
        ADOQueryCmd.FieldByName('Rollnum').Value:=fieldbyname('Rollnum').AsFloat;
        ADOQueryCmd.FieldByName('Filler').Value:=trim(DName);
        ADOQueryCmd.FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp);
        ADOQueryCmd.FieldByName('BCGangNo').Value:=trim(fieldbyname('AOrdDefStr1').AsString);
        ADOQueryCmd.FieldByName('PHYG').Value:=trim(PHYG.Text);
        ADOQueryCmd.Post;

        with ADOQueryCmd do
        begin
        close;
        sql.Clear;
        sql.Add('select * from CK_BanCP_KC ');
        sql.Add('where mjid='+quotedstr(trim(CDS_SubSel.fieldbyname('mjid').AsString)));
        sql.Add('and CRID='+quotedstr(trim(CDS_SubSel.fieldbyname('CRID').AsString)));
        open;
        edit;
        fieldbyname('kcstatus').Value:='1';
        post;
        end;
        P_ID:=P_ID+1;
        next;
      end;
      first;
      EnableControls;
    end;
     ADOQueryCmd.Connection.CommitTrans;
     IF fType=0 then fkeyNo:='';

     Result:=true;
  except
     ADOQueryCmd.Connection.RollbackTrans;
  end;
end;

procedure TfrmCKProductBCPKCListsel10.DoQuery();
begin
//  Order_Main.DisableControls;
  try
    with AdoqueryTemp do
    begin
    close;
    sql.Clear;
    sql.Add('select  A.*,B.*    ');
    sql.Add('from JYOrder_sub A ');
    sql.Add('inner JOIN JYOrder_Main B on B.mainID=A.mainID and isnull(B.status,''0'')>''0'' ');
    IF fType=0 then
    sql.Add('where A.mainId='+quotedstr(trim(fmainID)))
    else
    sql.Add('where exists(select * from CK_BanCP_PH X where X.mainID=A.mainID and X.subID=A.subID and P_NO='''+trim(fkeyNO)+''')');
  //  sql.Add('and isnull(A.substatus,''0'')<''3'' ');
    open;
    end;
    SCreateCDS20(AdoqueryTemp,Order_Main);
    SInitCDSData20(AdoqueryTemp,Order_Main);
  finally
  //  Order_Main.EnableControls;
  end;
end;

procedure TfrmCKProductBCPKCListsel10.FormDestroy(Sender: TObject);
begin
  frmCKProductBCPKCListsel10:=nil;
end;

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

procedure TfrmCKProductBCPKCListsel10.FormCreate(Sender: TObject);
begin
  Panel3.Align:=alClient;
 // cxGrid1.Height:= Panel3.Height div 2;
  cxGrid2.Align:=alClient;
  BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp);
  EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp);
 // TBRafresh.Click;
end;


procedure TfrmCKProductBCPKCListsel10.InitGrid();
begin
  try
  //  ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      SQL.Add('exec P_View_CPKCMX_SEL');
      SQL.Add('@P_Codename='+quotedstr(trim(fCodeName)));
      SQL.Add(',@P_Color='+quotedstr(trim(fColor)));
      SQL.Add(',@mainID='+quotedstr(trim('')));
      SQL.Add(',@subID='+quotedstr(trim('')));
      SQL.Add(',@Flag='+quotedstr(trim('0')));
      Open;
    end;
    SCreateCDS20(ADOQueryMain,CDS_Main);
    SInitCDSData20(ADOQueryMain,CDS_Main);

    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      SQL.Add('exec P_View_CPKCMX_SEL');
      SQL.Add('@P_Codename='+quotedstr(trim(fkeyNO)));
      SQL.Add(',@P_Color='+quotedstr(trim(fColor)));
      SQL.Add(',@mainID='+quotedstr(trim(Order_Main.fieldbyname('MainID').AsString)));
      SQL.Add(',@subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString)));
      SQL.Add(',@Flag='+quotedstr(trim('2')));
      Open;
    end;
    SCreateCDS20(ADOQueryMain,CDS_SubSel);
    SInitCDSData20(ADOQueryMain,CDS_SubSel);
  finally
  //  ADOQueryMain.EnableControls;
    TBFind.Click;
  end;
end;
procedure TfrmCKProductBCPKCListsel10.InitGridNull();
begin
  try
    ADOQueryTemp.DisableControls;
    with ADOQueryTemp do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      SQL.Add('exec P_View_CPKCMXNull');
      Open;
    end;
    SCreateCDS20(ADOQueryTemp,CDS_SubSel);
    SInitCDSData20(ADOQueryTemp,CDS_SubSel);
  finally
    ADOQueryTemp.EnableControls;
  end;
end;

procedure TfrmCKProductBCPKCListsel10.TBRafreshClick(Sender: TObject);
begin
 // BegDate.SetFocus;
  MovePanel2.Visible:=True;
  MovePanel2.Refresh;
  DOquery();
  MovePanel2.Visible:=False;
end;

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

procedure TfrmCKProductBCPKCListsel10.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('库存配货Tv11',Tv1,'成品仓库');
  WriteCxGrid('库存配货Tv21',Tv2,'成品仓库');
  WriteCxGrid('库存配货Tv31',Tv3,'成品仓库');
  Close;
end;

procedure TfrmCKProductBCPKCListsel10.FormShow(Sender: TObject);
begin
  ReadCxGrid('库存配货Tv11',Tv1,'成品仓库');
  ReadCxGrid('库存配货Tv21',Tv2,'成品仓库');
  ReadCxGrid('库存配货Tv31',Tv3,'成品仓库');
//  InitGridNull();
//  InitGrid();
  IF Ftype=1 then Tseldd.Visible:=false;
  Doquery();
end;

procedure TfrmCKProductBCPKCListsel10.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then exit;
  TcxGridToExcel('库存列表',cxGrid2);
end;

procedure TfrmCKProductBCPKCListsel10.TBFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter10(CDS_Main,SGetFilters(Panel1,1,2));
    //SCreateCDS20(ADOQueryMain,CDS_Main);
    //SInitCDSData20(ADOQueryMain,CDS_Main);
  end;
end;

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

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

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

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

procedure TfrmCKProductBCPKCListsel10.Tv1CellDblClick(
  Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
var
  i:Integer;
begin
  //if CDS_Sel.Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[])=False then
  //begin
{  if CDS_Main.IsEmpty then Exit;
    CDS_SubSel.Append;
    for i:=0 to CDS_SubSel.FieldCount-1 do
    begin
      CDS_SubSel.Fields[i].Value:=CDS_Main.Fields[i].Value;
    end;
    CDS_SubSel.Post;
    CDS_Main.Delete;
  //end;  }
end;

procedure TfrmCKProductBCPKCListsel10.ToolButton1Click(Sender: TObject);
var
  phRollNum,phQty:double;
begin
  if CDS_SubSel.IsEmpty then exit;
  conNo.SetFocus;
  with CDS_SubSel do
  begin
    DisableControls;
    first;
    while not eof do
    begin
      if (trim(fieldbyname('C_CodeName').AsString)<>trim(Order_Main.FieldByName('PRTCodeName').AsString))
        or (uppercase(trim(fieldbyname('C_Color').AsString))<>uppercase(trim(Order_Main.FieldByName('PRTColor').AsString)))
        then
      begin
        application.MessageBox('产品名称或者颜色不一样，不能配货！','提示信息',0);
        EnableControls;
        exit;
      end;
      next;
    end;
    first;
    EnableControls;
  end;
  phRollNum:=0;
  phQty:=0;
  with CDS_SubSel do
  begin
    DisableControls;
    first;
    while not eof do
    begin
      phRollNum:=phRollNum+ CDS_SubSel.fieldbyname('RollNum').AsFloat;
      phQty:=phQty+ CDS_SubSel.fieldbyname('Qty').AsFloat;
      next;
    end;
    first;
    EnableControls;
  end;

  IF  Order_Main.FieldByName('PRTRollNum').AsFloat<>0 then
  begin
    if (phRollNum<>Order_Main.FieldByName('PRTRollNum').AsFloat) then
    if Application.MessageBox('你的配货未达到配货要求，你确认这样配货吗？','提示信息',32+4)<>IDYES then Exit;
  end
  else
  begin
    if (phQty<>Order_Main.FieldByName('PRTOrderQty').AsFloat) then
    if Application.MessageBox('你的配货未达到配货要求，你确认这样配货吗？','提示信息',32+4)<>IDYES then Exit;
  end;


  if SaveData() then
  begin
    application.MessageBox('配货成功!','提示信息');
    Order_Main.Delete;
    CDS_SubSel.EmptyDataSet;
   // TBRafresh.Click;
  end
  else
  begin
    application.MessageBox('配货失败!','提示信息',0);
  end;
end;

procedure TfrmCKProductBCPKCListsel10.Tv2CellDblClick(
  Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
var
  i:Integer;
begin
  //if CDS_Sel.Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[])=False then
  //begin
  if CDS_SubSel.IsEmpty then Exit;
    CDS_Main.Append;
    for i:=0 to CDS_Main.FieldCount-1 do
    begin
      CDS_Main.Fields[i].Value:=CDS_SubSel.Fields[i].Value;
    end;
    CDS_Main.FieldByName('ssel').Value:=false;
    CDS_Main.Post;
    CDS_SubSel.Delete;
  //end;
end;

procedure TfrmCKProductBCPKCListsel10.Tv3FocusedRecordChanged(
  Sender: TcxCustomGridTableView; APrevFocusedRecord,
  AFocusedRecord: TcxCustomGridRecord;
  ANewItemRecordFocusingChanged: Boolean);
begin
  IF Order_Main.IsEmpty then
  begin
    fCodeName:='!##@';
    fColor:='!##@';
  end
  else
  begin
    FCodeName:= trim(Order_Main.FieldByName('PRTCodeName').AsString);
    fColor:=  trim(Order_Main.FieldByName('PRTColor').AsString);
  end;
  initGrid();
end;

procedure TfrmCKProductBCPKCListsel10.Button1Click(Sender: TObject);
var
  i:integer;
begin
  if CDS_Main.IsEmpty then Exit;
  IF trim(packNo.Text)='' then
  begin
    application.MessageBox('包号不能为空！','提示信息',0);
    exit;
  end;
  IF trim(defstr2.Text)='' then
  begin
    application.MessageBox('货运类型不能为空！','提示信息',0);
    exit;
  end;
  CDS_SubSel.DisableControls;
  with CDS_Main do
  begin
    DisableControls;
    First;
    while not eof do
    begin
      if (CDS_Main.Locate('ssel',true,[]))
      and not CDS_SubSel.Locate('CRID',CDS_Main.fieldbyname('CRID').AsInteger,[]) then
      begin
        CDS_SubSel.Append;
        for i:=0 to CDS_SubSel.FieldCount-1 do
        begin
          CDS_SubSel.Fields[i].Value:=CDS_Main.Fields[i].Value;
        end;
        CDS_SubSel.FieldByName('packNo').Value:=trim(packNO.Text);
        CDS_SubSel.FieldByName('defstr2').Value:=trim(defstr2.Text);
        CDS_SubSel.Post;
        CDS_Main.Delete;
      end;
      next;
    end;
    EnableControls;
    First;
  end;
  with CDS_Main do
  begin
    DisableControls;
    First;
    while not eof do
    begin
      if (CDS_Main.Locate('ssel',true,[]))
      and not CDS_SubSel.Locate('CRID',CDS_Main.fieldbyname('CRID').AsInteger,[]) then
      begin
        CDS_SubSel.Append;
        for i:=0 to CDS_SubSel.FieldCount-1 do
        begin
          CDS_SubSel.Fields[i].Value:=CDS_Main.Fields[i].Value;
        end;
        CDS_SubSel.FieldByName('packNo').Value:=trim(packNO.Text);
        CDS_SubSel.FieldByName('defstr2').Value:=trim(defstr2.Text);
        CDS_SubSel.Post;
        CDS_Main.Delete;
      end;
      next;
    end;
    EnableControls;
    First;
  end;
  CDS_SubSel.EnableControls;
end;

procedure TfrmCKProductBCPKCListsel10.PHYGBtnClick(Sender: TObject);
begin
  frmUserHelp:=TfrmUserHelp.Create(self);
  with frmUserHelp do
  begin
    if showmodal=1 then
    begin
      PHYG.Text:=trim(ADOQueryHelp.fieldbyname('userName').AsString);
    end;
    free;
  end;
end;

procedure TfrmCKProductBCPKCListsel10.Tv1CustomDrawIndicatorCell(
  Sender: TcxGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
      FValue:   string;
      FBounds:   TRect;
  begin
      FBounds   :=   AViewInfo.Bounds;
      if   (AViewInfo   is   TcxGridIndicatorRowItemViewInfo)   then
      begin
          ACanvas.FillRect(FBounds);
          ACanvas.DrawComplexFrame(FBounds,   clBtnHighlight,   clBtnShadow,   [bBottom,   bLeft,   bRight],   1);
          FValue   :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1);
          InflateRect(FBounds,   -1,   -1) ;
          ACanvas.Font.Color   :=   clBlack;
          ACanvas.Brush.Style   :=   bsClear;
          ACanvas.DrawText(FValue,   FBounds,   cxAlignCenter   or   cxAlignTop);
          ADone   :=   True;
      end;
 end;

procedure TfrmCKProductBCPKCListsel10.Tv2CustomDrawIndicatorCell(
  Sender: TcxGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
      FValue:   string;
      FBounds:   TRect;
  begin
      FBounds   :=   AViewInfo.Bounds;
      if   (AViewInfo   is   TcxGridIndicatorRowItemViewInfo)   then
      begin
          ACanvas.FillRect(FBounds);
          ACanvas.DrawComplexFrame(FBounds,   clBtnHighlight,   clBtnShadow,   [bBottom,   bLeft,   bRight],   1);
          FValue   :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1);
          InflateRect(FBounds,   -1,   -1) ;
          ACanvas.Font.Color   :=   clBlack;
          ACanvas.Brush.Style   :=   bsClear;
          ACanvas.DrawText(FValue,   FBounds,   cxAlignCenter   or   cxAlignTop);
          ADone   :=   True;
      end;
 end;
procedure TfrmCKProductBCPKCListsel10.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 TfrmCKProductBCPKCListsel10.TselddClick(Sender: TObject);
begin
  Order_Main.EmptyDataSet;
  tv3.OnFocusedRecordChanged:=nil;
  frmProductOrderNewListSEl:=TfrmProductOrderNewListSEl.create(self);
  with frmProductOrderNewListSEl do
  begin
    if showmodal=1 then
    begin
      Order_Main.DisableControls;
      Order_Main.First;
      while not Order_Main.Eof do
      begin
        IF Order_Main.FieldByName('ssel').AsBoolean then
        begin
          with self.AdoqueryTemp do
          begin
            close;
            sql.Clear;
            sql.Add('select  A.*,B.*    ');
            sql.Add('from JYOrder_sub A ');
            sql.Add('inner JOIN JYOrder_Main B on B.mainID=A.mainID and isnull(B.status,''0'')>''0'' ');
            sql.Add('where A.mainId='+quotedstr(trim(Order_Main.fieldbyname('MainID').AsString)));
            sql.Add('and A.subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString)));
            open;
          end;
          self.Order_Main.Last;
          SInitCDSData20(self.AdoqueryTemp,self.Order_Main);
        end;
        Order_Main.Next;
      end;
      Order_Main.EnableControls;
    end;
    free;
  end;

  tv3.OnFocusedRecordChanged:=Tv3FocusedRecordChanged;
  Order_Main.First;
end;

end.
