度量快速开发平台-专业、快速的软件定制快开平台

标题: 图表部件动态设置Y轴(成员)的方法介绍 [打印本页]

作者: 王爱东    时间: 2020-6-5 17:00
标题: 图表部件动态设置Y轴(成员)的方法介绍
度量快速开发平台中,图表部件是很好展示数据的方式之一。常规的图表部件使用设置很简单,使用参见:图表部件使用及介绍文章
本帖主要是实现以下业务情况的设置。

业务描述:
比如有10个分公司的单位,每个分公司1到12月有不同的经营数据。现在需要的是,登录人根据能够查看到分公司的个数,显示相应的数据。比如张三能看到3个公司1到12月的数据,李四能看到5个公司1-12个月的数据。意思就是下图中红框中的成员,根据不同权限显示不同个数的。


案例实现效果:
假设有一张表,数据是下图这样的效果,公司可以增加很多个,这里只列出来了两个。


1、构建图标部件的业务表。需要注意的是下图红框中,应该把所有的公司都列出来,可以动态的设置一共有多少个分公司。

2、构建显示窗体,拖入图表部件,设置该业务表。

然后在窗体加载事件中书写代码(假设该人能看到两个部门的):

'*******************窗体加载和关闭事件*****************

'--->窗体加载:
'获取登录人能看到的组织机构,可以是ID,可以是名称,这里以名称为例
dim companyStr="重庆公司,北京公司"

'坼分能看到的公司个数
dim companyName=split(companyStr,",")

   '动态设置成员
for i=0 to companyName.Length-1
   图表部件1.AddSeries("月度",companyName.GetValue(i),companyName.GetValue(i),Color.FromArgb(0),"Line","{V} ",5,True)
next

'刷新
图表部件1.RefreshData()

'设置成员小数位数为0
for i=0 to companyName.Length-1
   图表部件1.ValuePrecision(i,0)
next
'*******************窗体加载和关闭事件结束*****************





3、如果用户只能看到一个单位,只需要把下面一句代码替换掉
dim companyStr="北京公司"




上面 dim companyStr 的值,可以根据权限情况查询组合进来。业务表中一定要把所有的公司数据纳入进来才行。




作者: 王爱东    时间: 2020-6-5 17:01
上面业务表中的SQL 是server2008版本的,其他自行书写。主要是交大家这个动态设置图表部件成员的方法。
作者: 王爱东    时间: 2020-6-5 17:02
另外:图表部件1.AddSeries 这个方法查看,可以预先设置几个成员,图形不同,样式不同的。然后点窗体的“查看代码”就能看到生成的代码。比如要柱状图或者其他图形。

作者: 万望    时间: 2020-6-7 08:27
还能这么用??牛叉
作者: 万望    时间: 2020-6-7 08:32
没用时都晓不得这些东西,多多学习,多多掌握
作者: 刘亚东    时间: 2020-6-7 09:28
这些代码带代码查看器里面能看到
作者: 王爱东    时间: 2020-6-7 14:42
度量快速开发平台中的功能多得很,大家都要深入研究才行。经常说写文章找不到素材,用心研究,结合业务,素材是多得很的。
作者: 王爱东    时间: 2020-6-10 20:25
功能多。技巧多。都要了解,才能指导二次开发人员
作者: 同QQ名    时间: 2020-6-27 11:54
如果将上述业务表中的in(重庆公司,北京公司)换成变量[:companyname],在传入值的时候会将值外面加上单引号造成错误,如果换成[:where],理论上说应该就可以了,但是保存的时候报错,因此换成将整个业务表用变量[:where]代替,然后在窗体加载事件中通过 图表部件1.SetVaribleValue("where",sql) 的形式,将拼接好的sql传入业务表,这样也可以达到拼接动态sql的效果,然后按照上面的方法就可以实现动态图例的效果了。
作者: 王爱东    时间: 2020-7-14 10:55
楼上这个方法很不错,我们业务表有这个特殊的 where条件变量,就是解决业务表本身复杂而且不太好组合的业务。在界面上组合形成sql的查询语句。




欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://plat.delit.cn/) Powered by Discuz! X3.2