| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 | unit ReportManagerFrm;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ComCtrls, DB, DBClient, ZJGrid, StdCtrls, ExtCtrls, ZjGridDBA,  cxLookAndFeelPainters, cxButtons;type  TReportManagerForm = class(TForm)    pcReport: TPageControl;    tsLocal: TTabSheet;    tsOnline: TTabSheet;    tsCustom: TTabSheet;    zgLoacl: TZJGrid;    Panel1: TPanel;    cbCategory: TComboBox;    pnlInputCode: TPanel;    edtCode: TEdit;    Label2: TLabel;    zaLocal: TZjGridDBA;    Label1: TLabel;    zgOnline: TZJGrid;    zaOnline: TZjGridDBA;    btnGet: TcxButton;    pnlCustom: TPanel;    pnlHint: TPanel;    zgCustom: TZJGrid;    zaCustom: TZjGridDBA;    procedure FormCreate(Sender: TObject);    procedure FormDestroy(Sender: TObject);    procedure zgLoaclCellGetFont(Sender: TObject; ACoord: TPoint;      AFont: TFont);    procedure zgOnlineCellGetFont(Sender: TObject; ACoord: TPoint;      AFont: TFont);    procedure zgLoaclMouseDown(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure zgOnlineMouseDown(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure cbCategoryChange(Sender: TObject);    procedure btnGetClick(Sender: TObject);    procedure zgCustomCellGetFont(Sender: TObject; ACoord: TPoint;      AFont: TFont);    procedure zgCustomMouseDown(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure pcReportChange(Sender: TObject);  private    { Private declarations }    FReports: TObject;    function CurValue(AGridDBA: TZjGridDBA; FieldName: string): Variant;    function Col(AGridDBA: TZjGridDBA; FieldName: string): Integer;    procedure GridGetFont(Sender: TObject; ACoord: TPoint; AFont: TFont; AGrid: TZjGrid; AGridDBA: TZjGridDBA);    procedure GridMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer; AGrid: TZjGrid; AGridDBA: TZjGridDBA);  public    { Public declarations }  end;implementationuses ReportManagerDM, ReportHistoryFrm;{$R *.dfm}function TReportManagerForm.Col(AGridDBA: TZjGridDBA; FieldName: string): Integer;begin  Result := AGridDBA.ColumnIndex(FieldName) + 1;end;function TReportManagerForm.CurValue(AGridDBA: TZjGridDBA; FieldName: string): Variant;begin  Result := AGridDBA.DataSet.FieldByName(FieldName).AsVariant;end;procedure TReportManagerForm.FormCreate(Sender: TObject);begin  FReports := TReports.Create(nil);  zaLocal.DataSet := TReports(FReports).cdsLocal;  zaLocal.Grid := zgLoacl;  zaOnline.DataSet := TReports(FReports).cdsOnline;  zaOnline.Grid := zgOnline;  zaCustom.DataSet := TReports(FReports).cdsCustom;  zaCustom.Grid := zgCustom;  pnlHint.Visible := zaLocal.DataSet.RecordCount = 0;  TReports(FReports).CategoryList(cbCategory.Items);  cbCategory.ItemIndex := 0;  pcReport.ActivePage := tsLocal;end;procedure TReportManagerForm.FormDestroy(Sender: TObject);begin  FReports.Free;end;procedure TReportManagerForm.GridGetFont(Sender: TObject; ACoord: TPoint;  AFont: TFont; AGrid: TZjGrid; AGridDBA: TZjGridDBA);var  OldActiveRecd: Integer;begin  if ACoord.X = Col(AGridDBA, 'State') then  begin    if AGridDBA.ChangeActiveRecord(ACoord.Y - AGrid.FixedRowCount, OldActiveRecd)then    begin      try        if (CurValue(AGridDBA, 'State') = '¸üÐÂ') or (CurValue(AGridDBA, 'State') = 'ÏÂÔØ') then          AFont.Color := clBlue;      finally        AGridDBA.ChangeActiveRecord(OldActiveRecd, OldActiveRecd);      end;    end;  end  else if ACoord.X = Col(AGridDBA, 'History') then    AFont.Color := clBlue;end;procedure TReportManagerForm.GridMouseDown(Sender: TObject;  Button: TMouseButton; Shift: TShiftState; X, Y: Integer; AGrid: TZjGrid;  AGridDBA: TZjGridDBA);var  vForm: TReportHistoryForm;  vReport: TReport;  iID: Integer;begin  if CurValue(AGridDBA, 'ID') = null then Exit;  Screen.Cursor := crHourGlass;  try    iID := CurValue(AGridDBA, 'ID');    vReport := TReports(FReports).FindReprot(iID);    if AGrid.CurCol = Col(AGridDBA, 'State') then    begin      if not SameText(vReport.LocalVer, vReport.NewestVer) then        vReport.Update(vReport.NewestVer);    end    else if AGrid.CurCol = Col(AGridDBA, 'History') then    begin      vReport.GetHistoryVer;      vForm := TReportHistoryForm.Create(vReport);      try        vForm.ShowModal;      finally        vForm.Free;      end;    end;  finally    Screen.Cursor := crDefault;  end;end;procedure TReportManagerForm.zgLoaclCellGetFont(Sender: TObject;  ACoord: TPoint; AFont: TFont);begin  GridGetFont(Sender, ACoord, AFont, zgLoacl, zaLocal);end;procedure TReportManagerForm.zgOnlineCellGetFont(Sender: TObject;  ACoord: TPoint; AFont: TFont);begin  GridGetFont(Sender, ACoord, AFont, zgOnline, zaOnline);end;procedure TReportManagerForm.zgLoaclMouseDown(Sender: TObject;  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  GridMouseDown(Sender, Button, Shift, X, Y, zgLoacl, zaLocal);end;procedure TReportManagerForm.zgOnlineMouseDown(Sender: TObject;  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  GridMouseDown(Sender, Button, Shift, X, Y, zgOnline, zaOnline);end;procedure TReportManagerForm.cbCategoryChange(Sender: TObject);begin  if cbCategory.ItemIndex = 0 then    TReports(FReports).CancelFilterCategory  else    TReports(FReports).FilterCategory(cbCategory.Text);end;procedure TReportManagerForm.btnGetClick(Sender: TObject);begin  if Trim(edtCode.Text) = '' then Exit;  if TReports(FReports).LoadCustom(Trim(edtCode.Text)) then  begin    pnlInputCode.Visible := False;  end;end;procedure TReportManagerForm.zgCustomCellGetFont(Sender: TObject;  ACoord: TPoint; AFont: TFont);begin  GridGetFont(Sender, ACoord, AFont, zgCustom, zaCustom);end;procedure TReportManagerForm.zgCustomMouseDown(Sender: TObject;  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  GridMouseDown(Sender, Button, Shift, X, Y, zgCustom, zaCustom);end;procedure TReportManagerForm.pcReportChange(Sender: TObject);begin  if pcReport.ActivePage = tsLocal then    pnlHint.Visible := zaLocal.DataSet.RecordCount = 0;end;end.
 |