در اصل فیلدی دارم به اسم mablagh که نوع اون integer است و توی کریستال ریپورت از طریق Sum مجموع فیلد رو حساب میکنم و تا اینجا مشکلی ندارم.
اما وقتی دیتاتیبل رو به کریستال ارسال میکنم چون نوعش Stringه نمیتونه مقادیر فیلد رو جمع کنه.
Dim dt2 As New DataTable
dt2.Columns.Add("mablagh")
Dim i As Integer
For i = 0 To Me.DataGridView1.Rows.Count - 1
Dim values() As String = {Me.DataGridView1.Rows(i).Cells(0).Value}
dt2.Rows.Add(values)
Next
Dim cr As New CrystalReport2
cr.SetDataSource(dt2)
Me.CrystalReportViewer1.ReportSource = cr
تو این روش به جای اینکه مقدار رو مستقیما از جدول وارد دیتاتیبل کنم از دیتاگرید وارد دیتاتیبل میکنم و دیتاتیبل رو به کریستال پاس میدم.
مشکل هم همین جاست که توی کد زیر
dt2.Columns.Add("mablagh")
باید نوع فیلد مبلغ رو براش تعریف کنم و چون تعریف نشده به صورت اتوماتیک از نوع string در نظر گرفته میشه.
با کد زیر برای تعریف کردن نوعش دارم ور میرم اما فعلا نمیشه:
dt2.Columns.Add("mablagh", System.Type.GetType("system.xxx"))