unit U_BpJylist;

interface

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

type
  TfrmBpJylist = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBExport: TToolButton;
    TBPrint: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    Label1: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1P_CodeName: TcxGridDBColumn;
    v1P_SPEC: TcxGridDBColumn;
    v1P_MF: TcxGridDBColumn;
    v1P_KZ: TcxGridDBColumn;
    v1RollNum: TcxGridDBColumn;
    v1Qty: TcxGridDBColumn;
    v1QtyUnit: TcxGridDBColumn;
    v1Note: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    v1CRTime: TcxGridDBColumn;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    MJstr7: TEdit;
    MPrtSpec: TEdit;
    CRType: TComboBox;
    Label5: TLabel;
    ADOQueryCmd: TADOQuery;
    ADOQueryTmp: TADOQuery;
    DataSource1: TDataSource;
    CDS_Main: TClientDataSet;
    cxGridPopupMenu1: TcxGridPopupMenu;
    TOk: TToolButton;
    v1Ssel: TcxGridDBColumn;
    CheckBox1: TCheckBox;
    v1MJID: TcxGridDBColumn;
    v1MJXH: TcxGridDBColumn;
    v1CPType: TcxGridDBColumn;
    ckName: TComboBox;
    Label6: TLabel;
    v1P_Color: TcxGridDBColumn;
    v1P_Code: TcxGridDBColumn;
    Label7: TLabel;
    MPrtCode: TEdit;
    begTime: TDateTimePicker;
    endTime: TDateTimePicker;
    CheckBox2: TCheckBox;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure MJstr7Change(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure TBPrintClick(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure TOkClick(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
  private
    procedure InitGrid();
    procedure SetComboBox();
    { Private declarations }
  public
    fType:integer;
    fCKName:string;

    { Public declarations }
  end;

var
  frmBpJylist: TfrmBpJylist;

implementation
uses
  U_DataLink,U_Fun10,U_ZDYHelp, U_BpRk;
{$R *.dfm}
procedure TfrmBpJylist.SetComboBox();
begin
  ckName.Items.Clear;
  with adoQueryTmp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from KH_ZDY where Type=''CPCK'' ');
    if trim(fCKName)<>'' then
    sql.Add('and zdyName='+quotedstr(trim(fCKName)));
    open;
    while not eof do
    begin
      ckName.Items.Add(trim(fieldbyname('zdyName').AsString));
      next;
    end;
  end;
  if ckName.Items.Count>0 then ckName.ItemIndex:=0;

  CRType.Items.Clear;
  CRType.Items.Add('');
  with adoQueryTmp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from KH_ZDY where Type=''CPRKTYPE''');
    if trim(fCKName)<>'' then
    sql.Add('and note='+quotedstr(trim(fCKName)));
    open;
    while not eof do
    begin
      CRType.Items.Add(trim(fieldbyname('zdyName').AsString));
      next;
    end;
  end;
  if CRType.Items.Count>0 then CRType.ItemIndex:=0;
end;
procedure TfrmBpJylist.InitGrid();
var
  mBegdate,mEnddate:string;
begin
  mbegdate:=FormatDateTime('yyyy-MM-dd',begdate.Date)+' '+FormatDateTime('HH:nn',begTime.Time);
  menddate:=FormatDateTime('yyyy-MM-dd',enddate.Date)+' '+FormatDateTime('HH:nn',endTime.Time);
  try
    with adoqueryTmp do
    begin
      close;
      sql.Clear;
      sql.Add('select A.*,B.MPrtCode,MPrtCodeName=A.MJStr7,B.MPrtSpec from WFB_MJJY A');
      sql.Add('INNER JOIN JYOrder_main B on B.MainID=A.mainID ');
      sql.Add('where A.MJstr2=''未入库''');
      if begdate.Checked then
      sql.Add('and A.FillTime>='''+trim(mbegdate)+''' ');
      if enddate.Checked then
      sql.Add('and A.FillTime<'''+trim(menddate)+''' ');
      if not CheckBox1.Checked then
     // sql.Add('and (RollNum<>0 or qty<>0 ) ');
{      if trim(FckName)<>'' then
      sql.Add('and ckName='+quotedstr(trim(FckName)) );     }
      open;
    end;
    SCreateCDS20(adoqueryTmp,CDS_Main);
    SInitCDSData20(adoqueryTmp,CDS_Main);
  finally
  end;
end;

procedure TfrmBpJylist.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  writeCxGrid(self.Caption,Tv1,'成品仓库');
  if fType=10 then Action:=cahide
  else Action:=cafree;
end;

procedure TfrmBpJylist.FormDestroy(Sender: TObject);
begin
  frmBpJylist:=nil;
end;

procedure TfrmBpJylist.MJstr7Change(Sender: TObject);
begin
  if ADOQueryTmp.Active=False then Exit;
  SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2));
  SCreateCDS20(ADOQueryTmp,CDS_Main);
  SInitCDSData20(ADOQueryTmp,CDS_Main);
end;

procedure TfrmBpJylist.FormShow(Sender: TObject);
begin
  if fType=10 then
  begin
    TOk.Visible:=true;
    v1Ssel.Visible:=true;
  end;
    TOk.Visible:=true;
    v1Ssel.Visible:=true;
  readCxGrid(self.Caption,Tv1,'成品仓库');
  SetComboBox();
  InitGrid();
end;

procedure TfrmBpJylist.FormCreate(Sender: TObject);
begin
  BegDate.Date:=DServerDate-7;
  EndDate.Date:=DServerDate;
  cxGrid1.Align:=alclient;

end;

procedure TfrmBpJylist.TBCloseClick(Sender: TObject);
begin
    close;
end;

procedure TfrmBpJylist.TBRafreshClick(Sender: TObject);
begin

  initGrid();
end;

procedure TfrmBpJylist.TBPrintClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  TcxGridToExcel(self.Caption,cxgrid1);
end;

procedure TfrmBpJylist.TBExportClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  TcxGridToExcel(self.Caption,cxgrid1);
end;

procedure TfrmBpJylist.TOkClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  ModalResult:=1;
end;

procedure TfrmBpJylist.CheckBox2Click(Sender: TObject);
begin
  with CDS_Main do
  begin
    DisableControls;
    First;
    while not eof do
    begin
      edit;
      fieldbyname('Ssel').Value:=checkbox2.Checked;
      post;
      next;
    end;
    First;
    EnableControls;
  end;
end;

end.
