您的位置:首页 > 其它

在DotNetNuke中利用Reports模块拼凑数据(二)

2008-10-27 15:54 253 查看
在DotNetNuke中利用Reports模块拼凑数据(二)

    在(一)中,
我们描述了如何在一分钟之内(如果你SQL语句足够熟练的话),将已有的数据重新打乱、组合、排列,等等,Whatever you
want,总之,是用已有的数据,组合成一个新的数据模块。我们介绍了Reports,这个模块非常方便,也极其简单,就是把我们用SELECT语句选择
出来的列,全部都放在一个模块之内,其实,这就是一个非常开放的模块、也非常好用的模块,如果我们自己开发的模块,可以达到这种效果的话,那么,应该就算
是非常成功了。

    Reports的新版(大概是4.0以后的版本,07年的版本还无此功能),已经可以定义Visualizer了,也
就是列表的显示方式也是开放的,可以用一般的Grid,也可以用更为丰富的显示模式,比如我们自己定义的一个XSL文件或者HTML文件来解析数据。这样
的扩展非常好,我的RedstartForm模块在编辑界面上可以由用户自行建立ascx文件,实现动态的展现;但是列表界面还没有做到,希望可以将这个
特性引入进来。

    不但是Reports模块,UDT模块也早就有了可以扩展的列表样式,用户可以自行定义;不过遗憾的是UDT的Edit界面还不是动态的,希望新版的UDT,也就是Forms & List在这方面可以加强。

    在(一)中提到,可以读取当前用户的一些“待办”的信息,敏感的读者会问:用户的信息在哪里呢?

    是的,这也就是Reports的参数,Reports已经提供了部分参数,如下面的语句中展示的:


Code

SELECT * FROM Users WHERE UserID=


    大家有兴趣的话可以自己试一下,就可以出现如下的运行结果:





    这就是一个最简单的利用参数的例子了;当然,Title都是E文的,用AS给一个中文的字段就可以了;一大堆没有的字段,那么,在SELECT的时候,指定只选择固定的字段就可以了,如:

     SELECT DisplayName AS 名称 FROM Users WHERE UserID=@UserID

    类似的参数运用,我们还可以在IFrame模块中看到,IFrame支持的参数更多一些,大家请看一下下图:





    下拉列表中,就是IFrame模块提供给用户的参数。很多是吗?嗯,那是因为在IFrame模块中,就不能写SQL语
句去读取其他的内容了,所以,能列出来的就尽量列出来;不过,在我使用IFrame模块的时候,仍然改动了代码,为之增加了PortalAlias这个参
数(原本的IFrame模块是没有这个参数的)。之所以增加这个参数,是为了访问本机上的另外一个Web系统(非DotNetNuke)。为什么要增加这
个参数呢?因为我的系统可能是被用户从局域网访问的,也可能是被用户从互联网访问的;可能是用户从IP地址访问的,也可能是用户从机器名访问的(在
Host的“网站设置——网站管理——域名绑定”中绑定了所有的可能),这个时候,如果用户从局域网里面访问DotNetNuke,但是IFrame嵌套
的Web系统却走固定的互联网地址的话,就不太好了,所以,增加了一个PortalAlias的参数,当然,这个是另外的一个话题了。

    在我开发RedstartForm这个工作流模块的时候,也用到了参数,但是,我的参数却是这样定义的:{UserID} {ModuleID},也就是用大括号将之括起来,在括号之中的才识别为参数,而在括号之外的则不识别为参数,在这里,我有我的考虑,等到时机成熟的时候,我们再介绍那个模块的参数处理机制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: