请问自定义报表需要怎样实现?

ferdinand016 2016-07-25 10:47:38
现我的网页框架是.NET+ MS SQL
现在希望能够实现通过在页面上选择需要的列信息(来源于几个基础数据和多个基础档案表的关联),自动生成所需要的报表,由于条件很多,没法写固定的SQL来做成固定样式报表。
项目就我一个人再写。。不知道这个需求该用什么样的思路实现呢?
万分感谢~
...全文
351 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2016-07-26
  • 打赏
  • 举报
回复
引用 3 楼 ferdinand016 的回复:
[quote=引用 2 楼 yupeigu 的回复:] 比如,基础的sql是这样的: select 。。。 from tb1 left join tb2 on ... left join tb3 on ... left join tb4 on ... where 1=1 实际上就是3部分,一个是select,一个是 关联部分,一个是where部分。 分别把这3部分独立出来,当选择了xx字段,就可以在select部分增加xx字段,如果多了查询条件直接在where部分加上,最后把这3部分拼接成一个sql,运行
不能这么做,例如有四张基础信息表,互相没有直接关联,无法用join相连,但每个表都有几个字段:CustomerID,ProductID等,这几个字段又分别和几个档案表有关。 并且在定义报表的情况下会出现多个基础信息表的列,再出现多个信息表的情况下必须要根据条件SUM好了才能关联[/quote] 那就先把能关联的表关联上,一般这样的表都是 业务表,然后如果要显示一些具体的基础信息,比如产品名称,客户名称时,再去关联基础信息表,也就是加上left join。。。部分
ferdinand016 2016-07-26
  • 打赏
  • 举报
回复
引用 2 楼 yupeigu 的回复:
比如,基础的sql是这样的: select 。。。 from tb1 left join tb2 on ... left join tb3 on ... left join tb4 on ... where 1=1 实际上就是3部分,一个是select,一个是 关联部分,一个是where部分。 分别把这3部分独立出来,当选择了xx字段,就可以在select部分增加xx字段,如果多了查询条件直接在where部分加上,最后把这3部分拼接成一个sql,运行
不能这么做,例如有四张基础信息表,互相没有直接关联,无法用join相连,但每个表都有几个字段:CustomerID,ProductID等,这几个字段又分别和几个档案表有关。 并且在定义报表的情况下会出现多个基础信息表的列,再出现多个信息表的情况下必须要根据条件SUM好了才能关联
ferdinand016 2016-07-26
  • 打赏
  • 举报
回复
引用 4 楼 yupeigu 的回复:
[quote=引用 3 楼 ferdinand016 的回复:] [quote=引用 2 楼 yupeigu 的回复:] 比如,基础的sql是这样的: select 。。。 from tb1 left join tb2 on ... left join tb3 on ... left join tb4 on ... where 1=1 实际上就是3部分,一个是select,一个是 关联部分,一个是where部分。 分别把这3部分独立出来,当选择了xx字段,就可以在select部分增加xx字段,如果多了查询条件直接在where部分加上,最后把这3部分拼接成一个sql,运行
不能这么做,例如有四张基础信息表,互相没有直接关联,无法用join相连,但每个表都有几个字段:CustomerID,ProductID等,这几个字段又分别和几个档案表有关。 并且在定义报表的情况下会出现多个基础信息表的列,再出现多个信息表的情况下必须要根据条件SUM好了才能关联[/quote] 那就先把能关联的表关联上,一般这样的表都是 业务表,然后如果要显示一些具体的基础信息,比如产品名称,客户名称时,再去关联基础信息表,也就是加上left join。。。部分[/quote] 嗯。。我先根据几个业务表建几个视图试试先
LongRui888 2016-07-26
  • 打赏
  • 举报
回复
比如,基础的sql是这样的: select 。。。 from tb1 left join tb2 on ... left join tb3 on ... left join tb4 on ... where 1=1 实际上就是3部分,一个是select,一个是 关联部分,一个是where部分。 分别把这3部分独立出来,当选择了xx字段,就可以在select部分增加xx字段,如果多了查询条件直接在where部分加上,最后把这3部分拼接成一个sql,运行
LongRui888 2016-07-26
  • 打赏
  • 举报
回复
一般这种情况就是动态生成语句,在程序端,根据用户输入的列,动态拼接sql,同时加上查询条件。
shoppo0505 2016-07-26
  • 打赏
  • 举报
回复
可以就像楼上说的,在from选取表格的时候,先固定写好,把所有的表都关联上,select后面需要选取的的字段,使用string拼接. 这个string,靠你前台选取来给到数据库

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