水晶报表怎么显示查询条件
水晶表报数据已经显示好,我想把查询条件显示在报表头中!不如查询条件为2008年12月12日到2009年1月5号,要怎么实现?谢谢!请给具体步骤不会的,和没有诚意的不要乱说...
水晶表报数据已经显示好,我想把查询条件显示在报表头中!
不如查询条件为2008年12月12日到2009年1月5号,要怎么实现?
谢谢!请给具体步骤
不会的,和没有诚意的不要乱说,谢谢!答对我给100,决不食言 展开
不如查询条件为2008年12月12日到2009年1月5号,要怎么实现?
谢谢!请给具体步骤
不会的,和没有诚意的不要乱说,谢谢!答对我给100,决不食言 展开
3个回答
展开全部
主要思路是:使用参数字段,在推模式下将查询条件插入给参数值。
具体实现:
1.在自己的报表中创建一个参数字段,名称为“pam1”,
2.使用推模式(PUSH模式)将数据动态加载给报表
3.上述这两个要点实现后,只要在
da = new OleDbDataAdapter("SELECT * From RPT_CR_TEST1", cn);
加上过滤条件即可
而过滤条件可以通过参数传递给报表,进行显示
myReport.SetParameterValue("pam1","参数值");
下面是推模式创建加载数据的例子:
//水晶报表对象
private ReportDocument myReport;
private void ConfigureCrystalReports()
{
// 定义ReportDocument对象,装载Crystalreport1.rpt
myReport = new ReportDocument();
string reportPath = Server.MapPath("Crystalreport1.rpt");
myReport.Load(reportPath);
//定义水晶报表的数据库连接信息
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.DatabaseName = "user";
connectionInfo.UserID = "pwd";
connectionInfo.Password = "****";
connectionInfo.ServerName = "myoraServer";
//将数据库信息传递给报表
SetDBLogonForReport(connectionInfo, myReport);
//把模板对象赋给报表前端呈现控件CrystalReportViewer1
CrystalReportViewer1.ReportSource = myReport;
}
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
{
Tables tables = reportDocument.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
}
// 注意:将代码防到Page_Init或Page_Load 中
//VS2008必须放到Page_Init中
private void Page_Init(object sender, EventArgs e)
{
ConfigureCrystalReports();
}
}
具体实现:
1.在自己的报表中创建一个参数字段,名称为“pam1”,
2.使用推模式(PUSH模式)将数据动态加载给报表
3.上述这两个要点实现后,只要在
da = new OleDbDataAdapter("SELECT * From RPT_CR_TEST1", cn);
加上过滤条件即可
而过滤条件可以通过参数传递给报表,进行显示
myReport.SetParameterValue("pam1","参数值");
下面是推模式创建加载数据的例子:
//水晶报表对象
private ReportDocument myReport;
private void ConfigureCrystalReports()
{
// 定义ReportDocument对象,装载Crystalreport1.rpt
myReport = new ReportDocument();
string reportPath = Server.MapPath("Crystalreport1.rpt");
myReport.Load(reportPath);
//定义水晶报表的数据库连接信息
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.DatabaseName = "user";
connectionInfo.UserID = "pwd";
connectionInfo.Password = "****";
connectionInfo.ServerName = "myoraServer";
//将数据库信息传递给报表
SetDBLogonForReport(connectionInfo, myReport);
//把模板对象赋给报表前端呈现控件CrystalReportViewer1
CrystalReportViewer1.ReportSource = myReport;
}
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
{
Tables tables = reportDocument.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
}
// 注意:将代码防到Page_Init或Page_Load 中
//VS2008必须放到Page_Init中
private void Page_Init(object sender, EventArgs e)
{
ConfigureCrystalReports();
}
}
2017-03-03
展开全部
用一个类处理查询条件,生成sql代码。然后报表窗口写如下代码:
private void crystalReportViewer1_Load(object sender, EventArgs e)
{
search search = new search(); //引入搜索条件
//string sql = "select * from sort" + myclass.MyString + " order by ID, cint(IIid),cint(number2), IIIid";
string sql =search.MyString;
DataSet ds = new DataSet();
OleDbConnection Olecon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\archives.mdb;Persist Security Info=True;Jet OLEDB:Database Password=lcf138170");
OleDbCommand Olecmd = new OleDbCommand(sql, Olecon);
OleDbDataAdapter Oleapt = new OleDbDataAdapter();
Oleapt.SelectCommand = Olecmd;
Oleapt.Fill(ds, "sql");
CrystalReport51.Load(Application.StartupPath + "CrystalReport5.rpt");
CrystalReport51.SetDataSource(ds.Tables["sql"]);
crystalReportViewer1.ReportSource = CrystalReport51;
}
这是我问了一个朋友,告诉我应该可以这么做的,不知道行不行,我个人已经很久没用水晶报表了,写代码什么的有点麻烦,小白只能用用那些零代码基础的像finereport了 。
private void crystalReportViewer1_Load(object sender, EventArgs e)
{
search search = new search(); //引入搜索条件
//string sql = "select * from sort" + myclass.MyString + " order by ID, cint(IIid),cint(number2), IIIid";
string sql =search.MyString;
DataSet ds = new DataSet();
OleDbConnection Olecon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\archives.mdb;Persist Security Info=True;Jet OLEDB:Database Password=lcf138170");
OleDbCommand Olecmd = new OleDbCommand(sql, Olecon);
OleDbDataAdapter Oleapt = new OleDbDataAdapter();
Oleapt.SelectCommand = Olecmd;
Oleapt.Fill(ds, "sql");
CrystalReport51.Load(Application.StartupPath + "CrystalReport5.rpt");
CrystalReport51.SetDataSource(ds.Tables["sql"]);
crystalReportViewer1.ReportSource = CrystalReport51;
}
这是我问了一个朋友,告诉我应该可以这么做的,不知道行不行,我个人已经很久没用水晶报表了,写代码什么的有点麻烦,小白只能用用那些零代码基础的像finereport了 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、如果你的报表已经(生成页面)成型的情况下,再把条件放在表头,这个没有人做得到
2、如果你的报表还没有成型,那么你就把两个参数字段 直接托到 表头即可,然后格式化该参数字段设置日期显示格式 年 月 日.
或者,新建一个公式字段 DatePara,把以下代码放进去:
cstr({?日期参数1})+'到'+cstr({?日期参数1})
2、如果你的报表还没有成型,那么你就把两个参数字段 直接托到 表头即可,然后格式化该参数字段设置日期显示格式 年 月 日.
或者,新建一个公式字段 DatePara,把以下代码放进去:
cstr({?日期参数1})+'到'+cstr({?日期参数1})
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询