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

📄 rm_editorreportmaster.pas

📁 这是一个功能强大
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  RMSetStrProp(Label15, 'Caption', rmRes + 888);
  RMSetStrProp(Label12, 'Caption', rmRes + 901);
  RMSetStrProp(Label17, 'Caption', rmRes + 897);
  RMSetStrProp(Label23, 'Caption', rmRes + 900);
  RMSetStrProp(Label8, 'Caption', rmRes + 888);
  RMSetStrProp(Label13, 'Caption', rmRes + 901);
  RMSetStrProp(Label18, 'Caption', rmRes + 902);
  RMSetStrProp(Label9, 'Caption', rmRes + 903);
  RMSetStrProp(Label10, 'Caption', rmRes + 904);
  RMSetStrProp(CheckBox1, 'Caption', rmRes + 905);
  RMSetStrProp(CheckBox2, 'Caption', rmRes + 906);
  RMSetStrProp(CheckBox3, 'Caption', rmRes + 907);
  RMSetStrProp(CheckBox4, 'Caption', rmRes + 908);

  RMSetStrProp(Self, 'Caption', rmRes + 873);
  RMSetStrProp(btnOK, 'Caption', SOK);
  RMSetStrProp(btnCancel, 'Caption', SCancel);
end;

procedure TRMFormReportMaster.Label1Click(Sender: TObject);
begin
  if FontDialog1.Execute then
  begin
    if Sender = Label1 then
      memTitle.Font.Assign(FontDialog1.Font)
    else if Sender = Label2 then
    begin
      memCaptionLeft.Font.Assign(FontDialog1.Font);
      memCaptionCenter.Font.Assign(FontDialog1.Font);
      memCaptionRight.Font.Assign(FontDialog1.Font);
    end
    else if Sender = Label3 then
    begin
      memHeaderLeft.Font.Assign(FontDialog1.Font);
      memHeaderCenter.Font.Assign(FontDialog1.Font);
      memHeaderRight.Font.Assign(FontDialog1.Font);
    end
    else if Sender = Label4 then
    begin
      memFooterLeft.Font.Assign(FontDialog1.Font);
      memFooterCenter.Font.Assign(FontDialog1.Font);
      memFooterRight.Font.Assign(FontDialog1.Font);
    end;
  end;
end;

procedure TRMFormReportMaster.memTitleDblClick(Sender: TObject);
var
  tmp: TRMEditorForm;
begin
  tmp := TRMEditorForm(RMDesigner.EditorForm);
  tmp.Memo.Lines.Assign(TMemo(Sender).Lines);
  if tmp.Execute then
    TMemo(Sender).Lines.Assign(tmp.Memo.Lines);
end;

procedure TRMFormReportMaster.FormCreate(Sender: TObject);
begin
  FCanRefresh := False;
  FCurNode := nil;
  PageControl1.ActivePage := tabDataSet;

  FBtnDataColor := TRMColorPickerButton.Create(Self);
  with FBtnDataColor do
  begin
		Parent := Panel3;
    SetBounds(223, 100, 60, 22);
    ColorType := rmptFill;
//    Flat := False;
  end;
  FBtnTitleColor := TRMColorPickerButton.Create(Self);
  with FBtnTitleColor do
  begin
		Parent := Panel3;
    SetBounds(223, 165, 60, 22);
    ColorType := rmptFill;
//    Flat := False;
  end;

  Localize;
end;

procedure TRMFormReportMaster.btnNewColumnClick(Sender: TObject);
var
  lNode: TTreeNode;
  lNodeInfo: TRMColumnInfo;
begin
  lNodeInfo := TRMColumnInfo.Create;
  lNodeInfo.DataFont.Assign(pnlDefaultFont.Font);
  lNodeInfo.TitleFont.Assign(pnlDefaultFont.Font);

  if FCurNode = nil then
    lNode := trvReportData.Items.AddChildObject(nil, '???', lNodeInfo)
  else
    lNode := trvReportData.Items.AddChildObject(FCurNode.Parent, '???', lNodeInfo);

  lNode.Selected := True;
