C# 向打开新窗体的控件添加新属性?

C# 向打开新窗体的控件添加新属性?,c#,activereports,C#,Activereports,我们有一个报表设计器项目,它使用活动报表。 我们想使用活动报表的子报表工具。 子报表控件有一个“report”属性,用于填充子报表的ActiveReport内容。 因为我们有一个设计器项目和一个子报表工具, 我想向子报表控件添加一个属性,该属性将打开一个新表单,使用户可以从列表中选择报表并将报表加载到子报表控件中 那么,如何向打开新windows窗体的控件添加属性呢 下面是我如何设置属性的: public class SubReportProp { private DataDynamic

我们有一个报表设计器项目,它使用活动报表。 我们想使用活动报表的子报表工具。 子报表控件有一个“report”属性,用于填充子报表的ActiveReport内容。 因为我们有一个设计器项目和一个子报表工具, 我想向子报表控件添加一个属性,该属性将打开一个新表单,使用户可以从列表中选择报表并将报表加载到子报表控件中

那么,如何向打开新windows窗体的控件添加属性呢

下面是我如何设置属性的:

public class SubReportProp
{
    private DataDynamics.ActiveReports.SubReport _SubReport;

    public SubReportProp(DataDynamics.ActiveReports.SubReport subReport, List<string> fieldCollection)
    {
        this._SubReport = subReport;

        if (fieldCollection != null && fieldCollection.Count > 0)
        {
            FieldVars._DataFields = fieldCollection;
        }
    }

    [DisplayName("X")]
    [Description("Kontrolün yatay konumunu getirir veya ayarlar.")]
    [Category("Konum")]
    public float X
    {
        get
        {
            return SharedProp.TrimFloatValue(ActiveReport.InchToCm(_SubReport.Location.X));
        }
        set
        {
            _SubReport.Location = new PointF(ActiveReport.CmToInch(value), _SubReport.Location.Y);
        }
    }

    [DisplayName("Y")]
    [Description("Kontrolün dikey konumunu getirir veya ayarlar.")]
    [Category("Konum")]
    public float Y
    {
        get
        {
            return SharedProp.TrimFloatValue(ActiveReport.InchToCm(_SubReport.Location.Y));
        }
        set
        {
            _SubReport.Location = new PointF(_SubReport.Location.X, ActiveReport.CmToInch(value));
        }
    }
}
public类SubReportProp
{
私有DataDynamics.ActiveReports.SubReport\u SubReport;
公共子报表属性(DataDynamics.ActiveReports.SubReport子报表,列表字段集合)
{
此._SubReport=子报告;
if(fieldCollection!=null&&fieldCollection.Count>0)
{
FieldVars.\u DataFields=fieldCollection;
}
}
[显示名称(“X”)]
[描述(“Kontrolün yatay konumunu getirir veya ayarlar.”)
[类别(“Konum”)]
公共浮动X
{
得到
{
返回SharedProp.TrimFloatValue(ActiveReport.InchToCm(_SubReport.Location.X));
}
设置
{
_SubReport.Location=newpointf(ActiveReport.CmToInch(值),_SubReport.Location.Y);
}
}
[显示名称(“Y”)]
[描述(“Kontrolün dikey konumunu Getirr veya ayarlar.”)
[类别(“Konum”)]
公众浮标
{
得到
{
返回SharedProp.TrimFloatValue(ActiveReport.InchToCm(_SubReport.Location.Y));
}
设置
{
_SubReport.Location=newpointf(_SubReport.Location.X,ActiveReport.CmToInch(value));
}
}
}
像这些x,y坐标一样,我还需要添加另一个属性,使用户可以从列表中选择报告并应用于_SubReport.report

我想你应该看看这个博客。这正是你想要的。

库比莱

报告布局可以保存到流。您可以将其作为blob/字节数组保存到数据库中。如果可能,还可以将报告以xml格式保存为文本。这是使用ActiveReport的SaveLayout API实现的


然后可以使用LoadLayout API加载此报表。

请向我显示子报表控件的代码这正是我要查找的,但示例项目链接已失效!我真的需要看看这个样本项目。谢谢回复您可以从这里下载示例:这对我来说是一个很好的示例,但是如果可能的话,我想再请您帮个忙。在本例中,报告保存到文件或内存中。但在我们的项目中,它的设计是将报告布局保存到Oracle。它正在使用OracleLob来保存流。如果您知道一个示例使用Oracle保存报告,我将非常感谢您的建议,谢谢