<Window x:Class="WndSet" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="" Height="800" Width="1200" WindowStartupLocation="CenterScreen"> <Grid> <WindowsFormsHost Name="formHost" Margin="30,20,30,20"/> </Grid> </Window>
public partial class WndSet : Window
{
private DesignerControl dc = new DesignerControl();
public WndSet(Report r)
{
InitializeComponent();
this.formHost.Child = dc;
dc.Report = r;
}
}
编辑界面选中控件或标题区可以添加事件,编写脚本。左下角可以切换脚本和图形界面。
3.图片传输
FastReport.Report report = new FastReport.Report();
report.PrintSettings.Printer = Printer;
report.Load("ReportFile\\3.图片传输.frx");
//直接传图
Image image = Image.FromFile("test.jpg");
FastReport.PictureObject imgobj = report.FindObject("Picture1") as FastReport.PictureObject;
imgobj.Width = 120;
imgobj.Height = 120;
imgobj.Image = image;
//DateSet传图
byte[] img = ImageToByte(image);
DataSet dt = new DataSet();
DataTable tb = new DataTable();
tb.TableName = "图片表";
tb.Columns.Add(new DataColumn("图片1", Type.GetType("System.Byte[]")));
DataRow dr = tb.NewRow();
dr["图片1"] = img;
tb.Rows.Add(dr);
dt.Tables.Add(tb);
report.RegisterData(dt, "Data");
report.Show();
=================
打开窗口的代码编辑器(右键单击表单 - ViewCode)。
添加FastReport库:
using FastReport;
在这个类中,我们创建一个DesignerControl对象的实例并将其分配给WindowsFormsHost1:
public partial class Designer : Window { FastReport.Design.StandardDesigner.DesignerControl designer = new FastReport.Design.StandardDesigner.DesignerControl(); Report report1 = new Report(); public Designer() { InitializeComponent(); designer.Report = report1; designer.RefreshLayout(); WindowsFormsHost1.Child = designer; } } }
因为设计器应该显示报表,即使它是空的,我们还要创建一个报表对象的实例,并将其加载到设计器中。然后我们更新设计器并将设计器对象分配给我们的host。
分类: c#