您好:
因近期自學 C# .NET +Crystal Reports,上網找片段教學來學習,
不過找到的都是 需要建立XSD 來做
也有找過該如何不須XSD的範例,使用OLE DB(ADO)但卻會跳出 輸入DB帳密視窗
看過網路上 其他解法, 用【啟用資料庫登入提示】 取消勾選,沒效
需要再寫一段 LogOnInfo 的方式才有效
但這 較麻煩,且帳密要寫在此
所以想請問 有經驗的高手,可否指導一下,是否有範例,可以 直接在cs下語法,不透過xsd,直接餵資料給 水晶報表
謝謝。
可以押~~看你喜歡用哪種方式?
您好:請問您有相關範例嗎?
不好找,麻煩了,謝謝!
你可以直接在CR中套用xml測試!程式部分就要去看SDK.
https://archive.sap.com/documents/docs/DOC-35632
您好:
謝謝,但連結都無效...
以下是我多年以前寫的(VS2008),給您參考看看。
MyReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
SqlConnectionStringBuilder CryRptConn = new SqlConnectionStringBuilder(ConfigurationManager.AppSettings["RptConnStr"].ToString());
MyReport.Load(Server.MapPath("~/rpt/") + "DailaySalesReportTotal.rpt");
MyReport.Refresh();
MyReport.SetDatabaseLogon(CryRptConn.UserID, CryRptConn.Password, CryRptConn.DataSource, CryRptConn.InitialCatalog);
MyReport.SetParameterValue("bDate", TextBox1.Text);
MyReport.SetParameterValue("eDate", TextBox2.Text);
CryRptConn.Clear();
this.CrystalReportViewer1.ReportSource = MyReport;
CrystalReportViewer1.SelectionFormula = "{Daily.DATE} >='" + TextBox1.Text + "' AND {Daily.DATE} <='" + TextBox2.Text + "'";
<web.config>
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true" />
<add key="CrystalImageCleaner-Sleep" value="60000" />
<add key="CrystalImageCleaner-Age" value="120000" />
<add key="RptConnStr" value="Data Source=xx.xx.xx.xx;Initial Catalog=abc; User Id=test;Password=test;" />
</appSettings>
您好:我參考您的範例實作,但仍出現 資料庫 登入失敗。
我先說明我之前看範例:
1.新增一個 RC01X.rpt
資料庫專家->OLE DB(ADO)連線,用拖拉的方式 加入TABLE
(Q,這邊可以 下SQL 嗎?)
並拖拉 欄位到報表
2.新增一個WEB
拉入CrystalReportSource 與 CrystalReportViewer 並設定
`
<asp:TextBox ID="text01" runat="server"></asp:TextBox>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" EnableDatabaseLogonPrompt="False" ReportSourceID="CrystalReportSource1" ToolPanelView="None" />
<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
<Report FileName="Reports\RC01\RC01X.rpt">
</Report>
</CR:CrystalReportSource>
`
3.aspx.cs 程式碼如下
ReportDocument rpt = new ReportDocument();
SqlConnectionStringBuilder CryRptConn
= new SqlConnectionStringBuilder(ConfigurationManager.AppSettings["RptConnStr"].ToString());
string reportName = "/Reports/RC01/RC01X.rpt";
rpt.Load(Server.MapPath(reportName));
//rpt.Refresh();
rpt.SetDatabaseLogon(CryRptConn.UserID , CryRptConn.Password , CryRptConn.DataSource, CryRptConn.InitialCatalog);
this.text01.Text = CryRptConn.UserID;
CryRptConn.Clear();
CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.RefreshReport();
另外請教 RC01X.rpt ,要以哪一種方式,先來拉出欄位?
謝謝!
noway 要跟您說聲sorry,這張報表已是5.6年前所寫,現已無環境可以重製這張報表
以前接觸過作個分享
後來因為授權要費用公司不推就沒繼續研究了
https://coolmandiary.blogspot.com/search/label/Crystal%20Report%E5%A0%B1%E8%A1%A8%E9%96%8B%E7%99%BC