大多数现代报告工具允许您使用几乎任何数据库,然而,并不是所有报表工具都能以一个数据源的列表或数组来工作。本文中将展示如何使用FastReport .Net报表工具来实现。

请注意以下重要几点:

  • 清单中的对象字段应该被描述为在报表中可见的公共属性;

  • 除列表外你可以从任何IEnumerable集中提交你的报表数据;

  • 在报表中转移LINQ查询结果你需要使用ToArray方法转换列表。

创建窗体应用程序。
在报表中给出类别列表,对于每个类别将增加产品列表。
声明变量:

private List<category> FBusinessObject;
private Report FReport;</category>

顾名思义,它是一个类别列表和报表对象。
所以,添加一个类的产品:

public class Product
{
private string FName;
private decimal FUnitPrice; public string Name
{
get { return FName; }
} public decimal UnitPrice
{
get { return FUnitPrice; }
} public Product(string name, decimal unitPrice)
{
FName = name;
FUnitPrice = unitPrice;
}
}

正如你所见,给对象的字段声明是公共的。
现在添加类的类别:

public class Category
{
private string FName;
private string FDescription;
private List<product> FProducts; public string Name
{
get { return FName; }
} public string Description
{
get { return FDescription; }
} public List<product> Products
{
get { return FProducts; }
} public Category(string name, string description)
{
FName = name;
FDescription = description;
FProducts = new List<product>();
}
}</product></product></product>

对象类别的字段之一是一个产品列表,也就是说,一个类别的列表是队列的一个数组。
创建数据源:

public void CreateDataSource()
{
FBusinessObject = new List<category>(); //Create list of categories Category category = new Category("Beverages", "Soft drinks, coffees, teas, beers"); //Create new instance of category
category.Products.Add(new Product("Chai", 18m)); //Add new product to category
category.Products.Add(new Product("Chang", 19m));
category.Products.Add(new Product("Ipoh coffee", 46m)); FBusinessObject.Add(category); //Add the category to the List category = new Category("Confections", "Desserts, candies, and sweet breads");
category.Products.Add(new Product("Chocolade", 12.75m));
category.Products.Add(new Product("Scottish Longbreads", 12.5m));
category.Products.Add(new Product("Tarte au sucre", 49.3m)); FBusinessObject.Add(category); category = new Category("Seafood", "Seaweed and fish");
category.Products.Add(new Product("Boston Crab Meat", 18.4m));
category.Products.Add(new Product("Red caviar", 15m)); FBusinessObject.Add(category);
}</category>

从注释中显而易见,创建了一个对象类别列表。然后创建一个新的类别,并将所需数量的产品添加进去,在类别列表中添加类别。再添加上几类产品。
数据源已经创建,现在你需要在RegisterData方法的帮助下注册报表:

public void RegisterData()
{
FReport.RegisterData(FBusinessObject, "Categories");
}

此方法显示报表中列表名为“Categories”。
在设计器重添加方法运行报表:

public void DesignReport()
{
FReport = new Report();
CreateDataSource();
RegisterData();
FReport.Design();
}

在这里,我们创建了一个报表对象和数据源的实例。我们还注册了数据源,并在设计器中打开报表。
添加一个按钮方法来调用报表设计器:

public void button1_Click(object sender, EventArgs e)
{
DesignReport();
}

在报表设计器中,需要在菜单数据中选择数据源→选择报表数据…

创建一个简单的Master-Detail类型报表:

在预览模式下运行报表:

综上所诉:FastReport .NET再次证明是一个灵活的,现代化产品,您可以在您的应用程序中使用必要的数据而不必将它们转换成数据表。

