用户登陆 用户名: 密码:
通知公告
 

模板实施技巧

所属类别:开发技巧 发布时间:2009-02-02  发布人: 盟友   浏览次数:319

    

  1.默认值

在单元格绑定时,可以在默认值中设置一些信息,这些信息在填写文档时可以自动生成,不需要手动输入,可以是直接在默认值中数据固定的数据如:2007、’未确认’等,也可以通平台中提供的一些系统默认值方式设置,如[用户部门] 、[用户部门编号]、[用户名称]、[用户真实姓名]、[用户职务]、[当前日期]、[当前节点名称]、[项目首选项]等,我们也可以自己写sql语句为单元格设置默认值,如:想为一个文档中的年度设置一个默认值,该年度是字符串型的数据,可以这样处理,如下图所示:

  在这里提供几个常用的默认值设置的sql语句。
         i.     根据登陆用户帐号设置登陆部门信息:
        select bmmc from mywt_mis..bbm where bmbh in (select bmbh from mywt_mis..bbmuser where username=[用户名称])
         ii.      生成递增的编号
        select right(‘0000‘+cast((select isnull(max(编号),0)+1 from 工作完成报告) as varchar(5)),4)           
2.公式
           i.              dblook公式取得的数值和日期型的数据需要进行转化,否则默认为字符型,在保存时不能保存到数据库中。如:value(dblook(select 基本工资 from 工资基本信息表))。
           ii.              计算次数的公式:value(dblook("select 次数 from 合同评审表 where CRM编号 = ‘"+C6+"‘ and myid <"+string(myid())+" order by 次数 desc"))+1
           iii.              从表公式必须在从表的公式行中设置,从表中引用主表中的数据需要用V字段名的格式,不能直接用形如C5、B6这样的格式。在从表中尽量不要使用setdrop(),dblook()等访问数据库的公式,这样的公式在从表数据量较大时影响运算速度。
           iv.              在从表中不能直接引用主表中得单元格得名字如L2 L3 等,从表中的引用要用“V字段名”这样得格式。
3.约束条件

4.按钮

          i.   系统中对按钮的名称有一定的要求,不能叫“发送”、“回退”、“转发”等系统流程中使用的专有名词,如果在无流程的模版中使用这样的名字,在点击按钮后会触发对流程的操作,导致出错。
          ii.    按忸中打开相关文档功能注意事项
           登陆用户必须要对被打开的文档有修改权限,打开后才可以编辑,否则就是只读的。
           如果被打开的文档有流程,并且使用的是打开相关文档的功能需要通过sql语句同时向流程表中插入一条流程信息,如果使用填写相关文档功能则不需要这个操作。
           如果被打开的文档属于一个模板对应多个文档的其中之一,在使用打开相关文档功能时区域名称里应该使用,数据表名|nodeindex形式,以确保打开的是需要的那个文档,如果只填写数据表名,系统会出现混乱,从多个档中随机选择一个打开。
        iii.  在从表中也可以使用按钮通过弹出窗口的方式显示满足从表中某一字段相关条件的信息。
          例如在从表公式行设置一按钮,在按钮中弹出窗口功能里可以写如下sql语句:
          select a.目标,责任人,责任单位,时限,a.赋分 as 目标赋分,项目,得分类别,b.赋分 as 项目赋分,分数限额 from 任务评价库 a inner join 任务评价库明细 b on a.编号=b.目标编号 where a.编号=[区域绑定].[J]
          其中[区域绑定].[J]是从表中按钮所在行第J列的数据,通过这个功能每一行从表数据都可以查看相应的查询信息。
          实例:政务考核管理-工作目标管理-工作目标库 对从表中的目标进行进一步分解。
        iv.    导入excel数据时有时会出现明明有数据但是数据导入不进来的情况,这可能是excel文件正在被打开使用或者数据不规范造成的,导入的数据要保证是规范的,不能有特殊字符特殊格式,数据格式要跟被导入的模板设计的一致。
        v.   如何清除设置好的按钮
          在设计模板时如果想清除一个设计好的按钮可以用下面的方法,首先右键在按钮设计点删除,清除设计的按钮功能,然后关闭设计界面,左键选中按钮,在菜单“格式”-“单元格”,单元类型选择普通。这样就彻底的清除了一个按钮。
5.保存后执行
保存后执行的功能主要是用于文档保存后,对保存到数据表中的内容做某些更改。
例如对于有从表的内容,可以在文档保存后把从表中的信息进行某些调整。
6.区域绑定
区域绑定时要注意绑定的字段和从表中的列标题一定要一一对应,否则数据保存时就会出现混乱。如果从表是出于主表的中间部分即从表下面还有表尾那么在从表区域绑定部分以后还要加上一行,在该行的第一列的单元格中写上”结束行”三个字,该单元格可以设置为‘显示和打印时隐藏’。
如果在从表区域后还有主表内容,在从表绑定区域下面一行的第一列写上“结束行”三个字。 

7.文档筛选

通过文档筛选功能可以实现部分权限划分,不同的登陆用户查看同一文档时在右侧列表中看到的内容不同。筛选有两种设置方法:在表格中选择条件、输入sql where 语句,
其中在表格中选择条件是通过直接为字段赋值,实现筛选出满足某条件组合得数据。输入sql where 语句方法可以更灵活的对数据进行筛选这里提供几个常用的用法:
只有流程参与人可以看到与之相关的文档:
myid in (select myid from bdocflow where username=‘登录用户帐号‘ and tableid=84 and nodekey=140)
登陆用户属于某一群组的一员时可以看到相关的文档:(其中的人员明细是一个群组)
charindex(‘登录用户帐号‘,人员明细)>0 and 编号 in(select 文件编号 from 收文情况表 where 收文人=‘登录用户帐号‘)
8.其他
I.  建好模板后有时候会对绑定的位置进行调整有一个简便的方法可以避免重新进行单元格绑定来实现位置改变

将鼠标放在要移动的位置上,按住右键不放,将它拖动到目的绑定位置,这样绑定信息也随之移动,简化了操作。
 
II. 如何引用文档中的数据

对文档中数据的引用分为两类,一类是模板中的公式引用文档页面上的数据,这样的引用包括dblook 、setdrop等,引用的形式是通过单元格名称的形式,如A3B5等,还有一种方式是通过单元格绑定或者模板中的名称自定义为单元格起的别名来引用,如V字段名称。
另一类是按钮、默认值及流程属性中对文档中绑定了字段的数据的引用,这类引用采用的是[单元格名称]、<单元格名称>的方式来引用,其中[]指的是对字符型数据的引用,系统会自动将[]转化为 ’’ 将数据转化为字符串的格式,<>是指对数值型数据的引用,直接将数据转化成数值。还有一类数据的引用是指单元格绑定了权限,但是没有绑定字段,这类的数采用据[[单元格名称]]、<<单元格名称>>方式引用。
从表中也可以设置按钮,从表中按钮引用从表表格中的数据时需要以[区域绑定].[L]或<区域绑定>.的形式引用,[区域绑定].[L]是指对字符型数据的引用,<区域绑定>.是指对数值型数据的引用,[区域绑定].[L]中的L指的是从表数据所在的列数。 
 
III. 字段长度不够可能造成的几类保存失败

模板数据库中区域绑定相关字段长度不够常常会提示保存失败,手动到数据库修改bTemplateTable的fieldlist字段长度。
字段绑定时在默认值里写的sql语句确定后再查看发现sql语句没有了,可能是因为表BTemplateBind中的dft字段长度不够。
按钮中的某个功能在确定后没有保存上,可能是btemplatecmd 表的CmdName、SqlText字段长度不够。

IV. 建好的模板再次打开有时候会提示,单元格绑定丢失

模版中提示字段绑定丢失,再次绑定保存后仍然不成功,依然提示丢失,可能是因为名称定义中有很多空的信息,在模板中 工具-名称定义 将这些信息删除,再绑定就可以了.
 
V. 多个模板具有都相同部分时,可导入通用模板

在铁路项目的质量检验批部分和客运专线质量检验批部分都遇到这样的问题:
大量的模板都具有相同的表头和表尾,如果采用一般的手段新建模板,那将非常麻烦。
解决对策:
    1.建立一张通用模板,它具有我们所要求的相同的表头和表尾,为使其更具有通用性,可将中间的行列预留多一些,以便删减。将其绑定好数据表,确保要求记录的单元格都绑定至数据表字段。
     2.新建模板后,在“工具”菜单栏下点击“导入模板”;然后在“绑定数据表”下绑定先前建立的数据表或视图;打开“工具”的“导入绑定信息”选中通用模板“确定”即可;最后格局每一张模板中间部分的具体要求做进一步调整,使其符合表单形式的要求。
 
VI. 不能导入、导出项目时的措施

在导出项目时如果不能导出,请检查任务栏右下方是否存在黄色的平台锁,如果有请将其退出;如果没有,请看弹出的窗口是否有其他机器连入并在操作,如果有断开网络链接,再次导出项目即可。
 
VII.存储过程和触发器的使用

在系统实施过程中经常会出现需要大量数据计算和统计汇总的表单,如果单纯通过在模板上设置公式来实现,可能会需要多种间接和辅助的公式来实现而且会严重影响计算速度,在这样的情况下不妨使用存储过程来实现计算或汇总功能。在平台中应用存储过程除了简单的插入删除修改语句外,还经常用到游标,通过游标可以对满足一定条件的一组数据进行循环的批量的数据修改操作,这样的操作对于有从表的表单作用尤为显著,可以以主表中某一组关键字检索出从表中的所有或部分数据,根据需要对检索出的从表数据进行修改,这类功能在实施过程中的统计汇总,复杂计算中将会大量应用。
平台中的主从表可以自动实现级联删除和更新插入等操作,但是我们手动建立的一些表与表的关系不具备级联删除、更新功能,所以在建立通过打开相关文档等功能实现的表间业务关联时,我们要手动的为他加上这些关系,以避免数据冗余和数据差异,这样就可能用到触发器,通过触发器可以方便的实现更新或删除一个表时同时更新删除另一个表的数据。

 

公告/通知
合作伙伴
     
              
联系地址:北京市海淀区上地信息中路2号中关村国际创业园D栋801室
Email:allycmp@sina.com
联系电话:010-51260231 010-51260230
Copyright@ 2006 MYally All rights reserved. 北京盟友软件科技有限公司 京ICP备05032398号