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

📄 creport.pas

📁 企业智能(ERP)管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -