繁体   English   中英

显示/隐藏html表列并将列首选项存储在数据库中的一种更好的(可维护)方法

[英]A better (maintainable) way to show/hide html table columns and store column preferences in a database

我在使用Spring,BIRT,jQuery和hibernate的报表平台中工作。

该工具可以向用户显示许多不同的报告,每个报告都显示为html表(使用BIRT发射器创建)。

我们支持的一个非常重要的功能是显示和隐藏报表中的某些列,用户可以切换每个列并将其首选项保存在数据库中。 我们完成此任务的方法不是最佳方法,它需要大量维护并且经常会中断。

对于每个报告(很多),我们都有一个.properties文件,其中列出了报告的所有列。 读取此属性后,我们将生成一个对话框,其中列出所有列和旁边的复选框,当用户选择/取消选择列并单击“保存”时,我们将创建一个0和1的数组(例如0011111111,这里是前2个列是隐藏的,最后8个是显示的),将此数组传递给BIRT以生成一个新的HTML表,其中显示或隐藏了相应的列,我们还将0和1的数组作为用户首选项存储在数据库中。

谁能提出解决这个问题的更好方法?

我想要的是不必每次我们在报表中添加/删除/更新列时都更新数据库和报表.properties文件中的所有用户首选项(必须这样做,因为这会更改报表的位置。数组中的0和1)。

一张带有报表的表格,一张带有可用列的表格和一张带有用户列映射的表格怎么样? 这样,如果您在报表中添加一列,则无需更改任何其他表; 仅当用户显式选择先前未选择的列时,您才需要存储该信息。

桌子会像

reports 1<-->n columns 0..n<-->0..m users

使用JSON模式表示表配置。 由于它不可搜索,无法索引或链接到其他任何东西,因此只需将其存储为数据库中的文本blob。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM