Sample application and web application code by .NET 2005 Studio
Sample application code
MySqlConnection conn = new MySqlConnection("connection string...");
if (conn.State != ConnectionState.Open)
{conn.Open();}
string sqlSelect = "select statment";
MySqlCommand cmd = new MySqlCommand(sqlSelect, conn);
MySqlDataAdapter ad = new MySqlDataAdapter(cmd);
try
{
//DataTable dt = new DataTable();
//dtMySQL = dt;
//dt.Clear();
//ad.Fill(dt);
//dgvMySQL.DataSource = dt;
DataSet ds = new DataSet();
ds.Clear();
ad.Fill(ds, "bb");
dgvMySQL.DataSource = ds;
dgvMySQL.DataMember = "bb";
ds.WriteXmlSchema(@"D:\schemaFile.xsd");
ReportDocument rpt = new ReportDocument();
rpt.Load(@"D:\report.rpt");
//rpt.Database.Tables[0].SetDataSource(ds); // วางตรงนี้ก็ได้
crystalReportViewer1.ReportSource = rpt;
rpt.Database.Tables[0].SetDataSource(ds);
}
catch (Exception ex)
{}
finally
{
rpt.Dispose();
cmd.Dispose();
ad.Dispose();
conn.Close();
conn.Dispose();
}
# หรือใช้ถ้าเราดึง table ที่อยู่ใน DataTable มาออกรายงานเลยก็ประมาณนี้
string shopSchema = @"\shop_report_XmlSchema.xsd";
string shopReport = @"\shop_report.rpt";
DataTable dt = (DataTable)dgvSearchShop.DataSource;
string pathXsd = shopSchema;
dt.TableName = "SHOPS"; // ตั้งชื่อ table ใน databletable
dt.WriteXmlSchema(pathXsd);
ReportDocument rpt = new ReportDocument();
rpt.Load(shopReport);
rpt.Database.Tables[0].SetDataSource(dt);
ReportForm reportForm = new ReportForm(); // มีฟอร์มออกรายงานต่างหาก
reportForm.setReportDocument(rpt); // ส่งรายงานไปให้ viewer แสดง
reportForm.Show();
public partial class ReportForm
{
ReportDocument rpt;
public void setReportDocument(ReportDocument rpt)
{
this.rpt = rpt;
this.crystalReportViewer1.ReportSource = this.rpt;
}
}
Sample web application code
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["paramWebConfig"].ConnectionString.ToString());
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select statment.....";
// ถ้าใช้ select statment มีการเรียกตัวแปร กัน injection
//cmd.Parameters.Add("@param", SqlDbType.VarChar).Value = "value";
cmd.Connection = conn;
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
ds.Clear();
adapter.Fill(ds);
ds.WriteXmlSchema(Server.MapPath(@"schemaFile.xsd"));
// ถ้าเป็นเว็บจะมีปัญหากับ การปิดและคืนหน่วยความจำ รายงานให้ใช้ statc collection มาช่วยเช่น คิว
ReportDocument rpt = new ReportDocument();
rpt.Load(Server.MapPath(@"Report.rpt"));
rpt.Database.Tables[0].SetDataSource(ds.Tables[0]);
// ส่งค่าจากโปรแกรมให้ report
//rpt.SetParameterValue("Param", "value");
//หรือ
//rpt.ParameterFields["Param"].CurrentValues.AddValue("value");
CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.DataBind();
// ทำไมใช้ที่นี้ไม่ได้หว่า
//rpt.Close();
//rpt.Dispose();
adapter.Dispose();
ds.Dispose();
conn.Close();
# โค้ดนี้จำไม่ได้เลยอ่ะ จะเขียนทีไรต้องหาโค้ดที่เคยทำเปิดดู เลยต้องเขียนลงที่นี้กันเหนียวไว้ก่อน
Subscribe to:
Post Comments (Atom)
Popular Posts
-
Font เลือกเป็น Wingdings 2 เครื่องหมายถูก Shift + P เครื่องหมายผิด Shift + O ซึ่งเราสามารถใช้ Font Wingdings 2 ใน OpenOffice เพื่อเพิ่มเครื...
-
คือเครื่องเสียงในบ้าน เป็นแบบมีรู Microphone 3 รูและ AUX (เสียงเข้าเครื่องเสียง) 2 ชุด มีไมค์ 1 ตัวและ AUX 1 ชุดเสียบสาย ปัญหาคือ พอเปิด ไม...
-
ขั้นแรกต้องตั้งค่าซองก่อนโดยไปที่ menu tab Start Mail Merge => Envelopes เลือก template size ได้ตามต้องการ หรือจะกำหนดขนาดเองเลยโดยเลือก ...
-
http://football.sodazaa.com/
-
ที่มา : http://www.pcthailand.com/th/index.php?option=com_content&view=article&id=64:-regedit-&catid=40:2009-07-02-10-59-36&am...
-
ปัญหาคือ เราเข้าเว็บไซต์ อันนี้แล้ว ปัญหาภาษาไทย มันแสดงเป็นต่างดาวซะงั้น Solved Options => Under the Hood => Web Content ค...
-
คือ จะใช้ printer ที่เค้าแชร์ไว้ แต่มันดันถาม User, password ซะงั้น ทั้งที่ Enable Guest แล้วนะ ไม่รู้ Guest เครื่องนั้นมีใครไปตั้งรหัสให้หร...
-
This summary is not available. Please click here to view the post.
-
อ้างอิง - http://www.sysnetcenter.com/board/index.php?topic=2028.0 <== อ่านเข้าใจง่าย ประเด็นมีอยู่ว่า เพื่อนที่ทำงานแนะนำ AP แบบ ใช้สำ...
No comments:
Post a Comment