天天看点

【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通

回顾三为什么就谈到整体规划和突破变通了呢?谈整体规划还容易理解,行动之前先做好规划嘛。谈突破变通就不好理解了,基础都还有未了解清楚,何来的突破变通?但既然是写回顾,适当加一些总结,就是要促成长,明方向。否则就没有多大的参考价值了。这里写是给初学者提供参考思维的,请各位专家不要见笑。

整体规划:

至于使用共享模板的应用,模板就是别人规划好的了,用户需要做的事情就是想办法把各个模块的数据打通就行了。我重点谈的是自搭建应用的整体规划。由于所有开发记录都存于学校办公室里的电脑里,以后方便了我再另发一个“

氚云校园标准版使用回顾三之补充-整体规划心得

”。

现在接着谈突破变通。

突破变通:

实际上就是一些搭建技巧。有很多大众化的规划需求,偏偏在氚云校园的平台上实现会遇到困难,该如何去突破?既然选中了氚云,那深挖突破是必须的,否则就难以前行。下面罗列部分来进行表述:

1、表单控件长度已超出,怎么办?

可通过子表来实现扩展。子表当然没办法象主表控件的应用那么方便,而且还有很多功能是子表没办法使用的。那就先化整为零,对表单做重新规则,不要受某个控件超出而停摆,可考虑同类的控件是否可变通,或者整个表单都重新做规则,往往可以找到更优化的解决方案的。

2、如何实现数据自动填充或精确填充?

讲四种。其一、是使用公式取值;其二、关联表单取值;其三、通过业务规则取值;其四、通过子程序取值。

公式取值,会受使用函数的影响,在函数灵活性不足的情况下需要改用其他方式。

关联表单取值,实质上就是调用其他表单的已有数据,在数据取值范围上可以进行数据条件限定,来实现精准定位,但不能实现自动取值,必须手工选中。

业务规则取值,原则上是赋值,是借助另一个表单来实现数据填充。

子程序取值,原则上也是赋值,和业务规则类似,实施的前提是必须使用流程。

这里顺便举个例子:在氚云中计数器的实现。

表单A需要使用计数器,那么整个学校就可以统一建一个【计数器】表单,也可按实质需求针对性的在某个表单中设置计数功能,【计数器】的设置有两个控件就可以了,一个是文本控件{计数器名称},另一个是数字控件{计数}。那么在表单A中就可以直接通过关联表单来对【计数器】进行取值,同时再通过业务规则来对【计数器】对应{计数器名称}的{计数}进行累加1的赋值。特别说明:计数器功能仅适用于主表单。如果要防止记录在修改时再次触发计数器,可在表单内设置一个隐藏项{是否新增},默认值为“FALSE”;{关联计数器}的隐藏条件设为"{是否新增}"或“{是否新增}==TRUE";然后增加一条业务规则,更新{是否新增}为“TRUE”。那么在提交的时候,就可以通过{是否新增}的值来判断是否为新增记录,还是修改记录。因为业务规则在提交之后才运行的。如果有多条业务规则要运行,还要适当调整好其先后顺序,是可以实现需求的。

【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通

3、文本控件在表单应用中的填充技巧。

讲三种,其一、人员控件的姓名文本取值;其二、文本积累;其三、生成唯一性的数据标题。

人员控件的姓名文本取值,氚云还没有提供直接的取值方式,所以只能采用导出再导入的方式来实现人员控件的取值。即先导出表单数据,再把人员的姓名直接复制到文本姓名控件一列,再进行更新导入。但有一个前提,就是数据标题必须具有唯一性。

