FineUI 官方论坛

标题: 表格中的分组以及合计 [打印本页]

作者: 奋斗~    时间: 2013-11-15 14:02
标题: 表格中的分组以及合计
本帖最后由 奋斗~ 于 2014-4-23 13:43 编辑

   欢迎批评与指导。。。。。如有问题,可以找我一起讨论,互相学习。。。如果项目需要合作的话,也可以联系我。(QQ:552847957)
  新增FinUI4分组功能:
      http://www.fineui.com/bbs/forum.php?mod=viewthread&tid=5489&page=1&extra=#pid24426

  用法:
          1、首先将附件中的代码(分.cs和js\css),加入到FineUI(.cs文件)工程和自己的工程(js\css)中.
          2、重新编译FineUI工程,重新生产dll文件。
          3、启用分组属性(AllowGroup="true"以及分组字段(  GroupField="dataField")
          4、在自己的页面中引用GroupSummary.js 和 GroupSummary.css文件

   补充说明:
       1、请将代码【RenderField.cs】文件中【 if (!"auto".Equals(SummaryType.Auto)) 】=====>更改为 【 if (SummaryType != SummaryType.Auto)】否则会报脚本错误.
      2、如果只是单纯的进行分组,则【GroupSummary.js 和 GroupSummary.css】则不用管。

  具体代码参考如下:


  1. <p> <x:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="表格" Width="700px" Height="245px"  AllowGroup="true" EnableHeaderMenu="true"
  2.                             runat="server" DataKeyNames="AutoId" AllowCellEditing="true" ClicksToEdit="1" AutoScroll="true"  GroupField="CostType">
  3.                             <Toolbars>
  4.                                 <x:Toolbar ID="Toolbar3" runat="server">
  5.                                     <Items>
  6.                                         <x:Button ID="btnNew" Text="新增数据" Icon="Add" EnablePostBack="false" runat="server">
  7.                                         </x:Button>
  8.                                         <x:ToolbarFill ID="ToolbarFill1" runat="server">
  9.                                         </x:ToolbarFill>
  10.                                     </Items>
  11.                                 </x:Toolbar>
  12.                             </Toolbars>
  13.                             <Columns>
  14.                                 <x:RenderField Width="80px" ColumnID="Remark"  DataField="Remark"   SummaryType="Count" SummaryRendererFunction="summaryRenderer" HeaderText="测试">
  15.                                    <Editor></Editor>
  16.                                 </x:RenderField>
  17.                                 <x:BoundField ColumnID="CostType"  DataField="CostType"  HeaderText="费用类型"/>
  18.                                 <x:RenderField Width="200px" ColumnID="CostAmount"  SummaryType="Sum" SummaryRendererFunction="sumRenderer" TextAlign="Center" DataField="CostAmount" FieldType="Float"
  19.                                     HeaderText="费用金额">
  20.                                     <Editor>
  21.                                         <x:NumberBox ID="txtCostAmount" Required="true" Text="0" DecimalPrecision="2" runat="server">
  22.                                         </x:NumberBox>
  23.                                     </Editor>
  24.                                 </x:RenderField>
  25.                                   <x:RenderField Width="200px" ColumnID="Cost" DataField="Cost"  SummaryType="TotalCost" RendererFunction="sumTotal"  TextAlign="Center" FieldType="Float" HeaderText="合计">
  26.                                     <Editor>
  27.                                          <x:TextBox ID="TextBox1"  runat="server" ></x:TextBox>
  28.                                     </Editor>
  29.                                 </x:RenderField>
  30.                                 <x:LinkButtonField ColumnID="Delete" HeaderText="操作" Width="60px" EnablePostBack="false"
  31.                                     Icon="Delete" />
  32.                             </Columns>
  33.                         </x:Grid></p><p> // ****************************JS开始部分******************************************</p><p> <script type="text/javascript"></p><p>       // 自定义函数
  34.         Ext.ux.grid.GroupSummary.Calculations['TotalCost'] = function (v, record, field) {
  35.             return v + (record.data.CostAmount * 2);
  36.         };</p><p>        function summaryRenderer(v, params, data) {
  37.             return ((v === 0 || v > 1) ? '(' + v + ' 项目)' : '(1 项目)');
  38.         }</p><p>        function sumRenderer(v) {
  39.             return Ext.util.Format.usMoney(v);
  40.         }</p><p>        function sumTotal(v, params, record){
  41.             return Ext.util.Format.usMoney(record.data.CostAmount * 10);
  42.         } </p><p></script></p>
复制代码


作者: 冬天    时间: 2013-11-15 14:05
沙发。。。。此贴必火
作者: 咫尺之间    时间: 2013-11-15 14:06
我去,冬天你小子够快!
作者: Tiger    时间: 2013-11-15 14:06
建议三石考虑集成在里面噢{:soso_e102:}
作者: 黑冰.cn    时间: 2013-11-15 14:09
奋斗纯爷们,NB。。

PS:禽兽们啊,我的沙发。
作者: 奋斗~    时间: 2013-11-15 14:16
黑冰.cn 发表于 2013-11-15 14:09
奋斗纯爷们,NB。。

PS:禽兽们啊,我的沙发。

来晚了。。。。
作者: 像猪一样的生活    时间: 2013-11-15 14:20
支持你 我是浮夸
作者: 随州热线    时间: 2013-11-15 15:15
牛逼啊,小粪牛逼啊,小粪牛逼啊,小粪牛逼啊,小粪
作者: 奋斗~    时间: 2013-11-15 15:26
随州热线 发表于 2013-11-15 15:15
牛逼啊,小粪牛逼啊,小粪牛逼啊,小粪牛逼啊,小粪

随基,过奖 过奖啊
作者: 游泳的鱼    时间: 2013-11-15 15:32
支持一个,顶奋斗
作者: ☆☆αβ☆☆    时间: 2013-11-15 15:37
支持一个,顶
作者: 沙斌    时间: 2013-11-16 10:41
太牛了,太需要了
作者: jiao_lp    时间: 2013-11-16 13:14
此贴必火
作者: 狐狸猫    时间: 2013-11-18 10:05
顶  正需要这个
作者: 多科特    时间: 2013-11-21 09:36
黑冰.cn 发表于 2013-11-15 14:09
奋斗纯爷们,NB。。

PS:禽兽们啊,我的沙发。

黑B 怎么改名字了!  不是org吗 怎么又变cn了?
作者: ′訫冇所屬.    时间: 2013-11-21 09:46
建议三石集成到fineui中,一直没有类似datalist的控件
作者: 凤凰涅盘ing    时间: 2013-11-21 10:34
多科特 发表于 2013-11-21 09:36
黑B 怎么改名字了!  不是org吗 怎么又变cn了?

以前遇到这种问题,我都是在SQL里搞定,
楼主这个更好看,赞~

另外,强烈建议 小黑同志改个名字吧,这个“黑B“太难听了....
作者: xiangyy    时间: 2013-11-21 11:48
太牛逼了!偶像啊!
作者: flyway    时间: 2014-2-20 09:32
这个不错,推荐是必须的
作者: Mr.Wu    时间: 2014-2-20 10:21
应该放一两张效果图的,更直观,更吸引人一些啊
作者: Min    时间: 2014-2-20 14:50
做个标记先。。。。。。。

作者: huifeideyu888    时间: 2014-3-25 17:48
一百个赞
作者: Hanson    时间: 2014-4-23 09:39
标注一下,下次必用到
作者: 569251516    时间: 2014-4-23 16:00
斗哥威武,我是缓冲!
作者: 舞柯庶    时间: 2014-8-7 16:54
v3.3.3 我替换掉FineUI工程中Grid.cs和RenderField.cs,然后把SummaryType.cs 和Grid.cs放到一起,生成DLL。然后再引入到项目中。为什么设置Grid.AllowGroup =true时,页面一直显示图标转圈,不显示内容,是不是需要把  AllowCellEditing="true",必须时可以编辑的GRID才行。
我只用了分组,其他文件没有拷贝到项目中。项目中只用了新生成的DLL
作者: 舞柯庶    时间: 2014-8-7 17:50
好了。把js和cs放到项目中。但是有个问题,就是这么显示合计呢?图片上看有合计。我搞了个数字型,还是没有合计,另外 我用部门分组是,有的相同部门 会分成2个组。比较郁闷




欢迎光临 FineUI 官方论坛 (https://www.fineui.com/bbs/) Powered by Discuz! X3.4