FastReport.Net中使用列表和数组作为报表数据源的更多相关文章

  1. Perl的列表和数组

    列表和数组 列表 使用括号包围的元素,括号中的元素使用逗号隔开的是列表. 列表中的元素可以是字符串.数值.undef或它们的混合. 列表中的字符串元素需要使用引号包围. 空列表是括号中什么都没有的列表 ...

  2. 对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    引用:https://www.jb51.net/article/142775.htm 列表赋值: 1 2 3 4 5 6 7 >>> a = [1, 2, 3] >>&g ...

  3. julia与python中的列表解析.jl

    julia与python中的列表解析.jl #=julia与python中的列表解析.jl 2016年3月16日 07:30:47 codegay julia是一门很年轻的科学计算语言 julia文档 ...

  4. Java中迭代列表中数据时几种循环写法的效率比较

    Java中经常会用到迭代列表数据的情况,本文针对几种常用的写法进行效率比较.虽然网上已经有了类似的文章,但是对他们的结论并不认同. 常见的实现方法: 1.for循环: for(int i = 0; i ...

  5. Python学习笔记整理(五)Python中的列表.

    列表和字段,这两种类型几乎是Python所有脚本的主要工作组件.他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套. 一.列表 列表的主要属性: *任意对象的有序集合 从 ...

  6. perl5 第四章 列表和数组变量

    第四章 列表和数组变量 by flamephoenix 一.列表二.数组--列表的存贮  1.数组的存取  2.字符串中的方括号和变量替换   3.列表范围  4.数组的输出  5.列表/数组的长度  ...

  7. C语言中的函数、数组与指针

    1.函数:当程序很小的时候,我们可以使用一个main函数就能搞定,但当程序变大的时候,就超出了人的大脑承受范围,逻辑不清了,这时候就需要把一个大程序分成许多小的模块来组织,于是就出现了函数概念:  函 ...

  8. Python中关于列表嵌套列表的处理

    在处理列表的时候我们经常会遇到列表中嵌套列表的结构,如果我们要把所有元素放入一个新列表,或者要计算所有元素的个数的话应该怎么做呢? 第一个例子 对于上图中的这样一组数据,如果我们要知道这个CSV文件中 ...

  9. 剑指Offer 1. 二维数组中的查找 (数组)

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

随机推荐

  1. Linux服务器架设篇,DNS服务器(三),正反解区域的配置

    一.大体架构 DNS服务器其实只有一个"真正"的配置文件,即 /etc/named.conf .其他的配置文件都是依据此配置展开的.每个域都需要两个配置文件,即正解文件和反解文件. ...

  2. 下载SVN项目代码

    1. 到SVN根目录右键选中SVN Checkout...

  3. git撤销远程commit

    git reset --hard [commit_id] git push origin HEAD --force

  4. 用Jenkins集成ios项目设置多scheme,同一代码自动输出多个环境包 实现便捷切换API环境

    Jenkins 安装使用参考我的博客http://www.cnblogs.com/zhujin/p/9064820.html Xcode 配置:说明 一个schema 对应一套环境(如生产,测试),一 ...

  5. AJ学IOS(35)UI之Quartz2D仿真支付宝手势解锁_代理获得密码。

    AJ分享,必须精品 效果: 实现步骤 其实这个实现起来不难 第一步先放好主要的UI,一张背景图和一个View 第二部就是把9个button放到view中,设置好按钮的默认和选中图片. 注意:创建时候的 ...

  6. 基于linux或windows的c/s的循环服务器求一元二次方程的根

    在linux和windows上实现 c/s模式 socket循环服务器求解一元二次方程的根 ax^2+bx+c=0 根据上式,客户端发送a,b,c给服务器,返回求解的根 暂未考虑非法数据等问题 lin ...

  7. (转) POJO和javabean的异同

    参考:http://blog.csdn.net/lushuaiyin/article/details/7436318 一:什么是POJOPOJO的名称有多种,pure old java object ...

  8. Spring 下,关于动态数据源的事务问题的探讨

    开心一刻 毒蛇和蟒蛇在讨论谁的捕猎方式最高效. 毒蛇:我只需要咬对方一口,一段时间内它就会逐渐丧失行动能力,最后死亡. 蟒蛇冷笑:那还得等生效时间,我只需要缠住对方,就能立刻致它于死地. 毒蛇大怒:你 ...

  9. 详解 Set接口

    (请关注 本人"集合"总集篇博文--<详解 Collection接口>) 在Collection接口的子接口中,最重要的,也是最常见的两个-- List接口 和 Set ...

  10. CVE-2019-1388:Windows UAC 本地提权复现

    0x01 简介 用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制.其原理是通知用户是否对应用程序使用 ...