上一个主题下一个主题


教程 1:构建简单的列表报告

本节提供构建列示客户名、电话号码和联系人姓名的报告的逐步指示信息。该报告使用随 BIRT 报告设计器提供的样本数据库 Classic Models 中的数据。图 1-1 显示已完成的报告的一部分。

图 1-1 列示客户名、电话号码和联系人的报告

在本教程中,您将执行下列任务:

任务 1:创建新项目

Eclipse 根据项目来组织文件。可以创建一个项目来组织所有的报告或创建多个项目来按类别组织报告。对于创建的每个项目,Eclipse 都会在文件系统中创建一个目录。

如果使用的是 BIRT RCP 报告设计器,则本任务不适用。

  1. 选择“文件”->“新建”->“项目”。图 1-2 中的“新建项目”将显示可以创建的项目的类型。
  2. 图 1-2 新建项目
  3. 展开“商业智能和报告工具”,选择“报告项目”,然后选择“下一步”。
  4. 在“新建报告项目”的“项目名称”中输入下列文本,如图 1-3 所示:
  5. 我的报告 
     

    图 1-3 新建报告项目
  6. 要添加项目,请选择“完成”。现在可在“导航器”视图中看到该项目,如图 1-4 所示。
  7. 图 1-4 “导航器”视图中的项目

任务 2:创建新报告

可以通过以下方式创建报告:

对于本教程,将从空白报告设计开始。

  1. 选择“文件”->“新建”->“报告”。将出现“新建报告”。图 1-5 显示出现在 BIRT 报告设计器中的窗口。“新建报告”在 BIRT RCP 报告设计器中会略有不同。
  2. 图 1-5 BIRT 报告设计器中的“新建报告”
  3. 在 BIRT 报告设计器的“输入或选择父文件夹”下,选择创建的项目。此步骤仅适用于 BIRT 报告设计器用户。
  4. 输入下列文本作为文件名:
  5. Customers.rptdesign 
    
  6. 选择“下一步”。“新建报告”提供了一些选项,通过这些选项您可以从空白报告开始或从几个报告模板开始,如图1-6 所示。
  7. 图 1-6 “新建报告”中的报告模板
  8. 选择空白报告,然后选择“完成”。新报告将出现在主窗口中。此窗口显示布局编辑器,如图 1-7 所示。布局编辑器将显示空的报告页。

本教程的其余部分提供用于创建客户报告的详细步骤。

图 1-7 空白报告设计

任务 3:构建数据源

在布局编辑器中开始设计报告之前,构建 BIRT 数据源以将报告连接至数据库或其他类型的数据源。构建数据源时,要指定驱动程序类、数据源名称和其他连接信息(例如,用户名和密码)。对于本教程,您使用的是已经配置为与 BIRT 报告设计器配合使用的样本数据库 Classic Models。不需要对此样本数据库指定连接信息。

  1. 选择“数据资源管理器”。如果使用缺省报告设计透视图,则“数据资源管理器”位于布局编辑器的左边,在“选用板”的旁边,如图 1-8 所示。如果它尚未打开,则选择“窗口”->“显示视图”->“数据资源管理器”。
  2. 图 1-8 数据资源管理器
  3. 右键单击“数据源”,然后从上下文菜单中选择“新建数据源”。“新建数据源”显示可以创建的数据源的类型,如图 1-9 所示。
  4. 图 1-9 新建数据源
  5. 从数据源类型列表中选择 Classic Models Inc. 样本数据库。使用缺省数据源名称,然后选择“下一步”。将出现有关该新数据源的连接信息。
  6. 选择“完成”。BIRT 报告设计器创建一个连接至样本数据库的新数据源。它将出现在“数据资源管理器”的“数据源”中,如图 1-10 所示。
  7. 图 1-10 “数据资源管理器”中的“数据源”

任务 4:构建数据集

现在,您就可以开始构建数据集了。数据集标识要从数据源检索的数据。如果报告连接至 JDBC 数据源,则使用 SQL SELECT 语句来标识要检索的数据。

  1. 在“数据资源管理器”中,右键单击“数据集”并从上下文菜单中选择“新建数据集”。
  2. 在“新建数据集”的“数据集名称”中,输入下列文本,如图 1-11 所示:
  3. Customers 
     

    图 1-11 新建数据集
  4. 对于其他字段,请使用缺省值:
    • “数据源”显示先前创建的数据源的名称。
    • “数据集类型”指示该数据集使用 SQL SELECT 查询。
  5. 选择“下一步”。
  6. “查询”显示可帮助您创建 SQL 查询的信息。“可用项”列示 Classic Models 数据库中的所有表。可以单击表旁边的加号(+)标志来显示该表的各个列。“编辑数据集”右边的文本区域显示 SQL SELECT 语句的必需关键字:
     中选择 
    
    
  7. 在文本区域中,输入下列 SQL SELECT 语句以指定要检索的数据:
  8. 从 Customers 中选择 customerName、contactLastName、contactFirstName 和 phone
    虽然数据集编辑器以大写字母显示表和列名称,但可用您喜欢的方式输入这些名称,因为 SQL 不区分大小写。如果您不想输入查询,则可将列和表从“可用项”拖动到文本区域。
    您创建的这个 SELECT 语句(显示在图 1-12 中)从 CUSTOMERS 表的 CUSTOMERNAME、CONTACTLASTNAME、CONTACTFIRSTNAME 和 PHONE 列获取值。

    图 1-12 “编辑数据集”中的 SQL SELECT 语句
  9. 选择“完成”以保存数据集。“编辑数据集”将显示在查询中指定的列,并提供编辑数据集的选项。
  10. 选择“预览结果”以确保查询有效并且它返回正确的数据。如果正确输入了 SELECT 语句,您应该看到图 1-13 中显示的结果。这些是查询返回的数据行。
  11. 图 1-13 SQL SELECT 语句返回的数据行
  12. 选择“确定”。

任务 5:对报告进行布局

在本过程中,您在报告页中插入元素以显示先前创建的数据集的数据。先插入一个表元素,然后在该表中插入数据元素。理解表所提供的功能很重要:

  1. 选择“选用板”。选用板显示所有可布置在报告中的元素。
  2. 将选用板中的表元素拖放到布局编辑器内的报告中。“插入表”提示您指定要对此表创建的列数和详细信息行数。
  3. 指定 3 列和 1 个详细信息行,然后选择“确定”。具有 3 列和 1 个详细信息行的表将出现在布局编辑器中。现在,您就可以在该表中插入数据了。
  4. 选择“数据资源管理器”。
  5. 在“数据资源管理器”中,展开“数据集”,然后展开 Customers。在查询中指定的列将出现在 Customers 下面。
  6. 将 CUSTOMERNAME 从“数据资源管理器”中拖放到表的详细信息行中的第一个单元格内,如图 1-14 所示。详细信息行显示报告中的主要数据。在完成的报告中,详细信息行重复显示数据集中的所有数据行。
  7. 图 1-14 将一列从“数据资源管理器”中拖放到表单元格内
    BIRT 报告设计器将创建一个绑定到数据集字段的指定列。“选择数据绑定”(如图 1-15 所示)显示此数据绑定。

    图 1-15 绑定至数据集字段的指定列
  8. 选择“确定”以接受缺省数据绑定定义。
  9. 在布局编辑器中,放置 CUSTOMERNAME 字段的表单元格包含显示 [CUSTOMERNAME] 的数据元素。此数据元素上方是布局编辑器自动添加至表头行的标签元素。此标签将字段名显示为静态文本。它充当列标题。图 1-16 显示数据和标签元素。

    图 1-16 表中的数据和标签元素
  10. 将 PHONE 从“数据资源管理器”中拖放到详细信息行的第二个单元格中。选择“确定”以接受缺省数据绑定。
  11. 将 CONTACTFIRSTNAME 拖放到详细信息行的第三个单元格中。选择“确定”以接受缺省数据绑定。
  12. 将 CONTACTLASTNAME 拖放到详细信息行的第三个单元格中的 CONTACTFIRSTNAME 下面。选择“确定”以接受缺省数据绑定。报告页看起来应如图 1-17 所示。
  13. 图 1-17 添加至表的客户和联系人信息
  14. 选择位于布局编辑器底部的“预览”选项卡。BIRT 报告设计器生成报告并以 HTML 格式显示报告,如图 1-18 所示。向下滚动以查看整个报告。还可用 PDF 格式预览报告。可通过从主菜单中选择“文件”->“以 PDF 格式查看报告”来实现此目标。
  15. 图 1-18 所示,数据是正确的,但它以随机顺序出现。按客户名的字母顺序对数据进行排序将更有意义。报告的外观也需要改进。

    图 1-18 报告数据预览

任务 6:对数据进行排序