end;

procedure TRMFormReportMaster.btnNewSubColumnClick(Sender: TObject);
var
  lNode: TTreeNode;
  lNodeP: TRMColumnInfo;
begin
  if FCurNode = nil then Exit; //Add 2002.12.15

  lNodeP := TRMColumnInfo.Create;
  lNode := trvReportData.Items.AddChildObject(FCurNode, '???', lNodeP);
  lNode.Selected := True;
end;

procedure TRMFormReportMaster.btnDeleteColumnClick(Sender: TObject);
begin
  if FCurNode = nil then Exit;

  FCanRefresh := False;
  try
	  DeleteOneNode(FCurNode);
    FCurNode := nil;
  finally
  	FCanRefresh := True;
  end;

  if trvReportData.Items.Count = 0 then
  begin
    FCurNode := nil;
    edtTitleCaption.Clear;
    cmbFields.ItemIndex := -1;
  end
  else
  begin
  	trvReportDataChange(nil, trvReportData.Selected);
  end;
end;

procedure TRMFormReportMaster.trvReportDataChange(Sender: TObject; Node: TTreeNode);
begin
  if not FCanRefresh then Exit;
  FCurNode := Node;

  GetNodeData;
end;

procedure TRMFormReportMaster.btnUpMoveClick(Sender: TObject);
var
  lNode: TTreeNode;
begin
  if FCurNode = nil then Exit;

  lNode := FCurNode.getPrevSibling;
  if lNode <> nil then
    FCurNode.MoveTo(lNode, naInsert);
end;

procedure TRMFormReportMaster.btnDownMoveClick(Sender: TObject);
var
  lNode: TTreeNode;
begin
  if FCurNode = nil then Exit;

  lNode := FCurNode.getNextSibling;
  if lNode <> nil then
    lNode.MoveTo(FCurNode, naInsert);
end;

procedure TRMFormReportMaster.btnUpLevelClick(Sender: TObject);
var
  lNode: TTreeNode;
begin
  if FCurNode = nil then Exit;

  lNode := FCurNode.Parent;
  if lNode <> nil then
  begin
    FCurNode.MoveTo(lNode, naInsert);
    lNode := FCurNode.getNextSibling;
    if lNode <> nil then
    begin
      trvReportData.Items.BeginUpdate;
      try
        lNode.MoveTo(FCurNode, naInsert);
      finally
        trvReportData.Items.EndUpdate;
        trvReportData.FullExpand;
      end;
    end;
  end;
end;

procedure TRMFormReportMaster.btnDownLevelClick(Sender: TObject);
var
  lNode: TTreeNode;
begin
  if FCurNode = nil then Exit;

  if FCurNode.HasChildren then Exit;

  lNode := FCurNode.getPrevSibling;
  if (lNode <> nil) {and (lNode.Parent = nil)} then
  begin
    trvReportData.Items.BeginUpdate;
    try
      FCurNode.MoveTo(lNode, naAddChild);
    finally
      trvReportData.Items.EndUpdate;
      trvReportData.FullExpand;
    end;
  end;
end;

procedure TRMFormReportMaster.FormDestroy(Sender: TObject);
begin
  FCanRefresh := False;
  ClearTreeInfo;
end;

procedure TRMFormReportMaster.FormShow(Sender: TObject);

  procedure _GetDataSets;
  begin
    lstDatasets.Items.Clear;

    if FReportMaster.DataSet <> nil then
    begin
      lstDataSets.Items.Add(FReportMaster.DataSet.Name);
    end
    else
    begin
      FReportMaster.Report.Dictionary.GetDataSets(lstDatasets.Items);
    end;

    lstDataSets.ItemIndex := 0;
  end;

begin
  _GetDataSets;

  FCanRefresh := True;
  trvReportData.FullExpand;
