unit U_TradeDRSel;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System,
  RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, cxButtonEdit,
  cxDropDownEdit, cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
  dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, U_BaseHelp,
  dxDateRanges, U_BaseList, System.ImageList, Vcl.ImgList;

type
  TfrmTradeDRSel = class(TfrmBaseHelp)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBClose: TToolButton;
    Tv1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    cxGridPopupMenu1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    v1OrdDate: TcxGridDBColumn;
    Order_Main: TClientDataSet;
    Panel1: TPanel;
    Label4: TLabel;
    Label8: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    ToCoName: TEdit;
    MPRTCodeName: TEdit;
    MPRTKZ: TEdit;
    MPRTMF: TEdit;
    cxTabControl1: TcxTabControl;
    cxSplitter1: TcxSplitter;
    DS_2: TDataSource;
    v1Column8: TcxGridDBColumn;
    Label2: TLabel;
    ClientDataSet2: TClientDataSet;
    GPM_2: TcxGridPopupMenu;
    v1Column13: TcxGridDBColumn;
    v1Column17: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column27: TcxGridDBColumn;
    CheckBox1: TCheckBox;
    ToolButton6: TToolButton;
    Label1: TLabel;
    cxGrid2: TcxGrid;
    TV2: TcxGridDBTableView;
    cxGridDBColumn3: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cv1Column3: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    TV2Column1: TcxGridDBColumn;
    TV2Column2: TcxGridDBColumn;
    TV2Column3: TcxGridDBColumn;
    ToolButton1: TToolButton;
    //RMllPDFExport1: TRMllPDFExport;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure ToCoNameChange(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
    procedure v1Column7PropertiesEditValueChanged(Sender: TObject);
    procedure Tv1Column9PropertiesEditValueChanged(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
  private
    procedure InitGrid();
    procedure InitSubGrid();
    { Private declarations }
  public
    FFInt: Integer;
    canshu1, canshu2: string;
    { Public declarations }
  end;

var
  frmTradeDRSel: TfrmTradeDRSel;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint;

{$R *.dfm}

procedure TfrmTradeDRSel.FormDestroy(Sender: TObject);
begin
  inherited;
  //frmFHSQList:=nil;

end;

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

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

procedure TfrmTradeDRSel.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      Sql.Add(' select A.*  ');
      sql.Add(' from Trade_Cloth_DR_Main A where 1=1');
      if CheckBox1.Checked then
      begin
        sql.Add(' and Filltime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' ');
        sql.Add(' and Filltime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' ');
      end;
      case cxTabControl1.TabIndex of
        0:
          begin
            SQL.Add(' and isnull(A.status,''0'')=''0'' ');
          end;
        1:
          begin
            SQL.Add(' and isnull(A.status,''0'')=''9'' ');
          end;
        2:
          begin
            SQL.Add(' and isnull(A.status,''0'')=''10'' ');
          end;
      end;
//      if Trim(canshu1) <> '����' then
//      begin
//        sql.Add(' and isnull(A.Filler,'''')=''' + Trim(DName) + '''');
//      end;
      sql.Add(' order by  Filltime desc ');
      Open;
    end;
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS(ADOQueryMain, Order_Main);
    SInitCDSData(ADOQueryMain, Order_Main);
  finally
    ADOQueryMain.EnableControls;
    TV1.DataController.Filter.Clear;
    TV2.DataController.Filter.Clear;
  end;
end;

procedure TfrmTradeDRSel.TBFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active = False then
    Exit;
  SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  SCreateCDS(ADOQueryMain, Order_Main);
  SInitCDSData(ADOQueryMain, Order_Main);
end;

procedure TfrmTradeDRSel.TBRafreshClick(Sender: TObject);
begin
  InitGrid();

end;

procedure TfrmTradeDRSel.FormShow(Sender: TObject);
begin
  inherited;

  ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '��������');
  ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '��������');

  EndDate.DateTime := SGetServerDate(ADOQueryTemp);
  BegDate.DateTime := EndDate.DateTime - 60;

  InitGrid();
end;

procedure TfrmTradeDRSel.CheckBox1Click(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmTradeDRSel.CheckBox2Click(Sender: TObject);
begin
  TBRafresh.Click;
end;

procedure TfrmTradeDRSel.ToCoNameChange(Sender: TObject);
begin
  if ADOQueryMain.Active = False then
    Exit;
  SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  SCreateCDS(ADOQueryMain, Order_Main);
  SInitCDSData(ADOQueryMain, Order_Main);
end;

procedure TfrmTradeDRSel.InitSubGrid();
begin

  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.* ');
    sql.Add('from Trade_Cloth_DR_Sub A   where A.DRMID=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + '''');
    Open;
  end;
  SCreateCDS(ADOQueryTemp, ClientDataSet2);
  SInitCDSData(ADOQueryTemp, ClientDataSet2);
end;

procedure TfrmTradeDRSel.cxTabControl1Change(Sender: TObject);
begin

  InitGrid();
end;

procedure TfrmTradeDRSel.ToolButton1Click(Sender: TObject);
begin
  ModalResult := 1;
end;

procedure TfrmTradeDRSel.ToolButton6Click(Sender: TObject);
begin
  WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '��������');
  WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '��������');
end;

procedure TfrmTradeDRSel.Tv1Column9PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
begin
  mvalue := TcxTextEdit(Sender).EditingText;
  FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);

  if mvalue = '' then
  begin
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('update Trade_Cloth_DR_Main set  ' + FFieldName + '=' + 'NULL');
      sql.Add('where  DRMID=' + quotedstr(Trim(Order_Main.fieldbyname('DRMID').AsString)));
      ExecSQL;
    end;
  end
  else
  begin
    with Order_Main do
    begin
      Edit;
      FieldByName(FFieldName).Value := mvalue;
      Post;
    end;
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('update Trade_Cloth_DR_Main set  ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
      sql.Add('where  DRMID=' + quotedstr(Trim(Order_Main.fieldbyname('DRMID').AsString)));
      ExecSQL;
    end;
  end;

  tv1.Controller.EditingController.ShowEdit();
end;

procedure TfrmTradeDRSel.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
  InitSubGrid();
end;

procedure TfrmTradeDRSel.v1Column7PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
begin
  mvalue := TcxTextEdit(Sender).EditingText;
  FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
  with Order_Main do
  begin
    Edit;
    FieldByName(FFieldName).Value := mvalue;
    Post;

  end;

  with ADOQueryCmd do
  begin
    Close;
    SQL.Clear;
    sql.Add('update Trade_Cloth_DR_Main set  ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
    sql.Add('where  DRMID=' + quotedstr(Trim(Order_Main.fieldbyname('DRMID').AsString)));
    ExecSQL;
  end;
  tv1.Controller.EditingController.ShowEdit();
end;

end.