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

📄 sailreportediter.pas

📁 ceshixitongzhuceshifouwanshan
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit sailreportediter;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,TypInfo, ComCtrls, StdCtrls, ExtCtrls ,sailreport,printers,CustomsailPrint,
  Buttons, Menus, ImgList, ToolWin;

type
  Tsailreportediterfrm = class(TForm)
    Panel1: TPanel;
    FontDialog1: TFontDialog;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    ComboBox1: TComboBox;
    Edit2: TEdit;
    Edit1: TEdit;
    ComboBox2: TComboBox;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    GroupBox2: TGroupBox;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Panel3: TPanel;
    Image1: TImage;
    Panel4: TPanel;
    Image2: TImage;
    Panel5: TPanel;
    Image3: TImage;
    Panel6: TPanel;
    Image4: TImage;
    Label18: TLabel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    Edit7: TEdit;
    GroupBox3: TGroupBox;
    Memo1: TMemo;
    GroupBox4: TGroupBox;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    ComboBox3: TComboBox;
    Panel7: TPanel;
    Image5: TImage;
    Panel8: TPanel;
    Image6: TImage;
    Panel9: TPanel;
    Image7: TImage;
    Edit8: TEdit;
    Panel10: TPanel;
    Image8: TImage;
    Edit9: TEdit;
    GroupBox5: TGroupBox;
    ListView1: TListView;
    GroupBox6: TGroupBox;
    ListBox1: TListBox;
    Panel13: TPanel;
    Label6: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label26: TLabel;
    ComboBox4: TComboBox;
    GroupBox7: TGroupBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    ColorBox1: TColorBox;
    ComboBox5: TComboBox;
    Panel11: TPanel;
    Image9: TImage;
    Edit10: TEdit;
    GroupBox8: TGroupBox;
    Label27: TLabel;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    Edit11: TEdit;
    Edit12: TEdit;
    GroupBox9: TGroupBox;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    ComboBox6: TComboBox;
    ColorBox2: TColorBox;
    Panel12: TPanel;
    Image10: TImage;
    Memo2: TMemo;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ImageList1: TImageList;
    SpeedButton1: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    function rfloat(key:char;source:string):char;
     function rint(key:char;source:string):char;
    procedure Image4DblClick(Sender: TObject);
    procedure Image8DblClick(Sender: TObject);
    procedure Image1DblClick(Sender: TObject);
    procedure Image2DblClick(Sender: TObject);
    procedure Image3DblClick(Sender: TObject);
    procedure Image5DblClick(Sender: TObject);
    procedure Image6DblClick(Sender: TObject);
    procedure Image7DblClick(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure CheckBox4Click(Sender: TObject);
    procedure CheckBox5Click(Sender: TObject);
    procedure CheckBox6Click(Sender: TObject);
    procedure CheckBox7Click(Sender: TObject);
    procedure Image9DblClick(Sender: TObject);
    procedure Image10DblClick(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ComboBox1Click(Sender: TObject);
    procedure ComboBox2Click(Sender: TObject);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit3KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit4KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit5KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit6KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit7KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ComboBox3Click(Sender: TObject);
    procedure Edit8KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit9KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ComboBox4Click(Sender: TObject);
    procedure ColorBox1Click(Sender: TObject);
    procedure ComboBox5Click(Sender: TObject);
    procedure Edit10KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit11KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit12KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ComboBox6Click(Sender: TObject);
    procedure ColorBox2Click(Sender: TObject);
    procedure Memo2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ToolButton6Click(Sender: TObject);
  private


  public
    sailreport:Tsailreport;
    constructor Create(AOwner: TComponent;sender:Tsailreport);

  end;

var
  sailreportediterfrm: Tsailreportediterfrm;

implementation
{$R *.dfm}
 uses sailsetpen,sailsettitle,sailabout;
constructor Tsailreportediterfrm.Create(AOwner: TComponent; sender:tsailreport);
begin
  inherited create(aowner);
  sailreport:=sender;
end;
procedure Tsailreportediterfrm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=cafree;
  sailreportediterfrm:=nil;
end;

procedure Tsailreportediterfrm.FormShow(Sender: TObject);
var i:integer;
begin
with sailreport.Page do
begin
   if PageSize=A3 then  combobox1.ItemIndex:=0
   else if  PageSize=A4 then combobox1.ItemIndex:=1
   else if  PageSize=A5 then combobox1.ItemIndex:=2
   else if  PageSize=B4 then combobox1.ItemIndex:=3
   else if  PageSize=B5 then combobox1.ItemIndex:=4
   else if  PageSize=CSheet then combobox1.ItemIndex:=5
   else if  PageSize=Custom then combobox1.ItemIndex:=6
   else if  PageSize=Default then combobox1.ItemIndex:=7
   else if PageSize=Executive then combobox1.ItemIndex:=8
   else if PageSize=Letter then combobox1.ItemIndex:=9;
   edit1.Text:=floattostr(width);
   edit2.Text:=floattostr(height);
   if Orientation=poPortrait then combobox2.ItemIndex:=0 else combobox2.ItemIndex:=1;
   edit3.Text:=floattostr(LeftMargin);
   edit4.Text:=floattostr(RightMargin);
   edit5.Text:=floattostr(TopMargin);
   edit6.Text:=floattostr(BottomMargin);
end;
with sailreport.Bands do
  for i:=0 to count-1 do with  ListView1.Items.Add do
  begin
    caption:=items[i].Text;
    if items[i].BandType=ReportTitle then subitems.Append('报表标题')
    else if items[i].BandType=PageHeader then subitems.Append('页眉')
    else if items[i].BandType=PageFooter then subitems.Append('页脚')
    else if items[i].BandType=DetailHeader then subitems.Append('明细表头')
    else if items[i].BandType=DetailFooter then subitems.Append('明细表尾');
    if items[i].Alignment=taLeftJustify  then subitems.Append('居左')
    else if items[i].Alignment=taRightJustify  then subitems.Append('居右')
    else if items[i].Alignment=taCenter then  subitems.Append('居中');
    subitems.Append(floattostr(items[i].Space));
  end;
with sailreport.ColsTitle do
begin
   image1.Canvas.Pen.Assign(ColsLine);
   image1.Canvas.Polyline([Point(image1.Width div 2,0),Point(image1.Width div 2,image1.Height)]);
   image2.Canvas.Pen.Assign(rowsLine);
   image2.Canvas.Polyline([Point(0,image2.Height div 2),Point(image2.Width,image2.Height div 2)]);
   image3.Canvas.Pen.Assign(Frame.pen);
   if Frame.Shape=fbox then
   begin
     image3.Canvas.Polyline([Point(3,3),Point(image3.Width-4,3),Point(image3.Width-4,image3.Height-3),Point(3,image3.Height-3),Point(3,3)]) ;
     image3.Tag:=1;
   end else if Frame.Shape=FLeftLine then
   begin
     image3.Canvas.Polyline([Point(3,3),Point(3,image3.Height-3)]);
     image3.Tag:=2;
   end else if Frame.Shape=FTopLine  then
   begin
     image3.Canvas.Polyline([Point(3,3),Point(image3.Width-4,3)]);
     image3.Tag:=3;
   end else if Frame.Shape=FRightLine then
   begin
     image3.Canvas.Polyline([Point(image3.Width-4,3),Point(image3.Width-4,image3.Height-3)]);
     image3.Tag:=4;
   end else
   begin
     image3.Canvas.Polyline([Point(image3.Width-4,image3.Height-3),Point(3,image3.Height-3)]);
     image3.Tag:=5;
   end;
   CheckBox1.Checked:=EveryPage;
   CheckBox2.Checked:=EveryRow;
   CheckBox3.Checked:=Print;
   image4.Canvas.Font.Assign(font);
   image4.Canvas.TextOut(3,(image4.Height-image4.Canvas.TextHeight('例')) div 2,'例');
   Edit7.Text:=floattostr(rowspace);
   Memo1.Lines.Assign(TitleArray);
end;
with sailreport.Detail do
begin
   image5.Canvas.Pen.Assign(ColsLine);
   image5.Canvas.Polyline([Point(image5.Width div 2,0),Point(image5.Width div 2,image5.Height)]);
   image6.Canvas.Pen.Assign(rowsLine);
   image6.Canvas.Polyline([Point(0,image6.Height div 2),Point(image6.Width,image6.Height div 2)]);
   image7.Canvas.Pen.Assign(Frame.pen);
   if Frame.Shape=fbox then
   begin
     image7.Canvas.Polyline([Point(3,3),Point(image7.Width-4,3),Point(image7.Width-4,image7.Height-3),Point(3,image7.Height-3),Point(3,3)]) ;
     image7.Tag:=1;
   end else if Frame.Shape=FLeftLine then
   begin
     image7.Canvas.Polyline([Point(3,3),Point(3,image7.Height-3)]);
     image7.Tag:=2;
   end else if Frame.Shape=FTopLine  then
   begin
     image7.Canvas.Polyline([Point(3,3),Point(image7.Width-4,3)]);
     image7.Tag:=3;
   end else if Frame.Shape=FRightLine then
   begin
     image7.Canvas.Polyline([Point(image7.Width-4,3),Point(image7.Width-4,image7.Height-3)]);
     image7.Tag:=4;
   end else
   begin
     image7.Canvas.Polyline([Point(image7.Width-4,image7.Height-3),Point(3,image7.Height-3)]);
     image7.Tag:=5;
   end;
   if Arrange=Horizontal then ComboBox3.ItemIndex:=0 else ComboBox3.ItemIndex:=1;
   image8.Canvas.Font.Assign(font);
   image8.Canvas.TextOut(3,(image8.Height-image8.Canvas.TextHeight('例')) div 2,'例');
   Edit8.Text:=floattostr(rowspace);
   Edit9.Text:=floattostr(top);
end;
  for i:=0 to sailreport.Columns.Count-1 do ListBox1.Items.Append(sailreport.Columns.Items[i].FieldName);
end;

procedure Tsailreportediterfrm.Edit1KeyPress(Sender: TObject;
  var Key: Char);
begin
  key:=rfloat(key,(sender as tEdit).text);
end;

function Tsailreportediterfrm.rfloat(key:char;source:string):char;
 begin  
   if not (key in ['0'..'9']) and (key<>chr(vk_back)) and (key<>'.') then result:=#0 else
   begin
     result:=key;
     if key='.' then if pos('.',source)>0 then  result:=#0 else result:=key;
   end;
 end;
 function Tsailreportediterfrm.rint(key:char;source:string):char;
 begin
   if not (key in ['0'..'9']) and (key<>chr(vk_back)) then result:=#0 else result:=key;
 end;


procedure Tsailreportediterfrm.Image4DblClick(Sender: TObject);
var i:integer;
begin
  FontDialog1.Font:=image4.Canvas.Font;
  if FontDialog1.Execute then
  begin
     image4.Canvas.Font.Assign(FontDialog1.font);
     image4.Canvas.FillRect(rect(0,0,image4.Width,image4.Height));
     image4.Canvas.TextOut(3,(image4.Height-image4.Canvas.TextHeight('例')) div 2,'例');
  end;
  sailreport.ColsTitle.Font.Assign(image4.Canvas.Font);
  for i:=0 to sailreport.Columns.Count-1 do sailreport.Columns.Items[i].Title.Font.Assign(image4.Canvas.Font);
end;

procedure Tsailreportediterfrm.Image8DblClick(Sender: TObject);
var i:integer;
begin
  FontDialog1.Font:=image8.Canvas.Font;
  if FontDialog1.Execute then
  begin
     image8.Canvas.Font.Assign(FontDialog1.font);
     image8.Canvas.FillRect(rect(0,0,image8.Width,image8.Height));
     image8.Canvas.TextOut(3,(image8.Height-image8.Canvas.TextHeight('例')) div 2,'例');
  end;
  sailreport.Detail.Font.Assign(image8.Canvas.Font);
  for i:=0 to sailreport.Columns.Count-1 do sailreport.Columns.Items[i].Font.Assign(image8.Canvas.Font);
  ListBox1Click(self);
  end;

procedure Tsailreportediterfrm.Image1DblClick(Sender: TObject);
begin
  sailsetpenfrm:=tsailsetpenfrm.Create(self);
  sailsetpenfrm.img:=image1;
  sailsetpenfrm.line:=1;
  sailsetpenfrm.ShowModal;
  sailreport.ColsTitle.ColsLine.Assign(image1.Canvas.Pen);
end;

procedure Tsailreportediterfrm.Image2DblClick(Sender: TObject);
begin
  sailsetpenfrm:=tsailsetpenfrm.Create(self);
  sailsetpenfrm.img:=image2;
  sailsetpenfrm.line:=2;
  sailsetpenfrm.ShowModal;
     sailreport.ColsTitle.rowsLine.Assign(image2.Canvas.Pen);
   
end;

procedure Tsailreportediterfrm.Image3DblClick(Sender: TObject);
begin
  sailsetpenfrm:=tsailsetpenfrm.Create(self);
  sailsetpenfrm.img:=image3;
  sailsetpenfrm.line:=3;
  sailsetpenfrm.ComboBox2.ItemIndex:=image3.Tag-1;
  sailsetpenfrm.ShowModal;
  sailreport.ColsTitle.Frame.pen.Assign(image3.Canvas.Pen);
  case image3.Tag of
     1:sailreport.ColsTitle.Frame.Shape:=fbox;
     2:sailreport.ColsTitle.Frame.Shape:=FLeftLine;
     3:sailreport.ColsTitle.Frame.Shape:=FTopLine;
     4:sailreport.ColsTitle.Frame.Shape:=FRightLine;

⌨️ 快捷键说明

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