自己重构的报表设计器怎样刷新报表界面?
您好!公司现在需要单独的将“报表设计器控件(Designer)”重构一下(用的winform),窗体上放置一些自己的编辑框用于设置控件的size大小,当在编辑框输入具体大小之后 ,控件大小已经更新在数据里,就是界面显示不刷新。想请问一下有什么方式可以使报表的界面刷新吗?
在设计器里面设计器是有个refresh的方法,可以调用。
您好,这块的话,要看你具体怎么操作的。你是修改了终端用户设计器的源码? 本帖最后由 wuxiaofeng 于 2020-4-8 18:40 编辑
KearneyKang 发表于 2020-4-8 17:27
您好,这块的话,要看你具体怎么操作的。你是修改了终端用户设计器的源码?
我这边没有修改设计器的源码,只是像是调用API一样调用了控件的.width和.Height属性去设置。
你能提供下你具体是修改了那些代码,改了那些API,然后我去试试
KearneyKang 发表于 2020-4-9 09:26
你能提供下你具体是修改了那些代码,改了那些API,然后我去试试
这个是我写的一个测试例子,我不知道能不能这样做,麻烦您帮忙看看。
private void widthTest()
{
//_reportDesigner 是报表组件 Designer
foreach (var item in _reportDesigner.Selection)//遍历选中的控件
{
if (item is ReportComponent)
{
ReportItem PortItem = (ReportItem)item;
PortItem.Width = "3cm"; // 设置宽度控件宽度(宽度是动态的,由用户输入)
}
}
} KearneyKang 发表于 2020-4-9 09:26
你能提供下你具体是修改了那些代码,改了那些API,然后我去试试
比如设置字体大小、对齐方式那些都可以用 ExecuteAction(DesignerAction.FormatFontSize, “”);这个接口来设置,但是对于控件大小,在DesignerAction 里面似乎没有找到对应的枚举项。所以我才用这种不太靠谱的方式来设置控件大小。 可以的,所有的属性都可以通过API 来设置,具体写法您可以参考安装示例里面的CreateReport 示例中的LayoutBuilder文件:
示例源码\Samples14-master\API\PageAndRDL\CreateReport
如果是 ARV14 可以从安装包里面找到这个示例, 如果是用的是 ARV13 可以在安装路径下看C:\Users\您的计算机名称\Documents\GrapeCity Samples\ActiveReports 13 Lenka.Guo 发表于 2020-4-9 13:49
可以的,所有的属性都可以通过API 来设置,具体写法您可以参考安装示例里面的CreateReport 示例中的LayoutB ...
不好意思,我看了一下您说的这个示例,我看代码中是在代码加载的时候便通过 table.Top = "1cm";
table.Left = "0.635cm";report.Report.Body.ReportItems.Add(table);等代码把这些属性给设定好了再统一加载到界面上。我这边是需要在外部进行具体属性值设置,再同步刷新界面。。我不知道是不是我看例子没有搞懂的缘故,还是不知道怎么去刷新界面。我的代码里已经调用了.width=“”和.height=“”,当设置好了属性值之后,我看属性值已经被修改为最新的了。问题就是界面上的显示没有同步最新的属性值。 您现在是在设计器里面,还是JSViewer里面渲染报表?
页:
[1]
2