public void BindReport(string _invno,string _type)         {             if (!Is_Has_Express_No(_invno))             {                 return;             }             StringBuilder sb = new StringBuilder();             sb.Append(" select tt.ardt_jobno,tt.ardt_prodcode,tt.ardt_desc,tt.ardt_qty, ");             sb.Append(" tt.ardt_unit,tt.ardt_uprice,tt.isumprice,tt.Custcaseno,tt.docinfo,pmct_desc,tt.sType, ");             sb.Append(" decode(tt.sType,'P',isumprice,'')  pSumprice, ");             sb.Append("  decode(tt.sType,'M',isumprice,'')  mSumprice, ");             sb.Append(" decode(tt.jobm_redo_yn,'1','REMAKE','') jobm_redo_yn,arhr_invno,arhr_date,arhr_acctid,arhr_remark,acct_tel,acct_addr0,acct_addr, ");             sb.Append(" acct_addr_2,acct_addr_3,acct_addr_4,acct_invoice_remark ");             sb.Append("  from  ( ");             sb.Append(" select idt.ardt_jobno,idt.ardt_prodcode,idt.ardt_desc,idt.ardt_qty, ");             sb.Append("  decode(idt.ardt_unit,'排','SET','粒','UNIT','','UNIT',idt.ardt_unit) ardt_unit, ");             sb.Append("  idt.ardt_uprice, idt.ardt_qty * idt.ardt_uprice isumprice, ");             sb.Append("  (select distinct jo.jobm_custcaseno  from  job_product jp,job_order jo  where  ");             sb.Append(" jp.jobm_no = jo.jobm_no and jo.jobm_no =idt.ardt_jobno ) Custcaseno, ");

if (_type == "USD")             {                 sb.Append(" (select distinct  nvl(jo1.jobm_docinfo_1,jo1.jobm_docinfo_2) || '(' || jp1.jobm_no || ')'  from  job_product jp1,job_order jo1  where ");             }             else             {                 sb.Append(" (select distinct  '(' || jp1.jobm_no || ')'  from  job_product jp1,job_order jo1  where ");             }             sb.Append("  jp1.jobm_no = jo1.jobm_no and jo1.jobm_no =idt.ardt_jobno ) docinfo,  ");             sb.Append(" (select distinct pm.pmct_desc from product prx,product_category pc,product_category_major pm ");             sb.Append(" where pm.pmct_code = pc.pmct_code and pc.pcat_code = prx.pcat_code and prx.prod_code = idt.ardt_prodcode) pmct_desc,  ");             sb.Append(" (select distinct pro.prod_pro_mat from product pro where  pro.prod_code =  idt.ardt_prodcode)  sType, ");             sb.Append(" (select  jo2.jobm_redo_yn from job_order jo2 where jo2.jobm_no =idt.ardt_jobno ) jobm_redo_yn, ");             sb.Append(" i.arhr_invno, i.arhr_date, i.arhr_acctid, ");             sb.Append(" i.arhr_remark, decode(ac.acct_name_eng,'',ac.acct_name,ac.acct_name_eng) acct_addr0, ");             sb.Append(" decode(ac.acct_tel,'','','Tel: ' || ac.acct_tel)  acct_tel,");             sb.Append(" ac.acct_addr,  ");             sb.Append(" ac.acct_addr_2, ");             sb.Append(" ac.acct_addr_3,  ");             sb.Append(" ac.acct_addr_4, ac.acct_invoice_remark  from invoice_dtl idt ,invoice i,account ac  ");             sb.Append(" where idt.arhr_invno = '11003017'  ");   //A1515010   A1515310     11003017             sb.Append(" and i.arhr_invno = idt.arhr_invno and ac.acct_id = i.arhr_acctid  ");             sb.Append(" ) tt  order by tt.Custcaseno,tt.ardt_prodcode  ");             sb.Append("  ");

DataSet ds_com = DB.GetDSFromSql(sb.ToString());             //创建临时表分组             DataTable dtGroup = new DataTable();             DataColumn column = new DataColumn();             column.DataType = System.Type.GetType("System.Int32");             column.ColumnName = "GId";             dtGroup.Columns.Add(column);                         column = new DataColumn();             column.DataType = System.Type.GetType("System.Int32");             column.ColumnName = "GId";             ds_com.Tables[0].Columns.Add(column);               column = new DataColumn();             column.DataType = System.Type.GetType("System.String");             column.ColumnName = "Custcaseno";             dtGroup.Columns.Add(column);             column = new DataColumn();             column.DataType = System.Type.GetType("System.String");             column.ColumnName = "pmct_desc";             dtGroup.Columns.Add(column);                         DataTable dtDisView = ds_com.Tables[0].DefaultView.ToTable(true, "Custcaseno");                        DataRow dr = dtGroup.NewRow();

if (dtDisView.Rows.Count > 0)             {                 for (int k = 0; k < dtDisView.Rows.Count; k++)                 {                     dr = dtGroup.NewRow();                     dr["GId"] = k + 1;                     dr["Custcaseno"] = dtDisView.Rows[k]["Custcaseno"].ToString();                                        dtGroup.Rows.Add(dr);                                }             }

if (dtGroup.Rows.Count > 0)             {                 for (int n = 0; n < dtGroup.Rows.Count; n++)                 {                     for (int l = 0; l < ds_com.Tables[0].Rows.Count; l++)                     {                         if (ds_com.Tables[0].Rows[l]["Custcaseno"].ToString() == dtGroup.Rows[n]["Custcaseno"].ToString())                         {                             dtGroup.Rows[n]["pmct_desc"] = ds_com.Tables[0].Rows[l]["pmct_desc"].ToString();                             break;                         }

}                 }              }

double _fdaValue = 0;             double _nFdaValue = 0;             double _totalPrice = 0;

if (ds_com.Tables[0].Rows.Count > 0)             {                 for (int i = 0; i < ds_com.Tables[0].Rows.Count; i++)                 {

_fdaValue = _fdaValue + double.Parse(ds_com.Tables[0].Rows[i]["pSumprice"].ToString()==""?"0":ds_com.Tables[0].Rows[i]["pSumprice"].ToString());                     _nFdaValue = _nFdaValue + double.Parse(ds_com.Tables[0].Rows[i]["mSumprice"].ToString() == "" ? "0" : ds_com.Tables[0].Rows[i]["mSumprice"].ToString());                     _totalPrice = _totalPrice + double.Parse(ds_com.Tables[0].Rows[i]["isumprice"].ToString() == "" ? "0" : ds_com.Tables[0].Rows[i]["isumprice"].ToString());

//将汇总的值统一                     if (dtGroup.Rows.Count > 0)                     {                         for (int j = 0; j < dtGroup.Rows.Count; j++)                         {                             if (ds_com.Tables[0].Rows[i]["Custcaseno"].ToString() == dtGroup.Rows[j]["Custcaseno"].ToString())                             {                                 ds_com.Tables[0].Rows[i]["pmct_desc"] = dtGroup.Rows[j]["pmct_desc"].ToString();                                 ds_com.Tables[0].Rows[i]["GId"] = dtGroup.Rows[j]["GId"].ToString();                             }                                                 }                      }                 }             }                         if (ds_com.Tables[0].Rows.Count < 1)             {                 MessageBox.Show("没有相关报表信息!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);             }             else             {                               string fdaWord = string.Empty;                               DataTable dtDisHearder = ds_com.Tables[0].DefaultView.ToTable(true, "GId", "Custcaseno", "docinfo", "pmct_desc");                 //查询含多个发票号码

if (_type == "USD")                 {                     this.reportViewer1.LocalReport.ReportPath = "Rpt_Invoice_USD.rdlc";                 }                 else if (_type == "EUR")                 {                     this.reportViewer1.LocalReport.ReportPath = "Rpt_Invoice_EUR.rdlc";                 }                 else                 {                     this.reportViewer1.LocalReport.ReportPath = "Rpt_Invoice_hk.rdlc";                 }

//重新排序 ardt_prodcode

//this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", dtDistinct));                 this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet2", ds_com.Tables[0]));                 this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", dtDisHearder));                 this.reportViewer1.LocalReport.SubreportProcessing += (s1, e1) => {                     e1.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet2", ds_com.Tables[0]));                 };                 ReportParameter rp = new ReportParameter("logUser", DB.loginUserName);                 this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });

//FDA值                 rp = new ReportParameter("fdaValue", _fdaValue.ToString());                 this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });                 //非FDA值

rp = new ReportParameter("nFdaValue", _nFdaValue.ToString());                 this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });

//this.reportViewer1.LocalReport

string sqladd = " select t.udc_extend01,t.udc_extend02,t.udc_extend03  from zt00_udc_udcode t where t.udc_sys_code = 'MDLCRM' and t.udc_category = 'SO' and t.udc_key = 'ENTITY' and t.udc_value = 'MDIL澳门'  order by udc_key ";                 DataTable dtaddr = DB.GetDSFromSql(sqladd).Tables[0];                 string strSignor = string.Empty;                 string strFooter = string.Empty;                 string strRemark = string.Empty;

if (dtaddr.Rows.Count > 0)                 {                     strSignor = dtaddr.Rows[0]["udc_extend02"].ToString();                     strFooter = dtaddr.Rows[0]["udc_extend01"].ToString();                     strRemark = dtaddr.Rows[0]["udc_extend03"].ToString();                                }                 rp = new ReportParameter("add_signor", strSignor);                 this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });                 rp = new ReportParameter("addr_footer", strFooter);                 this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });                 rp = new ReportParameter("addr_remark", strRemark);                 this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });                                           rp = new ReportParameter("totalValue", _totalPrice.ToString());                 this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });                 this.reportViewer1.RefreshReport();                                                      }         }

