📄 prdesigner.pas
字号:
unit PRDesigner;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Menus, IniFiles,ExtCtrls, ToolWin, Db,ComCtrls, Spin,
printers ,ExtDlgs, ImgList, PRScale, PReport;
type
TfrmPRDesigner = class(TForm)
MainMenu1: TMainMenu;
T1: TMenuItem;
FileOpen: TMenuItem;
FileExit: TMenuItem;
N1: TMenuItem;
T2: TMenuItem;
NewTable: TMenuItem;
InsertLine: TMenuItem;
AddLine: TMenuItem;
DeleteLine: TMenuItem;
N4: TMenuItem;
CombineCells: TMenuItem;
SplitCell: TMenuItem;
N7: TMenuItem;
FileSave: TMenuItem;
OpenDialog1: TOpenDialog;
N2: TMenuItem;
AddCell: TMenuItem;
InsertCell: TMenuItem;
DeleteCell: TMenuItem;
mnuSetCell: TMenuItem;
FontDialog1: TFontDialog;
SaveDialog1: TSaveDialog;
PrintIt: TMenuItem;
VSplitCell: TMenuItem;
mnuDataset: TMenuItem;
N6: TMenuItem;
PrintPreivew: TMenuItem;
PopupMenu1: TPopupMenu;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
file1: TMenuItem;
FileClose: TMenuItem;
N3: TMenuItem;
N29: TMenuItem;
N32: TMenuItem;
N30: TMenuItem;
N33: TMenuItem;
ScrollBox1: TScrollBox;
Panel3: TPanel;
Bevel1: TBevel;
Panel4: TPanel;
SpeedButton9: TSpeedButton;
OpenPictureDialog1: TOpenPictureDialog;
ToolImages: TImageList;
FormattingBar: TToolBar;
cboFont: TComboBox;
cboFontSize: TComboBox;
S7: TToolButton;
btnBold: TToolButton;
btnItalic: TToolButton;
btnUnderline: TToolButton;
btnStrikeOut: TToolButton;
S8: TToolButton;
btnAlignLeft: TToolButton;
btnAlignCenter: TToolButton;
btnAlignRight: TToolButton;
S9: TToolButton;
btnVertTop: TToolButton;
btnVertCenter: TToolButton;
btnVertBottom: TToolButton;
S10: TToolButton;
btnMerge: TToolButton;
btnMergeAcross: TToolButton;
btnUnmerge: TToolButton;
S11: TToolButton;
btnAddPic: TToolButton;
btnClearPic: TToolButton;
Panel5: TPanel;
Bevel5: TBevel;
ToolBar1: TToolBar;
Panel6: TPanel;
Panel8: TPanel;
ToolButton4: TToolButton;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
PrinterSetupDialog1: TPrinterSetupDialog;
N5: TMenuItem;
Panel1: TPanel;
StatusBar1: TStatusBar;
Bevel2: TBevel;
StandardBar: TToolBar;
btnOpen: TToolButton;
btnSave: TToolButton;
btnCloseFile: TToolButton;
S1: TToolButton;
btnNewGrid: TToolButton;
btnInsertLine: TToolButton;
btnAddLine: TToolButton;
btnDeleteLine: TToolButton;
S2: TToolButton;
btnSetting: TToolButton;
btnPrint: TToolButton;
btnPreview: TToolButton;
S3: TToolButton;
btnAddCell: TToolButton;
btnInsertCell: TToolButton;
btnDeleteCell: TToolButton;
ToolButton18: TToolButton;
btnFont: TToolButton;
btnColor: TToolButton;
btnCellSet: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton17: TToolButton;
ToolButton12: TToolButton;
ToolButton14: TToolButton;
ToolButton13: TToolButton;
ToolButton19: TToolButton;
cboFormat: TComboBox;
cboVF: TComboBox;
btnExit: TToolButton;
PRClass1: TPRClass;
PRScale1: TPRScale;
PRScale2: TPRScale;
edtText: TEdit;
btnDataField: TToolButton;
btnPrintLine: TToolButton;
btnAncientStyle: TToolButton;
procedure FileOpen1(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FileExitClick(Sender: TObject);
procedure NewTableClick(Sender: TObject);
procedure CombineCellsClick(Sender: TObject);
procedure CellDiagonalLineClick(Sender: TObject);
procedure FileSaveClick(Sender: TObject);
procedure PrintItClick(Sender: TObject);
procedure UpdateOldies(TempFileName: string; sender: tobject);
procedure RecentFile1(sender: tobject);
procedure RecentFile2(sender: tobject);
procedure RecentFile3(sender: tobject);
procedure RecentFile4(sender: tobject);
procedure RecentFile5(sender: tobject);
procedure RecentFile6(sender: tobject);
procedure RecentFile7(sender: tobject);
procedure RecentFile8(sender: tobject);
procedure RecentFile9(sender: tobject);
procedure T1Click(Sender: TObject);
procedure FileCloseClick(Sender: TObject);
procedure ScrollBox1Resize(Sender: TObject);
procedure loadini;
procedure saveini;
procedure left1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure SpeedButton7Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure cboVFChange(Sender: TObject);
procedure SpeedButton16Click(Sender: TObject);
procedure cboFontChange(Sender: TObject);
procedure cboFontSizeChange(Sender: TObject);
procedure btnAlignLeftClick(Sender: TObject);
procedure btnBoldClick(Sender: TObject);
procedure btnMergeClick(Sender: TObject);
procedure btnMergeAcrossClick(Sender: TObject);
procedure btnUnmergeClick(Sender: TObject);
procedure btnAddPicClick(Sender: TObject);
procedure btnClearPicClick(Sender: TObject);
procedure cboFormatChange(Sender: TObject);
procedure btnInsertCellClick(Sender: TObject);
procedure edtTextChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnOpenClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure ToolButton14Click(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure btnSettingClick(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
procedure btnInsertLineClick(Sender: TObject);
procedure btnAddLineClick(Sender: TObject);
procedure btnDeleteLineClick(Sender: TObject);
procedure btnAddCellClick(Sender: TObject);
procedure btnDeleteCellClick(Sender: TObject);
procedure btnCellSetClick(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure btnFontClick(Sender: TObject);
procedure btnColorClick(Sender: TObject);
procedure edtDefChange(Sender: TObject);
procedure btnDataFieldClick(Sender: TObject);
procedure PRClass1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PRClass1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PRClass1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure PRClass1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure PRClass1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure btnExitClick(Sender: TObject);
procedure btnPreviewClick(Sender: TObject);
procedure btnPrintLineClick(Sender: TObject);
procedure btnAncientStyleClick(Sender: TObject);
private
dbarleft:integer;
dbartop:integer;
ZoomRate:INTEGER; //缩放比例
IsSaveFlag:boolean;
procedure ListBoxDragOver(Sender, Source: TObject; X,Y: Integer; State: TDragState; var Accept: Boolean);
{ Private declarations }
Private
public
TempFileName, savefilename: string;
myDatasets,tmpDataset: TList;
DSDefine: TStringList;
end;
const
SysIni = 'iReport.ini';
var
frmPRDesigner: TfrmPRDesigner;
implementation
uses prNewTable, prBorder, prIncline, prColor, prSplit,
prSetting,prDataFields;
{$R *.DFM}
procedure TfrmPRDesigner.saveini;
var
IniFile: TIniFile;
toolbar, fonts, statusbar, autosave: integer;
begin
IniFile := TIniFile.create(SysIni);
inifile.writeinteger('其他', 'toolbar', toolbar);
inifile.writeinteger('其他', 'statusbar', statusbar);
inifile.writeinteger('其他', 'autosave', autosave);
inifile.writeinteger('其他', 'fonts', fonts);
end;
procedure TfrmPRDesigner.loadini;
var
IniFile: TIniFile;
savetime, fonts, toolbar, statusbar, autosave: integer;
begin
IniFile := TIniFile.create(SysIni);
toolbar := inifile.readinteger('其他', 'toolbar', 1);
statusbar := inifile.readinteger('其他', 'statusbar', 1);
autosave := inifile.readinteger('其他', 'autosave', 1);
savetime := inifile.readinteger('其他', 'savetime', 120000);
fonts := inifile.readinteger('其他', 'fonts', 1);
end;
procedure TfrmPRDesigner.FormCreate(Sender: TObject);
var i,j,k:integer;
begin
DSDefine:=TStringList.Create;
//
IsSaveFlag:=true; //未存盘标志 add
dbarleft:=0;
dbartop:=0;
caption := '[无文件名] ' ;
loadini;
saveini;
cboFont.Items := screen.fonts;
cboFont.ItemIndex := 1;
cboFontSize.ItemIndex := 1;
for i := 0 to cboFont.items.Count do
begin
if cboFont.Items[i] = '宋体' then
begin
cboFont.ItemIndex := i;
break;
end;
end;
ZoomRate:=100;
If ParamCount>=1 Then
Begin
PRClass1.LoadFromFile(ParamStr(1));
caption:=ParamStr(1);
TempFileName :=ParamStr(1);
savefilename := TempFileName;
End;
PRClass1.CalcWndSize;
end;
procedure TfrmPRDesigner.FileExitClick(Sender: TObject);
begin
close;
end;
procedure TfrmPRDesigner.FileOpen1(Sender: TObject);
begin
PRClass1.LoadFromFile(TempFileName);
frmPRDesigner.caption := TempFileName ;
SaveFileName := TempFileName;
updateOldies(TempFileName, sender);
TempFileName := '';
end;
procedure TfrmPRDesigner.NewTableClick(Sender: TObject);
var
t: boolean;
begin
if frmNewTable.ShowModal = IDOK then
PRClass1.NewTable(StrToInt(frmNewTable.Edit2.Text), StrToInt(frmNewTable.Edit1.Text));
end;
procedure TfrmPRDesigner.CombineCellsClick(Sender: TObject);
begin
PRClass1.CombineCell;
IsSaveFlag:=false;
end;
procedure TfrmPRDesigner.CellDiagonalLineClick(Sender: TObject);
var
nDiagonal: UINT;
begin
if CellSelected <> nil then
if frmIncline.ShowModal = mrOK then
begin
with frmIncline do
begin
nDiagonal := 0;
if LeftDiagonal1.Checked then
nDiagonal := nDiagonal or LINE_LEFT1;
if LeftDiagonal2.Checked then
nDiagonal := nDiagonal or LINE_LEFT2;
if LeftDiagonal3.Checked then
nDiagonal := nDiagonal or LINE_LEFT3;
if RightDiagonal1.Checked then
nDiagonal := nDiagonal or LINE_RIGHT1;
if RightDiagonal2.Checked then
nDiagonal := nDiagonal or LINE_RIGHT2;
if RightDiagonal3.Checked then
nDiagonal := nDiagonal or LINE_RIGHT3;
PRClass1.SetCellDiagonal(nDiagonal);
IsSaveFlag:=false;
end;
end;
end;
procedure TfrmPRDesigner.FileSaveClick(Sender: TObject);
begin
savedialog1.filename := SaveFileName;
if SaveDialog1.Execute then
begin
PRClass1.SaveToFile(SaveDialog1.FileName);
TempFileName := SaveDialog1.Filename;
SaveFileName := TempFileName;
frmPRDesigner.caption := TempFileName ;
updateOldies(TempFileName, sender);
TempFileName := '';
end;
end;
procedure TfrmPRDesigner.PrintItClick(Sender: TObject); // update
begin
end;
//页面设置
procedure TfrmPRDesigner.FileCloseClick(Sender: TObject); // update
begin
if Application.Messagebox('确实要关闭文件吗?', '警告', MB_OKCANCEL) = MrOK then
begin
CellSelected:=nil;
PRClass1.FreeEdit;
PRClass1.ResetContent;
cp_pgw := 0;
PRClass1.CalcWndSize;
frmPRDesigner.caption := '[无文件名] ' ;
TempFileName := '';
SaveFileName := '';
end;
end;
procedure TfrmPRDesigner.updateoldies(TempFileName: string; sender: tobject);
var
A, B, holder: string;
n: integer;
IniFile: TIniFile;
begin
IniFile := TIniFile.create(SysIni);
A := uppercase(TempFileName);
holder := A;
for n := 1 to 10 do
begin
B := inifile.readstring('Oldies', inttostr(n), '');
if b = holder then
begin
inifile.writestring('Oldies', inttostr(n), 'filepath');
B := inifile.readstring('Oldies', inttostr(n), '');
end;
inifile.writestring('Oldies', inttostr(n), A);
A := B;
end;
ZoomRate:=100;
ShowWindow(PRClass1.Handle, SW_HIDE);
PRClass1.ReportScale := ZoomRate;
ScrollBox1Resize(Self);
ShowWindow(PRClass1.Handle, SW_SHOW);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -