愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • Report

    • 報表設計

      • 建立報表
      • 報表說明
      • 報表設計基礎
      • 群組與聚合
      • 格式化與高亮顯示
      • 巢狀報表(子報表)
      • 程式
      • 交叉報表
      • 表格型別報表
      • 圖表
      • 互動報表
      • 對話方塊視窗
        • 1. 控制元件
        • 2. "Hello World!"報表
        • 3. 輸入參數並將參數傳遞至報表
        • 4. 與控制元件互動
        • 5. 幾種對話方塊的形式
        • 6. 管理對話方塊
      • 報表嚮導
      • 預覽列印輸出
    • 報表對像說明

  • Script

  • EChart

  • Chart

  • DB Install

  • HiDesk

  • HiNAT

  • ReportBuilder

目录

對話方塊視窗

# 對話方塊視窗

  與通常的報表設計頁面一樣,您可以在報表中使用對話表單。使用設計器工具欄中的新對話方塊按鈕在通常的報表設計器中建立對話表單:該按鈕為報表新增了一個新的對話頁面選項卡。切換到對話方塊頁面選項卡時,設計器工作區將更改為顯示錶單,對像工具欄將更改為顯示可以放置在表單上的控制元件對像:

# 1. 控制元件

  以下是可以使用在對話方塊中的控制元件列表。

圖示 名稱 描述
TfrxLabelControl 文字控制元件,在對話表格上顯示固定文字
TfrxEditControl 編輯控制元件,使用鍵盤輸入文字
TfrxMemoControl 多行編輯控制元件,使用鍵盤輸入多行文字
TfrxButtonControl 按鈕控制元件,代表一個按鈕
TfrxCheckBoxControl 覈取方塊控制元件,代表一個標誌,有兩個狀態:啟用或禁用; 有一個相鄰的標籤
TfrxRadioButtonControl 單選按鈕控制元件,代表一個單選按鈕,如表單上使用了此控制元件則必須有多個
TfrxListBoxControl 列表控制元件,表示可以從中選擇一個專案的列表
TfrxComboBoxControl 下拉選擇列表控制元件,表示可從中選擇一個專案的下拉選單
TfrxPanelControl 面板控制元件,表示可以包含其他對象的面板
TfrxGroupBoxControl 分組框控制元件,表示可以包含其他對象的標記框
TfrxPageControl 標籤頁面控制元件,表示多個使用標籤進行切換的頁面
TfrxDateEditControl 日期選擇控制元件,表示具有日期條目的下拉日曆的欄位
TfrxImageControl 影象控制元件,表示BMP,ICO,WMF或EMF格式的圖片
TfrxBevelControl 邊框控制元件,在表單上顯示行和框架的控制元件
TfrxBitBtnControl 圖片按鈕控制元件,表示包含圖片的按鈕
TfrxSpeedButtonControl 快速選擇按鈕控制元件,表示包含圖片的速度按鈕
TfrxMaskEditControl 掩碼編輯控制元件,使用鍵盤輸入文字並使用掩碼遮蓋的編輯框
TfrxCheckListBoxControl 覈取方塊選擇控制元件,表示通過覈取方塊選擇的專案列表

  關於控制元件的屬性、事件與方法資訊請參考FastReport元件幫助文件。

# 2. "Hello World!"報表

  在此示例中,我們將建立一個報表,在建立預覽之前,使用對話方塊視窗顯示問候視窗。

  打開設計器,並在報表中新增一個對話方塊。在表單上放置TfrxLabelControl和TfrxButtonControl對象。

  設定對像屬性:

Label:
Caption = 'Hello, World!'

Button:
Caption = 'OK'
Default = True
ModalResult = mrOk
1
2
3
4
5
6
7

  為表單設定BorderStyle = bsDialog屬性。控制元件和表單都具有與控制元件相同的屬性集。

  完成對話方塊設計后,返回到報表設計Page1選項卡,並在頁面上放置包含問候語的文字對象。

  預覽報表,您將看到對話方塊:

  單擊[OK]按鈕后,對話方塊將關閉,並構建並顯示報表。如果通過單擊系統功能表[X]按鈕關閉對話方塊,則不會構建報表。 FastReport的工作方式如下:如果報表中有對話表單,則僅在使用ModalResult = mrOk關閉每個對話方塊后構建報表,即在此示例中單擊[ОК]按鈕。這就是為什麼按鈕的ModalResult屬性必須設定為mrOk。

