unit U_KnitDRSel;

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
  TfrmKnitDRSel = 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;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cv1Column3: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    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
  frmKnitDRSel: TfrmKnitDRSel;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint;

{$R *.dfm}

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

end;

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

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

procedure TfrmKnitDRSel.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      Sql.Add(' select A.*  ');
      sql.Add(' from Knit_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 ');
//      ShowMessage(sql.text);
      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 TfrmKnitDRSel.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 TfrmKnitDRSel.TBRafreshClick(Sender: TObject);
begin
  InitGrid();

end;

procedure TfrmKnitDRSel.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 TfrmKnitDRSel.CheckBox1Click(Sender: TObject);
begin
  InitGrid();
end;

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

procedure TfrmKnitDRSel.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 TfrmKnitDRSel.InitSubGrid();
begin

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

procedure TfrmKnitDRSel.cxTabControl1Change(Sender: TObject);
begin

  InitGrid();
end;

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

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

procedure TfrmKnitDRSel.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 Knit_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 Knit_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 TfrmKnitDRSel.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
  InitSubGrid();
end;

procedure TfrmKnitDRSel.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 Knit_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.