unit U_PBJYCLList;

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, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class,
  RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxLookAndFeels,
  cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters,
  dxDateRanges, dxBarBuiltInMenu, U_BaseList, cxContainer, dxCore, cxDateUtils,
  cxMaskEdit, cxDropDownEdit, cxCheckBox, cxPC;

type
  TfrmPBJYCLList = class(TFrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    cxGridPopupMenu1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    Label5: TLabel;
    C_CodeName: TEdit;
    TBExport: TToolButton;
    Order_Main: TClientDataSet;
    RM1: TRMGridReport;
    RMXLSExport1: TRMXLSExport;
    CDS_PRT: TClientDataSet;
    RMDBPRT: TRMDBDataSet;
    RMDBPZ: TRMDBDataSet;
    CDS_PZ: TClientDataSet;
    CDS_SJ: TClientDataSet;
    RMDBSJ: TRMDBDataSet;
    Label10: TLabel;
    C_Code: TEdit;
    RMDBDataSet1: TRMDBDataSet;
    ClientDataSet1: TClientDataSet;
    CDS_WJG: TClientDataSet;
    RMDBWJG: TRMDBDataSet;
    Label6: TLabel;
    BatchNoHZ: TEdit;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyleRepository2: TcxStyleRepository;
    cxStyle2: TcxStyle;
    cxStyle3: TcxStyle;
    cxStyleRepository3: TcxStyleRepository;
    cxStyle4: TcxStyle;
    KHName: TEdit;
    Label4: TLabel;
    Label7: TLabel;
    carno: TEdit;
    Label9: TLabel;
    CheckBox1: TCheckBox;
    BegDate: TcxDateEdit;
    EndDate: TcxDateEdit;
    Label1: TLabel;
    filler: TEdit;
    cxPageControl1: TcxPageControl;
    cxTabSheet1: TcxTabSheet;
    cxTabSheet2: TcxTabSheet;
    Panel2: TPanel;
    Label20: TLabel;
    Panel3: TPanel;
    Image1: TImage;
    Button1: TButton;
    RadioGroup1: TRadioGroup;
    cxGrid3: TcxGrid;
    TV2: TcxGridDBTableView;
    cxGridDBColumn3: TcxGridDBColumn;
    cxgrdbclmnv1Column14: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    v1Column15: TcxGridDBColumn;
    v2Column3: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column12: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v2Column5: TcxGridDBColumn;
    v1Column16: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGrid2Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column2: TcxGridDBColumn;
    v1Column21: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1PRTOrderQty: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    CDS_MAIN: TClientDataSet;
    DataSource2: TDataSource;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoChange(Sender: TObject);
    procedure FormShow(Sender: TObject);

    procedure FormDestroy(Sender: TObject);
    procedure Tv1DblClick(Sender: TObject);
    procedure carnoKeyPress(Sender: TObject; var Key: Char);
    procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    procedure cxPageControl1Change(Sender: TObject);
    procedure C_CodeKeyPress(Sender: TObject; var Key: Char);
  private
    FInt, PFInt: Integer;
    procedure InitGrid();
    procedure InitForm();
    function DelData(): Boolean;
    procedure InitButton();
    procedure SetStatus();
    { Private declarations }
  public
    canshu1, FCheJian: string;
    { Public declarations }
  end;

var
  frmPBJYCLList: TfrmPBJYCLList;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_ClothCLCXList;
 //U_ClothSCInPutSC ,U_ClothSCInPut ,U_SCPerson



{$R *.dfm}

procedure TfrmPBJYCLList.SetStatus();
begin

  case cxPageControl1.ActivePageIndex of
    0:
      begin
        ClearOrHideControls(Panel1, '0', True, True);
        ClearOrHideControls(Panel1, '1', True, False);
      end;
    1:
      begin
        ClearOrHideControls(Panel1, '0', false, True);
        ClearOrHideControls(Panel1, '1', True, True);

      end;

  end;

end;

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

procedure TfrmPBJYCLList.InitButton();
begin

end;

procedure TfrmPBJYCLList.TBCloseClick(Sender: TObject);
begin
  Close;
  WriteCxGrid('����ͳ�Ʋ�ѯ', Tv1, '������������');
end;

procedure TfrmPBJYCLList.InitGrid();
var
  WSQL: string;
begin
  WSQL := SGetFilters(Panel1, 1, 2);
  if Trim(WSQL) <> '' then
    WSQL := ' and ' + WSQL;

  try

    case cxPageControl1.ActivePageIndex of
      0:
        begin
          with ADOQueryMain do
          begin
            Filtered := False;
            Close;
            sql.Clear;

            sql.Add('exec P_Viwe_PBJYLIST @begdate=' + quotedstr(BegDate.Text));
            sql.Add(',@enddate=' + quotedstr(endDate.Text));
            sql.Add(',@WSql=' + quotedstr(WSQL));
            Open;
          end;
          SCreateCDS(ADOQueryMain, order_main);
          SInitCDSData(ADOQueryMain, order_main);
        end;
      1:
        begin
          with ADOQueryMain do
          begin
            Filtered := False;
            Close;
            sql.Clear;

            SQL.Add('SELECT * FROM V_PB_JYLIST');
            sql.Add('where 1=1 ' + (WSQL));
            sql.Add(' and FILLTIME>=''' + BegDate.TEXT + '''');
            sql.Add(' and FILLTIME<''' + ENDDATE.Text + '''');
            Open;
          end;
          SCreateCDS(ADOQueryMain, CDS_Main);
          SInitCDSData(ADOQueryMain, CDS_Main);

        end;
    end;

  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmPBJYCLList.InitForm();
begin
  SETSTATUS();
  InitButton();
  ReadCxGrid('����ͳ�Ʋ�ѯ', Tv1, '������������');
  EndDate.Text := FormatDateTime('yyyy-MM-dd', SGetServerDate(ADOQueryTemp) + 1) + ' 08:00:00';
  BegDate.Text := FormatDateTime('yyyy-MM-dd', SGetServerDate(ADOQueryTemp) - 1) + ' 08:00:00';
  InitGrid();
end;

procedure TfrmPBJYCLList.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;

function TfrmPBJYCLList.DelData(): Boolean;
begin
  try
    Result := false;
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Cloth_Sub where SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + '''');
      ExecSQL;
    end;
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from Cloth_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      Open;
    end;
    if ADOQueryTemp.IsEmpty then
    begin
      with ADOQueryCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('delete Cloth_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
        ExecSQL;
      end;
    end;
    if Trim(Order_Main.fieldbyname('SubId').AsString) = '' then
    begin
      with ADOQueryCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('delete Cloth_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
        ExecSQL;
      end;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Cloth_PaiZhen where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      ExecSQL;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Cloth_YCL_PB where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      ExecSQL;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Result := True;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Result := False;
    Application.MessageBox('����ɾ���쳣��', '��ʾ', 0);
  end;
end;

procedure TfrmPBJYCLList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
  case cxPageControl1.ActivePageIndex of
    0:
      begin
        TcxGridToExcel('������ܱ�', cxGrid1);
      end;
    1:
      begin
        TcxGridToExcel('������ϸ��', cxGrid3);
      end;

  end;
end;

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

procedure TfrmPBJYCLList.ConNoChange(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 TfrmPBJYCLList.cxPageControl1Change(Sender: TObject);
begin
  inherited;
  SetStatus();
  InitGrid();
end;

procedure TfrmPBJYCLList.C_CodeKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if Key = #13 then
  begin
    InitGrid();
  end;
end;

procedure TfrmPBJYCLList.FormShow(Sender: TObject);
begin
  InitForm();
end;

procedure TfrmPBJYCLList.FormDestroy(Sender: TObject);
begin
  frmPBJYCLList := nil;
end;

procedure TfrmPBJYCLList.Tv1DblClick(Sender: TObject);
begin
  AssignmentControls(Panel1, ORDER_MAIN, '0');
  cxPageControl1.ActivePageIndex := 1;
//  try
//    frmClothCLCXList := TfrmClothCLCXList.Create(Application);
//    with frmClothCLCXList do
//    begin
//      FMainID := self.Order_Main.fieldbyname('MainID').asstring;
//      if ShowModal = 1 then
//      begin
//
//      end;
//    end;
//  finally
//    frmClothCLCXList.Free;
//  end;
end;

procedure TfrmPBJYCLList.carnoKeyPress(Sender: TObject; var Key: Char);
begin
  InitGrid();
end;

procedure TfrmPBJYCLList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
  FDDZT: string;
begin

  if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('DDZT').Index] = null then
    Exit;

  FDDZT := AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('DDZT').Index];

//  if FDDZT = '�ѿ�ʼ' then
//    ACanvas.Font.Color :=$FF0000;
  if FDDZT = '�ѽ���' then
    ACanvas.Font.Color := $0000FF;

end;

end.