📄 rm_editorreportmaster.pas
字号:
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 + -