这里顺便做一下思维延伸,在学校里,教工人员及学科专业、部门是相对稳定的。氚云中的人员、部门实际上是来自钉钉的同步,如果一味的依赖,在选择人员的时候还要调用组织架构,操作的过程反而步骤太多,倒不如主动变通再进一步优化以省去多余的界面操作,实现更直观快捷的数据获取。即建立一个【人员表单】,这个【人员表单】致少包含{员工姓名}、{对应员工}、{所在部门}、{学科专业}、{所授课程},并把{员工姓名}+{课程}作为标题组合,然后有表单需要调用到人员,都改用关联表单控件关联【人员表单】,通过数据填充规则实现其他数据的自动填充,这样就可以把【人员表单】的所有数据都关联出来,是不是扩展并优化了氚云的人员数据填充。还有最重要的一点是可以克服氚云导入的不足;目前氚云版本还有一个明显的不足,在数据导入的时候如果有涉及到人员或部门,往往会出同莫名其妙的“重名”或无效的提醒,无正常导入,而且还会乱套部门。

文本积累,可以通过公式及函数来实现,但多行文本中的换行符会消失,如果需要保持多行文本的分段格式,就要用业务规则来实行了。后面有个例子讲解如何实现换行功能。

生成唯一性的数据标题,往往需要实现引用姓名的文本积累,目的就是让标题变得直观又唯一。

这里我列举一下:如在课程管理中,设置有【班级教师】、【教师任课】两个表单,这两个表单的内容除了标题不同外,其他内容都是完全相同的。相当于表单复制后改名改标题。【班级教师】往往需要通过某班某科目就能定位到某教师,所以标题组合就是“班级+科目+教师”;而【教师任课】却需要通过某教师定位到某科目某班级,所以标题组合就是“教师+科目+班级“。特别说明一下,【班级教师】、【教师任课】作为基数表,在实际应用中,应通过基数同步管理来实现了数据的同步更新。实现数据的独立与同步。

再列举一下:我校需要实现课表大数据功能,必须让【一维课表】里的每一条记录都是一条完整又独立的一节课的数据,标题必须具有唯一性。所以标题组合就是“班级+周几+第几节+科目+教师+单双周备注”,但高中课表随时都有可能更换,为了避免课表更换影响到系统运作,就通过在【长期调课】表单里批量导入数据,使用业务规则来实现绝大部分课表数据的更新,这样就可实现无缝的数据更新。那么在【长期调课】和【一维课表】里还需要有一个共同的文本标识组合:“班级+周几+第几节+单双周备注”,在业务规则作为UPSERT的条件,然后再个别对{单双周备注}里是“单周”、“双周”的数据进行筛选,再核查一下是否同一节课还有“每周”的备注进行处理就可以了。

最后,讲一下如何在业务规则里实现换行功能。换行必须针对多行文本控件才能实现的。在氚云编辑界面是不支持特殊字符录入的,包括换行符。但文本控件的累加是支持的,即使用一多行文本控件[换行符],提前赋值为“回车键+|”,然后通过业务规则把这个换行符传递给另一个多行文本控件。

【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通
【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通

如图二:在表单【录入晚修】里,关联表单【学生基数1】,通过数据填充规则获取{换行符}。、

【氚云】氚云校园标准版使用回顾之三——整体规划与突破变通

如图三:在表单【录入晚修】的业务规则里,把{换行符}传递给【晚修年级反馈】表单。

4、涉及到随时都有可能修改的数据,如何实现消息提醒的同步更新?

通过设置消息推送提醒可以在指定时间收到消息提醒内容(只对新增数据有效)。

我目前想到更新A表的消息提醒有两或三种方式。

其一、手动删除原有的记录,再重新增加新记录。

其二、创建B表单是A表单的副本,B表单设置一条业务规则来删除A表单的对应数据,这样在B表单中新增的记录就实现删除A表单的数据,并在B表单中实现提醒。

其三、或者在B表单中使用业务规则来对A表单的对应记录进行删除再新增。

消息提醒仅对新增记录才有效,新增记录就是要增加一条新记录,但做一下变通,可以实现修改有效,因为修改是可以重复调用业务规则的。之前A表单的提醒功能,改成在B表单(A表单副本)中实现。A表单建两条业务规则:1.实现在B表单中删除有相同标识的记录。2.实现在B表单中新增相同记录。这样的实现方式,A表单的数据不管是修改还是新增,重复多少记录,都不会影响到B表单的提醒。

暂时想到这么多,以后还有再做补充。

继续阅读