应用需要将用户填入数据保存到数据库中同时又要将数据库中数据读取到前台应用供用户查询而表格工具无疑是这个用户和数据库的间交互理想中间平台笔者今天就跟大家分享下再Java平台中建立表格些窍门技巧
、是否允许用户对记录进行重排序?
当从数据库中读取记录然后反映在表格中有很多地方可以控制记录排序在不排序情况下从数据库中读取数据时候是根据记录创建时间先后顺序反映在前台表格中为了控制显示顺序数据库管理员可以在数据库层面上针对这张表格创建张视图并在视图中设置排序规则来改变默认排序顺序这张方式效率比较高但是也比较死板只有数据库管理员才能够更改这个排序规则其次在Java平台中将相关SQL语句传递给数据库以获取想要数据时也可以利用order by关键字来设置排序顺序不过这跟数据库层面上设置样也有个致命缺陷即这个排序规则必须预先设置好如果用户不满意当前排序规则则必须要系统管理员或者开发人员帮忙才能够更改排序方式显然这两个排序方式都不是很灵活
其实用户需要是在前台应用窗口中可以根据需要对任何个字段进行排序如点击某个字段名字就根据这个字段名进行排序在Java平台创建表格类中本身就已经集成了重新排列功能如在创建表格时候可能需要用到个JTableHeader类(可以用这个类创建不支持滚动条表格)在这个类中有个RecorderingAllowed思路方法其会有true和false两个返回值如果这个思路方法返回时true则表示允许用户在这个表格上对记录进行重新排序如果返回是false话则表示用户无法在表格上对记录进行重新排序如果不满意现在排序规则只有要求系统管理员或者开发人员在后台更改排序规则
对这个排序规则设置笔者有个建议首先开发人员或者数据库管理人员要根据用户常见需求即最常用排序规则来进行设置如此话用户打开前台表格就可以得到自己想要排序方式然后在表格上也允许用户进行重新排序当用户有需要时候可以轻易实现按任何个字段进行排序笔者认为这种排序规则比较合理在实际应用开发中笔者也是如此做不过这里需要注意点如果查询出来纪录比较多此时即使在前台对记录进行排序效率也会比较低为此对于大记录表格笔者建议是在数据库设计或者应用开发中就要评估用户最常常用排序规则如在产品信息窗口中可以按关键字或者产品类别进行排序如此就可以最大程度减少 2次排序提高应用性能
2、是否允许对表格中内容进行编辑?
在表格创建时候还需要注意是否允许用户对表格中数据进行更改对于这点开发人员也可以在多个层面对其进行控制如某个表格对于任何用户来说都是只读只允许应用对其进行更新那么就可以在数据库层面进行控制如对于系统日志表格来说用户就不能够进行更改只有查询为此就可以针对这张表格创建张只读视图供用户查询使用而应用在更新时候则直接更新对应基础表格这就是通过在数据库层面对表格中内容是否允许编辑进行控制
除此的外还可以通过权限来进行控制如可以在数据库中设置区别用户、区别权限来控制前台表格对应后台数据库表格读写权限在应用中也可以控制对这张表格中内容编辑能力默认情况下利用Java提供现有类创建表格时是允许用户对表格中内容进行编辑如用户只要双击单元格就可以对表格中内容进行更改如果系统管理员不希望用户对表格中内容进行更新则就需要重构JTable类中isCellEdittable思路方法默认情况下这个思路方法返回值是true表示允许用户对其进行更改如果返回时false话在禁止用户对单元格进行编辑
其实在应用开发过程中这个是个动态过程如就拿销售订单来说如果单据编号是自动编号那么就不允许用户对单据编号这个列内容进行更改这个列中内容都是系统自动产生相反如果这个销售订单编号是手工创建那么就允许用户对这个字段进行更改所以在应用设计时候最好不要将这个写死般可以在单据性别设置处进行设置即设置个开关来控制是否允许用户对表格中单元格进行编辑
3、记录时单选还是多选?
在使用Excel表格时候记录选择模式有很多种如用户可以选择条记录也可以选择多条连续纪录甚至在其他键帮助下还可以选择不连续纪录等等特别是在同个时间内选择多条记录这可以在很大程度上提高复制粘贴效率
在利用Java语言创建表格中也具有类似功能如在创建表格类中有个SelectionMode思路方法就是用来控制选择模式默认情况下这个思路方法有 3个返回值如果返回是0表示用户在表格中只允许选择条记录如不允许选择多条如果返回时1话则表示用户可以通过鼠标拖拉等手段同时选择多条记录单是这些记录必须连续而不允许分散如果这个思路方法返回值是2则表示用户可以随意选择多条记录这些记录可以是连续也可以是不连续这个记录选择模式般情况下不会对性能或者安全产生不利影响故到底采用哪种方式最重要还是要根据用户需求来定
除了以上这些设置外
最新评论