unit U_CPCKKCSelList;

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, cxCheckBox, RM_Common,
  RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus,
  cxCalendar, cxButtonEdit, cxTextEdit, cxPC;

type
  TfrmCPCKKCSelList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    CDS_Main: TClientDataSet;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ToolButton1: TToolButton;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label8: TLabel;
    Label12: TLabel;
    Label6: TLabel;
    SPName: TEdit;
    FactoryNameGYS: TEdit;
    OrderNo: TEdit;
    SPSpec: TEdit;
    CRType: TComboBox;
    SPCF: TEdit;
    Label1: TLabel;
    FactoryNameJY: TEdit;
    Label14: TLabel;
    SPCode: TEdit;
    Label2: TLabel;
    FromOrderNo: TEdit;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column18: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    vCRType: TcxGridDBColumn;
    vFactoryName: TcxGridDBColumn;
    vFactoryNameJY: TcxGridDBColumn;
    vFactoryNameKH: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    vFromOrderNo: TcxGridDBColumn;
    vFromOrderNoMX: TcxGridDBColumn;
    v1Column17: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1Column21: TcxGridDBColumn;
    v1Column11: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column12: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    cxTabControl1: TcxTabControl;
    Label7: TLabel;
    FactoryNameKH: TEdit;
    v1Column4: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoMChange(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure MPRTCodeNameChange(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure SXBatchNOChange(Sender: TObject);
    procedure FactoryNameGYSChange(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure Tv1CellDblClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure cxTabControl1Change(Sender: TObject);
  private
    procedure InitGrid();
    procedure InitGridStatus();
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCPCKKCSelList: TfrmCPCKKCSelList;

implementation
uses
  U_DataLink,U_RTFun,U_SXCKInPut;

{$R *.dfm}

procedure TfrmCPCKKCSelList.FormDestroy(Sender: TObject);
begin
  frmCPCKKCSelList:=nil;
end;

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

procedure TfrmCPCKKCSelList.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      sql.Add(' select A.* ');
      sql.Add(',case when isnull(CRType,'''')=''采购入库'' then A.FactoryName else Null end as FactoryNameGYS ');
      sql.Add(',case when isnull(CRType,'''')=''他检入库'' then A.FactoryName else Null end as FactoryNameJY ');
      sql.Add(',case when isnull(CRType,'''')=''客户退回'' then A.FactoryName else Null end as FactoryNameKH ');
      sql.Add(' from CK_SXPB_CR A where isnull(CKName,'''')=''成品仓库'' ');
      SQL.Add(' and A.CRFlag=''入库'' and MXKCQty>0');
      if cxTabControl1.TabIndex<>0 then
          sql.Add(' and isnull(A.CRType,'''')='''+Trim(cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption)+'''');
      Open;
      //ShowMessage(SQL.Text);
    end;
    SCreateCDS20(ADOQueryMain,CDS_Main);
    SInitCDSData20(ADOQueryMain,CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmCPCKKCSelList.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;

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

procedure TfrmCPCKKCSelList.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('成品库存选择列表',Tv1,'成品仓库');
  Close;
end;

procedure TfrmCPCKKCSelList.FormShow(Sender: TObject);
begin
  ReadCxGrid('成品库存选择列表',Tv1,'成品仓库');
  //InitGrid();
end;

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

procedure TfrmCPCKKCSelList.MPRTCodeNameChange(Sender: TObject);
begin
  TBFind.Click;
end;

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

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

procedure TfrmCPCKKCSelList.SXBatchNOChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCPCKKCSelList.FactoryNameGYSChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmCPCKKCSelList.ToolButton1Click(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  if CDS_Main.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择数据!','提示',0);
    Exit;
  end;
  ModalResult:=1;
end;
procedure TfrmCPCKKCSelList.InitGridStatus();
var
  FCRType:string;
begin
  FCRType:=Trim(cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption);
  if Trim(FCRType)='自检入库' then
  begin
    vFactoryName.Visible:=False;
    vFactoryName.Hidden:=True;
    vFactoryNameJY.Visible:=False;
    vFactoryNameJY.Hidden:=True;
    vFactoryNameKH.Visible:=False;
    vFactoryNameKH.Hidden:=True;
    vFromOrderNo.Visible:=False;
    vFromOrderNo.Hidden:=True;
    vFromOrderNoMX.Visible:=False;
    vFromOrderNoMX.Hidden:=True;
  end else
  if Trim(FCRType)='他检入库' then
  begin
    vFactoryName.Visible:=False;
    vFactoryName.Hidden:=True;
    vFactoryNameJY.Visible:=True;
    vFactoryNameJY.Hidden:=False;
    vFactoryNameKH.Visible:=False;
    vFactoryNameKH.Hidden:=True;
    vFromOrderNo.Visible:=False;
    vFromOrderNo.Hidden:=True;
    vFromOrderNoMX.Visible:=False;
    vFromOrderNoMX.Hidden:=True;
  end else
  if Trim(FCRType)='采购入库' then
  begin
    vFactoryName.Visible:=True;
    vFactoryName.Hidden:=False;
    vFactoryNameJY.Visible:=False;
    vFactoryNameJY.Hidden:=True;
    vFactoryNameKH.Visible:=False;
    vFactoryNameKH.Hidden:=True;
    vFromOrderNo.Visible:=False;
    vFromOrderNo.Hidden:=True;
    vFromOrderNoMX.Visible:=False;
    vFromOrderNoMX.Hidden:=True;
  end else
  if Trim(FCRType)='客户退回' then
  begin
    vFactoryName.Visible:=False;
    vFactoryName.Hidden:=True;
    vFactoryNameJY.Visible:=False;
    vFactoryNameJY.Hidden:=True;
    vFactoryNameKH.Visible:=True;
    vFactoryNameKH.Hidden:=False;
    vFromOrderNo.Visible:=False;
    vFromOrderNo.Hidden:=True;
    vFromOrderNoMX.Visible:=False;
    vFromOrderNoMX.Hidden:=True;
  end else
  if Trim(FCRType)='转单入库' then
  begin
    vFactoryName.Visible:=False;
    vFactoryName.Hidden:=True;
    vFactoryNameJY.Visible:=False;
    vFactoryNameJY.Hidden:=True;
    vFactoryNameKH.Visible:=False;
    vFactoryNameKH.Hidden:=True;
    vFromOrderNo.Visible:=True;
    vFromOrderNo.Hidden:=False;
    vFromOrderNoMX.Visible:=True;
    vFromOrderNoMX.Hidden:=False;
  end else
  if Trim(FCRType)='全部' then
  begin
    vFactoryName.Visible:=True;
    vFactoryName.Hidden:=False;
    vFactoryNameJY.Visible:=True;
    vFactoryNameJY.Hidden:=False;
    vFactoryNameKH.Visible:=True;
    vFactoryNameKH.Hidden:=False;
    vFromOrderNo.Visible:=True;
    vFromOrderNo.Hidden:=False;
    vFromOrderNoMX.Visible:=True;
    vFromOrderNoMX.Hidden:=False;
  end;

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

procedure TfrmCPCKKCSelList.cxTabControl1Change(Sender: TObject);
begin
  InitGridStatus();
  InitGrid();
end;

end.
