翻譯|行業資訊|編輯:胡濤|2023-09-27 11:23:01.757|閱讀 92 次
概述:在本文中我們將向您介紹如何在報表控件 FastReport VCL中,制作帶有產品成分的價格標簽,歡迎查閱~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
當打印標簽、價格標簽和其他尺寸有限的格式時,此類報告的設計方法受到限制,這是一個挑戰。在這種情況下,文本對象只能增長到一定的大小,并且不可能將文本分割或遷移到另一個頁面。我們如何才能在不刪除信息的情況下將產品成分和其他數據放在單個標簽上?答案很簡單——減少內容!
從2023.3版本開始,我們在報表引擎FastReport VCL中添加了另一個強大的工具——通過縮放內容來減少“文本”對象中的文本。
讓我們看一個帶有產品成分的價格標簽的簡單示例。這種價格標簽是使用標簽打印機打印在準備好的紙張上,因此打印文本的數量存在物理限制。但作文可以從 3 個字到幾十個字不等。
為了創建這樣的報告,我們將使用創建多列報告的功能。您可以在用戶手冊中找到如何創建此類報告。讓我們以創建一個包含兩列的簡單報告為例,如下圖所示。我們不會深入研究如何創建報告,而是將重點放在必要的功能上。
讓我們運行該建筑物的報告。
結果,預覽顯示該表格包含由幾十個單詞組成的產品,并且它不適合當前字體大小的價格標簽。解決這種情況的方法顯然是減小字體大小。
讓我們返回到報表設計器,選擇對象和不適合邊框的文本,然后打開對象檢查器。
我們需要的功能由ContentScaleOptions屬性集控制。
自動縮放— 默認情況下禁用,該屬性設置自動文本縮放模式。
casStatic 模式允許縮放文本,直到它適合容器或達到約束的極限(Constraints.MaxStepValue和Constraints.MinStepValue 屬性)。
casStatic模式非常適合在帶有價格標簽的報告中使用,讓我們將其打開并運行報告以進行構建。
根據生成的報告,您可以看到文本不僅被縮放,而且還增大了大小。這可以讓你裝滿一個大容器。這對于某些報告可能有用,但在本例中則沒有必要。讓我們返回到報表設計器并禁用ContentScaleOptions.ScaleType屬性的cstGrow標志。讓我們運行該建筑物的報告。 、
現在,如果文本不適合對象,FastReport VCL 會打印價格標簽并縮小字體大小。我們僅通過切換兩個屬性就達到了預期的結果。
帶標簽的示例是最常見的示例之一,但有時需要將帶有不斷增長的對象的帶不間斷地放置在頁面上。如果在這樣的帶上有多個帶有文本的對象,我們可以犧牲其中一些對象的字體大小并壓縮整個容器。讓我們使用一個帶有隨機數據的簡單示例來看看它是如何工作的()。
在此示例中,每個文本對象輸出大段文本,從而拉伸和移動底層對象。使用演示數據運行報告后,報告將類似于屏幕截圖。
正如您所看到的,如果有大量文本,則該區域將分為兩頁(在我們的例子中,對象中有一個中斷)。如果我們需要將數據放在一頁上怎么辦?設置為casStatic 的自動縮放模式不適合這種情況,因為對象具有在報告生成期間計算的動態高度。此外,拉伸的物體會取代下面的物體。對于這種情況,FastReport VCL有另一種對象縮放模式,通過將AutoScale設置為casDynamic屬性來啟用。
我們將MainText對象的AutoScale屬性設置為casDynamic ,看看報表渲染結果。
MainText對象的大小減小,整個區域適合一頁。但是,如果您需要跨多個對象按比例壓縮文本怎么辦?
讓我們將BottomText對象的AutoScale屬性設置為casDynamic并查看報告構建結果。
結果,兩個對象都減小了字體大小,直到帶完全適合頁面。
FastReport VCL允許您控制對象壓縮。每次傳遞對象的周期都會將對象中的字體減小給定的步長,該步長是在ContentScaleOptions.StepValue屬性中為對象設置的。這將一直持續到區域適合頁面或達到極限約束(Constraints.MaxStepValue和Constraints.MinStepValue屬性)。
此外,每個對象只能在傳遞對象的給定迭代中進行處理。如果您希望前兩次縮減迭代僅處理BottomText對象,只需設置ContentScaleOptions屬性即可。對于Constraints.MinIterationValue方法,將值 3 分配給MainText對象(它將跳過前兩次迭代)。呈現報告后,它將具有以下外觀。
正如您所看到的,在前兩次迭代中,我們的報表引擎僅壓縮了BottomText對象,因此,其內容的比例較小。從視覺上看,迭代可以表示如下。
這種縮放內容(或文本)的迭代方法允許報告引擎確定要壓縮的對象的優先級以及以什么順序來實現最佳結果。
這種方法會對大量對象的報告生成速度產生負面影響。因此,可以通過設置TfrxReport.EngineOptions.ContentScaleMaxIterations屬性(默認為 10)在報表引擎級別限制迭代次數。
FastReport技術QQ群:585577353
了解更多報表開發控件,歡迎咨詢
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn