水晶报表字段拼接显示

1.表头字段不在数据表中
           string strSQL =null;
            if (strCKNo == "01" || strCKNo == "02")
            {
                strSQL = "Select Tool_No,toolName,CK_No,Shelve_no From T_ZG_BasicInfor Where CK_No='" + strCKNo + "' AND (State='在库' OR State='在线') Order by Shelve_no";
            }
            else
            {
                strSQL = "Select Tool_No,toolName,CK_No,Shelve_no From T_Others_BasicInfor Where CK_No='" + strCKNo + "' AND (State='在库' OR State='在线') Order by Shelve_no";
            }
            OracleConnection conn = DBConn.GetConn();
            OracleDataAdapter da = new OracleDataAdapter(strSQL, conn);
            DataSet ds=new DataSet();
            da.Fill(ds, "tbGJInfor");
            int rows = ds.Tables["tbGJInfor"].Rows.Count;
            //新建一个临时表用于拼装字段
            DataTable dt = new DataTable();
            dt.Columns.Add("Inventory_No");
            dt.Columns.Add("Tool_No");
            dt.Columns.Add("toolName");
            dt.Columns.Add("CK_no");
            dt.Columns.Add("Shelve_no");
            //向临时表里填充数据
            string strPKDNo = cmbInvenNo.Text.Trim();
            for (int i = 0; i < rows; i++)
            {
                DataRow dr = dt.NewRow();
                dr[0] = strPKDNo;
                dr[1] = ds.Tables["tbGJInfor"].Rows[i][0];
                dr[2] = ds.Tables["tbGJInfor"].Rows[i][1];
                dr[3] = ds.Tables["tbGJInfor"].Rows[i][2];
                dr[4] = ds.Tables["tbGJInfor"].Rows[i][3];
                dt.Rows.Add(dr);
            }
            //设置报表源
            CRGJKBPDB rep = new CRGJKBPDB();
            rep.SetDataSource(dt);
            crvGJKBPDB.ReportSource = rep;
            DBConn.CloseConn();
2.表中字段不在一个相关联的表中
  conn = DBConn.GetConn();
            da1 = new OracleDataAdapter(string.Format("SELECT Inventory_No,Start_Time From T_BJ_Inventory Where Inventory_No='{0}' ", cmbInventory_No.Text.Trim()), conn);
            da2 = new OracleDataAdapter(string.Format("SELECT Spareparts_no,Spareparts_name,CK_no,Shelve_no,TotalNumber,TotalNumber2,TotalWeight,TotalWeight2 From T_BJ_KC Where CK_no='{0}' Order by Shelve_no", sc), conn);
            ds1 = new DataSet();
            ds2 = new DataSet();
            da1.Fill(ds1, "tab1");
            da2.Fill(ds2, "tab2");
            int rows1 = ds1.Tables[0].Rows.Count;
            int rows2 = ds2.Tables[0].Rows.Count;  //dataset数据表中行数
            DataTable dt3 = ds1.Tables[0].Copy();
            dt3.Merge(ds2.Tables[0]);

            DataTable dt = new DataTable();
            dt.Columns.Add("Inventory_No");
            dt.Columns.Add("Start_Time");
            dt.Columns.Add("Spareparts_no");
            dt.Columns.Add("Spareparts_name");
            dt.Columns.Add("CK_no");
            dt.Columns.Add("Shelve_no");
            dt.Columns.Add("TotalNumber");
            dt.Columns.Add("TotalNumber2");
            dt.Columns.Add("TotalWeight");
            dt.Columns.Add("TotalWeight2");
            for (int i = 1; i < rows1 + rows2; i++)
            {
                DataRow dr = dt.NewRow();
                dr[0] = dt3.Rows[0][0];
                dr[1] = dt3.Rows[0][1];
                dr[2] = dt3.Rows[i][2];
                dr[3] = dt3.Rows[i][3];
                dr[4] = dt3.Rows[i][4];
                dr[5] = dt3.Rows[i][5];
                dr[6] = dt3.Rows[i][6];
                dr[7] = dt3.Rows[i][7];
                dr[8] = dt3.Rows[i][8];
                dr[9] = dt3.Rows[i][9];
                dt.Rows.Add(dr);
            }
            KBPDBReport kbRep = new KBPDBReport();
            kbRep.SetDataSource(dt);
            crvKB.ReportSource = kbRep;
            DBConn.CloseConn();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮特大熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值