设为首页 加入收藏

TOP

rdlc报表随笔心得 ,基本结构和一些表达式。(一)
2019-09-17 18:09:38 】 浏览:54
Tags:rdlc 报表 随笔 心得 基本 结构 一些 表达式
Dataset Form RDLC
主要放数据集的文件夹 存放窗体的文件夹 存放各种报表的文件夹

第一部,创建报表结构

首先添加数据集项

添加完成之后我们会看到这个页面

之后我们在上面添加一些数据集

数据源的连接要自己设定

之后我们可以输入要编译的sql语句,因为是报表,主要用来查询,一般情况只用select语句就可以

生成之后是这样的一些模型

中间的灰色部分可以双击,进去之后我们能自定义编写一些方法

//用这个方法查询时可以进行拼sql拼接查询,一般不写这个的话是不可以拼接查询的

//加粗部分要根据你不同数据集下的小的数据模型名字不同进行变换

partial class MemberTransferShopTableAdapter
{
internal int FillWhere(MC.MemberTransferShopDataTable dataTable, string whereSql, params SqlParameter[] commandParameters)
{
string sql = this.CommandCollection[0].CommandText;
sql = sql.Substring(0, sql.LastIndexOf("WHERE"));
sql += " WHERE 1=1 " + whereSql;
this.CommandCollection[0].CommandText = sql;
this.Adapter.SelectCommand = this.CommandCollection[0];
this.CommandCollection[0].Parameters.Clear();
foreach (SqlParameter p in commandParameters)
{
this.CommandCollection[0].Parameters.Add(p);
}
dataTable.Clear();

int returnValue = this.Adapter.Fill(dataTable);
return returnValue;
}
}

下面展示两种Form中的连接数据的方法

 this.MemberTransferShopTableAdapter.Fill(this.cashier.MemberTransferShopDtl, A参数, A参数,A参数); //参数是你写语句时的参数,报表普遍用这种方法

以下是Fillwhere拼接的方法,拼接方法省去了在数据库里判断的过程,可以减少where后查询的判断,从而加快一定速度。

当然如果没有where条件限制查询速度反而会变慢。主要是减少 CASE WHEN THEN 的试用。

string strWhere = "";
if (strClubID != "")
{
strWhere += " ";
}
if (strIsChainStore != "")
{
strWhere += "  ";
}
if (strIsAdvanceSale != "")
{
strWhere += " ";
}
strWhere += " ";

this.waterBarCashierPaymentDtlTableAdapter.FillWhere(this.cashier.WaterBarCashierPaymentDtl, strWhere
, new SqlParameter("@ClubID", strClubID)
);

点击数据模型中间灰色部分我们可以看到属性 ,

我们点击其下面的白色部分也可以看到属性

 

 相信所有人都看到了上图的Parameters ,点击他就会出来窗体,如果你where后有参数的话,我们可以在这里面设置他的类型等属性

到此数据集DataSet文件夹的一些基本操作就叙述完毕

二.Form文件夹下窗体的设置

这里面DataSet 和 BindingSource比较重要

首先是Dataset

选择你要连接的数据集,然后将 BindingSource拉倒窗体上,设置 BindingSource

 

DataSource属性用来选择连接的DataSet数据集

DataMember选中数据集下的模型

之后他们会自动生成一下的东西

这是窗体上应该具备的东西

这是一个外部空间需要引用,具体我还没自己引用过,我做项目时都是人家引用好了的

这里主要是你在rdlc报表中还可以设置参数,主要是用来页面显示的

//查询

private void btnSeach_Click(object sender, EventArgs e)
{


strWhereOne += " ";

strWhereOne += " ";


this.memberChangeOverToShopTableAdapter.FillWhere(this.mc.MemberChangeOverToShop, strWhereOne
, new SqlParameter("@p_AreaID", strAreaID)
, new SqlParameter("@p_ClubID", ClubID));

//// TODO: 这行代码将数据加载到表“mc.MemberChangeOverToShop”中。您可以根据需要移动或删除它。
//this.memberChangeOverToShopTableAdapter.Fill(this.mc.MemberChangeOverToShop,
// strAreaID,
// strClubID);


if (strIsAdvanceSale != "")
{
strWhere += " AND MC_1.IsAdvanceSale=@isAdvanceSale";
}
strWhere += " ";

this.memberTransferShopTableAdapter.FillWhere(this.mc.MemberTransferShop, strWhere
, new SqlParameter("@p_AreaID", strAreaID)
, new SqlParameter("@p_ClubID", ClubID)
);

//// TODO: 这行代码将数据加载到表“mc1.MemberTransferShop”中。您可以根据需要移动或删除它。
//this.memberTransferShopTableAdapter.Fill(this.mc.MemberTransferShop,
// strAreaID,
);
}
catch (Exception ex)
{

if (strIsAdvanceSale != "")
{
strWhereOne += " AND MC_1.IsAdvanceSale=@isAdvanceSale";
}

strWhereOne += &q

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇什么是Spring框架? Spring框架有.. 下一篇Python从零搭建Conf_Web配置管理..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目