PDA

View Full Version : ایجاد ستون ردیف در گرید جانوس



rezaei manesh
پنج شنبه 06 مهر 1385, 10:38 صبح
سلام من به لطف دوستان کامپوننت جانوس را گرفتم
حالا اونو به دیتا ست و جدول بایند کردم و مشکلی ندارم
اما می خوام که یک ستون ردیف هم داشته باشم ؟

hadi2345
پنج شنبه 06 مهر 1385, 13:22 عصر
با سلام...

تا اونجایی که من میدونم جانوس چنین امکانی نداره !!! شما باید تو DataSet یک فیلد اضافی برای این منظور در نظر بگیرید .... البته نمیدونم در جانوس 3 این مورد رو میشه حل کرد یا نه !!!

موفق باشید .

rezaei manesh
شنبه 08 مهر 1385, 14:03 عصر
چطوری تویه دیتاست یک فیلد کانتر اضافه کنم

hadi2345
یک شنبه 09 مهر 1385, 08:27 صبح
با سلام مجدد ...
تا اونجایی که من میدونم در SQL Server 2005 این مشکل با RecNo حل شده !! که هنوز خودم تست نکردم !! ولی در SQL Server 2000 در Select مورد نظر باید کد بزنی تا یک ردیف ایجاد کنه !! که متاسفانه این روش هم اصلا جالب نیست مخصوصا در جدول های بزرگ ...
امیدوارم دوستان راه حل دیگه ای برای این کار سراغ داشته باشن ..

موفق باشید ..

tayebeh
یک شنبه 09 مهر 1385, 10:51 صبح
باسلام
من یه نمونه واستون فرستادم امیدوارم بتونید ازش استفاده کنید.
شرح :
بعد از اینکه جدولتو به دیتاست بایند کردی. یه ستون می سازی به نام ردیف، بعد این ستون رو مثل بقیه ستونهای دیتاست به دیتاگرید جانوس متصل می کنید.
البته بدیش اینه که اگه مثلا دیتاگرید جانوس شما خاصیت گروه بندی یا فیلترکردن داشته باشه، ردیف شما همچنان برای هر ردیفی ثابت می مونه . نمی دونم متوجه منظورم شدید یا نه؟اگه خواستید خودتون آزمایش کنید.
امیدوارم به دردتون بخوره.


Dim DA_personal As New SqlDataAdapter("select ozviyat_grp, person_cod, pname, office, tedad, pay_type, tel, address, fromtrh, totrh, regtrh, username, makan, vaziyat, description, rptgroup from personal ", con)
Dim DS_personal As New DataSet
DA_personal.Fill(DS_personal, "personal")
If DS_personal.Tables("personal").Rows.Count = 0 Then
Exit Sub
End If
Dim myType As System.Type
myType = System.Type.GetType("System.Decimal")
DS_personal.Tables("personal").Columns.Add(New System.Data.DataColumn("radif", myType))
DS_personal.Tables("personal").Columns(16).ColumnName = "radif"
Dim myrow As DataRow
Dim i As Integer = 1
For Each myrow In DS_personal.Tables("personal").Rows
myrow.Item(16) = i
i += 1
Next
GridEX2.DataSource = DS_personal.Tables("personal")

hadi2345
یک شنبه 09 مهر 1385, 12:42 عصر
با سلام مجدد ...

یک ایراد دیگه ای که این کد داره اینه که اگر رکوردهای جدول شما زیاد باشه ، ایجاد ستون ردیف زمان زیادی میخواد !!!

موفق باشید .

rezaei manesh
دوشنبه 10 مهر 1385, 07:55 صبح
سلام
من از گرید رو به دیتا ست وصل کردم و توی کد فقط آداپتور مربوطه رو fill می کنم
اما این طوری باید این کارها رو تو کد اتجام بدم که خودش زمات می بره
در ضمن من با sql2000 کار می کنم

tayebeh
دوشنبه 10 مهر 1385, 08:21 صبح
بله درسته ، زمان می بره.