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();
水晶报表字段拼接显示
最新推荐文章于 2023-11-03 15:57:42 发布