氚云校园标准版使用回顾之一——初步入门
我写回顾,基于两个原则,一是回报氚云,二是注重时效。所以写出来的文字不会多,基本上是写过程和心得。有时间才写,按过程先后有序的写。
很多人刚开始使用氚云校园时,都找不到方向,我也一样。我先是在氚云校园群里潜水观望,留意群内大家的交流,完全只是走马观花的模式,没有强制自己必须要去记住什么。这过程消耗上了我两个星期左右的工作之余的时间。当然,群里直播回放和文件,我也都耐着性子从最早期的开始去浏览。这样有利于自己跟着时间轴了解群内已包括有的信息量,为在氚云校园里发芽储备能量,也定下一个大体的方向。
接下来就开始实践了,在已有的共享模板里,选择自己感觉比较了解的工作模块,进行模仿和破坏。对着已有的表单,创建一个同样的表单,鼠标的左击、右击,了解菜单的各个选项,能做什么样的操作。遇上不理解的地方,我先跳跃过去,熟悉操作界面,各种控件的使用。然后,表单数据的新增、删除、导入导出等等,这个过程,只能对开发设计界面有个最基本的初步认识。
氚云校园标准版使用回顾之二——搭建基础表单
创建表单,如何使用控件(即传统描述为字段的控件),最有效的方式是查阅帮助文档。 里面的内容很精简,是最简单易懂的说明。这个过程不要省,认真看帮助说明,认识最基本的东西。边看帮助文档,边修正对氚云步署的思路,修正氚云开发的总体规划,如何发挥氚云平台的优势,如何实现大数据。如何变通去实现各种需求。如果帮助文档都没看过,再往下看也是浪费时间的了。
学校的基础数据包括学年、学期、年级、班级、学科课程、任课教师,班级、课程会涉及到对应的教师和学生。而如何快速定位到年级、班级、人员,如何把独立的数据关联在一起,这些都是搭建基础表单所要思考的问题。不管怎么样构建,搭建基础表单都是一样的,应尽可能的让学校日后的数据可以按年级、班级实现快速处理。
当然,很多人直接使用了共享模板,再进行更改。这种搭建速度是很快的,但目前氚云提供的共享模板,在使用上是有限制的,不能复制、也不能再共享,有些表单也删除不了。
搭建表单的过程,是应用的开始,随之而来的还有列表界面、搜索项及默认值、用户的权限设置,表单的复制、公式函数业务规则的使用。这些都应会按需求逐步展开。
氚云校园标准版使用回顾之三——整体规划与突破变通
回顾三为什么就谈到整体规划和突破变通了呢?谈整体规划还容易理解,行动之前先做好规划嘛。谈突破变通就不好理解了,基础都还有未了解清楚,何来的突破变通?但既然是写回顾,适当加一些总结,就是要促成长,明方向。否则就没有多大的参考价值了。这里写是给初学者提供参考思维的,请各位专家不要见笑。
整体规划:
至于使用共享模板的应用,模板就是别人规划好的了,用户需要做的事情就是想办法把各个模块的数据打通就行了。我重点谈的是自搭建应用的整体规划。由于所有开发记录都存于学校办公室里的电脑里,以后方便了我再另发一个“氚云校园标准版使用回顾三之补充-整体规划心得”。
现在接着谈突破变通。
突破变通:
实际上就是一些搭建技巧。有很多大众化的规划需求,偏偏在氚云校园的平台上实现会遇到困难,该如何去突破?既然选中了氚云,那深挖突破是必须的,否则就难以前行。下面罗列部分来进行表述:
1、表单控件长度已超出,怎么办?
可通过子表来实现扩展。子表当然没办法象主表控件的应用那么方便,而且还有很多功能是子表没办法使用的。那就先化整为零,对表单做重新规则,不要受某个控件超出而停摆,可考虑同类的控件是否可变通,或者整个表单都重新做规则,往往可以找到更优化的解决方案的。
2、如何实现数据自动填充或精确填充?
讲四种。其一、是使用公式取值;其二、关联表单取值;其三、通过业务规则取值;其四、通过子程序取值。
公式取值,会受使用函数的影响,在函数灵活性不足的情况下需要改用其他方式。
关联表单取值,实质上就是调用其他表单的已有数据,在数据取值范围上可以进行数据条件限定,来实现精准定位,但不能实现自动取值,必须手工选中。
业务规则取值,原则上是赋值,是借助另一个表单来实现数据填充。
子程序取值,原则上也是赋值,和业务规则类似,实施的前提是必须使用流程。
这里顺便举个例子:在氚云中计数器的实现。
表单A需要使用计数器,那么整个学校就可以统一建一个【计数器】表单,也可按实质需求针对性的在某个表单中设置计数功能,【计数器】的设置有两个控件就可以了,一个是文本控件{计数器名称},另一个是数字控件{计数}。那么在表单A中就可以直接通过关联表单来对【计数器】进行取值,同时再通过业务规则来对【计数器】对应{计数器名称}的{计数}进行累加1的赋值。特别说明:计数器功能仅适用于主表单。如果要防止记录在修改时再次触发计数器,可在表单内设置一个隐藏项{是否新增},默认值为“FALSE”;{关联计数器}的隐藏条件设为"{是否新增}"或“{是否新增}==TRUE";然后增加一条业务规则,更新{是否新增}为“TRUE”。那么在提交的时候,就可以通过{是否新增}的值来判断是否为新增记录,还是修改记录。因为业务规则在提交之后才运行的。如果有多条业务规则要运行,还要适当调整好其先后顺序,是可以实现需求的。
3、文本控件在表单应用中的填充技巧。
讲三种,其一、人员控件的姓名文本取值;其二、文本积累;其三、生成唯一性的数据标题。
人员控件的姓名文本取值,氚云还没有提供直接的取值方式,所以只能采用导出再导入的方式来实现人员控件的取值。即先导出表单数据,再把人员的姓名直接复制到文本姓名控件一列,再进行更新导入。但有一个前提,就是数据标题必须具有唯一性。
这里顺便做一下思维延伸,在学校里,教工人员及学科专业、部门是相对稳定的。氚云中的人员、部门实际上是来自钉钉的同步,如果一味的依赖,在选择人员的时候还要调用组织架构,操作的过程反而步骤太多,倒不如主动变通再进一步优化以省去多余的界面操作,实现更直观快捷的数据获取。即建立一个【人员表单】,这个【人员表单】致少包含{员工姓名}、{对应员工}、{所在部门}、{学科专业}、{所授课程},并把{员工姓名}+{课程}作为标题组合,然后有表单需要调用到人员,都改用关联表单控件关联【人员表单】,通过数据填充规则实现其他数据的自动填充,这样就可以把【人员表单】的所有数据都关联出来,是不是扩展并优化了氚云的人员数据填充。还有最重要的一点是可以克服氚云导入的不足;目前氚云版本还有一个明显的不足,在数据导入的时候如果有涉及到人员或部门,往往会出同莫名其妙的“重名”或无效的提醒,无正常导入,而且还会乱套部门。
文本积累,可以通过公式及函数来实现,但多行文本中的换行符会消失,如果需要保持多行文本的分段格式,就要用业务规则来实行了。后面有个例子讲解如何实现换行功能。
生成唯一性的数据标题,往往需要实现引用姓名的文本积累,目的就是让标题变得直观又唯一。
这里我列举一下:如在课程管理中,设置有【班级教师】、【教师任课】两个表单,这两个表单的内容除了标题不同外,其他内容都是完全相同的。相当于表单复制后改名改标题。【班级教师】往往需要通过某班某科目就能定位到某教师,所以标题组合就是“班级+科目+教师”;而【教师任课】却需要通过某教师定位到某科目某班级,所以标题组合就是“教师+科目+班级“。特别说明一下,【班级教师】、【教师任课】作为基数表,在实际应用中,应通过基数同步管理来实现了数据的同步更新。实现数据的独立与同步。
再列举一下:我校需要实现课表大数据功能,必须让【一维课表】里的每一条记录都是一条完整又独立的一节课的数据,标题必须具有唯一性。所以标题组合就是“班级+周几+第几节+科目+教师+单双周备注”,但高中课表随时都有可能更换,为了避免课表更换影响到系统运作,就通过在【长期调课】表单里批量导入数据,使用业务规则来实现绝大部分课表数据的更新,这样就可实现无缝的数据更新。那么在【长期调课】和【一维课表】里还需要有一个共同的文本标识组合:“班级+周几+第几节+单双周备注”,在业务规则作为UPSERT的条件,然后再个别对{单双周备注}里是“单周”、“双周”的数据进行筛选,再核查一下是否同一节课还有“每周”的备注进行处理就可以了。
最后,讲一下如何在业务规则里实现换行功能。换行必须针对多行文本控件才能实现的。在氚云编辑界面是不支持特殊字符录入的,包括换行符。但文本控件的累加是支持的,即使用一多行文本控件[换行符],提前赋值为“回车键+|”,然后通过业务规则把这个换行符传递给另一个多行文本控件。
如图三:在表单【录入晚修】的业务规则里,把{换行符}传递给【晚修年级反馈】表单。
4、涉及到随时都有可能修改的数据,如何实现消息提醒的同步更新?
通过设置消息推送提醒可以在指定时间收到消息提醒内容(只对新增数据有效)。
我目前想到更新A表的消息提醒有两或三种方式。
其一、手动删除原有的记录,再重新增加新记录。
其二、创建B表单是A表单的副本,B表单设置一条业务规则来删除A表单的对应数据,这样在B表单中新增的记录就实现删除A表单的数据,并在B表单中实现提醒。
其三、或者在B表单中使用业务规则来对A表单的对应记录进行删除再新增。
消息提醒仅对新增记录才有效,新增记录就是要增加一条新记录,但做一下变通,可以实现修改有效,因为修改是可以重复调用业务规则的。之前A表单的提醒功能,改成在B表单(A表单副本)中实现。A表单建两条业务规则:1.实现在B表单中删除有相同标识的记录。2.实现在B表单中新增相同记录。这样的实现方式,A表单的数据不管是修改还是新增,重复多少记录,都不会影响到B表单的提醒。
暂时想到这么多,以后还有再做补充。