unit U_BSPrtDyeEJStkList;

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,
  cxLookAndFeels, cxLookAndFeelPainters,  
  cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList, 
  dxScrollbarAnnotations, cxContainer, dxSkinsCore, dxSkinsDefaultPainters,
  cxProgressBar, dxSkinWXI;

type
  TfrmBSPrtDyeEJStkList = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    CDS_Main: TClientDataSet;
    CDS_HZ: TClientDataSet;
    PopupMenu1: TPopupMenu;
    ToolButton1: TToolButton;
    cxGrid2: TcxGrid;
    Tv1: TcxGridDBTableView;
    v2Column1: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    cxGrid2Level1: TcxGridLevel;
    Label3: TLabel;
    Label8: TLabel;
    Label2: TLabel;
    P_name: TcxTextEdit;
    P_spec: TcxTextEdit;
    BatchNo: TcxTextEdit;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column4: 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 SXBatchNOChange(Sender: TObject);
    procedure FromCoNameChange(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
  private
    procedure InitGrid();
    { Private declarations }
  public
    canshu1, FSTKName, canshu3: string;
    { Public declarations }
  end;

var
  frmBSPrtDyeEJStkList: TfrmBSPrtDyeEJStkList;

implementation

uses
  U_DataLink, U_RTFun;

{$R *.dfm}

procedure TfrmBSPrtDyeEJStkList.FormDestroy(Sender: TObject);
begin
  inherited;
  frmBSPrtDyeejStkList := nil;
end;

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

procedure TfrmBSPrtDyeEJStkList.FormCreate(Sender: TObject);
begin
  inherited;
  canshu1 := Trim(self.fParameters1);
  FSTKName := Trim(self.fParameters2);
  canshu3 := Trim(self.fParameters3);
end;

procedure TfrmBSPrtDyeEJStkList.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      sql.Add(' select    P_Code,P_Name,P_Spec,BatchNo,SUM(IOQtyFlag*Qty)StkQty,SUM(IOQtyFlag*Qty/1000)StkQtyKG,money=sum(IOQtyFlag*price*Qty) ');
      SQL.Add(' ,p_type=(select p_type from Bs_Product_Info e where e.C_SCcode=a.p_code)');

      sql.Add(' from BS_Product_IO A    ');
//      SQL.Add(' where A.IOFlag=''入库'' and  isnull(StkQty,0)>0   ');
      sql.Add(' where isnull(stkName,'''')=''' + Trim(FstkName) + '''');
      SQL.Add('GROUP BY   P_Code,P_Name,P_Spec,BatchNo');
      sql.add('having sum(IOQtyFlag*Qty)>0');

      Open;
    end;
    SCreateCDS(ADOQueryMain, CDS_Main);
    SInitCDSData(ADOQueryMain, CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

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

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

procedure TfrmBSPrtDyeEJStkList.TBCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmBSPrtDyeEJStkList.FormShow(Sender: TObject);
begin
  inherited;
  ReadCxGrid(trim(Self.Caption), Tv1, '机物料仓库');
  InitGrid();
end;

procedure TfrmBSPrtDyeEJStkList.TBFindClick(Sender: TObject);
begin
CDSDataFilter(ADOQueryMain, CDS_Main, Tv1, '{"FilterStr":"' + CommonFiltersByContainer(Panel1, '  {"EquTag": 1,"LikeTag": 2,"Fields": ""}') + '"  }');
end;

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

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

procedure TfrmBSPrtDyeEJStkList.FromCoNameChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmBSPrtDyeEJStkList.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 TfrmBSPrtDyeEJStkList.ToolButton2Click(Sender: TObject);
begin
  WriteCxGrid(trim(Self.Caption), Tv1, '机物料仓库');
end;

procedure TfrmBSPrtDyeEJStkList.ToolButton3Click(Sender: TObject);
begin
  inherited;
  if ADOQueryMain.IsEmpty then
    exit;
  TcxGridToExcel(trim(self.Caption), cxGrid2);
end;

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

end.

