现有如下格式报表要做:表一字段1 表一字段2 ... 表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
......... ......... .........
----------------------------------------------------------------------
表一字段1 表一字段2 ... 表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
......... ......... .........
----------------------------------------------------------------------
表一字段1 表一字段2 ... 表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
......... ......... .........表一里的字段只取一,表二字段与表一相对应.或多或少... 类似每家有几口人的问题一样,表一存基本信息,表二存详细信息...
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
......... ......... .........
----------------------------------------------------------------------
表一字段1 表一字段2 ... 表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
......... ......... .........
----------------------------------------------------------------------
表一字段1 表一字段2 ... 表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
表二字段1 表二字段2 表二字段3
......... ......... .........表一里的字段只取一,表二字段与表一相对应.或多或少... 类似每家有几口人的问题一样,表一存基本信息,表二存详细信息...
)创建主从报表
在报表中,有许多报表是主从表结构,比如订单与订单商品明细,订单是一个表中的一条记录,而分录是另一个表中的多条记录,两个表通过一个字段关联起来,这种报表可利用其分组功能实现。
(1)新建一个工程
(2)往FORM1中添加一个CrystalReportViewer控件
(3)在服务噐资源管理器中连接到SQL SERVER 2000上的Northwind数据库
(4)添加一个数据集Dataset1,将服务器资源管理器中的Orders和 Order Details加入到数据集中。
(5)添加一个水晶报表,使用报表专家,在项目数据中选择“ADO.NET数据集”,插入表Orders和 Order Details,“链接”中是关联字段的链接,在“字段”中选择要显示的主表和明细表的字段,组中选择分组依据为Orders表OrdersID字段,总计,图表,选择(可进行筛选),样式(可设置报表标题),可自行设置。设置完后,点击完成。
(6)在报表设计器中调整需要显示的字段的位置、宽度等。
(7)在窗口中添加代码。
public PrintForm()
{
InitializeComponent();OleDbConnection conn=new OleDbConnection("data source=PMSERVER;initial catalog=Northwind;user id=sa;password=sa");
Dataset1() ds = new Dataset1();OleDbDataAdapter da1=new OleDbDataAdapter("select * from orders",conn);
da1.Fill(ds,"orders");OleDbDataAdapter da2=new OleDbDataAdapter("select * from [Order Details]",conn);
da2.Fill(ds,"Order Details");CrystalReport1 oCR=new CrystalReport1();
oCR.SetDataSource(ds);
this.crystalReportViewer1.ReportSource = oCR;
}
(8)运行程序3、水晶报表登陆失败
using CrystalDecisions.Shared;
//声明所需变量。
TableLogOnInfo logOnInfo = new TableLogOnInfo();
//对报表中的每个表依次循环。
for (int i=0;i < Report.Database.Tables.Count-1;i++)
{
//设置当前表的连接信息。
logOnInfo.ConnectionInfo.ServerName = serverNameTxt.Text;
logOnInfo.ConnectionInfo.DatabaseName = dbNameTxt.Text;
logOnInfo.ConnectionInfo.UserID = userNameTxt.Text;
logOnInfo.ConnectionInfo.Password = passwordTxt.Text;
Report.Database.Tables [i].ApplyLogOnInfo (logOnInfo);
}
http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242276
看看里面有解决方法