📄 creport.pas
字号:
unit creport;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ReportControl, StdCtrls, Buttons, Menus, IniFiles, ExtCtrls, ToolWin,
ComCtrls, Spin, TB97, TB97Tlwn, db, TB97Tlbr, ExtDlgs,about;
type
TCreportForm = 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;
CellBorderLine: TMenuItem;
CellFont: TMenuItem;
CellDiagonalLine: TMenuItem;
CellColor: TMenuItem;
FontDialog1: TFontDialog;
SaveDialog1: TSaveDialog;
PrintIt: TMenuItem;
VSplitCell: TMenuItem;
MarginSetting: 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;
ReportControl1: TReportControl;
Panel3: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton23: TSpeedButton;
SpeedButton24: TSpeedButton;
SpeedButton25: TSpeedButton;
SpeedButton26: TSpeedButton;
SpeedButton28: TSpeedButton;
SpeedButton29: TSpeedButton;
SpeedButton30: TSpeedButton;
SpeedButton31: TSpeedButton;
SpeedButton32: TSpeedButton;
SpeedButton33: TSpeedButton;
Panel1: TPanel;
Panel2: TPanel;
SpeedButton11: TSpeedButton;
SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;
Bevel1: TBevel;
Panel4: TPanel;
Bevel2: TBevel;
fontbox: TComboBox;
fontsize: TComboBox;
bold: TSpeedButton;
italic: TSpeedButton;
underline: TSpeedButton;
left1: TSpeedButton;
center1: TSpeedButton;
right1: TSpeedButton;
top1: TSpeedButton;
medium1: TSpeedButton;
bottom1: TSpeedButton;
Bevel3: TBevel;
Bevel4: TBevel;
Bevel5: TBevel;
Label1: TLabel;
CellDispFormt: TComboBox;
Lsum: TComboBox;
SpeedButton8: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton15: TSpeedButton;
Bevel6: TBevel;
Label2: TLabel;
Bevel7: TBevel;
SpeedButton7: TSpeedButton;
Bevel8: TBevel;
SpeedButton9: TSpeedButton;
Bevel9: TBevel;
ComboBox1: TComboBox;
SpeedButton10: TSpeedButton;
OpenPictureDialog1: TOpenPictureDialog;
SpeedButton16: TSpeedButton;
Label3: TLabel;
SpeedButton17: TSpeedButton;
StatusBar1: TStatusBar;
SpeedButton4: TSpeedButton;
procedure FileOpen1(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FileExitClick(Sender: TObject);
procedure FileOpenClick(Sender: TObject);
procedure NewTableClick(Sender: TObject);
procedure InsertLineClick(Sender: TObject);
procedure AddLineClick(Sender: TObject);
procedure CombineCellsClick(Sender: TObject);
procedure SplitCellClick(Sender: TObject);
//procedure CellPropClick(Sender: TObject);
procedure DeleteLineClick(Sender: TObject);
procedure AddCellClick(Sender: TObject);
procedure InsertCellClick(Sender: TObject);
procedure DeleteCellClick(Sender: TObject);
procedure CellBorderLineClick(Sender: TObject);
procedure CellDiagonalLineClick(Sender: TObject);
procedure CellFontClick(Sender: TObject);
procedure CellColorClick(Sender: TObject);
procedure FileSaveClick(Sender: TObject);
procedure PrintItClick(Sender: TObject);
procedure VSplitCellClick(Sender: TObject);
procedure MarginSettingClick(Sender: TObject);
procedure UpdateOldies(thefile: 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 N29Click(Sender: TObject);
procedure ScrollBox1Resize(Sender: TObject);
procedure N33Click(Sender: TObject);
procedure loadini;
procedure SaveIni;
procedure left1Click(Sender: TObject);
procedure fontboxChange(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure fontsizeChange(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton15Click(Sender: TObject);
procedure ReportControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ReportControl1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SpeedButton7Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure ReportControl1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
procedure ReportControl1DragDrop(Sender, Source: TObject; X,
Y: Integer);
procedure CellDispFormtChange(Sender: TObject);
procedure LsumChange(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton16Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
private
IsFile:Boolean;
IsStream:Boolean;
FFile:String;
FStream:TStream;
dbarleft: integer;
dbartop: integer;
zoomxxx: INTEGER;
Saved: boolean;//是否已经存盘(是否不需要存盘)
procedure ListBoxDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
function LFindComponent(Owner: TComponent; Name: string): TComponent;
procedure LEnumComponents(F: TComponent);
procedure RecentFile(Index:Integer);
public
procedure LoadFromFile(FileName:String);
procedure LoadFromStream(Stream:TStream);
end;
const
DefIni = 'EReport.ini';
ver = '【eReport 票据式报表软件】V3.0E';
copyright = ver;
prname = '创作:郭家骏、王寒松';
updates = '修改日期:2003.4.26 成都,李泽伦';
//var
//cp_fieldName:string;
//cp_buttion:boolean;
implementation
uses NewDialog, Border, diagonal, Color, vsplit, margink, Preview;
{$R *.DFM}
procedure TCreportForm.SaveIni;
var
IniFile: TIniFile;
toolbar, fonts, statusbar, autosave: integer;
begin
IniFile := TIniFile.create(defini);
try
// IniFile := TIniFile.create(ExtractFilePath(ParamStr(0)) + defini);
inifile.writeinteger('其他', 'toolbar', toolbar);
inifile.writeinteger('其他', 'statusbar', statusbar);
inifile.writeinteger('其他', 'autosave', autosave);
//inifile.writeinteger('其他', 'savetime', timer1.Interval);
inifile.writeinteger('其他', 'fonts', fonts);
finally
IniFile.Free;
end;
end;
procedure TCreportForm.loadini;
var
IniFile: TIniFile;
savetime, fonts, toolbar, statusbar, autosave: integer;
begin
try
IniFile := TIniFile.create(defini);
// IniFile := TIniFile.create(ExtractFilePath(ParamStr(0)) + defini);
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);
// timer1.Interval := savetime;
finally
IniFile.Free
end;
end;
procedure TCreportForm.FormCreate(Sender: TObject);
var
i, j: integer;
begin
Saved := True; //未存盘标志 add lzl
dbarleft := 0;
dbartop := 0;
Caption := '[无报表]';
loadini;
SaveIni;
fontbox.Items := screen.fonts;
fontbox.ItemIndex := 1;
fontsize.ItemIndex := 1;
for i := 0 to fontbox.items.Count do
begin
if fontbox.Items[i] = '宋体' then
begin
fontbox.ItemIndex := i;
break;
end;
end;
zoomxxx := 100;
if ParamCount >= 1 then
begin
LoadFromFile(ParamStr(1));
end;
ReportControl1.CalcWndSize;
combobox1.Clear;
for i := 0 to Screen.FormCount - 1 do
for j := 0 to Screen.Forms[i].ComponentCount - 1 do
if Screen.Forms[i].Components[j] is TDataSet then
begin
with TDataSet(Screen.Forms[i].Components[j]) do
combobox1.Items.Add(Screen.Forms[i].Name + '.' + TDataSet(Screen.Forms[i].Components[j]).Name);
end;
//if Screen.DataModuleCount>0 then
for i := 0 to Screen.DataModuleCount - 1 do
for j := 0 to Screen.DataModules[i].ComponentCount - 1 do
if Screen.DataModules[i].Components[j] is TDataSet then
begin
with TDataSet(Screen.DataModules[i].Components[j]) do
combobox1.Items.Add(Screen.DataModules[i].Name + '.' + TDataSet(Screen.DataModules[i].Components[j]).Name);
end;
for i := 0 to Screen.CustomFormCount - 1 do
if (Screen.CustomForms[i].ClassName = 'TDataModuleForm') then
for j := 0 to Screen.CustomForms[i].ComponentCount - 1 do
begin
if (Screen.CustomForms[i].Components[j] is TDataModule) then
LEnumComponents(Screen.CustomForms[i].Components[j]);
end;
end;
procedure TCreportForm.FileExitClick(Sender: TObject);
begin
close;
end;
procedure TCreportForm.FileOpenClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
LoadFromFile(OpenDialog1.Filename);
updateOldies(OpenDialog1.Filename, sender);
zoomxxx := 100;
ShowWindow(ReportControl1.Handle, SW_HIDE);
ReportControl1.ReportScale := zoomxxx;
ScrollBox1Resize(Self);
ShowWindow(ReportControl1.Handle, SW_SHOW);
end;
end;
procedure TCreportForm.FileOpen1(Sender: TObject);
begin
if not IsFile then Exit;
ReportControl1.LoadFromFile(FFile);
UpdateOldies(FFile, sender);
end;
procedure TCreportForm.NewTableClick(Sender: TObject);
var
t: boolean;
begin
with TfrmNewTable.Create(Self) do begin
try
if ShowModal = IDOK then
ReportControl1.NewTable(StrToInt(Edit2.Text), StrToInt(Edit1.Text));
finally
Free;
end;
end;
end;
procedure TCreportForm.InsertLineClick(Sender: TObject);
begin
ReportControl1.InsertLine;
Saved := False;
end;
procedure TCreportForm.AddLineClick(Sender: TObject);
begin
if ReportControl1.celldisp <> nil then
begin
ReportControl1.AddLine;
Saved := False;
end;
end;
procedure TCreportForm.CombineCellsClick(Sender: TObject);
begin
ReportControl1.CombineCell;
Saved := False;
end;
procedure TCreportForm.SplitCellClick(Sender: TObject);
begin
ReportControl1.SplitCell;
fontboxChange(Sender);
Saved := False;
end;
{procedure TCreportForm.CellPropClick(Sender: TObject);
begin
end;
}
procedure TCreportForm.DeleteLineClick(Sender: TObject);
begin
ReportControl1.DeleteLine;
Saved := False;
end;
procedure TCreportForm.AddCellClick(Sender: TObject);
begin
ReportControl1.AddCell;
Saved := False;
end;
procedure TCreportForm.InsertCellClick(Sender: TObject);
begin
ReportControl1.InsertCell;
Saved := False;
end;
procedure TCreportForm.DeleteCellClick(Sender: TObject);
begin
ReportControl1.DeleteCell;
Saved := False;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -