水晶報表常見問題

來源:互聯網
上載者:User

自訂水晶報表檢視器的外觀

目錄

1、隱藏/顯示查看器的各組成部分,如:樹視圖、工具列。
2、隱藏/顯示工具列按鈕。
3、控制查看器在 Web 頁面裡的布局。
4、去除水晶報表的公司LOGO。
5、替換工具列按鈕的圖片。

1、隱藏/顯示查看器的各組成部分,如:樹視圖、工具列。
設定 Crystal Report Viewer 的屬性:
BestFitPage 布爾值。擷取或設定整頁模式是大小合適還是用捲軸進行裁剪。配合設定 Width、Height 來實現無空白和無捲軸的顯示!
DisplayGroupTree 布爾值。擷取或設定樹視圖是可見還是隱藏。
DisplayPage 布爾值。擷取或設定工具列是可見還是隱藏。
DisplayToolbar 布爾值。擷取或設定工具列上的轉到頁按鈕是可見還是隱藏。
PageZoomFactor Int32。擷取或設定報表的縮放因數。
SeparatePages 布爾值。擷取或設定報表頁是分開還是串連。
PageToTreeRatio Float64。設定組樹與報表視圖之間的大小比例。

2、隱藏/顯示工具列按鈕。
設定 Crystal Report Viewer 的屬性:
HasGotoPageButton 布爾值。擷取或設定轉到頁按鈕的可見度。
HasLevelUpButton 布爾值。擷取或設定工具列上的轉到上一頁按鈕是可見還是隱藏。
HasPageNavigationButtons 布爾值。擷取或設定工具列上的頁面導覽按鈕是可見還是隱藏。
HasRefreshButton 布爾值。擷取或設定工具列上的重新整理按鈕是可見還是隱藏。
HasSearchButton 布爾值。擷取或設定工具列上的搜尋按鈕是可見還是隱藏。
HasZoomFactorList 布爾值。擷取或設定工具列上的縮放因數列表是可見還是隱藏。

3、控制查看器在 Web 頁面裡的布局。
在“設計檢視”,修改 CrystalReportViewer 的 Width、Height 屬性。
切換到表單的“HTML 視圖”,修改 style 屬性。

4、去除水晶報表的公司LOGO。
將 Crystal 公司的Logo 檔案替換或刪除。
(1)如果是用 VS.NET 裡內建的水晶報表
C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers\images\ToolBar\logo.gif
(2)如果是用水晶報表 9.2
C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers\images\toolbar\crlogo.gif

5、替換工具列按鈕的圖片。
(1)如果是用 VS.NET 裡內建的水晶報表
C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers\images
(2)如果是用水晶報表 9.2
C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers\images

登入失敗

目錄

1、檔案夾 NTFS 許可權的問題
2、PULL 模式下,資料庫登入問題 (Windows 整合身分識別驗證)
3、PULL 模式下,資料庫登入問題 (非 Windows 整合身分識別驗證)
4、PUSH 模式下,畫蛇添足登入資料庫。
5、部署時出錯:串連失敗。錯誤的登入參數。

概述

登入失敗是水晶報表 Web 應用程式的一個常見問題,涉及帳號類比、身分識別驗證方式、資料庫安全、NTFS 許可權這些方方面面的安全問題。
1. 類比
使用者訪問 ASP.NET 程式時,通常類比的是 ASPNET 帳號。也可能是目前使用者、SYSTEM 帳號等。
2. 驗證
(1) 登入資料庫需要驗證使用者的身份。
如果採用非 Windows 整合身分識別驗證,則需要提供正確的登入使用者名稱和密碼。如果使用者名稱或密碼錯誤,則登入失敗。
而採用 Windows 整合身分識別驗證,會自動用使用者類比的帳號登入。
(2) 訪問 NTFS 檔案夾時也需要驗證使用者的身份。驗證的是使用者類比的帳號。
3. 授權
(1) 資料庫安全採用 Windows 整合身分識別驗證時,如果使用者類比的帳號沒有登入許可權,則出現登入失敗。
(2) 訪問 NTFS 檔案夾時,如果使用者類比的帳號沒有相應的 NTFS 許可權,也會出現登入失敗。

1、檔案夾 NTFS 許可權的問題
(1) 水晶報表 Web 查看器檔案夾
VS.NET 內建的水晶報表:C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers
水晶報表 9.x:C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers
錯誤提示:“/WebApplication1”應用程式中的伺服器錯誤。登入失敗。
異常詳細資料: CrystalDecisions.CrystalReports.Engine.LogOnException: 登入失敗。
(2) 報表檔案所在的檔案夾,或者匯出時的目標檔案夾。
錯誤提示:s登入失敗。
異常詳細資料: CrystalDecisions.CrystalReports.Engine.LogOnException: 登入失敗。
(3) 解決方案
在資源管理員裡設定上述檔案夾的“安全”,即 NTFS 許可權。
為使用者 ASPNET 添加“寫入”許可權。
如果問題仍然存在,為使用者 Everyone 添加“完全控制”許可權。

2、PULL 模式下,資料庫登入問題 (Windows 整合身分識別驗證)
(1) 錯誤提示
“/MyWebApp”應用程式中的伺服器錯誤。
使用者 'PYPC101\ASPNET' 登入失敗。
(2) 問題分析
設計水晶報表時,在“資料庫專家”的“串連資訊”裡使用了“整合安全”,即採用了 Windows 整合身分識別驗證。
(3) 解決方案
要為 ASPNET 帳號增加資料庫登入和存取權限……
但這種安全措施不太適用,設計時最好使用非 Windows 整合身分識別驗證,用伺服器的帳號登入,比如:sa。

3、PULL 模式下,資料庫登入問題 (非 Windows 整合身分識別驗證)
運行時讀取 web.config 中伺服器及帳號資訊,並登入資料庫伺服器。

using CrystalDecisions.Shared ; //負責解釋TableLogOnInfo類
using CrystalDecisions.CrystalReports.Engine ; //負責解釋ReportDocument類

private void Page_Load(object sender, System.EventArgs e)
{
string rptPath;
rptPath=Server.MapPath ("analysis.rpt");
oRpt.Load (rptPath;);

//從web.config中擷取伺服器及帳號資訊
string serverName, dbName, userName, password;

serverName = System.Configuration.ConfigurationSettings.AppSettings ["serverName"];
dbName = System.Configuration.ConfigurationSettings.AppSettings ["dbName"];
userName = System.Configuration.ConfigurationSettings.AppSettings ["userName"];
password =System.Configuration.ConfigurationSettings.AppSettings ["password"];

//登入資料庫
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
int i = 0;

// 對報表中的每個表依次迴圈。
for (i=0;i == Report.Database.Tables.Count - 1;i++)
{
// 設定當前表的串連資訊。
logOnInfo.ConnectionInfo.ServerName = serverName;
logOnInfo.ConnectionInfo.DatabaseName = dbName;
logOnInfo.ConnectionInfo.UserID = userName;
logOnInfo.ConnectionInfo.Password = password;
Report.Database.Tables [i].ApplyLogOnInfo (logOnInfo);
}

//建立.rpt檔案與CryStalReportviewer檔案之間的串連
CrystalReportViewer1.ReportSource = oRpt;

CrystalReportViewer1.DataBind();
}

4、PUSH 模式下,畫蛇添足登入資料庫。
PUSH 模式使用程式裡的資料集作為資料來源,不需要登入資料庫。

5、部署時出錯:串連失敗。錯誤的登入參數。
部署套件缺少了負責資料來源讀寫的管理模組:Crystal_Database_Access2003.msm、Crystal_Database_Access2003_chs.msm。

ref:
http://life.blogspirit.com/archive/2005/01/17/dw_19987_39064_--_27700_26230_25253_34920_24120_35265_38382.html

http://life.blogspirit.com/archive/2005/01/17/dw_19987_39064_--_27700_26230_25253_34920_24120_35265_383821.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.