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

📄 rm_bnded.pas

📁 进销存·完整的·有数据库的·非常完整·只得参考
💻 PAS
字号:

{*****************************************}
{                                         }
{            Report Machine v2.0          }
{     Select Band datasource dialog       }
{                                         }
{*****************************************}

unit RM_bnded;

interface

{$I RM.inc}

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, RM_Class;

type
  TRMBandEditorForm = class(TRMObjEditorForm)
    btnOK: TButton;
    btnCancel: TButton;
    GB1: TGroupBox;
    Label2: TLabel;
    edtNum: TEdit;
    lstDatasets: TListBox;
    Image1: TImage;
    procedure lstDatasetsClick(Sender: TObject);
    procedure lstDatasetsDblClick(Sender: TObject);
    procedure lstDatasetsDrawItem(Control: TWinControl; Index: Integer;
      ARect: TRect; State: TOwnerDrawState);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure FillCombo;
    procedure Localize;
  public
    { Public declarations }
    function ShowEditor(View: TRMView): TModalResult; override;
  end;

implementation

{$R *.DFM}

uses RM_DSet, RM_Const, RM_Utils;

function TRMBandEditorForm.ShowEditor(View: TRMView): TModalResult;
var
  i: Integer;
  s: string;
begin
  FillCombo;
  s := (View as TRMBandView).DataSet;

  if (s <> '') and (s[1] in ['1'..'9']) then
  begin
    i := 1;
    edtNum.Text := s;
  end
  else
  begin
    i := lstDatasets.Items.IndexOf(CurReport.Dictionary.AliasName[s]);
    if i = -1 then
      i := lstDatasets.Items.IndexOf(RMLoadStr(SNotAssigned));
  end;
  lstDatasets.ItemIndex := i;
  lstDatasetsClick(nil);
  Result := ShowModal;
  if Result = mrOk then
  begin
    RMDesigner.BeforeChange;
    if lstDatasets.ItemIndex = 1 then
      TRMBandView(View).DataSet := edtNum.Text
    else
      TRMBandView(View).DataSet :=
      	CurReport.Dictionary.RealDataSourceName[lstDatasets.Items[lstDatasets.ItemIndex]];
  end;
end;

procedure TRMBandEditorForm.FillCombo;
begin
  CurReport.Dictionary.GetBandDatasourceList(lstDatasets.Items);
  lstDatasets.Items.Insert(0, RMLoadStr(SVirtualDataset));
  lstDatasets.Items.Insert(0, RMLoadStr(SNotAssigned));
end;

procedure TRMBandEditorForm.lstDatasetsClick(Sender: TObject);
begin
  RMEnableControls([Label2, edtNum], lstDatasets.ItemIndex = 1);
end;

procedure TRMBandEditorForm.lstDatasetsDrawItem(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 <> 0 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 TRMBandEditorForm.lstDatasetsDblClick(Sender: TObject);
begin
  ModalResult := mrOk;
end;

procedure TRMBandEditorForm.Localize;
begin
	Font.Name := RMLoadStr(SRMDefaultFontName);
  Font.Size := StrToInt(RMLoadStr(SRMDefaultFontSize));
  Font.Charset := StrToInt(RMLoadStr(SCharset));

  RMSetStrProp(Self, 'Caption', rmRes + 480);
  RMSetStrProp(Label2, 'Caption', rmRes + 482);

  btnOK.Caption := RMLoadStr(SOk);
  btnCancel.Caption := RMLoadStr(SCancel);
end;

procedure TRMBandEditorForm.FormCreate(Sender: TObject);
begin
	Localize;
end;

end.

⌨️ 快捷键说明

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