# 3. 輸入參數並將參數傳遞至報表

  接下來讓這個例子做的複雜一些,以展示如何將對話中輸入的值傳輸到報表中。修改對話方塊如下:

  在報表Page1上放置一個包含此文字的文字對象,並將其AutoWidth設定為True。在文字對像中輸入的內容如下:

您輸入的內容為: 
[Edit1.Text]
1
2

  預覽報表並確保在報表中成功顯示輸入的文字。可以以類似的方式訪問對話中的其他對象。由於每個對象的名稱在整個報表中都是唯一的,因此可以在同一報表中的任何位置使用。

# 4. 與控制元件互動

  通過使用指令碼,複雜的邏輯可以合併到對話的操作中。讓我們用一個簡單的例子來說明這一點:修改表單如下:

  雙擊CheckBox對像以建立OnClick事件處理程式並輸入以下指令碼:

procedure CheckBox1OnClick(Sender: TfrxComponent);
begin
  Button1.Enabled := not CheckBox1.Checked;
end;
1
2
3
4

  在運行報表時,按鈕會響應覈取方塊的狀態。

# 5. 幾種對話方塊的形式

  讓我們看看有兩個對話的報表是如何工作的。建立包含兩個對話方塊和一個設計頁面的報表:

  將[確認]和[取消]按鈕的ModalResult屬性分別設定為mrOk和mrCancel。

  現在運行報表。首先,使用者將被要求回答第一個對話(姓名,是否有孩子)的問題,然後點選[確認],打開第二個對話(孩子的名字)。在第二個對話方塊中單擊[確認]后,將構建報表。 FastReport以這種方式處理多個對話:對話以其建立順序顯示; 每個對話方塊僅在使用ModalResult = mrOk關閉前一個對話方塊后顯示(在本例中,單擊每個[確認]按鈕)。如果使用[取消]按鈕或系統功能表[Х]按鈕關閉任何對話方塊,則會阻止構建報表。

# 6. 管理對話方塊

  在前面的示例中,無論是否勾選是否有孩子?,都會顯示第二個對話方塊。讓我們展示如何在未選中此標誌時隱藏第二個對話方塊。在第一個對話方塊上為[確認]按鈕建立一個OnClick處理程式(雙擊按鈕建立處理程式):

procedure Button1OnClick(Sender: TfrxComponent);
begin
  DialogPage2.Visible := CheckBox1.Checked;  
end;
1
2
3
4

  如果未選中該選框,則此程式碼隱藏第二個對話方塊(DialogPage2)。預覽報表以檢視其是否正常工作。

  管理表單的另一種方法是使用OnRunDialogs報表事件。要建立此事件處理程式,請在報表樹或對像檢查器中選擇報表對象,然後切換到對像檢查器中的事件選項卡。雙擊OnRunDialogs事件以建立處理程式:

  在處理程式中編寫以下程式碼:

procedure frxReport1OnRunDialogs(var Result: Boolean);
begin
  Result := DialogPage1.ShowModal = mrOk;
  if Result then
  begin
    if CheckBox1.Checked then
      Result := DialogPage2.ShowModal = mrOk;
  end;  
end;
1
2
3
4
5
6
7
8
9

  處理程式的工作方式如下:顯示第一個對話方塊:如果通過[確認]按鈕關閉,則檢視CheckBox1的狀態:如果此狀態為Checked,則顯示第二個對話方塊:如果第二個對話方塊通過[確認]按鈕關閉則將Result設定為True。如果處理程式返回Result=True然後構建預覽;如果Result=False,則報表停止運行而不構建預覽。

互動報表
報表嚮導

← 互動報表 報表嚮導→

Copyright © 2021-2025 愛招飛IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式