C# Code:

private void button4_Click(object sender, EventArgs e)
{
   //打印主从表数据 
   string file = Application.StartupPath @"\MasterDetail.frx";
   rptMasterDetail.Load(file);//加载报表模板文件 
   
   DataSet ds = DAL.GetMasterDetailData();//取报表数据 
   
   rptMasterDetail.RegisterData(ds.Tables[0], "tb_SO"); //注册数据源,主表 
   rptMasterDetail.RegisterData(ds.Tables[1], "tb_SOs"); //注册数据源,从表 
   
   // 
   //直接注册DataSet也行,但必须对DataSet.Tables指定表名! 
   //FastReport是跟据表名取DataTable对象的。 
   // 
   //rptMasterDetail.RegisterData(ds); 
   // 
   
   //给DataBand(主表数据)绑定数据源 
   DataBand masterBand = rptMasterDetail.FindObject("Data1") as DataBand;
   masterBand.DataSource = rptMasterDetail.GetDataSource("tb_SO"); //主表 
   
   //给DataBand(明细数据)绑定数据源 
   DataBand detailBand = rptMasterDetail.FindObject("Data2") as DataBand;
   detailBand.DataSource = rptMasterDetail.GetDataSource("tb_SOs"); //明细表 
   
   //重要!!给明细表设置主外键关系! 
   detailBand.Relation = new Relation();
   detailBand.Relation.ParentColumns = new string[] { "SONO" };
   detailBand.Relation.ParentDataSource = rptMasterDetail.GetDataSource("tb_SO"); //主表 
   detailBand.Relation.ChildColumns = new string[] { "SONO" };
   detailBand.Relation.ChildDataSource = rptMasterDetail.GetDataSource("tb_SOs"); //明细表 
   
   //准备工作,显示报表预览窗体 
   rptMasterDetail.Prepare();
   rptMasterDetail.ShowPrepared(true, this);
   
}
具体步骤:

1. 加载报表模板文件,Load()。
2. 通过DAL层获取报表数据,返回DataSet类型,包含两张数据表(主表tb_SO, 明细表tb_SOs)。
3. RegisterData,注册数据源。(重要)
4. 给DataBand对象绑定数据源,名为Data1绑定主表,Data2绑定明细表。(重要)
5. 给明细表DataBand设置主外键关系。 (重要)
6. 准备报表,显示预览窗体。

fastreport for .net 数据邦定的更多相关文章

  1. [WPF系列]-数据邦定之DataTemplate 根据对象属性切换模板

      引言 书接上回[WPF系列-数据邦定之DataTemplate],本篇介绍如何根据属性切换模板(DataTemplate)   切换模板的两种方式:   使用DataTemplateSelecto ...

  2. ASP.NET中数据邦定效率问题的一点看法 - 转载(自由的天空)

    在 做Asp.NET开发的时候经常用到DataList.Repeater等,用这些控件的时候经常用到数据邦定,很多程序员都是按照MS提供的方 法<%#DataBinder.Eval(Contai ...

  3. [WPF系列]-数据邦定之DataTemplate 对分层数据的支持

    到目前为止,我们仅讨论如何绑定和显示单个集合. 某些时候,您要绑定的集合包含其他集合. HierarchicalDataTemplate 类专用于 HeaderedItemsControl 类型以显示 ...

  4. [WPF系列]-数据邦定之DataTemplate 使用 DataTrigger 来应用属性值

    使用 DataTrigger 来应用属性值 当前表示不会告诉我们某个 Task 是家庭任务还是办公室任务.记住 Task 对象拥有类型为 TaskType 的 TaskType 属性,该类型是一个枚举 ...

  5. [WPF系列]-数据邦定之DataTemplate简介

    引言 WPF 数据模板化模型为定义数据的表示形式提供了很大的灵活性.WPF 控件有支持自定义数据表示形式的内置功能.首先介绍下如何定义Datatemplate,然后再介绍其他数据模板化功能,例如根据自 ...

  6. [WPF系列]-数据邦定之DataTemplate 对 ItemsControl 进行样式和模板处理

    引言   即使 ItemsControl 不是 DataTemplate 所用于的唯一控件类型,将 ItemsControl 绑定到集合仍然很常见. 在 DataTemplate 中有哪些内容一节中, ...

  7. ServerSocket 默认邦定IP

    转自:http://cuisuqiang.iteye.com/blog/2037769 开发中需要开启服务端的时候,本地测试都是直接写端口,实际环境也是需要指定要邦定的IP才可以. 因为对于服务器来说 ...

  8. vue+mock.js+element-ui模拟数据搞定分页

    效果如图: 前提是搭好vue前端框架,npm install mockjs引入mock.js 当前页全部代码如下,其他有关element-ui的引入未提到,仅作参考用 <!-- 用户管理 --& ...

  9. excel表数据生成定长txt数据

    项目作业中需要造数据,从txt文件中获取定长数据,直接从txt中修改,会显得十分麻烦,于是便利用excel自带的vba写了一个小工具.效果如下: A1表示字段名,A2表示长度,A3是数据,也可以增加字 ...

随机推荐

  1. 【英语】Bingo口语笔记(51) - 相信怀疑的表达

  2. java中正则表达式的应用

    java.util.regex   Pattern的应用 public static void main(String[] args) { //简单的正则匹配.从给定的字符串中匹配正则表达式 //匹配 ...

  3. 仿Twitter登陆移动背景效果

    有使用Twitter客户端的朋友应该有发现在登录的时候,屏幕上方和下方的云朵图片是不断移动着的,再加上Twitter那支可爱的小鸟在不停的动着,给人的感觉就好像是小鸟在飞翔一样,感觉效果很不错. 我也 ...

  4. MYSQL中delete删除多表数据

    MYSQL中delete删除多表数据 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 ...

  5. 【PHP入门到精通】:Ch03:PHP语言基础

    1, PHP风格 这里为了显示代码把"<"和">"和key值以空格分开了,实际书写时切记不要将其分开: (1) < ?php ? >: ...

  6. 使GridView可以单行横向滑动

    最近做的练手的小项目中存在一个横向滑动的问题,需要HorizontalScroll中嵌套GridView,但是GridView默认是竖直排放的item,况且HorizontalScroll与GridV ...

  7. 数学概念 z

    数学是很难的科学,但因为它是科学家用数学来解释宇宙的语言,我们无可避免的要学习它.看看下面的这些 GIF 动图,它们提供了视觉的方式来帮助你理解各种数学技巧. 1.椭圆的画法 2.杨辉三角问题(Pas ...

  8. C++容器和算法

    转自:http://www.cnblogs.com/haiyupeter/archive/2012/07/29/2613145.html 容器:某一类型数据的集合. C++标准顺序容器包括:vecto ...

  9. Delphi 提示在Delphi的IDE中,按Ctrl+Shift+G键可以为一个接口生成一个新的GUID。

    对于Object Pascal语言来说,最近一段时间最有意义的改进就是从Delphi3开始支持接口(interface),接口定义了能够与一个对象进行交互操作的一组过程和函数.对一个接口进行定义包含两 ...

  10. Eclipse的SVN插件安装

    两种方法: 首先下载安装到eclipse的svn插件包,包里会有“plugins”和“features”两个文件夹,安装时要用到. 1.然后找到eclipse目录下的同名文件夹“plugins”和“f ...