PDA

View Full Version : استفاده از VSFlexGrid



samiasoft
جمعه 12 مهر 1392, 21:31 عصر
سلام

اگر ممکن هست یه اموزشی برای ثبت داده و ویرایش آن برای کار در VSFlexGrid که به adodc متصل هست قرار بدین

هرچه سرچ کردم در این زمینه سورسی ندیدم:لبخند:

m.4.r.m
جمعه 12 مهر 1392, 22:06 عصر
ثبت داده و ویرایش منظور چی هست ثبت توسط Adodc یا ثبت در VS ?

VSFlexGrid1.TextMatrix(1,1)= Adodc1.RecordSet.Field("Name")

samiasoft
چهارشنبه 24 مهر 1392, 16:46 عصر
با استفاده از کد زیر وقتی داده ای را در VSFlexGrid حذف میکنم درست عمل میکنه ولی وقتی برنامه رو باز و بسته میکنم میبنم اون داده ای را که حذف کردم بازم باقی مونده دلیلش چیه؟

Adodc1.Recordset.Delete (adAffectCurrent)


و یه سوال دیگر این که
میخواهم با استفاده از دو Command در بین سطرهای VSFlexGrid حرکت کنم چگونه میتوان ان را انجام داد؟با کد زیر انجام دادم ولی نشد!

If Form1.Adodc1.Recordset.BOF = False Then
Form1.Adodc1.Recordset.MovePrevious
End If


If Form1.Adodc1.Recordset.EOF = False Then
Form1.Adodc1.Recordset.MoveNext
End If

vbhamed
جمعه 26 مهر 1392, 09:56 صبح
سلام
خاصيت DataMode كنترل VsFlexGrid رو روي flexDMBound قرار بدين و براي حذف هم از كد زير استفاده كنيد
On Error Resume Next
VSFlexGrid1.RemoveItem VSFlexGrid1.Row

samiasoft
جمعه 26 مهر 1392, 15:13 عصر
در حرکت داده بعدی در خود VSFlexGrid با کد زیر وقتی به اخرین داده میرسه و یه دونه هم میزنم انگار به داده بعدی که خالی هست میره ولی در خود VSFlexGrid حرکتی صورت نمییگره و خطا میده
در حالی که من شرط EOF رو نوشتم
If Form1.Adodc1.Recordset.EOF = False Then
Form1.Adodc1.Recordset.MoveNext
End If

vbhamed
شنبه 27 مهر 1392, 07:54 صبح
سلام
به شكل زير بنويسيد، خاصيت AbsolutePosition شماره ركورد جاري رو برمي‌گردونه و تغيير ميده
Private Sub cmdNext_Click()

If Form1.Adodc1.Recordset.AbsolutePosition < Adodc1.Recordset.RecordCount Then Form1.Adodc1.Recordset.MoveNext

End Sub

Private Sub cmdPrev_Click()

If Form1.Adodc1.Recordset.AbsolutePosition > 1 Then Form1.Adodc1.Recordset.MovePrevious

End Sub

samiasoft
سه شنبه 30 مهر 1392, 15:50 عصر
چگونه در VSFlexGrid میتوان اندازه عرض سطر اول همان عنوان ستون ها(قسمت قرمز رنگ ) را تغییر داد؟میخواهم نسبت به سایر سطرها بیشتر باشه عرضش

چگونه ستون اول (قسمت سبز رنگ ) را میتوان حذف کرد؟

http://samisoft.ir/1/images/hGbgK.gif

و یه سوال دیگر ایا در VSFlexGrid هم میشود مثل دیتاگرید در ستون اول هر داده که انتخاب میشود فلش کوچکی نمایش داده شود؟مثل تصویر زیر که در دیتاگرید هستش

http://samisoft.ir/1/images/8rY7c.gif

vbhamed
سه شنبه 30 مهر 1392, 17:46 عصر
سلام
براي ارتفاع بيشتر قسمت قرمز رنگ
vsFlexGrid1.RowHeight(0)=500
براي حذف ستون اول سبز رنگ
vsFlexGrid1.FixedCols = 0
و براي نمايش آيكون، ابتدا يك پيكچر باكس روي فرم بزاريد و تصوير مورد نظر رو درون اون بارگذاري كنيد بعد كد زير رو بنويسيد
ضمنا دستور vsFlexGrid1.FixedCols = 0 رو هم ديگه استفاده نكنيد
Private Sub VSFlexGrid1_BeforeRowColChange(ByVal OldRow As Long, ByVal OldCol As Long, ByVal NewRow As Long, ByVal NewCol As Long, Cancel As Boolean)

With VSFlexGrid1
.Cell(flexcpPicture, .Row, 0, .Row, 0) = LoadPicture()
End With

End Sub

Private Sub VSFlexGrid1_RowColChange()

With VSFlexGrid1
.Cell(flexcpPicture, .Row, 0, .Row, 0) = Picture1.Picture
End With

End Sub

samiasoft
چهارشنبه 01 آبان 1392, 12:51 عصر
در این قسمت از کد که در بالا نیز اشاره کردید هنگامی که داده ای در VSFlexGrid نباشد و خالی باشد ارور میده!چگونه باید اینو تغییر داد؟
Private Sub VSFlexGrid1_RowColChange()

With VSFlexGrid1
.Cell(flexcpPicture, .Row, 0, .Row, 0) = Picture1.Picture
End With

End Sub


و همچنین من برای ثبت داده از کد زیر استفاده میکنم ولی باز هم به این کدی که دادید هنگام ذخیره داده با ارور مواجه میشوم

Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("IDNumber") = Texta1.Text
Adodc1.Recordset.Fields("Surname") = Texta2.Text
Adodc1.Recordset.Update
Adodc1.Refresh
Adodc1.Refresh

فک کنم کد ذخیره هم ایراد داره اخه در دیتا گرید در قسمت اخر کد نیاز نبود Adodc1.Refresh رو دوبار بنویسم ولی اینجا وقتی یه بار مینویسم داده ذخیره شده رو نشان نمیده !!

ممنون میشوم راهنمایی کنید

vbhamed
جمعه 03 آبان 1392, 06:48 صبح
در این قسمت از کد که در بالا نیز اشاره کردید هنگامی که داده ای در VSFlexGrid نباشد و خالی باشد ارور میده!چگونه باید اینو تغییر داد؟
Private Sub VSFlexGrid1_RowColChange()

With VSFlexGrid1
.Cell(flexcpPicture, .Row, 0, .Row, 0) = Picture1.Picture
End With

End Sub


سلام
از دستور On Error Resume Next ابتداي متد استفاده كنيد يا با يك دستور If چك كنيد اگر تعداد سطرهاي گرايد بيشتر از 0 بود اينكار رو انجام بده، تعداد سطرها هم با دستور VSFlexGrid1.Rows بدست مياد