1.Insert Picture การเพิ่ม รูปภาพลงใน Report
โดยใช้ DataType = System.Byte[]
จากนั้นเขียน คำสั่งในการเพิ่ม รูปภาพ ลงใน Field ที่สร้างขึ้นมารองรับ
public DataSet addPic(DataSet DS,String Patch)
{
DataRow tempRow = DS.Tables["Emp_pic"].NewRow(); // สร้าง บรรทัดใหม่ ขึ้นมา โดยใช้ DataRow
tempRow["Emp_picture"] = mappicture("W:\\" + Patch + ".bmp"); // เพิ่มรูปภาพตาม Patch ลงใน DataRow ที่สร้าง
DS.Tables["Emp_pic"].Rows.Add(tempRow); // เพิ่ม รูปภาพลงใน DataSet ที่สร้างไว้
return DS;
}
public byte[] mappicture(String Patch)
{
FileStream fiStream = new FileStream(Patch, FileMode.Open, FileAccess.Read);
BinaryReader binReader = new BinaryReader(fiStream);
byte[] pic = { };
pic = binReader.ReadBytes((int)fiStream.Length);
return (pic);
}
_____________________________________________________________________________
2.การสร้าง Parameter ใน Report เพื่อรับค่า จากโปรแกรม
ใน Report สามารถสร้าง Parameter สำหรับ รับค่าจากโปรแกรมแสดงที่ Report ได้ โดยสร้างที่ Parameter fields
การส่งค่า
ReportDocument rpt = new ReportDocument();
rpt.Load(Report);
rpt.SetParameterValue("isYear", this.is_Year); // เพิ่มค่า ลง Parameter
_______________________________________________
3.Set Details Full Page
โดยใช้วิธี 1 หน้ากระดาษ มี Details ได้มากสุด 20 หาก Report ที่แสดงออกมา มี 14 ก็ใช้วิธี 20 - 14 = 6 คือจำนวนของ ช่องเปล่าที่ต้องแสดงออกมาให้ครบ พอดี 1 หน้ากระดาษ โดยเพิ่มข้อมูล ลงไป ให้ครบ แต่ เป็นข้อมูลที่ไม่แสดงที่ Report แต่จะทำให้ตีกรอบข้อมูล
Code
public DataSet chkdataset(DataSet DS)
{
int freerows = 20 - ((DS.Tables["ITR_Topic_db"].Rows.Count) % 20); // หาจำนวนที่เหลือเพื่อให้ ครบ 1 หน้ากระดาษ
if (((DS.Tables["ITR_Topic_db"].Rows.Count) % 20) != 0)
{
for (int i = 0; i < freerows; i++)
{
DataRow tempRow = DS.Tables["ITR_Topic_db"].NewRow();
tempRow["Topic_code"] = "temp" + i;
DS.Tables["ITR_Topic_db"].Rows.Add(tempRow); //เพิ่มข้อมูล ให้ตรบ 20 บรรทัด
}
}
return DS;
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น