找回密码
 立即注册

QQ登录

只需一步,快速开始

wuxiaofeng

注册会员

4

主题

15

帖子

61

积分

注册会员

积分
61
wuxiaofeng
注册会员   /  发表于:2020-4-8 12:03  /   查看:7926  /  回复:13
10金币
您好!
      公司现在需要单独的将“报表设计器控件(Designer)”重构一下(用的winform),窗体上放置一些自己的编辑框用于设置控件的size大小,当在编辑框输入具体大小之后 ,控件大小已经更新在数据里,就是界面显示不刷新。想请问一下有什么方式可以使报表的界面刷新吗?

最佳答案

查看完整内容

在设计器里面设计器是有个refresh的方法,可以调用。

13 个回复

倒序浏览
最佳答案
最佳答案
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-8 12:03:03
来自 12#
在设计器里面设计器是有个refresh的方法,可以调用。

评分

参与人数 1满意度 +5 收起 理由
wuxiaofeng + 5

查看全部评分

回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-8 17:27:05
2#
您好,这块的话,要看你具体怎么操作的。你是修改了终端用户设计器的源码?
回复 使用道具 举报
wuxiaofeng
注册会员   /  发表于:2020-4-8 18:38:39
3#
本帖最后由 wuxiaofeng 于 2020-4-8 18:40 编辑
KearneyKang 发表于 2020-4-8 17:27
您好,这块的话,要看你具体怎么操作的。你是修改了终端用户设计器的源码?

我这边没有修改设计器的源码,只是像是调用API一样调用了控件的.width和.Height属性去设置。

回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-9 09:26:24
4#
你能提供下你具体是修改了那些代码,改了那些API,然后我去试试

评分

参与人数 1满意度 +5 收起 理由
wuxiaofeng + 5

查看全部评分

回复 使用道具 举报
wuxiaofeng
注册会员   /  发表于:2020-4-9 09:51:31
5#
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"; // 设置宽度控件宽度(宽度是动态的,由用户输入)
                }
            }
        }
回复 使用道具 举报
wuxiaofeng
注册会员   /  发表于:2020-4-9 10:00:46
6#
KearneyKang 发表于 2020-4-9 09:26
你能提供下你具体是修改了那些代码,改了那些API,然后我去试试

比如设置字体大小、对齐方式那些都可以用 ExecuteAction(DesignerAction.FormatFontSize, “”);这个接口来设置,但是对于控件大小,在DesignerAction 里面似乎没有找到对应的枚举项。所以我才用这种不太靠谱的方式来设置控件大小。
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-9 13:49:36
7#
可以的,所有的属性都可以通过API 来设置,具体写法您可以参考安装示例里面的CreateReport 示例中的LayoutBuilder文件:
示例源码\Samples14-master\API\PageAndRDL\CreateReport

如果是 ARV14 可以从安装包里面找到这个示例, 如果是用的是 ARV13 可以在安装路径下看C:\Users\您的计算机名称\Documents\GrapeCity Samples\ActiveReports 13
回复 使用道具 举报
wuxiaofeng
注册会员   /  发表于:2020-4-9 14:42:10
8#
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=“”,当设置好了属性值之后,我看属性值已经被修改为最新的了。问题就是界面上的显示没有同步最新的属性值。
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-4-9 16:28:58
9#
您现在是在设计器里面,还是JSViewer里面渲染报表?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部