第一次创建和预览报告时,报告以查询返回数据行的顺序显示它们。该显示顺序取决于许多因素,例如根据数据在数据源中的提供方式。在大多数情况下,您会想要更改报告中显示数据的顺序。

  1. 选择“布局”以返回至布局编辑器。
  2. 如果需要,可打开“属性编辑器”。如果使用缺省报告设计透视图,则“属性编辑器”出现在布局编辑器下面。如果它尚未打开,则选择“窗口”->“显示视图”->“属性编辑器”。
  3. 在布局编辑器中,通过选择左下角的“表”选项卡来选择该表。将鼠标指针悬浮在此区域上时,将出现此选项卡。“属性编辑器”显示表的属性,如图 1-19 所示。
  4. 图 1-19 属性编辑器
  5. 选择“排序”选项卡。
  6. 选择“添加”以创建排序表达式。在“排序关键字”下面将出现一行。
  7. 单击“排序关键字”下的行,然后选择出现的方向按钮,并从下拉列表中选择 CUSTOMERNAME。
  8. 对“排序方向”使用缺省“升序”值,如图 1-20 所示。
  9. 图 1-20 升序排序方向
  10. 预览该报告。已排序的数据根据客户名按升序顺序出现,如图 1-21 所示。
  11. 图 1-21 按客户名排序的数据
    请注意,具有大写字母的名称出现在列表的顶部。BIRT 按 UCS2 代码点值对字符串数据进行排序。在基于 ASCII 码的字符集中,大写字母的代码点比小写字符的小。因此,大写字母出现在小写字符前面。
  12. 要对不区分大小写的客户名进行排序,以便 ANG Resellers 出现在 American Souvenirs Inc. 后面,而不是前面,请在“排序”页面将“排序关键字”表达式更改成下列表达式:
  13. row["CUSTOMERNAME"].toUpperCase( ) 
    
    此表达式使用 JavaScript toUpperCase( ) 函数在排序前将所有客户名值转换为大写。JavaScript 函数名区分大小写,因此您必须准确地按所显示的输入 toUpperCase( )。对列名称的引用也区分大小写。在此表达式中,row["CUSTOMERNAME"] 是要使用的正确名称。例如,如果输入 row["customername"],则 BIRT 报告设计器在运行报告时会显示错误。可通过查看“数据资源管理器”中显示的名称来验证列名的大小写。
  14. 预览该报告。客户名以不同的顺序出现。包含大写字母的名称未出现在列表的顶部。

任务 7:格式化报告

既然您已验证报告以正确的顺序显示了正确的数据,则可以侧重于改进报告的外观。在本节您将执行下列任务:

编辑列标题

  1. 选择“布局”以返回至布局编辑器。
  2. 双击第一个列标题 CUSTOMERNAME。列标题位于表的第一行,也就是表头行。
  3. 要替换所有突出显示的文本,开始输入,然后在完成时按 Enter 键。要编辑文本,单击一次以取消选择该文本,然后将光标定位在要删除或添加字符的地方。
  4. 将 CUSTOMERNAME 替换为以下文本:
    Customer 
    
  5. 重复步骤 23 以将第二个和第三个列标题替换为下列文本:
  6. Phone 
    Contact 
    
    报告设计看起来应如图 1-22 所示。

    图 1-22 报告设计中修订的列标题

格式化列标题

要格式化报告元素,设置其属性。可采用两种方式完成此任务:

在本过程中,使用第一个方法来将列标题设置为粗体,并使用第二个方法来对表头行添加颜色。

  1. 要使用“属性编辑器”将列标题设置为粗体:
    1. 选择所有列标题。要选择多个元素,请在单击每个元素时按住 Shift 键。“属性编辑器”显示所选元素的属性,如图 1-23 所示。
    2. 图 1-23 “属性编辑器”中所选元素的属性

    3. 选择 B 以将列标题格式化为粗体文本。
    4. 要取消选择列标题,请单击表外部的空白处。
  2. 要对表头行添加背景色,请使用样式:
    1. 从主菜单选择“元素”->“新建样式”。
    2. 将出现“新建样式”,如图 1-24 所示。属性类别显示在左边。所选类别的属性显示在右边。

      图 1-24 新建样式
    3. 对于“定制样式”,请为样式指定下列名称:
    4. table_header_row 
      
    5. 从属性类别列表中选择“背景”。“新建样式”显示可以设置的背景属性。
    6. 使用下列其中一种方法指定“背景色”属性的颜色:
      • 选择属性旁边的按钮,然后从出现的调色板中选择一种颜色。
      • 从下拉列表中选择一种颜色。
      选择“确定”。
    7. 在布局编辑器中,通过选择左下角的“表”选项卡来选择该表。将鼠标指针悬浮在此区域上时,将出现此选项卡。指导单元格出现在表的左上部,如图 1-25 所示。
    8. 图 1-25 表左上部的指导单元格
    9. 选择表头行旁边的指导单元格。“属性编辑器”显示所选行的属性。
    10. 选择“属性”,然后选择“常规”以显示行的常规属性。
    11. 应用刚通过从样式旁边的下拉列表中选择 table_header_row 创建的样式。BIRT 报告设计器对表头行应用样式,且表头行显示为彩色。
  3. 预览该报告。报告看起来应如图 1-26 所示。
  4. 图 1-26 报告预览,显示表头行样式
    到目前为止,主要的改进是标题清晰可视且明确定义。

在同一行上显示名字和姓氏

将多个元素放在单个单元格中时,BIRT 报告设计器将创建块级别元素。如果您熟悉 HTML,就知道每个块元素都从新的一行开始。要在同一行上显示多个元素,需要将它们设置为内联元素。或者,您可以连接名字值和姓氏值以将它们显示在单个数据元素中,如本过程所述。

  1. 选择“布局”以返回至布局编辑器。
  2. 删除显示联系人姓氏的数据元素。
  3. 双击显示联系人名字的数据元素。
  4. “选择数据绑定”显示报告中使用的所有数据绑定。CONTACTFIRSTNAME 旁边的选取标记指示所选数据元素使用的数据绑定。
  5. 在显示 dataSetRow["CONTACTFIRSTNAME"] 表达式的单元格中单击,然后选择省略号(...)按钮。
  6. 表达式构建器在窗口顶部的文本区域中显示以下表达式:
    dataSetRow["CONTACTFIRSTNAME"] 
    
  7. 要连接名字和姓,请使用以下表达式:
  8. dataSetRow["CONTACTFIRSTNAME"]+" "+ 
    dataSetRow["CONTACTLASTNAME"] 
    
    图 1-27 在表达式构建器中显示此表达式。空的引号(" ")在名字和姓之间添加一个空格。可在文本区域输入表达式,或双击窗口右下角中的项以将其插入到表达式中。

    图 1-27 表达式构建器中已并置到一起的连接数据
  9. 选择“确定”以关闭表达式构建器,然后在“选择数据绑定”中选择“确定”以保存已修改的表达式。
  10. 预览该报告。报告看起来应如图 1-28 所示。
  11. 图 1-28 报告预览,显示连接的联系人姓名

增大行之间的间隔

缺省布局在表行之间添加最小的间隔。通常,您将需要调整行之间的间隔。

  1. 选择“布局”以返回至布局编辑器。
  2. 选择详细信息行(中间行)中的所有单元格。要选择多个单元格,请在单击时按住 Shift 键。请仔细选择单元格,不要选择单元格中的数据元素。所选单元格周围将出现一个框,如图 1-29 所示。
  3. 图 1-29 布局编辑器中的所选单元格
    “属性编辑器”显示单元格的属性。“属性编辑器”中出现的标题显示选择的元素的类型,因此您应该看到“属性编辑器 - 单元格”。
  4. 选择“边距”。“属性编辑器”显示边距属性。这些属性使您能够指定要在元素的上下左右增加的间距大小。
  5. 将“边距 - 顶部”设置为 12 磅。
  6. 此时,您可能想知道不只选择要调整行间距的行,而要选择行的中各个单元格的原因。BIRT 报告设计器不支持行边距,因为一些浏览器不支持此功能。
  7. 预览该报告。报告看起来应如图 1-30 所示。数据行之间的间距较大。
  8. 图 1-30 报告预览,显示行间距

任务 8:创建报告标题

现在,您的报告只需要一个标题了。要显示标题,可以使用标签元素、文本元素或数据元素:

在此过程中,使用文本元素和 HTML 标记来格式化文本。请注意,不要求您使用 HTML 来创建格式化文本。但是,如果您非常精通 HTML 或 Web 设计,那么您可以选择使用 HTML 来创建格式化文本块。

  1. 选择“布局”以返回至布局编辑器。
  2. 选择“选用板”。
  3. 将选用板中的文本元素拖放到表上方。
  4. 在“编辑文本项”上,从显示纯文本的下拉列表中选择“HTML/动态文本”。
  5. 当选择 HTML 或动态文本时,可以在该文本中嵌入 HTML 标记或 CSS 属性。可以输入这些标记,也可以插入文本编辑器提供的常用 HTML 标记。
  6. 在文本区域中指定以下文本,如图 1-31 所示:
  7. <CENTER><B><span style="font-size: larger"> 
    Customer List 
    </B></span><BR> 
    <FONT size="small">For internal use only</FONT><BR><BR> 
    Report generated on <VALUE-OF>new Date( )</VALUE-OF> 
    </CENTER><BR><BR> 
     

    图 1-31 带有 HTML 标记的文本
  8. 选择“确定”,然后预览报告。报告看起来应如图 1-32 所示。
  9. 图 1-32 报告预览,显示格式化报告标题

正如您看到的那样,通过使用带有嵌入式 HTML 的文本元素,您可以:

或者,您可以:

接下来的步骤

您刚刚构建了第一个报告并且使用了 BIRT 报告设计器的一些基本工具和功能。构建更复杂的报告还要完成许多任务。在本书的其他章节中描述的这些任务中的一部分,包括:


(c) Copyright Actuate Corporation 2006

上一个主题下一个主题