|
|
|
สร้าง report ใน crytalreport 9 แล้วจะนำมาเรียกใช้ใน vs2008 C# ทำอย่างไรค่ะ |
|
|
|
|
|
|
|
คืออยากทราบวิธีที่จะทำให้ crytalreport 9 ติดต่อกับ vs2008 C# พอมีตัวอย่างโค้ดมั้ยค่ะ
แบบที่คุณwin เขียน report มันเป็น tool ฝังอยู่ใน vc# อยู่แล้วค่ะไม่ได้ทำแบบนี้อ่าค่ะ
|
|
|
|
|
Date :
2012-07-11 10:14:10 |
By :
rassarin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
namespace JobBatch
{
public partial class frmReport : Form
{
private CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer;
private CrystalDecisions.CrystalReports.Engine.ReportDocument report;
private CrystalDecisions.Shared.TableLogOnInfo crTableLogonInfo;
private CrystalDecisions.Shared.TableLogOnInfos crTableLogonInfos;
public DataSet dsTemp = new DataSet();
public frmReport()
{
InitializeComponent();
addReportViewer();
report = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
}
private void frmReport_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
}
private void addReportViewer()
{
this.crystalReportViewer = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
this.crystalReportViewer.ActiveViewIndex = -1;
this.crystalReportViewer.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.crystalReportViewer.Cursor = System.Windows.Forms.Cursors.Default;
this.crystalReportViewer.Dock = System.Windows.Forms.DockStyle.Fill;
this.crystalReportViewer.Location = new System.Drawing.Point(0, 0);
this.crystalReportViewer.Name = "crystalReportViewer";
this.crystalReportViewer.Size = new System.Drawing.Size(284, 262);
this.crystalReportViewer.TabIndex = 0;
this.crystalReportViewer.ToolPanelView = CrystalDecisions.Windows.Forms.ToolPanelViewType.None;
this.crystalReportViewer.ShowGroupTreeButton = false;
this.Controls.Add(this.crystalReportViewer);
}
public void setDataSetAddReport(DataSet ds)
{
report.Load(ConfigurationManager.AppSettings.Get("ReportPath"));//โหลดไฟล์รายงาน
report.SetDataSource(ds);//กำหนด Data ให้กับรายงานหลัก
report.Subreports[0].DataSourceConnections.Clear();
report.Subreports[0].SetDataSource(dsTemp.Tables[0]);//กำหนด Data ให้รายงานย่อย
this.crystalReportViewer.ReportSource = report;
this.crystalReportViewer.LogOnInfo = crTableLogonInfos;
this.crystalReportViewer.Refresh();
}
}
}
ที่ใช้งานอยู่ประมาณนี้ครับผม
|
|
|
|
|
Date :
2012-07-11 10:51:16 |
By :
ch_b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เรียกใช้จาก path ได้เลยค่ะ ตามตัวอย่างเรียกจาก path โดยตรง หรือไม่เอาก็เอามาวางไว้ใน Project แล้วเรียก server. Server.MapPath ก็ได้ค่ะ
Code (C#)
ReportDocument rpt=new ReportDocument();
rpt.Load("C:\\Documents and Settings\\kaviyarasi-k\\My Documents\\Visual Studio 2005\\Projects\\crystalreport\\crystalreport\\CrystalReport1.rpt");
ConnectionInfo connectionInfo=new ConnectionInfo();
connectionInfo.DatabaseName="TestDB";
connectionInfo.UserID="sa";
connectionInfo.Password="1234";
SetDBLogonForReport(connectionInfo,rpt);
crystalReportViewer1.ReportSource = rpt;
|
|
|
|
|
Date :
2012-07-11 10:59:54 |
By :
bangbang111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทั้งสองท่านค่ะ จะลองดูนะค่ะ:) :)
|
|
|
|
|
Date :
2012-07-11 13:46:18 |
By :
rassarin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|