end;

procedure TRMFormReportMaster.trvReportDataChanging(Sender: TObject;
  Node: TTreeNode; var AllowChange: Boolean);
begin
  if (not FCanRefresh) or (FCurNode = nil) then Exit;

  SetNodeData;
end;

procedure TRMFormReportMaster.SpeedButton1Click(Sender: TObject);
var
  lStr: string;
begin
  if FCurNode = nil then Exit;

  lStr := '';
  if RM_EditorExpr.RMGetExpression1('', lStr, nil, False, FReportMaster.Report, FReportMaster.DataSet) then
  begin
    if lStr <> '' then
    begin
      if not ((lStr[1] = '[') and (lStr[Length(lStr)] = ']') and
        (Pos('[', Copy(lStr, 2, 999999)) = 0)) then
        lStr := '[' + lStr + ']';

      cmbFields.Text := lStr;
    end;
  end;
end;

procedure TRMFormReportMaster.Panel5Click(Sender: TObject);
begin
  FontDialog1.Font.Assign(TPanel(Sender).Font);
  if FontDialog1.Execute then
  begin
    TPanel(Sender).Font.Assign(FontDialog1.Font);
  end;
end;

procedure TRMFormReportMaster.trvReportDataExit(Sender: TObject);
var
  lFlag: Boolean;
begin
  trvReportDataChanging(nil, nil, lFlag);
end;

procedure TRMFormReportMaster.btnDisplayFormatClick(Sender: TObject);
var
  tmp: TRMDisplayFormatForm;
  lNodeData: TRMColumnInfo;
begin
  if FCurNode = nil then Exit;

  lNodeData := TRMColumnInfo(FCurNode.Data);
  tmp := TRMDisplayFormatForm.Create(nil);
  try
    tmp.DisplayFormat := THackTRMTreeItem(lNodeData).FormatFlag;
    tmp.DisplayFormatStr := lNodeData.DisplayFormat;
    if tmp.ShowModal = mrOK then
    begin
      THackTRMTreeItem(lNodeData).FormatFlag := tmp.DisplayFormat;
      THackTRMTreeItem(lNodeData).FDisplayFormat := tmp.DisplayFormatStr;
    end;
  finally
    tmp.Free;
  end;
end;

procedure TRMFormReportMaster.edtTitleCaptionKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then
    SetNodeData;
end;

procedure TRMFormReportMaster.btnOKClick(Sender: TObject);
begin
  if FCurNode <> nil then
    SetNodeData;
end;

procedure TRMFormReportMaster.cmbFieldsClick(Sender: TObject);
begin
  if (edtTitleCaption.Text = '???') or (edtTitleCaption.Text = '') then
  begin
    edtTitleCaption.Text := cmbFields.Text;
  end;
end;

procedure TRMFormReportMaster.btnLoadClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    FReportMaster.LoadFromFile(OpenDialog1.FileName);
    SaveToTreeView;
    trvReportData.FullExpand;
  end;
end;

procedure TRMFormReportMaster.btnSaveClick(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    LoadFromTreeView;
    FReportMaster.SaveToFile(SaveDialog1.FileName);
  end;
end;

procedure TRMFormReportMaster.lstDataSetsClick(Sender: TObject);
var
  lComponent: TComponent;
begin
  lComponent := RMFindComponent(FReportMaster.Report.Owner,
  	FReportMaster.Report.Dictionary.RealDataSetName[lstDataSets.Items[lstDataSets.ItemIndex]]);
  if (lComponent <> nil) and (lComponent is TRMDataset) then
    FReportMaster.DataSet := TRMDataset(lComponent);

  if FReportMaster.DataSet <> nil then
    FReportMaster.Report.Dictionary.GetDataSetFields(FReportMaster.DataSet.Owner.Name + '.' + FReportMaster.DataSet.Name,
      cmbFields.Items);
end;

end.

⌨️ 快捷键说明

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