winform 子报表的更多相关文章

  1. winform 子报表数据源赋值

    this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource(&qu ...

  2. RDLC 子报表

    1.RDLC 设计页面,拖入table或者矩形 2.右击表格或者矩形单元格,插入--子报表 3.输入名称和将此报表用作子报表 名称:显示在设计页面上的,仅作观看作用 将此报表用作子报表:填写目录下的需 ...

  3. RDLC系列之二 子报表

    本文实现简单的子报表 一.效果图

  4. Reporting Services 钻取报表、子报表

    一.钻取报表 1.概念 钻取报表是指用户通过单击其他报表中的链接打开的报表.钻取报表通常包含某原始汇总报表中所包含的某项的详细信息. 例如,在此图中,销售额汇总报表列出了销售订单和总额.当用户单击该汇 ...

  5. iReport 4.1 报表制作,子报表,实例解析

    开发使用步骤(iReport 4.1.1) (个人总结,如有问题请留言,另外知道table控件用法的给我留言或者发邮件谢谢.Email:jiazx0107@163.com) 目录 1.      开发 ...

  6. ReportView动态加载带参数的RDCL文件及子报表

    本文来自Torres.Wu发表在博客园的博客,转载请标明出处. 同上一篇差不多,这次咱们加载带有子报表的RDCl文件.首先还是创建一个form程序,在form2窗体中添加一个ReporView控件,l ...

  7. UniGui中使用Grid++Report报表控件子报表获取数据的方法

    Grid++Report是为优秀的报表控件,子报表是其重要功能之一,但Grid++Report提供的网页报表示范主要是以页面为主的,UniGui在Delphi中以快速编写web管理软件著称,但由于资料 ...

  8. JasperReport子报表参数传递

    子报表参数传递 下图的参数名称可以自定义 再子报表新增一个同名称的参数即可

  9. ActiveReports 报表控件V12新特性 -- 页面报表新增子报表

    ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...

随机推荐

  1. WebAPI的初步认识(CURD)

    1.创建一个MVC项目,选择API 2.在Models层里添加Product类,IProductRepository接口,ProductRepository类 public class Product ...

  2. 在 Boolan 网开讲《网络编程实战》课程

    <网络编程实战>是一门以讲解实例为主的课程,每一节都讲一两个网络编程的例子程序,课程偏重 Linux 服务端 TCP 网络编程. 本课程要求听课人员已经读过<Unix 网络编程> ...

  3. Linux下高cpu占有率的调试方案

    1.用top命令查看哪个进程占用CPU高 gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值.   2.用top -H -p pid命令查看进程内各个线 ...

  4. ADV-caikuang

    #include<stdio.h> int step[99][99]; int sum; int min=999999; int cas; int N; int H; int V; int ...

  5. 遍历指定目录下指定类型文件的函数(fatkun Fix版)

    // ================================================================ // 遍历某个文件夹及子文件夹下某种文件, // 使用说明 // ...

  6. jquery基础事件

    一.常用的事件有:click.dblclick. mousedown.mouseup.mousemove.mouseover.mouseout.change.select.submit.keydown ...

  7. APP审核被拒,原因总结

    今天早上,突然看到上周末提交的APP,审核被拒了.原以为是因为IPV6审核没过,后来查看原因后发现是,app的3张展示图里面,有些内容显示的有:测试XX等字眼.苹果说提交的版本不能是含有 test,t ...

  8. window下flask开发环境搭建

    1.安装python 官网下载https://www.python.org/downloads/,按提示安装就行,记住安装目录,把它添加到系统path中. 2.安装pip 官网下载pip文件:http ...

  9. K/3 Cloud开发之旅 -- 主页自定义篇(一)

    如果说我们要进行主页自定义篇,首先涉及到的就是登陆的自定义,那么如何进行登录界面的自定义呢 其实登陆界面自定义主要就是图片的替换 ,那么我们就看下登陆界面的图片的组成 登录页面底图有两部分组成,一个是 ...

  10. NOIP2014 总结

    想了很久,才开始动笔. 怎么说,感觉挺对不起自己的.愚蠢的失误让我正好卡着一等线,真希望不要是二等奖. 最难过的是,努力全葬送在愚蠢上面了. 不过也好,学会平静自己也是一种能力. 半期考试也遭的一塌糊 ...