using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
csharp.net-informations.com/crystal-reports/csharp-crystal-reports-db.htm
---------------------------------------------------------------------------------
dll ref:
C:\Program Files\Common Files\Crystal Decisions\1.1\Managed
CrystalDecisions.CrystalReports.Engine.dll
CrystalDecisions.ReportSource.dll
CrystalDecisions.Shared.dll
---------------------------------------------------------------------------------
> 資料來源在 SQL Query (use strongly typed dataset)
SqlConnection cnn ;
string connectionString = null;
string sql = null;
connectionString = "data source=SERVERNAME;initial catalog=DATABASENAME;user id=USERNAME;password=PASSWORD;";
cnn = new SqlConnection(connectionString);
cnn.Open();
sql = "SELECT Product_id,Product_name,Product_price FROM Product";
SqlDataAdapter sda = new SqlDataAdapter(sql, cnn);
DataSet1 ds = new DataSet1();
sda.Fill(ds, "Product");
cnn.Close();
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(ds.Tables[1]);
crystalReportViewer1.ReportSource = cr;
crystalReportViewer1.Refresh();
---------------------------------------------------------------------------------
> 資料來源在報表設計中 (欄位總管/資料庫欄位/右鍵/顯示SQL查詢)
ReportDocument rd = new ReportDocument();
'ReportDoc.SetDataSource(ds1.Tables[0]);
rd.Load("C:\\CrystalReport1.rpt");
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Refresh();
---------------------------------------------------------------------------------
> 資料來源在報表設計中,使用程式動態變更登入資訊
ReportDocument rd = new ReportDocument();
rd.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt");
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables tbs;
crConnectionInfo.ServerName = "testsvr";
crConnectionInfo.DatabaseName = "testdb";
crConnectionInfo.UserID = "sa";
crConnectionInfo.Password = "123";
tbs = rd.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table tb in tbs)
{
crtableLogoninfo = tb.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
tb.ApplyLogOnInfo(crtableLogoninfo);
}
rd.Refresh();
rd.PrintToPrinter(2, true, 1, 2);
---------------------------------------------------------------------------------
> ReportDocument.PrintToPrinter(列印份數,自動分頁,要列印的第一頁,要列印的最後一頁)
PageMargins margins;
// 設定報表的邊界
margins = Report.PrintOptions.PageMargins;
margins.bottomMargin = 350;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 350;
Report.PrintOptions.ApplyPageMargins(margins);
// 選取印表機
Report.PrintOptions.PrinterName = printerName;
// 將 startPageN 及 endPageN 參數設定為 0 即可列印所有頁面
Report.PrintToPrinter(1,true,0,0);
---------------------------------------------------------------------------------
Export pdf
ReportDocument cryRpt;
ExportOptions CrExportOptions ;
DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = "c:\\csharp.net-informations.pdf";
CrExportOptions = cryRpt.ExportOptions;
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
CrExportOptions.FormatOptions = CrFormatTypeOptions;
cryRpt.Export();
---------------------------------------------------------------------------------
Export excel
ReportDocument cryRpt;
ExportOptions CrExportOptions ;
DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
ExcelFormatOptions CrFormatTypeOptions = new ExcelFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = "c:\\csharp.net-informations.xls";
CrExportOptions = cryRpt.ExportOptions;
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
CrExportOptions.ExportFormatType = ExportFormatType.Excel;
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
CrExportOptions.FormatOptions = CrFormatTypeOptions;
cryRpt.Export();
---------------------------------------------------------------------------------
>with parameter
use ReportDocument
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt");
ParameterFieldDefinitions crParameterFieldDefinitions ;
ParameterFieldDefinition crParameterFieldDefinition ;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = textBox1.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["Customername"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
---------------------------------------------------------------------------------
with 2 parameters and Change TableLogOnInfo
use ReportDocument
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt");
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;
ParameterFieldDefinitions crParameterFieldDefinitions ;
ParameterFieldDefinition crParameterFieldDefinition ;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = textBox1.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["fromDate"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crParameterDiscreteValue.Value = textBox2.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["toDate"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crConnectionInfo.ServerName = "YOUR SERVERNAME";
crConnectionInfo.DatabaseName = "DATABASE NAME";
crConnectionInfo.UserID = "USERID";
crConnectionInfo.Password = "PASSWORD";
CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
---------------------------------------------------------------------------------
透過報表,網頁直接開啟PDF
Dim deliveryReport1 As Delivery_report 'rpt 物件
Dim tempFileName As String = "temp" & (System.Convert.ToInt32(Rnd() * 1000000)).ToString()
Dim genPdfName As String
Dim genPdfPath As String
genPdfName = tempFileName & ".pdf"
Dim rptFileName As String = "Delivery_report.rpt" 'rpt 報表檔
Dim rptPath As String
Dim tableLogon As New CrystalDecisions.Shared.TableLogOnInfo
Dim rptTable As CrystalDecisions.CrystalReports.Engine.Table
rptPath = Server.MapPath(rptFileName)
genPdfPath = Mid(rptPath, 1, rptPath.LastIndexOf("\") + 1) & "temp\" & genPdfName
Dim ws As New my_ws.Service 'Change tableLogon 登入
For Each rptTable In deliveryReport1.Database.Tables
tableLogon = rptTable.LogOnInfo
With tableLogon.ConnectionInfo
.ServerName = "PROD"
.UserID = "SPINV"
.Password = ws.GetPassword("PROD", "SPINV")
End With
rptTable.ApplyLogOnInfo(tableLogon)
Next
'set report viewer parameter(s)
Dim paramFields As New CrystalDecisions.Shared.ParameterFields
Dim paramField As New CrystalDecisions.Shared.ParameterField
Dim discreteVal As New CrystalDecisions.Shared.ParameterDiscreteValue
paramField.ParameterFieldName = "REPORT_ID"
discreteVal.Value = REPORT_ID
paramField.CurrentValues.Add(discreteVal)
paramFields.Add(paramField)
Me.CrystalReportViewer1.ParameterFieldInfo.Add(paramFields) 'set CrystalReportViewer 帶入報表參數
Me.CrystalReportViewer1.DataBind()
Dim crExportOptions As CrystalDecisions.Shared.ExportOptions
Dim crDiskFileDestinationOptions As CrystalDecisions.Shared.DiskFileDestinationOptions
crDiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions
crDiskFileDestinationOptions.DiskFileName = genPdfPath
crExportOptions = deliveryReport1.ExportOptions 'set rpt 輸出pdf檔案格式
With crExportOptions
.DestinationOptions = crDiskFileDestinationOptions
.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile
.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat
End With
deliveryReport1.SetParameterValue("REPORT_ID", REPORT_ID) 'set rpt 帶入報表參數
deliveryReport1.Export()
Response.ClearContent() 'set 網頁輸出 pdf
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.WriteFile(genPdfPath)
Response.Flush()
Response.Close()
---------------------------------------------------------------------------------
專案中範例(1) Windows Form - Vb.NET : CrystalReportViewer
'繫結資料
>> 開啟資料庫連結
OracleConnection1.ConnectionString = Inv_Conn
OracleConnection1.Open()
>> 將連結指定給 OracleSelectCommand
Me.OracleSelectCommand5.Connection = Me.OracleConnection1
>> 將OracleSelectCommand 指定給 OracleDataAdapter
Me.OracleDataAdapter5.SelectCommand = Me.OracleSelectCommand5
>> 設定要執行的SQL
Me.OracleDataAdapter5.SelectCommand.CommandText = "select ....." '真正執行的SQL
>> 將資料繫結給 XSD
Me.OracleDataAdapter5.Fill(DataSet_DeliveryPickSummary1.CPH_PICK_MAIN)
'顯示處理狀態
Dim ReportDoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim logoninfo As New CrystalDecisions.Shared.TableLogOnInfo
Dim table As CrystalDecisions.CrystalReports.Engine.Table
Dim RptPath As String
RptPath = Application.StartupPath & "\" & "DeliveryPrintPickRptForOX.rpt"
ReportDoc.Load(RptPath)
Dim myPrintPickRpt As New DeliveryPrintPickRptForOX
myPrintPickRpt.ResourceName = ReportDoc.ToString
myPrintPickRpt.PrintOptions.PaperSize = 171
ReportDoc.SetDatabaseLogon("cphinv", DB_Pwd)
ReportDoc.SetDataSource(DataSet_DeliveryPickSummary1)
'宣告預覽列印表單
Dim previewform As PreviewForm = New PreviewForm
previewform.CrystalReportViewer1.ReportSource = ReportDoc
previewform.CrystalReportViewer1.Zoom(1) '頁寬
'秀出報表
previewform.Show()
previewform.Location = New System.Drawing.Point(0, 0)
previewform.TopMost = True
Me.StatusBarPanel1.Text = "列印完成,時間:" & Now
---------------------------------------------------------------------------------
download crystal report for visual studio .net 2010~
http://scn.sap.com/docs/DOC-7824
SAP Member Account: ymail Mark@sap
using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
csharp.net-informations.com/crystal-reports/csharp-crystal-reports-db.htm
---------------------------------------------------------------------------------
dll ref:
C:\Program Files\Common Files\Crystal Decisions\1.1\Managed
CrystalDecisions.CrystalReports.Engine.dll
CrystalDecisions.ReportSource.dll
CrystalDecisions.Shared.dll
---------------------------------------------------------------------------------
> 資料來源在 SQL Query (use strongly typed dataset)
SqlConnection cnn ;
string connectionString = null;
string sql = null;
connectionString = "data source=SERVERNAME;initial catalog=DATABASENAME;user id=USERNAME;password=PASSWORD;";
cnn = new SqlConnection(connectionString);
cnn.Open();
sql = "SELECT Product_id,Product_name,Product_price FROM Product";
SqlDataAdapter sda = new SqlDataAdapter(sql, cnn);
DataSet1 ds = new DataSet1();
sda.Fill(ds, "Product");
cnn.Close();
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(ds.Tables[1]);
crystalReportViewer1.ReportSource = cr;
crystalReportViewer1.Refresh();
---------------------------------------------------------------------------------
> 資料來源在報表設計中 (欄位總管/資料庫欄位/右鍵/顯示SQL查詢)
ReportDocument rd = new ReportDocument();
'ReportDoc.SetDataSource(ds1.Tables[0]);
rd.Load("C:\\CrystalReport1.rpt");
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Refresh();
---------------------------------------------------------------------------------
> 資料來源在報表設計中,使用程式動態變更登入資訊
ReportDocument rd = new ReportDocument();
rd.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt");
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables tbs;
crConnectionInfo.ServerName = "testsvr";
crConnectionInfo.DatabaseName = "testdb";
crConnectionInfo.UserID = "sa";
crConnectionInfo.Password = "123";
tbs = rd.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table tb in tbs)
{
crtableLogoninfo = tb.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
tb.ApplyLogOnInfo(crtableLogoninfo);
}
rd.Refresh();
rd.PrintToPrinter(2, true, 1, 2);
---------------------------------------------------------------------------------
> ReportDocument.PrintToPrinter(列印份數,自動分頁,要列印的第一頁,要列印的最後一頁)
PageMargins margins;
// 設定報表的邊界
margins = Report.PrintOptions.PageMargins;
margins.bottomMargin = 350;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 350;
Report.PrintOptions.ApplyPageMargins(margins);
// 選取印表機
Report.PrintOptions.PrinterName = printerName;
// 將 startPageN 及 endPageN 參數設定為 0 即可列印所有頁面
Report.PrintToPrinter(1,true,0,0);
---------------------------------------------------------------------------------
Export pdf
ReportDocument cryRpt;
ExportOptions CrExportOptions ;
DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = "c:\\csharp.net-informations.pdf";
CrExportOptions = cryRpt.ExportOptions;
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
CrExportOptions.FormatOptions = CrFormatTypeOptions;
cryRpt.Export();
---------------------------------------------------------------------------------
Export excel
ReportDocument cryRpt;
ExportOptions CrExportOptions ;
DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
ExcelFormatOptions CrFormatTypeOptions = new ExcelFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = "c:\\csharp.net-informations.xls";
CrExportOptions = cryRpt.ExportOptions;
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
CrExportOptions.ExportFormatType = ExportFormatType.Excel;
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
CrExportOptions.FormatOptions = CrFormatTypeOptions;
cryRpt.Export();
---------------------------------------------------------------------------------
>with parameter
use ReportDocument
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt");
ParameterFieldDefinitions crParameterFieldDefinitions ;
ParameterFieldDefinition crParameterFieldDefinition ;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = textBox1.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["Customername"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
---------------------------------------------------------------------------------
with 2 parameters and Change TableLogOnInfo
use ReportDocument
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt");
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;
ParameterFieldDefinitions crParameterFieldDefinitions ;
ParameterFieldDefinition crParameterFieldDefinition ;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = textBox1.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["fromDate"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crParameterDiscreteValue.Value = textBox2.Text;
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["toDate"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
crConnectionInfo.ServerName = "YOUR SERVERNAME";
crConnectionInfo.DatabaseName = "DATABASE NAME";
crConnectionInfo.UserID = "USERID";
crConnectionInfo.Password = "PASSWORD";
CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
---------------------------------------------------------------------------------
透過報表,網頁直接開啟PDF
Dim deliveryReport1 As Delivery_report 'rpt 物件
Dim tempFileName As String = "temp" & (System.Convert.ToInt32(Rnd() * 1000000)).ToString()
Dim genPdfName As String
Dim genPdfPath As String
genPdfName = tempFileName & ".pdf"
Dim rptFileName As String = "Delivery_report.rpt" 'rpt 報表檔
Dim rptPath As String
Dim tableLogon As New CrystalDecisions.Shared.TableLogOnInfo
Dim rptTable As CrystalDecisions.CrystalReports.Engine.Table
rptPath = Server.MapPath(rptFileName)
genPdfPath = Mid(rptPath, 1, rptPath.LastIndexOf("\") + 1) & "temp\" & genPdfName
Dim ws As New my_ws.Service 'Change tableLogon 登入
For Each rptTable In deliveryReport1.Database.Tables
tableLogon = rptTable.LogOnInfo
With tableLogon.ConnectionInfo
.ServerName = "PROD"
.UserID = "SPINV"
.Password = ws.GetPassword("PROD", "SPINV")
End With
rptTable.ApplyLogOnInfo(tableLogon)
Next
'set report viewer parameter(s)
Dim paramFields As New CrystalDecisions.Shared.ParameterFields
Dim paramField As New CrystalDecisions.Shared.ParameterField
Dim discreteVal As New CrystalDecisions.Shared.ParameterDiscreteValue
paramField.ParameterFieldName = "REPORT_ID"
discreteVal.Value = REPORT_ID
paramField.CurrentValues.Add(discreteVal)
paramFields.Add(paramField)
Me.CrystalReportViewer1.ParameterFieldInfo.Add(paramFields) 'set CrystalReportViewer 帶入報表參數
Me.CrystalReportViewer1.DataBind()
Dim crExportOptions As CrystalDecisions.Shared.ExportOptions
Dim crDiskFileDestinationOptions As CrystalDecisions.Shared.DiskFileDestinationOptions
crDiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions
crDiskFileDestinationOptions.DiskFileName = genPdfPath
crExportOptions = deliveryReport1.ExportOptions 'set rpt 輸出pdf檔案格式
With crExportOptions
.DestinationOptions = crDiskFileDestinationOptions
.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile
.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat
End With
deliveryReport1.SetParameterValue("REPORT_ID", REPORT_ID) 'set rpt 帶入報表參數
deliveryReport1.Export()
Response.ClearContent() 'set 網頁輸出 pdf
Response.ClearHeaders()
Response.ContentType = "application/pdf"
Response.WriteFile(genPdfPath)
Response.Flush()
Response.Close()
---------------------------------------------------------------------------------
專案中範例(1) Windows Form - Vb.NET : CrystalReportViewer
'繫結資料
>> 開啟資料庫連結
OracleConnection1.ConnectionString = Inv_Conn
OracleConnection1.Open()
>> 將連結指定給 OracleSelectCommand
Me.OracleSelectCommand5.Connection = Me.OracleConnection1
>> 將OracleSelectCommand 指定給 OracleDataAdapter
Me.OracleDataAdapter5.SelectCommand = Me.OracleSelectCommand5
>> 設定要執行的SQL
Me.OracleDataAdapter5.SelectCommand.CommandText = "select ....." '真正執行的SQL
>> 將資料繫結給 XSD
Me.OracleDataAdapter5.Fill(DataSet_DeliveryPickSummary1.CPH_PICK_MAIN)
'顯示處理狀態
Dim ReportDoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim logoninfo As New CrystalDecisions.Shared.TableLogOnInfo
Dim table As CrystalDecisions.CrystalReports.Engine.Table
Dim RptPath As String
RptPath = Application.StartupPath & "\" & "DeliveryPrintPickRptForOX.rpt"
ReportDoc.Load(RptPath)
Dim myPrintPickRpt As New DeliveryPrintPickRptForOX
myPrintPickRpt.ResourceName = ReportDoc.ToString
myPrintPickRpt.PrintOptions.PaperSize = 171
ReportDoc.SetDatabaseLogon("cphinv", DB_Pwd)
ReportDoc.SetDataSource(DataSet_DeliveryPickSummary1)
'宣告預覽列印表單
Dim previewform As PreviewForm = New PreviewForm
previewform.CrystalReportViewer1.ReportSource = ReportDoc
previewform.CrystalReportViewer1.Zoom(1) '頁寬
'秀出報表
previewform.Show()
previewform.Location = New System.Drawing.Point(0, 0)
previewform.TopMost = True
Me.StatusBarPanel1.Text = "列印完成,時間:" & Now
---------------------------------------------------------------------------------
download crystal report for visual studio .net 2010~
http://scn.sap.com/docs/DOC-7824
SAP Member Account: ymail Mark@sap