當前位置:首頁 » 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特殊變量部分。