当前位置:首页 » Perl » Perl格式-报表

Perl格式 - 书写报表

Perl格式书写报告编程在线教程,例子在线教程,参考手册和代码 - 如前所述Perl代表着实际提取和报告语言,我们将讨论如何使用Perl来编写报告。

如前所述Perl代表着实际提取和报告语言,我们将讨论如何使用Perl来编写报告。

Perl使用写作模板,所谓的“格式”输出报告。要使用格式的Perl特性,你必须:

  • 定义格式
  • 传递数据将被显示在格式中
  • 调用格式

定义格式

以下是语法来定义一个Perl的格式

    format FormatName =
    fieldline
    value_one, value_two, value_three
    fieldline
    value_one, value_two
    .

FormatName表示的格式的名称。Fieldline是应该被格式化的具体数据。线条表示值,将被输入到的磁力线,与一个句点结束的格式。

Fieldline可以包含任何文本或fieldholders。Fieldholders保持空间的数据将置于在稍后的日期。fieldholder有一个格式:

@<<<<

fieldholder是左对齐,用5空格空间。知道有多少在该字段的空格,您必须自行计算@符号和<的大小。其它字段中持有包括:

@>>>> right-justified
   @|||| centered
   @####.## numeric field holder
   @* multiline field holder

一个例子的格式是:

   format EMPLOYEE =
   ===================================
   @<<<<<<<<<<<<<<<<<<<<<< @<< 
   $name $age
   @#####.##
   $salary
   ===================================
   .

在这个例子中$的名字将被写为左对齐在22个字符的空格和年龄后,在两个空格空间将被写入。


调用格式写入数据

为了调用此格式的声明,我们将使用写关键字:

write EMPLOYEE; #send to the output


问题是,格式的名称通常是一个打开的文件句柄的名字,并写语句将输出发送到这个文件句柄。我们要发送的数据到stdout,我们必须联合起来,并在输出文件句柄的EMPLOYEE。首先,我们必须确保,STDOUT是我们的选择的文件句柄,使用select()函数。

select(STDOUT);

然后,我们将通过设置新的格式名称STDOUT与STDOUT关联EMPLOYEE,使用特殊的变量$〜。

$~ = "EMPLOYEE";

我们现在做的一个write()时,数据将发送给STDOUT。请记住:如果你没有STDOUT设置为默认的文件句柄,你可以恢复到原来的文件句柄分配的返回值,选择一个标量值,使用选择这个标量变量的特殊变量后,被指定的格式命名,名称相关联STDOUT。

上面的例子会产生一个报告按以下格式:

Kirsten              12
   Mohammad             35
   Suhi                 15
   Namrat               10


定义报表表头

一切都看起来很好。但是,如果你想在报告中添加一个头。这头将被打印在每个页面的顶部。它也非常简单的做到这一点。除了自定义一个模板,你必须定义一个报头,它具有相同的名称,但附加_TOP关键字如下:

 format EMPLOYEE_TOP =
   ------------------------
   Name                 Age
   ------------------------
   .
   # by www.gitbook.net


现在,您的报告将看起来像:

------------------------
   Name                 Age
   ------------------------
   Kirsten              12
   Mohammad             35
   Suhi                 15
   Namrat               10

在页面上定义一个分页的行数

如果您的报告采用超过一页怎么办?你有一个解决方案。使用$%报头如下

format EMPLOYEE_TOP =
   ------------------------
   Name                 Age   Page @<
   ------------------------        $%
   .

现在,您的输出将类似于:

------------------------
   Name                 Age   Page 1
   ------------------------    
   Kirsten              12
   Mohammad             35
   Suhi                 15
   Namrat               10

您可以设置每页的行数默认情况下使用特殊的变量$=($ FORMAT_LINES_PER_PAGE)$=60


定义报表页脚

剩下最后要做一件事是页脚,与报头非常相似,你可以定义一个页脚,它会被写入后的每一页。在这里,你会使用_BOTTOM关键字,而不是_TOP。

   format EMPLOYEE_BOTTOM =
   End of Page @<
               $%
   . #by www.gitbook.net

这会给你下面的结果:

------------------------
   Name                 Age   Page 1
   ------------------------    
   Kirsten              12
   Mohammad             35
   Suhi                 15
   Namrat               10
   End of Page 1

对于一个完整的一套相关的格式化的变量,请参考 Perl特殊变量部分。