unit U_PbSelRK;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ADODB, DBClient, ComCtrls,
  ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox;

type
  TfrmPbSelRK = class(TForm)
    Panel1: TPanel;
    Label2: TLabel;
    SPID: TEdit;
    Label3: TLabel;
    PRTColor: TEdit;
    CDS_OrderSel: TClientDataSet;
    DataSource1: TDataSource;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    cxGridPopupMenu1: TcxGridPopupMenu;
    Label8: TLabel;
    CustomerNoName: TEdit;
    cxGrid1: TcxGrid;
    Tv2: TcxGridDBTableView;
    v2Column3: TcxGridDBColumn;
    v1OrderNo: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    v1PRTMF: TcxGridDBColumn;
    v1PRTKZ: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyleRepository2: TcxStyleRepository;
    cxStyle2: TcxStyle;
    cxStyleRepository3: TcxStyleRepository;
    cxStyle3: TcxStyle;
    CheckBox1: TCheckBox;
    v2Column5: TcxGridDBColumn;
    factoryName: TEdit;
    Label1: TLabel;
    SPName: TEdit;
    Label4: TLabel;
    v2Column1: TcxGridDBColumn;
    v2Column4: TcxGridDBColumn;
    Label5: TLabel;
    Label6: TLabel;
    rcgangNo: TEdit;
    SPColor: TEdit;
    Label7: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button2Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure SPIDChange(Sender: TObject);
    procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private declarations }
    procedure InitGrid();
  public
    fckName:string;
    { Public declarations }
  end;

var
  frmPbSelRK: TfrmPbSelRK;

implementation
uses
  U_DataLink,U_Fun ;

{$R *.dfm}

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

procedure TfrmPbSelRK.Button2Click(Sender: TObject);
var
  KHName:String;
begin
  if CDS_OrderSel.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择数据！','提示',0);
    Exit;
  end;
  CDS_OrderSel.DisableControls;
  KHName:='';
  with CDS_OrderSel do
  begin
    First;
    while not Eof do
    begin
      if FieldByName('SSel').AsBoolean=True then
      begin
        if Trim(KHName)='' then
        begin
          KHName:=Trim(fieldbyname('factoryName').AsString);
        end else
        begin
          if Trim(fieldbyname('factoryName').AsString)<>KHName then
          begin
            Application.MessageBox('不能选择不同加工厂！','提示',0);
            Exit;
          end;
        end;
      end;
      Next;
    end;
  end;
  CDS_OrderSel.EnableControls;
  ModalResult:=1;
end;

procedure TfrmPbSelRK.FormDestroy(Sender: TObject);
begin
  frmPbSelRK:=nil;
end;

procedure TfrmPbSelRK.Button3Click(Sender: TObject);
begin
  ModalResult:=-1;
  WriteCxGrid('订单选择',Tv2,'成品仓库');
  Close;
end;

procedure TfrmPbSelRK.FormShow(Sender: TObject);
begin
  ReadCxGrid('订单选择',Tv2,'成品仓库');
  InitGrid();
end;

procedure TfrmPbSelRK.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      sql.Add('select A.CRTime,A.SPID,A.factoryName,A.SPName,A.MainId,A.SubId,A.SPColor,A.SPMF,A.SPKZ,A.piQty,A.Qty,A.rcgangNo ');
      sql.Add(',ZPPS=(select Count(MJID) from WFB_MJJY WY    ');
      sql.Add(' where WY.APID=A.SPID and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJLen<>0 and WY.CKName=A.CKName) ');
      sql.Add(',ZPQty=(select sum(MJLen) from WFB_MJJY WY    ');
      sql.Add(' where WY.APID=A.SPID and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJLen<>0  and WY.CKName=A.CKName)  ');
      sql.Add(' from CK_SXPB_CR A ');
      sql.Add(' where exists(select MJID from WFB_MJJY AA  ');
      sql.Add('              where AA.APID=A.SPID  and AA.MJLen<>0 and isnull(AA.MJStr2,'''')=''未入库'' and AA.CKName='''+trim(fCKName)+''' )');

      Open;
    end;
    SCreateCDS20(ADOQueryMain,CDS_OrderSel);
    SInitCDSData20(ADOQueryMain,CDS_OrderSel);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmPbSelRK.Button1Click(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmPbSelRK.SPIDChange(Sender: TObject);
begin
  SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
  SCreateCDS20(ADOQueryMain,CDS_OrderSel);
  SInitCDSData20(ADOQueryMain,CDS_OrderSel);
end;

procedure TfrmPbSelRK.Tv2CellDblClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  ModalResult:=1;
end;

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

end;

end.
