Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > รบกวนถามเรื่อง crystal report ที่ดึงข้อมูลจาก dataset มากกว่าสอง dataset อ่ะคับ vb.net2008



 

รบกวนถามเรื่อง crystal report ที่ดึงข้อมูลจาก dataset มากกว่าสอง dataset อ่ะคับ vb.net2008

 



Topic : 039160

Guest




Code (VB.NET)
    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim DDTtemp As New DataSet
            DDTtemp = DTSet.Tables(0).DataSet.Copy
            Dim reportset As New ReportTransportByDetail
            reportset.SetDataSource(DDTtemp.Tables(0))
            ReportVeiwer.CrystalReportViewer1.ReportSource = reportset
            ReportVeiwer.Show()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub


code นี้ผมดึงมาจาก dataset ตัวเดียวแต่ถ้าจะดึงข้อมูลมาจาก dataset 2ตัวต้องเขียน code เพิ่มยังไงครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-17 20:57:54 By : aa View : 2550 Reply : 8
 

 

No. 1



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


โดยปกติ หนึ่ง REPORT จะใช้ DATASOURCE ชุดเดียวค่ะ
เพราะ มี LAYOUT เพียงชุดเดียวเหมือนกัน

แต่หากต้องการ MULTIPLE LAYOUT ก็ใช้ SUBREPORT ค่ะ
คือแสดงชุดข้อมูลที่ไม่เกี่ยวข้องกันใดๆเลย ในพื้นที่ที่ไม่เกี่ยวข้องกัน ในหน้ากระดาษเดียว

คำถามที่ว่าใช้ 2 Dataset ยังไง
คงต้องถามว่า คุณทำไปเพื่ออะไร อย่างไร
เช่น
ข้อมูลชุดแรกเป็นของผลิตภัณฑ์ ข้อมูลชุดที่สองเป็นของพนักงาน แบบนี้ใช้ SUB REPORT

ถ้า ข้อมูลชุดแรกของผลิตภัณฑ์ต้นปี ข้อมูลชุดที่สองของผลิตภัณฑ์ปลายปี
ทำไมคุณไม่ UNION ด้วย SQL COMMAND แล้ว ส่งมาให้ REPORT

CODE ที่ยกมาก้อเป็นเพียงการเชื่อมต่อกับ Report ไม่ได้ให้ข้อมูลอะไรเลย
ต้องให้ข้อมูลเพิ่มเติมด้วยค่ะ






Date : 2010-02-17 22:00:13 By : blurEye
 


 

No. 2

Guest


Code (VB.NET)
Public Class TransportReportByDetail
    Dim DTSet As New DataSet
    Dim RDSet As New DataSet
    Dim Sumset As New DataSet
    Dim ChkSet As New DataSet
    Private Sub TransportReportByDetail_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TxtEmpID.Text = ""
        TxtEmpID.Focus()
    End Sub
    Private Sub TxtEmpID_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtEmpID.KeyPress
        If e.KeyChar = Chr(13) Then
            If TxtEmpID.Text = "" Then
                MsgBox("Please Input Employee ID", MsgBoxStyle.OkOnly)
                TxtEmpID.Text = ""
                TxtSumDriver.Text = ""
                TxtSumLoad.Text = ""
                TxtSumUnload.Text = ""
                TxtSumWaitTime.Text = ""
                TxtSumBreakTime.Text = ""
                TxtStartDat.Text = ""
                TxtEndDat.Text = ""
                TxtSumH.Text = ""
                DTSet.Reset()
                RDSet.Reset()
                Sumset.Reset()
                ChkSet.Reset()
                TxtEmpID.Focus()
            Else
                DTSet.Reset()
                DTSet = Ora_DTSET("select  a.th_empid,a.th_empname,b.td_time, " & _
                " b.td_driver, " & _
                " b.td_load,b.td_unload,b.td_waittime,b.td_brtime,b.td_remark,b.td_dista " & _
                " from tbl_trheader a,tbl_trdetail b,tbl_trtime c " & _
                " where a.th_empid like '%" & TxtEmpID.Text & "%' " & _
                " and to_char(a.th_credate,'dd/mm/yyyy')='" & TxtCreDate.Text & "' " & _
                " and a.th_empid = b.td_empid " & _
                " and trunc(a.th_credate) = trunc(b.td_credate) " & _
                " and b.td_time=c.action_time " & _
                " order by a.th_empid,c.id_time ").Tables(0).DataSet.Copy
                If DTSet.Tables(0).Rows.Count <= 0 Then
                    MsgBox("No data found", MsgBoxStyle.OkOnly)
                    TxtEmpID.Text = ""
                    TxtSumDriver.Text = ""
                    TxtSumLoad.Text = ""
                    TxtSumUnload.Text = ""
                    TxtSumWaitTime.Text = ""
                    TxtSumBreakTime.Text = ""
                    TxtStartDat.Text = ""
                    TxtEndDat.Text = ""
                    TxtSumH.Text = ""
                    RDSet.Reset()
                    Sumset.Reset()
                    ChkSet.Reset()
                    TxtEmpID.Focus()

                Else
                    RDSet.Reset()
                    RDSet = Ora_DTSET("select  a.tr_round,a.tr_store,a.tr_mstart,a.tr_mend, " & _
                                " a.tr_oil, a.tr_sumdista,a.tr_rateoil from tbl_trround a,tbl_trheader b " & _
                                " where a.tr_empid like '%" & TxtEmpID.Text & "%' " & _
                                " and to_char(a.tr_credate,'dd/mm/yyyy')='" & TxtCreDate.Text & "' " & _
                                " and a.tr_empid = b.th_empid " & _
                                " and trunc(a.tr_credate) = trunc(b.th_credate) " & _
                                " order by a.tr_round ").Tables(0).DataSet.Copy

                    With DataGridView2
                        .DataSource = RDSet.Tables(0)
                    End With
                    With DataGridView1
                        .DataSource = DTSet.Tables(0)
                    End With
                    Sumset.Reset()
                    Sumset = Ora_DTSET("select  sum(b.td_driver) as driver,sum(b.td_load) as load, " & _
                                " sum(b.td_unload) as unload," & _
                                " sum(b.td_waittime) as wait_time," & _
                                " sum(b.td_brtime) as break_time " & _
                                " from tbl_trheader a,tbl_trdetail b " & _
                                " where a.th_empid like '%" & TxtEmpID.Text & "%' " & _
                                " and to_char(a.th_credate,'dd/mm/yyyy')='" & TxtCreDate.Text & "' " & _
                                " and a.th_empid = b.td_empid " & _
                                " and trunc(a.th_credate) = trunc(b.td_credate)").Tables(0).DataSet.Copy
                    TxtSumDriver.Text = Sumset.Tables(0).Rows(0).Item(0).ToString
                    TxtSumLoad.Text = Sumset.Tables(0).Rows(0).Item(1).ToString
                    TxtSumUnload.Text = Sumset.Tables(0).Rows(0).Item(2).ToString
                    TxtSumWaitTime.Text = Sumset.Tables(0).Rows(0).Item(3).ToString
                    TxtSumBreakTime.Text = Sumset.Tables(0).Rows(0).Item(4).ToString

                    ChkSet.Reset()
                    ChkSet = Ora_DTSET("select  th_startdat,th_enddat,th_sumh " & _
                                        " from(tbl_trheader)where th_empid like '%" & TxtEmpID.Text & "%' " & _
                                        " and to_char(th_credate,'dd/mm/yyyy')='" & TxtCreDate.Text & "'").Tables(0).DataSet.Copy
                    TxtStartDat.Text = ChkSet.Tables(0).Rows(0).Item(0).ToString
                    TxtEndDat.Text = ChkSet.Tables(0).Rows(0).Item(1).ToString
                    TxtSumH.Text = ChkSet.Tables(0).Rows(0).Item(2).ToString
                End If
            End If
        End If
    End Sub

    Private Sub BtnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSearch.Click
        If TxtEmpID.Text = "" Then
            MsgBox("Please Input Employee ID", MsgBoxStyle.OkOnly)
            TxtEmpID.Text = ""
            TxtSumDriver.Text = ""
            TxtSumLoad.Text = ""
            TxtSumUnload.Text = ""
            TxtSumWaitTime.Text = ""
            TxtSumBreakTime.Text = ""
            TxtStartDat.Text = ""
            TxtEndDat.Text = ""
            TxtSumH.Text = ""
            DTSet.Reset()
            RDSet.Reset()
            Sumset.Reset()
            ChkSet.Reset()
            TxtEmpID.Focus()
        Else
            DTSet.Reset()
            DTSet = Ora_DTSET("select  a.th_empid,a.th_empname,b.td_time, " & _
            " b.td_driver, " & _
            " b.td_load,b.td_unload,b.td_waittime,b.td_brtime,b.td_remark,b.td_dista " & _
            " from tbl_trheader a,tbl_trdetail b,tbl_trtime c " & _
            " where a.th_empid like '%" & TxtEmpID.Text & "%' " & _
            " and to_char(a.th_credate,'dd/mm/yyyy')='" & TxtCreDate.Text & "' " & _
            " and a.th_empid = b.td_empid " & _
            " and trunc(a.th_credate) = trunc(b.td_credate) " & _
            " and b.td_time=c.action_time " & _
            " order by a.th_empid,c.id_time ").Tables(0).DataSet.Copy
            If DTSet.Tables(0).Rows.Count <= 0 Then
                MsgBox("No data found", MsgBoxStyle.OkOnly)
                TxtEmpID.Text = ""
                TxtSumDriver.Text = ""
                TxtSumLoad.Text = ""
                TxtSumUnload.Text = ""
                TxtSumWaitTime.Text = ""
                TxtSumBreakTime.Text = ""
                TxtStartDat.Text = ""
                TxtEndDat.Text = ""
                TxtSumH.Text = ""
                RDSet.Reset()
                Sumset.Reset()
                ChkSet.Reset()
                TxtEmpID.Focus()

            Else
                RDSet.Reset()
                RDSet = Ora_DTSET("select  a.tr_round,a.tr_store,a.tr_mstart,a.tr_mend, " & _
                            " a.tr_oil, a.tr_sumdista,a.tr_rateoil from tbl_trround a,tbl_trheader b " & _
                            " where a.tr_empid like '%" & TxtEmpID.Text & "%' " & _
                            " and to_char(a.tr_credate,'dd/mm/yyyy')='" & TxtCreDate.Text & "' " & _
                            " and a.tr_empid = b.th_empid " & _
                            " and trunc(a.tr_credate) = trunc(b.th_credate) " & _
                            " order by a.tr_round ").Tables(0).DataSet.Copy

                With DataGridView2
                    .DataSource = RDSet.Tables(0)
                End With
                With DataGridView1
                    .DataSource = DTSet.Tables(0)
                End With
                Sumset.Reset()
                Sumset = Ora_DTSET("select  sum(b.td_driver) as driver,sum(b.td_load) as load, " & _
                            " sum(b.td_unload) as unload," & _
                            " sum(b.td_waittime) as wait_time," & _
                            " sum(b.td_brtime) as break_time " & _
                            " from tbl_trheader a,tbl_trdetail b " & _
                            " where a.th_empid like '%" & TxtEmpID.Text & "%' " & _
                            " and to_char(a.th_credate,'dd/mm/yyyy')='" & TxtCreDate.Text & "' " & _
                            " and a.th_empid = b.td_empid " & _
                            " and trunc(a.th_credate) = trunc(b.td_credate)").Tables(0).DataSet.Copy
                TxtSumDriver.Text = Sumset.Tables(0).Rows(0).Item(0).ToString
                TxtSumLoad.Text = Sumset.Tables(0).Rows(0).Item(1).ToString
                TxtSumUnload.Text = Sumset.Tables(0).Rows(0).Item(2).ToString
                TxtSumWaitTime.Text = Sumset.Tables(0).Rows(0).Item(3).ToString
                TxtSumBreakTime.Text = Sumset.Tables(0).Rows(0).Item(4).ToString

                ChkSet.Reset()
                ChkSet = Ora_DTSET("select  th_startdat,th_enddat,th_sumh " & _
                                    " from tbl_trheader where th_empid like '%" & TxtEmpID.Text & "%' " & _
                                    " and to_char(th_credate,'dd/mm/yyyy')='" & TxtCreDate.Text & "'").Tables(0).DataSet.Copy
                TxtStartDat.Text = ChkSet.Tables(0).Rows(0).Item(0).ToString
                TxtEndDat.Text = ChkSet.Tables(0).Rows(0).Item(1).ToString
                TxtSumH.Text = ChkSet.Tables(0).Rows(0).Item(2).ToString
            End If
        End If
    End Sub
    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim DDTtemp As New DataSet
            DDTtemp = DTSet.Tables(0).DataSet.Copy
            Dim reportset As New ReportTransportByDetail
            reportset.SetDataSource(DDTtemp.Tables(0))
            ReportVeiwer.CrystalReportViewer1.ReportSource = reportset
            ReportVeiwer.Show()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class


code ตัวที่ทำมาครับ เนื่องจากดึงข้อมูลมา จาก 2 datagrid ซึ่ง 2 datagrid นี้เป็น dataset คนละตัวและไม่สามารถเอามา union กันได้ผมใช้ oracle นะครับ รบกวนตอบให้ตรงประเด็นหน่อย นี้เป็น code ทั้งหมดนะครับ
Date : 2010-02-18 00:24:04 By : aa
 

 

No. 3



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


แล้วผลลัพธ์ที่ต้องการคือยังไง
ให้เดาจาก Code คงมะไหวละค่ะ
ทำงานตัวเองอยู่ด้วยน่ะคะ
Date : 2010-02-18 00:48:39 By : blurEye
 


 

No. 4



โพสกระทู้ ( 373 )
บทความ ( 0 )



สถานะออฟไลน์


1 dataset ใส่ได้หลาย datatable
คุณส่งไป dataset เดียว แต่รวมๆ หลายๆ datatable ก็ได้
ไม่จำเป็นต้อง ส่งไปหลายๆ dataset ครับ

DataSet.DataTable.Add("table ที่คุณต้องการ");
Date : 2010-02-18 08:31:03 By : numenoy
 


 

No. 5

Guest


ยกตัวอย่างให้ดูได้ป่าวครับ เรื่อง 1 dataset ใส่ได้หลาย datatable
Date : 2010-02-18 13:44:26 By : aa
 


 

No. 6



โพสกระทู้ ( 373 )
บทความ ( 0 )



สถานะออฟไลน์


Ora_DTSET(...) <<< method นี้คุณ return ค่าออกมาเป็น dataset ใช่มั้ยครับ

Dim myDataSet As New DataSet() <<< ผมจะสร้าง dataset ขึ้นมาตัวหนึ่ง

myDataSet.Tables.Add(Ora_DTSET(...).Tables("ชื่อ table ของคุณ ที่ Select มา")) <<< ผมก็เอา table ที่ได้จาก database มาลง myDataSet ของผม
สามารถ add ได้เรื่อยๆ ตราบใดที่ ชื่อ table ไม่ซ้ำกัน หรือ index ไม่ซ้ำกัน

myDataSet.Tables.Add(Ora_DTSET(...).Tables("table1"))
myDataSet.Tables.Add(Ora_DTSET(...).Tables("table2"))
myDataSet.Tables.Add(Ora_DTSET(...).Tables("table3"))

เพราะ dataset ก็คือ แบบนี้ คือที่รวมๆ หลายๆ datatable
<dataset>
<datatable1>
</datatable1>
<datatable2>
</datatable2>
<datatable3>
</datatable3>
</dataset>

คุณก็เอา dataset ไป link ใน crystal report ของคุณ โดยเลือก table ให้ตรงแล้วกันครับ

Dim DDTtemp As New DataSet <<< ตรงนี้คุณยัง ประกาศ dataset temp ใช้เองเลย แล้ว จะ Add datatable เพิ่มไม่ได้เลยหรือ
190. DDTtemp = DTSet.Tables(0).DataSet.Copy
191. Dim reportset As New ReportTransportByDetail
192. reportset.SetDataSource(DDTtemp.Tables(0))
Date : 2010-02-18 14:50:26 By : numenoy
 


 

No. 7



โพสกระทู้ ( 121 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

เขียนโค้ดให้จับรวม dataset เป็นตัวเดียวกันเลยครับ

Date : 2010-02-18 18:00:09 By : madoadza
 


 

No. 8

Guest


รบกวนขอตัวอย่างมาเป็นแนวทางได้หรือป่าวครับ ผมยังเริ่มไปไม่ถูกทางเลย ขอบคุณทุกท่านมากๆเลยสำหรับคำตอบ
แต่ขอ codeตัวอย่างพอเป็นแนวทางด้วยครับ ส่งมาที่เมลผมก็ได้นะครับ [email protected]
Date : 2010-02-20 16:06:42 By : xcom
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนถามเรื่อง crystal report ที่ดึงข้อมูลจาก dataset มากกว่าสอง dataset อ่ะคับ vb.net2008
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่