【Stimulsoft Reports.WinForms教程】将自定义组件添加到报表设计器

本文主要讲解如何在Stimulsoft Report中将自定义组件添加到报表设计器

【下载Stimulsoft Reports.Ultimate最新版本】

此示例显示如何创建自定义组件并将其添加到报表设计器。自定义组件提供了在报表设计器中添加带有参数的组件并在报表中使用它的功能。例如,您可以添加stimulsoft报表中不存在的图表。

首先,指定属性及其值:

[StiServiceBitmap(typeof(MyCustomComponent), "CustomComponent.MyCustomComponent1.gif")][StiToolbox(true)][StiContextTool(typeof(IStiShift))][StiContextTool(typeof(IStiGrowToHeight))][StiDesigner(typeof(MyCustomComponentDesigner))][StiV1Builder(typeof(MyCustomComponentV1Builder))][StiV2Builder(typeof(MyCustomComponentV2Builder))][StiGdiPainter(typeof(MyCustomComponentGdiPainter))]...

接下来,创建一个MyCustomComponent类并指定继承的类。此外,覆盖必需的组件属性:

...public class MyCustomComponent : StiComponent, IStiBorder, IStiBrush{    #region StiComponent override    /// <summary>    /// Gets value to sort a position in the toolbox.    /// </summary>    public override int ToolboxPosition    {        get        {            return 500;        }    }    /// <summary>    /// Gets a localized name of the component category.    /// </summary>    public override string LocalizedCategory    {        get        {            return StiLocalization.Get("Report", "Components");        }    }    /// <summary>    /// Gets a localized component name.    /// </summary>    public override string LocalizedName    {        get        {            return "MyCustomComponent1";        }    }    #endregion...

向组件添加新属性——Border and Brush(边框和画笔),并设置其默认值:

...    #region IStiBorder    private StiBorder border = new StiBorder();    /// <summary>    /// Gets or sets a frame of the component.    /// </summary>    [StiCategory("Appearance")]    [StiSerializable]    [Description("Gets or sets frame of the component.")]    public StiBorder Border    {        get        {            return border;        }        set        {            border = value;        }    }    #endregion    #region IStiBrush    private StiBrush brush = new StiSolidBrush(Color.Transparent);    /// <summary>    /// Gets or sets a brush to fill a component.    /// </summary>    [StiCategory("Appearance")]    [StiSerializable]    [Description("Gets or sets a brush to fill a component.")]    public StiBrush Brush    {        get        {            return brush;        }        set        {            brush = value;        }    }    #endregion...

将必要的构造函数添加到MyCustomComponent类型的新组件:

...    #region this    /// <summary>    /// Creates a new component of the type MyCustomComponent.    /// </summary>    public MyCustomComponent() : this(RectangleD.Empty)    {    }    /// <summary>    /// Creates a new component of the type MyCustomComponent.    /// </summary>    /// <param name="rect">The rectangle describes size and position of the component.</param>    public MyCustomComponent(RectangleD rect) : base(rect)    {        PlaceOnToolbox = true;    }    #endregion}

该AddCustomComponent方法添加自定义组件的StiConfig.Services收集,现在我们可以在报表设计器工具栏中找到它:

private static void AddCustomComponent(){    StiConfig.Load();    StiOptions.Engine.ReferencedAssemblies = new string[]{        "System.Dll",        "System.Drawing.Dll",        "System.Windows.Forms.Dll",        "System.Data.Dll",        "System.Xml.Dll",        "Stimulsoft.Controls.Dll",        "Stimulsoft.Base.Dll",        "Stimulsoft.Report.Dll",        #region Add reference to your assembly        "CustomComponent.exe"        #endregion    };    StiConfig.Services.Add(new MyCustomComponent());    StiConfig.Services.Add(new MyCustomComponentWithDataSource());    StiConfig.Services.Add(new MyCustomComponentWithExpression());    StiConfig.Save();}

示例代码的结果如下图所示:

Stimulsoft

下载示例

标签:报表StimulsoftWinForms

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年7月13日
下一篇 2018年7月13日

相关推荐

发表回复

登录后才能评论