rm_dsggridreport.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 2,209 行 · 第 1/5 页

PAS
2,209
字号
  for i := liRect.Top to liRect.Bottom do
  begin
    FDesignerForm.FGrid.MergeCell(liRect.Left, i, liRect.Right, i);
  end;
end;

procedure TRMToolbarGrid.OnBtnSetRowsAndColumnsClick(Sender: TObject);
var
  liRect: TRect;
begin
  FDesignerForm.AddUndoAction(acChangeCellCount);
  liRect := FDesignerForm.FGrid.Selection;
  FDesignerForm.FGrid.RowCount := liRect.Bottom + 1;
  FDesignerForm.FGrid.ColCount := liRect.Right + 1;
  FDesignerForm.Modified := True;
end;

{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMToolbarCellEdit }

constructor TRMToolbarCellEdit.CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
begin
  inherited Create(AOwner);
  BeginUpdate;
  Dockedto := DockTo;
  FDesignerForm := TRMGridReportDesignerForm(AOwner);
  DockRow := 4;
  DockPos := 0;
  Name := 'GridReport_ToolbarCellEdit';
  CloseButton := True;

  FLblCell := TRMToolbarButton.Create(Self);
  with FLblCell do
  begin
    Width := 110;
    AddTo := Self;
  end;
  FToolbarSep1 := TRMToolbarSep.Create(Self);
  with FToolbarSep1 do
  begin
    AddTo := Self;
  end;

  FBtnDBField := TRMToolbarButton.Create(Self);
  with FBtnDBField do
  begin
    ImageIndex := 28;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnDBFieldClick;
    AddTo := Self;
  end;
  FBtnExpression := TRMToolbarButton.Create(Self);
  with FBtnExpression do
  begin
    ImageIndex := 21;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnExpressionClick;
    AddTo := Self;
  end;
  FEdtMemo := TEdit.Create(Self);
  with FEdtMemo do
  begin
    Parent := Self;
    OnKeyUp := CellEditKeyUp;
    Width := 400;
    //    AddTo := Self;
  end;

  EndUpdate;
  Localize;
end;

procedure TRMToolbarCellEdit.Localize;
begin
  RMSetStrProp(FBtnExpression, 'Hint', rmRes + 701);
  RMSetStrProp(FBtnDBField, 'Hint', rmRes + 62);

  RMSetStrProp(Self, 'Caption', rmRes + 866);
end;

procedure TRMToolbarCellEdit.CellEditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  with FDesignerForm do
  begin
    BeforeChange;
    FGrid.Cells[FGrid.Col, FGrid.Row].View.Memo.Text := Self.FEdtMemo.Text;
    AfterChange;
    THackGridEx(FGrid).InvalidateCell(FGrid.Col, FGrid.Row);
  end;
end;

{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMToolbarBorder }

constructor TRMToolbarBorder.CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
begin
  inherited Create(AOwner);
  BeginUpdate;
  Dockedto := DockTo;
  FDesignerForm := TRMGridReportDesignerForm(AOwner);
  DockRow := 2;
  DockPos := 0;
  Name := 'GridReport_ToolbarBorder';

  btnFrameLeft := TRMToolbarButton.Create(Self);
  with btnFrameLeft do
  begin
    AllowAllUp := True;
    GroupIndex := 2;
    ImageIndex := 4;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_SetFrameLeft;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnFrameRight := TRMToolbarButton.Create(Self);
  with btnFrameRight do
  begin
    AllowAllUp := True;
    GroupIndex := 4;
    ImageIndex := 5;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_SetFrameRight;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnFrameTop := TRMToolbarButton.Create(Self);
  with btnFrameTop do
  begin
    AllowAllUp := True;
    GroupIndex := 1;
    ImageIndex := 6;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_SetFrameTop;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnFrameBottom := TRMToolbarButton.Create(Self);
  with btnFrameBottom do
  begin
    AllowAllUp := True;
    GroupIndex := 3;
    ImageIndex := 7;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_SetFrameBottom;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  ToolbarSep971 := TRMToolbarSep.Create(Self);
  with ToolbarSep971 do
  begin
    AddTo := Self;
  end;

  btnNoBorder := TRMToolbarButton.Create(Self);
  with btnNoBorder do
  begin
    ImageIndex := 0;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_NoFrame;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnSetBorder := TRMToolbarButton.Create(Self);
  with btnSetBorder do
  begin
    ImageIndex := 1;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_SetFrame;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnTopBorder := TRMToolbarButton.Create(Self);
  with btnTopBorder do
  begin
    ImageIndex := 3;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_Frame1;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnBottomBorder := TRMToolbarButton.Create(Self);
  with btnBottomBorder do
  begin
    ImageIndex := 2;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_Frame2;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  ToolbarSep972 := TRMToolbarSep.Create(Self);
  with ToolbarSep972 do
  begin
    AddTo := Self;
  end;

  btnBias1Border := TRMToolbarButton.Create(Self);
  with btnBias1Border do
  begin
    AllowAllUp := True;
    GroupIndex := 40;
    ImageIndex := 8;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_Frame3;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnBias2Border := TRMToolbarButton.Create(Self);
  with btnBias2Border do
  begin
    AllowAllUp := True;
    GroupIndex := 41;
    ImageIndex := 9;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_Frame4;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  ToolbarSep973 := TRMToolbarSep.Create(Self);
  with ToolbarSep973 do
  begin
    AddTo := Self;
  end;

  btnDecWidth := TRMToolbarButton.Create(Self);
  with btnDecWidth do
  begin
    ImageIndex := 14;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_DecWidth;
    OnClick := FDesignerForm.DoClick;
    {$IFNDEF USE_TB2k}
    Repeating := True;
    {$ENDIF}
    AddTo := Self;
  end;
  btnIncWidth := TRMToolbarButton.Create(Self);
  with btnIncWidth do
  begin
    ImageIndex := 12;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_IncWidth;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
    {$IFNDEF USE_TB2k}
    Repeating := True;
    {$ENDIF}
  end;
  btnDecHeight := TRMToolbarButton.Create(Self);
  with btnDecHeight do
  begin
    ImageIndex := 11;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_DecHeight;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
    {$IFNDEF USE_TB2k}
    Repeating := True;
    {$ENDIF}
  end;
  btnIncHeight := TRMToolbarButton.Create(Self);
  with btnIncHeight do
  begin
    ImageIndex := 13;
    Images := FDesignerForm.ImageListFrame;
    Tag := TAG_IncHeight;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
    {$IFNDEF USE_TB2k}
    Repeating := True;
    {$ENDIF}
  end;
  ToolbarSep974 := TRMToolbarSep.Create(Self);
  with ToolbarSep974 do
  begin
    AddTo := Self;
  end;

  btnColumnMin := TRMToolbarButton.Create(Self);
  with btnColumnMin do
  begin
    ImageIndex := 0;
    Images := FDesignerForm.ImageListSize;
    OnClick := FDesignerForm.btnColumnMinClick;
    AddTo := Self;
  end;
  btnColumnMax := TRMToolbarButton.Create(Self);
  with btnColumnMax do
  begin
    ImageIndex := 1;
    Images := FDesignerForm.ImageListSize;
    OnClick := FDesignerForm.btnColumnMaxClick;
    AddTo := Self;
  end;
  btnRowMin := TRMToolbarButton.Create(Self);
  with btnRowMin do
  begin
    ImageIndex := 2;
    Images := FDesignerForm.ImageListSize;
    OnClick := FDesignerForm.btnRowMinClick;
    AddTo := Self;
  end;
  btnRowMax := TRMToolbarButton.Create(Self);
  with btnRowMax do
  begin
    ImageIndex := 3;
    Images := FDesignerForm.ImageListSize;
    OnClick := FDesignerForm.btnRowMaxClick;
    AddTo := Self;
  end;
  ToolbarSep975 := TRMToolbarSep.Create(Self);
  with ToolbarSep975 do
  begin
    AddTo := Self;
  end;

  cmbBands := TRMComboBox97.Create(Self);
  with cmbBands do
  begin
    parent := Self;
    Height := 21;
    Width := 180;
    DropDownCount := 12;
    OnClick := FDesignerForm.cmbBandsClick;
    OnDropDown := FDesignerForm.cmbBandsDropDown;
    Perform(CB_SETDROPPEDWIDTH, 240, 0);
  end;
  {$IFDEF USE_TB2K}
  btnAddBand := TRMSubmenuItem.Create(Self);
  {$ELSE}
  btnAddBand := TRMToolbarButton.Create(Self);
  {$ENDIF}
  with btnAddBand do
  begin
    ImageIndex := 16;
    Images := FDesignerForm.ImageListFrame;
    AddTo := Self;
    DropdownCombo := True;
    {$IFNDEF USE_TB2k}
    DropdownMenu := FDesignerForm.PopupMenuBands;
    {$ENDIF}
  end;
  btnDeleteBand := TRMToolbarButton.Create(Self);
  with btnDeleteBand do
  begin
    ImageIndex := 15;
    Images := FDesignerForm.ImageListFrame;
    OnClick := FDesignerForm.btnDeleteBandClick;
    AddTo := Self;
  end;

  EndUpdate;
  Localize;
end;

procedure TRMToolbarBorder.Localize;
begin
  RMSetStrProp(Self, 'Caption', rmRes + 083);
  RMSetStrProp(btnFrameLeft, 'Hint', rmRes + 123);
  RMSetStrProp(btnFrameRight, 'Hint', rmRes + 125);
  RMSetStrProp(btnFrameTop, 'Hint', rmRes + 122);
  RMSetStrProp(btnFrameBottom, 'Hint', rmRes + 124);
  RMSetStrProp(btnNoBorder, 'Hint', rmRes + 127);
  RMSetStrProp(btnSetBorder, 'Hint', rmRes + 126);

  RMSetStrProp(btnTopBorder, 'Hint', rmRes + 234);
  RMSetStrProp(btnBottomBorder, 'Hint', rmRes + 235);
  RMSetStrProp(btnBias1Border, 'Hint', rmRes + 232);
  RMSetStrProp(btnBias2Border, 'Hint', rmRes + 233);

  RMSetStrProp(btnDecWidth, 'Hint', rmRes + 228);
  RMSetStrProp(btnIncWidth, 'Hint', rmRes + 229);
  RMSetStrProp(btnDecHeight, 'Hint', rmRes + 230);
  RMSetStrProp(btnIncHeight, 'Hint', rmRes + 231);

  RMSetStrProp(btnAddBand, 'Hint', rmRes + 134);
  RMSetStrProp(btnDeleteBand, 'Hint', rmRes + 227);

  RMSetStrProp(btnColumnMin, 'Hint', rmRes + 202);
  RMSetStrProp(btnColumnMax, 'Hint', rmRes + 203);
  RMSetStrProp(btnRowMin, 'Hint', rmRes + 204);
  RMSetStrProp(btnRowMax, 'Hint', rmRes + 205);
end;

{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{TRMGridReportDesigner}

constructor TRMGridReportDesigner.Create(AOwner: TComponent);
begin
  //  if Assigned(FDesignerComp) then
  //    raise Exception.Create('You already have one TRMGridReportDesigner component');
  inherited Create(AOwner);

  FDesignerComp := Self;
  FOpenFileCount := 4;
  FDefaultDictionaryFile := '';
  FUseUndoRedo := True;
end;

destructor TRMGridReportDesigner.Destroy;
begin
  FDesignerComp := nil;
  inherited Destroy;
end;

procedure TRMGridReportDesigner.SetOpenFileCount(Value: Integer);
begin
  if (Value >= 0) and (Value <= 9) then
    FOpenFileCount := Value;
end;

procedure TRMGridReportDesigner.SetDesignerRestrictions(Value: TRMDesignerRestrictions);
begin
  FDesignerRestrictions := Value;
end;

{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMGridViewForm }

function TRMGridReportDesignerForm.PageObjects: TList;
var
  i, j: Integer;
  liCell: TRMCellInfo;
begin
  if Page is TRMDialogPage then
  begin
    Result := Page.Objects;
    Exit;
  end;

  if FList = nil then
    FList := TList.Create;

  FList.Clear;
  for i := 0 to Page.Objects.Count - 1 do
    FList.Add(Page.Objects[i]);

  for i := 1 to FGrid.RowCount - 1 do

⌨️ 快捷键说明

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