菜鸟请教。。。如果用拉模式下的水晶报表导出CSV

Rainy_mimi 2010-07-22 09:57:22
V2005+SQL2005,有一个做好了的报表(RPT格式),用的是拉模式。用VS2005直接预览rpt文件,导出没有问题。

我是初学者,自己写了一段代码,

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;

namespace CRTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CrystalReportSource1.ReportDocument.SetDatabaseLogon("sa", "sql2000", @"EVEREST6VM", "EVEREST_SMAPLE");
CrystalReportSource1.ReportDocument.SetParameterValue("dStartDate", "2005,07,20 00:00:00");
CrystalReportSource1.ReportDocument.SetParameterValue("dEndDate", "2008,07,20 00:00:00");
CrystalReportSource1.ReportDocument.SetParameterValue("User", "SUP");
CrystalReportSource1.ReportDocument.SetParameterValue("Division Code", "");

CrystalReportSource1.DataBind();
CrystalReportViewer1.ReportSource = CrystalReportSource1;
CrystalReportViewer1.DataBind();
}

}
}


报表是在Default.aspx上用CrystalReportSource1手动选择的。
CrystalReportViewer1,CrystalReportSource1,两个放的控件。

问题:
1,绑定*.rpt文件后,Default.aspx上有一个错误提示Error: Object reference not set to an instance of an object.
(这个问题只可以忽略,还是会对程序有什么影响,要怎么解决?)
2, 运行后,首先出现一个数据库登录界面,要求输入密码。
(如何取消这个界面提示,并且不影响报表的预览?)
3,报表预览自带的图标不显示,EXPORT和PRINT功能不可用。
(图标怎么才能正常显示?)
4,菜鸟想往写,以实现CSV文档的记录导出。请指点。


很着急的一个问题,昨天也有发帖,但是问题没有解决。我今天一直在线呢,请各位大哥指教,小妹跪谢了。

...全文
107 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
东莞寻香苑 2010-07-22
  • 打赏
  • 举报
回复
如果不太熟悉还是PUSH模式算了,比较方便
Rainy_mimi 2010-07-22
  • 打赏
  • 举报
回复
oRpt.Database.Tables[0].ApplyLogOnInfo(logOnInfo);

RPT里面是引用了3个表,这样写的话,编译做对有问题呢
Meeumom 2010-07-22
  • 打赏
  • 举报
回复
你没有定义啊,当然会有登陆界面啊~~
ableLogOnInfo logOnInfo = new TableLogOnInfo();
//这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
ReportDocument oRpt = new ReportDocument();
//获取.rpt文件真实路径
oRpt.Load(Server.MapPath("CrystalReport1.rpt"));
logOnInfo.ConnectionInfo.ServerName = "**";
logOnInfo.ConnectionInfo.DatabaseName = "**";
logOnInfo.ConnectionInfo.UserID = "**";
logOnInfo.ConnectionInfo.Password = "**";
oRpt.Database.Tables[0].ApplyLogOnInfo(logOnInfo);
//建立.rpt文件与CryStalReportviewer文件之间的连接
CrystalReportViewer1.ReportSource = oRpt;
阿泰 2010-07-22
  • 打赏
  • 举报
回复
[QUOTE]
现在有一个程序的BUG让改,就是在现有的RPT文件上,修正CSV导出重复数据的问题,用DELPHI写的,我想在C#上试试,看导出来的CSV会不会也是重复的
[/QUOTE]

单纯的代码移植是不会解决这个问题的。


“RPT文件用到了3个表”,orpt.Database.Tables[0].ApplyLogOnInfo(logoninfo); 这个却只给了第一个表。

花几分钟仔细看看下面这篇文章,烦躁的心情对解决问题没什么帮助。

【水晶报表内功心法】--PULL模式样板招式 [推荐]

你先要把报表跑通,才能去看怎么导出到csv,是什么导致了数据重复。
一步一步来,呵呵。
雷肿么了 2010-07-22
  • 打赏
  • 举报
回复
 前来帮顶..
Rainy_mimi 2010-07-22
  • 打赏
  • 举报
回复

TableLogOnInfo logoninfo = new TableLogOnInfo();
ReportDocument orpt = new ReportDocument();
orpt.Load("C:\\Documents and Settings\\RSuresh\\Desktop\\Employee Earnings (Summary).RPT");
logoninfo.ConnectionInfo.ServerName = "EVEREST6VM";
logoninfo.ConnectionInfo.DatabaseName = "EVEREST_SMAPLE";
logoninfo.ConnectionInfo.UserID = "sa";
logoninfo.ConnectionInfo.Password = "sql2000";

orpt.SetParameterValue("dStartDate", "2005,07,20 00:00:00");
orpt.SetParameterValue("dEndDate", "2008,07,20 00:00:00");
orpt.SetParameterValue("User", "SUP");
orpt.SetParameterValue("Division Code", "");

orpt.Database.Tables[0].ApplyLogOnInfo(logoninfo);
CrystalReportViewer1.ReportSource = orpt;


这样改了以后,还是会有登录界面,
而且在输入密码以后,点LOG ON,没有反应,我想应该就是前面提及的原因,我的RPT文件用到了3个表。

高手么呢?跪求啊。。。
Rainy_mimi 2010-07-22
  • 打赏
  • 举报
回复
不是我不想用,是刚接触两天,完全是零基础,现在有一个程序的BUG让改,就是在现有的RPT文件上,修正CSV导出重复数据的问题,用DELPHI写的,我想在C#上试试,看导出来的CSV会不会也是重复的,以确认问题出在哪里。

谢谢,有知道的大哥么?我在网上找不着关于这方面的资料。

4,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