2009-10-23 8 views
5

Đã giúp một người bạn có hơn 100 báo cáo "Báo cáo Crystal 2008" như là một phần của "dự án trang web asp.net".Báo cáo tinh thể thực sự làm chậm trang web asp.net xây dựng, bất kỳ cách nào để loại trừ chúng?

Tôi không biết làm thế nào/tại sao, nhưng khi dự án "trang web asp.net" này đang xây dựng, nó dành khoảng 15 phút "xây dựng" thư mục báo cáo nơi tất cả các báo cáo Crystal cư trú.

Tệp Crystal Reports có thể .rpt thậm chí còn được tạo/biên dịch không? Trên thực tế, có vẻ như chúng có thể là tài nguyên được nhúng. Giống như ví dụ theo bài viết này http://msdn.microsoft.com/en-us/library/aa287962(VS.71).aspx bạn sẽ có thể thay đổi cho dù báo cáo được nhúng hay không từ thuộc tính, NHƯNG trong "dự án trang web asp.net" những thuộc tính đó không có sẵn khi báo cáo được tô sáng trong điểm kinh nghiệm sol.

Khi trang web được xây dựng và xuất bản, tất cả các tệp báo cáo vẫn được đưa vào thư mục báo cáo tương ứng.

Vì vậy, tôi đoán, câu hỏi của tôi là có cách nào để ngăn chặn VS xây dựng Crystal Reports trong "dự án trang web"? Nó chỉ mất sooo dài nó không thể chịu nổi.

Trả lời

2

Cảm ơn tất cả các đề xuất. Hóa ra nó đã được thiết lập để được nhúng như một nguồn tài nguyên ... mà với gần một trăm đã giết chết việc xây dựng. Đặt nó thành false và bản dựng chưa đầy một phút.

<businessObjects> 
    <crystalReports> 
     <rptBuildProvider> 
      <add embedRptInResource="false"/> 
     </rptBuildProvider> 
    </crystalReports> 
</businessObjects> 
1

Chúng tôi sử dụng báo cáo tinh thể trong một số ứng dụng/trang web khác nhau. Trong không ai trong số họ làm chúng tôi thực sự bao gồm các tập tin báo cáo mình trong dự án Visual Studio. Chúng tôi đặt các tập tin trong một cái gì đó giống như một thư mục con/Reports, và sau đó tham khảo chúng theo tên tập tin. Chúng tôi vẫn đang sử dụng một phiên bản cũ của Crystal, nhưng tôi sẽ không nghĩ rằng họ sẽ lấy một thứ như thế.

Chúng tôi sử dụng mã giống như sau:

Dim myRpt As New ReportDocument 
Select Case strFormNum 
    Case "M5044b" 
     strReportPath = Server.MapPath("/Reports/M5044b.rpt") 
    <..Snip a lot of case statements...> 
    Case "M5238aWithAI" 
     strReportPath = Server.MapPath("/Reports/M5238a_WithAI.rpt") 
End Select 

myRpt.Load(strReportPath) 

myRpt.SetDatabaseLogon(strCRUser, strCRPassword, strCRServer, strCRDB) 

myRpt.SetParameterValue("@nIndex", intNewIndex) 

myRpt.DataDefinition.FormulaFields.Item("Version").Text = "'Report Printed: " & Now().ToString & "'" 

oStream = myRpt.ExportToStream(ExportFormatType.PortableDocFormat) 
0

Bạn cần phải chắc chắn rằng công cụ tùy chỉnh được không chạy trên mỗi báo cáo. Theo mặc định khi bạn thêm một báo cáo tinh thể vào một dự án, nó sẽ kết hợp công cụ tùy chỉnh này tạo ra một lớp trình bao bọc cho báo cáo. Nó nhanh hơn nhiều để tham khảo báo cáo theo tên tập tin (như Josh W. trình bày), và giữ các báo cáo ra khỏi hội đồng.