⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frxeditdataband.pas

📁 报表源码 FastReport 3 is new generation of the report generators components. It consists of report engin
💻 PAS
字号:
{******************************************}
{ }
{ FastReport v3.0 }
{ Data Band editor }
{ }
{ Copyright (c) 1998-2005 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}

unit frxEditDataBand;

interface

{$I frx.inc}

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, frxClass
{$IFDEF Delphi6}
, Variants
{$ENDIF};

type
  TfrxDataBandEditorForm = class(TForm)
    OkB:TButton;
    CancelB:TButton;
    Image1:TImage;
    DatasetsLB:TListBox;
    procedure DatasetsLBDrawItem(Control:TWinControl; Index:Integer;
      ARect:TRect; State:TOwnerDrawState);
    procedure DatasetsLBDblClick(Sender:TObject);
    procedure FormHide(Sender:TObject);
    procedure FormShow(Sender:TObject);
    procedure FormCreate(Sender:TObject);
  private
    { Private declarations }
    FDataBand:TfrxDataBand;
    FDesigner:TfrxCustomDesigner;
  public
    { Public declarations }
    property DataBand:TfrxDataBand read FDataBand write FDataBand;
  end;

implementation

{$R *.DFM}

uses frxUtils, frxRes;

procedure TfrxDataBandEditorForm.FormShow(Sender:TObject);
var
  i:Integer;
  dsList:TStringList;
begin
  FDesigner:= TfrxCustomDesigner(Owner);

  dsList:= TStringList.Create;
  FDesigner.Report.GetDatasetList(dsList);
  dsList.Sort;
  DatasetsLB.Items:= dsList;
  DatasetsLB.Items.InsertObject(0, frxResources.Get('dbNotAssigned'), nil);
  DatasetsLB.Items.InsertObject(1, frxResources.Get('dbSingleLine'), nil);
  dsList.Free;

  if FDataBand.DataSet = nil then
    if FDataBand.RowCount = 1 then
      i:= 1 else
      i:= 0
  else
    i:= DatasetsLB.Items.IndexOfObject(FDataBand.DataSet);
  if i =-1 then
    i:= 0;
  DatasetsLB.ItemIndex:= i;
end;

procedure TfrxDataBandEditorForm.FormHide(Sender:TObject);
begin
  if ModalResult = mrOk then
    if DatasetsLB.ItemIndex = 0 then
    begin
      FDataBand.DataSet:= nil;
      FDataBand.RowCount:= 0;
    end
    else if DatasetsLB.ItemIndex = 1 then
    begin
      FDataBand.DataSet:= nil;
      FDataBand.RowCount:= 1;
    end
    else
    begin
      FDataBand.DataSet:= TfrxDataSet(DatasetsLB.Items.Objects[DatasetsLB.ItemIndex]);
      FDataBand.RowCount:= 0;
    end;
end;

procedure TfrxDataBandEditorForm.DatasetsLBDrawItem(Control:TWinControl;
  Index:Integer; ARect:TRect; State:TOwnerDrawState);
var
  r:TRect;
begin
  r:= ARect;
  r.Right:= r.Left+18;
  r.Bottom:= r.Top+16;
  OffsetRect(r, 2, 0);
  with TListBox(Control) do
  begin
    Canvas.FillRect(ARect);
    if Index > 1 then
      Canvas.BrushCopy(r, Image1.Picture.Bitmap, Rect(0, 0, 18, 16),
        Image1.Picture.Bitmap.TransparentColor);
    Canvas.TextOut(ARect.Left+20, ARect.Top+1, Items[Index]);
  end;
end;

procedure TfrxDataBandEditorForm.DatasetsLBDblClick(Sender:TObject);
begin
  ModalResult:= mrOk;
end;

procedure TfrxDataBandEditorForm.FormCreate(Sender:TObject);
begin
  frxResources.LocalizeForm(Self);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -