เขียนปุ่ม pinrt จาก CrystalReport ไม่ได้ครับ ช่วยทีครับ พยายามแล้วครับ
ไม่น่าเชื่อว่าถามตอบ > 200 กระทู้
--- ผมรู้ว่าคุณยกตัวอย่างเพื่อประกอบคำถาม แต่ผมรับรู้ได้ว่ามันไม่มีคำว่า "ตั้งใจ" เจือปนอยู่ในสายเลือดโปรแกรมเมอร์แม้แต่นิดเดียว
------ ถ้าเปรียบเทียบเป็น HN Blood Group (A, B, C, O)
------ เลือดของคุณก็คงจะเป็น กรุ๊ป Y ประมาณนั้น (Z ด้วยซ้ำไป)
ที่ผมกล่าวมาข้างบนผมไม่ได้ตั้งใจจะว่าอะไรคุณหรอก (มันไม่ได้ทำให้ผมรวยขึ้น/จนลง)
--- วันข้างหน้าสมมุติว่า คุณเป็นเจ้าคนนายคน และลูกน้องของคุณทำให้คุณนึกถึงสิ่งที่ผมเคยกล่าวเอาไว้ (กงกรรมกงเกวียน)
------ ไม่น่าเชื่อว่าถามตอบ > 200 กระทู้ เช่นเดียวกันครับ
ปล. ชีวิตของผมไม่ได้มีแค่คำว่า โปรแกรมมิ่ง(Programing)
Date :
2016-12-03 20:52:21
By :
หน้าฮี
ทำโปรเจคจบอะครับ
ช่วยแนะนำหน่อยครับ ขอบคุณครับ
Date :
2016-12-03 20:57:12
By :
copyringht
คุณก็ไป Download Crystal Reports มาจาก
--- www.SAP.Com
--- หรือหาเอาจาก Internet/อื่นฯ ที่คุณพอหาได้
แต่ต้องให้ตรงกับ VS ที่คุณกำลังใช้พัฒนา (หมายควยว่า คุณใช้ VS2015 32Bit ก็ต้องไปเอา CR32Bit For VS2015)
สมัยก่อน Visual Studio Version xxx มันมาพร้อมกับ Crystal Report เลยนะ
หลังจากนั้นไม่รู้เป็นเพราะอะไร?
--- Visual studio มันตัด Crystal Report ทิ้งไปดื้อเลย (ถ้าอยากใช้ต่อก็หาเอาเอง ประมาณนั้น)
นี่เหตุผลที่ผมเลิกใช้ Crystal Report
--- ผมไม่ได้ยี่หระกับมันหรอก Crystal Report
------ แต่มันก็แจ๋วและแจ่มแมวจริงฯ (มันทำรายงานที่ซับซ้อนตามความต้องการของเรา ได้เสมอ )
Date :
2016-12-03 21:18:29
By :
หน้าฮี
ผมจับมัดรวมกันเลย + กระทู้ที่ 125609
วันนี้ผมปรับปรุง ระบบ Session (ไม่ได้ปรับมานานมากแล้ว)
--- โดยใช้ Concept "Generic is all things. "
ผมก็ทำ Class เล็กฯขึ้นมาเพื่อประกอบความเข้าใจ
Code (VB.NET)
Public Class myGenericList(Of T)
Private _lst As New List(Of T)
''' <summary>
''' Ctor
''' </summary>
''' <remarks></remarks>
Sub New()
End Sub
Public Sub Add(ByVal item As T)
_lst.Add(item)
End Sub
Public Sub Remove(ByVal index As Integer)
If (index >= 0) AndAlso (_lst.Count > index) AndAlso (_lst.ElementAtOrDefault(index) IsNot Nothing) Then
_lst.RemoveAt(index)
Else
'TODO
End If
End Sub
Default Public Property Item(ByVal index As Integer) As T
Get
Return _lst(index)
End Get
Set(value As T)
_lst(index) = value
End Set
End Property
End Class
ปล. สำเนียงโปรแกรมเมอร์มืออาชีพ ไม่เป็นสองรองใคร หัวใจมันคิดแบบนี้
Date :
2016-12-04 17:39:00
By :
หน้าฮี
ผมเป็น "โปรแกรมเมอร์" นะใครฯก็พูดได้ แต่ "มันไม่ยากแต่ก็ไม่ง่าย" จนเกินไปนัก
--- ครูบาอาจารย์ที่สอนตามมหาวิทยาลัยของพวกคุณ ผมก็ไม่หยี่หระ (ผมคิดว่าแบบนี้ พวกเด็กฯ )
------ แสบสันต์ไหมล่ะ?
-------- เงินเดือนจะสักกี่บาทกันเชียว (ไม่งั้นก็ไม่ออกมาหาเศษหาเลยอยู่ข้างนอกรั้ว)
เอาง่ายฯ วันนี้พวกคุณเรียนบทที่ 1 และคุณย้อนถามครูบาอาจารย์ของคุณในบทที่ 5
--- แน่นอนว่าคุณได้เกรด 0 (เขาให้คำตอบพวกคุณไม่ได้หรอก เพราะเขาไม่ได้เตรียมการสอนมา)
------ เหตุผลที่เขาตอบพวกคุณไม่ได้เพราะอะไร?
--------- องค์ความรู้ไม่เพียงพอยังไงล่ะ (อันนี้ผมให้ยัดเยียดคำตอบให้)
Date :
2016-12-04 18:00:26
By :
หน้าฮี
เผื่อเป็นแนวทางครับ
อันนี้เป็น concept ดึงไฟล์ .rpt ออกมาไว้ข้างนอก แล้วเรียกใช้โดยกำหนด path ของไฟล์ครับ
แล้วก็ใช้วิธีส่งข้อมูลเข้ารายงานเป็นแบบ dataset คือ โยนข้อมูลที่ผ่านการ query แล้วเข้าไฟล์รายงาน แทนที่จะให้ตัวรายงานเป็นตัว query ข้อมูลจาก database โดยตรง
Code (VB.NET)
Dim rpt_path As String = Application.StartupPath & "\report\example.rpt
Dim ds = New DataSet() //สร้าง DataSet ไว้สำหรับเก็บข้อมูลจากตารางที่เราคิวรี่มาจากฐานข้อมูล เพื่อส่งให้ Crystal report แสดงผล
ds.Tables("table1").Merge(sub1(param1)) //Sub1(Param1) คือ sub ที่ส่งก้อนข้อมูลที่คิวรี่จากฐานข้อมูลในรูปของ DataTable
ds.Tables("table2").Merge(sub2(param2))
ds.Tables("mixer_report").Merge(sub3(param3)
Dim rpt As New ReportDocument
rpt.Load(rpt_path)
rpt.Subreports(0).SetDataSource(Sub4(Param3)4 การส่งก้อนข้อมูลเข้า SubReport
rpt.SetDataSource(ds)
rpt.SetParameterValue("Param", "value") //ส่งค่า Parameter เข้า Crystal report
CrystalReportViewer1.ReportSource = rpt
CrystalReportViewer1.Refresh()
CrystalReportViewer1.Zoom(1)
Date :
2016-12-06 11:12:15
By :
cooper1103
จาก #NO 8 และประโยคนี้ " 2. ก็ใช้ Generic อัดเข้าไปเลย (ขั้น Advance) และต้องไปปรับตรงนี้ด้วย"
ตัวของ Crystal Report มันยังไม่สนับสนุน (Support) Nulable Of Type เช่น
Code (VB.NET)
Public Class Customers
Public Property CustID? As Integer 'รหัสลูกค้า
Public Property DeadDate As NullAble(Of Date) 'วันมรณะ
'สองบรรทัดข้างบนนี้ ความหมายเดียวกัน
End Class
ไม่แน่ใจว่าขณะที่มัน Render (แสดงรายงานออกทางหน้าจอ) มันจำกัดแค่ .NET 4.0 หรือไม่?
--- อันนี้ต้องลองเอาเอง
ปล. พึ่งทำไปหมาดฯ ถึงจำได้ (ลูกค้ามันต้องการ Crystal Reports เท่านั้น แล้วมันขัดได้หรือ?)
Date :
2016-12-06 21:21:30
By :
หน้าฮี
จาก #NO 8 - 9 คำว่า "อัดเข้าไปใน .RTP ด้วย Generic" มันก็ประมาณนี้
Code (VB.NET)
Dim leftList = {
New With {.ID = 1, .Name = "John", .Changed = False},
New With {.ID = 2, .Name = "Obama", .Changed = False},
New With {.ID = 3, .Name = "Kinton", .Changed = False}
}
Dim rightList = {
New With {.ID = 1, .Name = "John", .Changed = False},
New With {.ID = 3, .Name = "Kinton", .Changed = True},
New With {.ID = 4, .Name = "Payboy", .Changed = False}
}
Dim RPTJoinList = leftList.GroupJoin(rightList, Function(left) left.ID, Function(right) right.ID, Function(x, y) New With { _
Key .Left = x, Key .Rights = y _
}).SelectMany(Function(x) x.Rights.DefaultIfEmpty(), Function(x, y) New With {
Key .ID = x.Left.ID, _
Key .Name = x.Left.Name, _
Key .Changed = If(y Is Nothing, x.Left.Changed, y.Changed) _
}).ToList()
Date :
2016-12-06 21:37:04
By :
หน้าฮี
จาก #NO 9 ในเมื่อ Crystal Reports มันไม่สนับสนุน (Support)
--- จริงฯแล้วมันอาจสนับสนุนแต่ตรูองค์ความรู้ไม่เพียงพอก็อาจเป็นไปได้เหมือนกัน
------ (ลองเอาเองก็แล้วกัน ชี้ให้แล้ว)
มัวแต่งมโข่ง (งานของตรูก็ไม่เดินหน้าซิ [วิธีการแก้ไขปัญหามันมี 1, 2, 3, 4, etc, ไม่มีจนแต้ม])
สูงสุดคืนสู่สามัญ
Code (VB.NET)
Public Class Customers
Public Property CustID As Integer 'รหัสลูกค้า
Public Property DeadDate As Date 'วันมรณะ
'สองบรรทัดข้างบนนี้ ความหมายเดียวกัน
End Class
แค่นี้ก็แก้ไขได้แล้ว (ปัญหาเฉพาะหน้าแบบด้านฯและยังคงประสิทธิภาพ)
Date :
2016-12-06 22:39:21
By :
หน้าฮี
Load balance : Server 03