DataTable da = CommonBLL.GetList("*", "sys_dict", "IfState=1 and DictTypeId=14");

            string strField = "CACCNUM as 账号账号,Loannumber as 借据号,BILLDATE as 借款时间,CAName as 借款人姓名,CPOSITION as 质押商品房位置,LoanAmount as 借款总额,";
for (int i = ; i < da.Rows.Count; i++)
{
strField += " case when xqName ='" + da.Rows[i]["DictName"].ToString() + "' then LoanAmount else null end as " + da.Rows[i]["DictName"].ToString() + "_借款总额,";
}
strField += "Rateval as 年利率,Endratedata as 到期时间,CTEL 借款人固定电话,CMOBILE as 借款人手机号,CSSNUMBER as 身份证号,CADDRESS as 住址,CWORK as 所在单位,Realtor as 售楼员,Proportion as 首付比例,RepayAmountSum as 己还本金合计,";
for (int i = ; i < da.Rows.Count; i++)
{
strField += " case when xqName ='" + da.Rows[i]["DictName"].ToString() + "' then RepayAmountSum else null end as " + da.Rows[i]["DictName"].ToString() + "_己还本金合计,";
}
strField += "RepayRateSum as 已清利息合计,";
for (int i = ; i < da.Rows.Count; i++)
{
strField += " case when xqName ='" + da.Rows[i]["DictName"].ToString() + "' then RepayRateSum else null end as " + da.Rows[i]["DictName"].ToString() + "_已清利息合计,";
}
strField += "RepaySum as 本息合计,SurplusSum as 剩余本金合计 ,";
for (int i = ; i < da.Rows.Count; i++)
{
strField += " case when xqName ='" + da.Rows[i]["DictName"].ToString() + "' then SurplusSum else null end as " + da.Rows[i]["DictName"].ToString() + "_剩余本金合计,";
}
strField += "Repay as 已还清";
DataTable dt = JZCard.BLL.CommonBLL.GetList(strField, "v_finance_billloan_list", _strWhere);
decimal JkHj = Commons.ParseDecimalValue(dt.Compute("sum(借款总额)", ""));
decimal YHBJHJ = Commons.ParseDecimalValue(dt.Compute("sum(己还本金合计)", ""));
decimal YQLXHJ = Commons.ParseDecimalValue(dt.Compute("sum(已清利息合计)", ""));
decimal BXHJ = Commons.ParseDecimalValue(dt.Compute("sum(本息合计)", ""));
decimal SYBXHJ = Commons.ParseDecimalValue(dt.Compute("sum(剩余本金合计)", "")); DataRow dr = dt.NewRow();
dr["账号账号"] = "合计";
dr["借款总额"] = JkHj;
dr["己还本金合计"] = YHBJHJ;
dr["已清利息合计"] = YQLXHJ;
dr["本息合计"] = BXHJ;
dr["剩余本金合计"] = SYBXHJ; dt.Rows.Add(dr);
// c#如何设置DataGridView的自动创建列
this.dg_BillLoanList.AutoGenerateColumns = true; this.dg_BillLoanList.DataSource = dt;

C# 实现动态添加列,新增合计行,求和的更多相关文章

  1. asp.net gridview动态添加列,并获取其数据;

    1,绑定数据前先动态添加列,见方法CreateGridColumn(只在第一次加载动态添加): 2,gvlist_RowDataBound为对应列添加控件: 前台代码: <%@ Page Lan ...

  2. [转]RDLC报表——动态添加列

    本文转自:http://www.cnblogs.com/pszw/archive/2012/07/19/2599937.html 前言 最近接到一个需求:在给定的数据源中,某(些)列,可能需要单独统计 ...

  3. GridView动态添加列之后,导致PostBack(回发)页面数据丢失问题解决

    直入主题,首先声明,这个问题是无法解决的,特此在这说明 一.如何动态添加列,如下: 在页面重写OnInit事件,至于为什么要在这个事件写,根据页面的声明周期和经验可知(不用去别的地方找了,这个我找了之 ...

  4. Wpf DataGrid动态添加列,行数据(二)

    这是第二中方法,可直接绑定,我这里只是做出了一种思路,并不是最完美. 这里注意一下,因为我里面引用了MVVMLight,所以可能代码不是复制过去就能用了的. 样式也是,所以复制过去看不是我贴出来的界面 ...

  5. C# DataGridView 动态添加列和行

    https://blog.csdn.net/alisa525/article/details/7350471 dataGridView1.ReadOnly = true ;      //禁用编辑功能 ...

  6. DataGridview动态添加列

    1.获取数据源(select * from table名称) 2.动态绑定数据源 private void GetTableInfo(DataTable dt) { listBh = new List ...

  7. Wpf DataGrid动态添加列,行数据(一)

    由于最近有这方面的需求,而且刚接触wpf不久,在网上找了很多方法,都不是使用MVVM模式的,因为DataGrid的列不能绑定 这就难受了,我想了个折中的方法,这个是使用了MVVMLight的消息机制, ...

  8. gridview动态添加列的问题

    相信大家也和我一样遇到过这种问题,gridview在生成列的时候当列不确定怎么办?下面分享一下自己的解决方法. 举个列子说明一下. 普通列的添加比较简单. BoundField bf = new Bo ...

  9. GridView动态添加列并判断绑定数据DataTable的列类型控制展示内容

    此篇随笔是2013年根据项目需求开发记录的,不一定符合大众口味,只需了解开发思路,毕竟解决方案多种多样. 下面简单说说需求点吧: (1)通过下拉列表可以选择一个DataSet(数据集),一个DataS ...

随机推荐

  1. codeforces的dp专题

    1.(467C)http://codeforces.com/problemset/problem/467/C 题意:有一个长为n的序列,选取k个长度为m的子序列(子序列中不能有位置重复),求所取的k个 ...

  2. BroadcastReceiver学习

    一.使用系统广播.以监听电话状态为例 1.写一个类继承自BroadcastReceiver类 package com.diysoul.android.blacklist.receivers; impo ...

  3. 一个完整的upstart脚本分析

    基本概念可以了解 http://www.mike.org.cn/articles/understand-upstart/ http://blog.fens.me/linux-upstart/ http ...

  4. dns随笔(部分转载)

    1.allow-notify allow-notify 定义了一个匹配列表并且只应用于从dns区域(slave zone),比如,这个列表是一个ip列表,它 2. 触发同步的过程 http://www ...

  5. android AsyncTask介绍 AsyncTask和Handler对比

    1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可 ...

  6. [洛谷P3527] [POI2011]MET-Meteors

    洛谷题目链接:[POI2011]MET-Meteors 题意翻译 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1 ...

  7. Linux系统开机启动时的工作原理

    Linux系统开机启动时的工作原理也是深入了解Linux系统核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至 ...

  8. Cycle Sort

    Cycle sort的思想与计数排序太像了,理解了基数排序再看这个会有很大的帮助, 圈排序与计数排序的区别在于圈排序只给那些需要计数的数字计数,先看完文章吧,看完再回来理解这一句话 所谓的圈的定义,我 ...

  9. 通过gitlabAPI批量创建用户

    上午服务器领导通知我给服务器所有同事添加gitlab账号,服务器总共67个人,这要是一个一个在页面添加,我得累死,是否有其他的办法呢?有问题找google,果然是可以通过gitlab的API批量添加的 ...

  10. 【转载】Java JVM : Xms Xmx PermSize MaxPermSize 区别

     转载自:http://cxh61207.iteye.com/blog/1160663 java JVM虚拟机选项: Xms Xmx PermSize MaxPermSize 区别 Xms 是指设定程 ...