逐步解說:建立報表

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

LightSwitch 並沒有內建的報表功能,不過藉由整合 Word,您就可以從 LightSwitch 應用程式建立和列印報表。 您可以利用 Visual Studio 和 Word 應用程式開發介面來將報表功能自動化,不過,Office 整合套件 LightSwitch 擴充功能可以簡化這項工作。

藉由使用 Office 整合套件,您可以更輕鬆地以各種方式自動化 Word 2010、Excel 2010 和 Outlook 2010。 例如,您可以匯入和匯出資料、建立文件和報表,以及處理電子郵件和約會。 您可以從 CodePlex 下載免費的 Office 整合套件擴充功能。

本逐步解說需要使用下列元件:

首先,您要建立一個用來當做報表範本的 Word 文件。

若要建立報表範本

  1. 開啟 Word 2010。

    新的空白文件隨即出現。

  2. 在文件頂端,輸入 PrescriptionContoso Product Catalog

  3. 反白顯示文字,然後在功能區的 [常用] 索引標籤的 [樣式] 群組中,選擇 [標題] 命令。

  4. 將游標移動至標題下方,接著在 [插入] 索引標籤上,選擇 [表格] 命令,然後選擇 [插入表格] 命令。

    [插入表格] 對話方塊隨即出現。

  5. 在 [欄數] 文字方塊中輸入 5,然後在 [列數] 文字方塊中輸入 2

  6. 選擇 [自動調整成視窗大小] 選項按鈕,然後選擇 [確定] 按鈕。

  7. 在表格的第一列中,輸入下列欄標題:Product IDProductDescriptionPricePackaging

  8. 反白顯示表格,然後在 [插入] 索引標籤的 [連結] 群組中,選擇 [書籤] 命令。

  9. 在 [書籤] 對話方塊中,將書籤命名為 [Catalog],然後選擇 [新增] 按鈕。

  10. 在 [版面配置] 索引標籤的 [版面設定] 群組中,選擇 [方向] 命令,然後選擇 [橫向] 命令。

  11. 在 [檔案] 索引標籤上,選擇 [另存新檔] 命令。

  12. 在 [另存新檔] 對話方塊中,開啟 [我的文件] 資料夾,將檔案命名為 Product Catalog,然後選擇 [儲存] 按鈕。

  13. 在 [檔案] 索引標籤上,選擇 [結束] 命令。

建立報表範本之後,您就可以啟用 Office 整合套件擴充功能、將按鈕加入至應用程式工具列,然後加入程式碼以建立報表。 您也可以變更文件類型。

System_CAPS_ICON_note.jpg 注意

如果您先前尚未建立眼科診所範例應用程式,則必須先安裝及設定 PrescriptionContoso 資料庫,這是所下載的範例套件中的一部分。 開啟 Install.htm 檔案,然後依照指示來安裝資料庫。

若要啟用擴充功能

  1. 在 Visual Studio 功能表列上,選擇 [檔案]、[開啟]、[專案/方案]。

  2. 找出 [Vision Clinic.sln] 檔案,然後選擇 [開啟舊檔] 按鈕。

  3. 在 [方案總管] 中,開啟 [屬性] 節點的捷徑功能表,然後選擇 [開啟]。

  4. 在應用程式設計工具中,選擇 [擴充功能] 索引標籤,然後選取 [Office 整合套件] 核取方塊。

若要建立報告

  1. 在 [方案總管] 中,開啟 [ProductList] 螢幕節點的捷徑功能表,然後選擇 [開啟]。

  2. 在內容樹狀結構窗格中,展開 [螢幕命令列] 節點,然後選擇 [加入]、[新增按鈕]。

  3. 在 [加入按鈕] 對話方塊中,將您要建立的按鈕命名為 Catalog,然後選擇 [確定] 按鈕。

  4. 開啟 [Catalog] 按鈕的捷徑功能表,然後選擇 [編輯 Execute 程式碼]。

  5. 在 [程式碼編輯器] 中,於檔案的頂端輸入下列 Imports 或 using 陳述式:

    Using OfficeIntegration;  
    
    
  6. 將下列程式碼加入至 Catalog_Execute 方法中:

    {  
        // Function to format a field as Currency.  
        dynamic formatPrice = (decimal x) => { return Strings.Format(x, "c2"); };  
    
        // Map the Word column names to the entity column names.  
        List<ColumnMapping> mapContent = new List<ColumnMapping>();  
        mapContent.Add(new ColumnMapping("ProductID", "ProductID"));  
        mapContent.Add(new ColumnMapping("ProductName", "ProductName"));  
        mapContent.Add(new ColumnMapping("Description", "Description"));  
        // Format the price as Currency using the Function created above.  
        mapContent.Add(new ColumnMapping("CurrentPrice", "CurrentPrice", FormatDelegate: formatPrice));  
        mapContent.Add(new ColumnMapping("ProductImage", "ProductImage"));  
    
        // Define the document object.  
        object doc = Word.GenerateDocument(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Product Catalog.docx", this.Products.SelectedItem, mapContent);  
        // Export the document object to Word.  
        Word.Export(doc, "Catalog", 2, false, this.Products, mapContent);  
    }  
    
    
    
  7. 在功能表列上,選擇 [偵錯]、[開始偵錯] 以執行應用程式。

  8. 在 [Tasks] 功能表上,選擇 [Product List],然後選擇 [Catalog] 按鈕來檢視報表。

  9. (選擇性) 將下面程式碼加入至 Catalog_Execute 方法的結尾,以儲存及檢視 .pdf 格式的報表:

    Word.SaveAsPDF(doc, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Product Catalog.pdf", true);  
    
    

探索 OfficeIntegration 命名空間中的應用程式開發介面,發現還可以使用 Office 整合套件來達成的許多其他工作。

在 LightSwitch 中建立報表及列印

顯示: