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 > การส่งค่าจาก DataGridView ทีละ Row เพื่อออกรายงานใน Crystal Report



 

การส่งค่าจาก DataGridView ทีละ Row เพื่อออกรายงานใน Crystal Report

 



Topic : 039666



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



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




รบกวนด้วยค่ะ ตอนนี้ มีปัญหาเกี่ยวกับการส่งค่าไปยัง crystal report ค่ะ เนื่องจาก ทำการ ดึงค่าจาก view เพื่อแสดงค่าไม่ได้ เลยต้องทำการ query จาก View มาก่อน แล้วทำการ Add row ค่ะ

รูปแบบคำสั่งการ Query ดังนี้ค่ะ

Code (VB.NET)
  Dim sql As String = "Select * from system"
            Dim d_a As SqlDataAdapter
            Dim d_s As New DataSet
            d_a = New SqlDataAdapter(sql, SqlConnection1)
            d_a.Fill(d_s, "s")
            DataGrid_sys.DataSource = d_s.Tables("s")
            '  Exit Sub
            '====================================================================================================================
            Dim i As Integer
           
            For Each dgvr As DataGridViewRow In DataGrid_sys.Rows
                For i = 0 To DataGrid_sys.Rows.Count - 1
                    Dim sql2 As String = "Select count (*)as count from view_Treated_System Where TreatedDate BETWEEN '" & _
                             dtp_Start.Value.Month & "/" & dtp_Start.Value.Day & "/" & dtp_Start.Value.Year & "' and '" & _
                             dtp_End.Value.Month & "/" & dtp_End.Value.Day & "/" & dtp_End.Value.Year & "' and SysID = '" & DataGrid_sys.Rows(i).Cells(0).Value.ToString & "' And PetType = 'D'"

                    Dim d_a2 As SqlDataAdapter
                    Dim d_s2 As New DataSet
                    Dim d_row() As DataRow
                    d_a2 = New SqlDataAdapter(sql2, SqlConnection1)
                    d_a2.Fill(d_s2, "ts")

                    If d_s2.Tables("ts").Rows.Count <> 0 Then
                        d_row = d_s2.Tables("ts").Select
                        DOG.Text = CStr(d_row(0)("count"))
                        DataGrid_ts.Rows.Add()
                        DataGrid_ts.Rows(i).Cells(0).Value = DataGrid_sys.Rows(i).Cells(0).Value
                        DataGrid_ts.Rows(i).Cells(1).Value = DataGrid_sys.Rows(i).Cells(1).Value
                        DataGrid_ts.Rows(i).Cells(2).Value = CDbl(DOG.Text)

                    End If
                    Dim sql3 As String = "Select count (*)as count from view_Treated_System Where TreatedDate BETWEEN '" & _
                        dtp_Start.Value.Month & "/" & dtp_Start.Value.Day & "/" & dtp_Start.Value.Year & "' and '" & _
                        dtp_End.Value.Month & "/" & dtp_End.Value.Day & "/" & dtp_End.Value.Year & "' and SysID = '" & DataGrid_sys.Rows(i).Cells(0).Value.ToString & "' And PetType = 'C'"
                    Dim d_a3 As SqlDataAdapter
                    Dim d_s3 As New DataSet
                    Dim d_row2() As DataRow
                    d_a3 = New SqlDataAdapter(sql3, SqlConnection1)
                    d_a3.Fill(d_s3, "ts")
                    If d_s3.Tables("ts").Rows.Count <> 0 Then
                        d_row2 = d_s3.Tables("ts").Select
                        CAT.Text = CStr(d_row2(0)("count"))
                        DataGrid_ts.Rows(i).Cells(3).Value = CDbl(CAT.Text)
                    End If

                    Dim sum As Integer
                    sum = CDbl(DOG.Text) + CDbl(CAT.Text)
                    DataGrid_ts.Rows(i).Cells(4).Value = sum.ToString

                                   Next
 For j = 0 To DataGrid_ts.Rows.Count - 1
                    rptTreated.SetParameterValue("SySName", DataGrid_ts.Rows(j).Cells(1).Value.ToString)
                    rptTreated.SetParameterValue("Num_Dog", DataGrid_ts.Rows(j).Cells(2).Value.ToString)
                    rptTreated.SetParameterValue("Num_Cat", DataGrid_ts.Rows(j).Cells(3).Value.ToString)
                    rptTreated.SetParameterValue("Sum", DataGrid_ts.Rows(j).Cells(4).Value.ToString)
                Next
                CrystalReportViewer1.ReportSource = rptTreated


                'rptTreated.SetDataSource(d_set.Tables("ts"))
                rptTreated.SetParameterValue("dtp_Start", dtp_Start.Value)
                rptTreated.SetParameterValue("dtp_End", dtp_End.Value)


                With CrystalReportViewer1
                    .ReportSource = rptTreated
                    .DisplayStatusBar = True
                    .DisplayToolbar = True
                    .DisplayGroupTree = False
                End With

                'Next
                Exit Sub
            Next


ตอนนี้ค่าที่ส่งไป และแสดงผล จะแสดงผลแค่ แถวสุดท้ายเท่านั้นอ่ะคะ ต้องทำอย่างไรให้ค่าที่ส่งผ่านไป แสดงทุก Row ที่อยู่ใน Datagrid ค่ะ รบกวนด้วยนะคะ

อันนี้รูปนะคะ ค่าที่แสดงใน report แสดงแค่ค่าแถวสุดท้ายเท่านั้น


รบกวนด้วยนะคะ ติดอันสุดท้ายแล้ว ขอบพระคุณมาก ๆ ค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-27 13:11:15 By : Kwang196 View : 4371 Reply : 2
 

 

No. 1



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



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


รบกวนด้วยนะคะ เหลือปัญหาสุดท้ายแล้ว...ที่สำคัญ Demo วันที่ 5 มีนาคม 2553 แล้วด้วยค่ะ พยายามแล้วไม่ได้จริง ๆ ทำไมยังไงก็ออกแค่ row สุดท้าย row เดียว






Date : 2010-02-28 20:25:21 By : Kwang196
 


 

No. 2



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



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


พี่ว่าน้องใช้ parameter ใน crystal report ผิดประเภทแล้วครับ
parameter ใน crystal report ใช้ส่งค่าจากโปรแกรมบางค่าเท่านั้น เช่น ชื่อเฉพาะของรายงานตรงหัวรายงาน, ค่าที่แสดงครั้งเดียวแต่แสดงต่างๆ กันในแต่ละรายงาน เป็นต้น

พี่ดูโค้ดน้องแล้วเหมือนน้องพยามยามจะออกรายงานทั้งหมดด้วย parameter มันสุโก้ยมาก 555+ แซวเล่นครับ

การออกรายงานมีหลายวิธีเลย

- ใช้ dataset ครับ สร้าง dataset ในโปรเจ็คเลย แล้วใช้ร่วมกับ crystal report
- ใช้ temp database คือ สร้าง table ใน database ที่ใช้เฉพาะออกรายงาน เช่น tbl_report1 แล้ว insert ข้อมูลลง database แล้วให้ crystal report ไปออกรายงาน

และอื่นๆ จะคิดได้อีกมากมาย

น้องลองหา dataset กับ crystal report มีเยอะครับ บทความ เช่น

https://www.thaicreate.com/dotnet/forum/028184.html
Date : 2010-03-02 08:43:45 By : numenoy
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การส่งค่าจาก DataGridView ทีละ Row เพื่อออกรายงานใน Crystal Report
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่