PDA

View Full Version : vsflex grid 8



maryamb
شنبه 26 مرداد 1387, 09:07 صبح
با سلام خدمت دوستان گرامي
من براي اولين بار مي خوام از vsflexgrid 8 تو برنامم استفاده كنم و هيچ تجربه اي در باره ي اون ندارم.
چند تا سوال داشتم :
يكي اينكه تو يه برنامه اي ديده بودم تو فرم يه vsflex گذاشته بود و فقط ستون سومش editable بود و رو بقيه ستون ها كليك مي كردي نميشد ويرايش كرد .مي خواستم بدونم چجوري تونسته ؟
دوم اينكه تو همون برنامه يكي از ستونهاش چك باكس بود و كاربر مي تونست چند تا با هم انتخاب كنه و با زدن دكمه ي تاييد هر چند تا كه انتخاب كرده بود مي اومد تو يه vsflexgrid ديگه نمايش داده مي شد . مي شه بگيد چطور مي شه اين كارو كرد؟
ضمنا هر كي هم تجربه يا نكته خاصي به ذهنش مي رسه اگه بگه ممنون مي شم . حتي تو ساده ترين چيزا . چون من تا حالا باهاش كار نكردم
مرسي منتظرم عجله دارم

xxxxx_xxxxx
شنبه 26 مرداد 1387, 09:20 صبح
سلام من هم چند روز پيش براي اولين بار از اين شي استفاده كردم.

فقط حدود 2 تا 3 ساعت با proprty هاش كار مي كردم.

اين دو موردي هم كه شما گفتيد تو همون property هاش بگرديد پيدا مي كنيد:چشمک:

من حضورذهن ندارم كه كدوم property مربوط به اونها ميشه ولي هر كاري رو ميشه با property هاي اون كرد غير از تغيير caption فيلدها كه من يك تاپيك براي همين دادم و دوستان كمك كردن و به نتيجه رسيدم.
لينك تاپيك:
http://barnamenevis.org/forum/showthread.php?t=117640&highlight=vsflex

موفق باشيد.

maryamb
شنبه 26 مرداد 1387, 09:44 صبح
خب منم مي دونم تو پراپرتي هاش هست !!! گشتم ولي پيدا نكردم .
شما كه پيدا كردي خب مي گفتي ديگه !!

vbhamed
شنبه 26 مرداد 1387, 11:17 صبح
سلام

با متد BeforeEdit مي شه تعيين كرد Edit بشه يا نه، تو اين مثال ستون دوم قابل Edit نيست


Private Sub vsFlexGrid1_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)

If Col = 2 Then Cancel = True

End Subتو اين مثال هم ستون اول چك باكسي شده


vsFlexGrid1.ColDataType(1) = flexDTBoolean

maryamb
شنبه 26 مرداد 1387, 12:11 عصر
چطور مي تونم بگم ستون هايي كه چك باكس رو توش علامت زيديم رو بريزيم تو يه جدول ديگه ؟

چه شرطي بزارم؟
يه سوال ديگه :
من مي خوام تو فرم ورود اطلاعات يه vsflex بزارم و اونو به پايگاه وصل كنم كه طرف همه ي داده هايي كه قبلا وارد كرده رو ببينه .
تا اينجا مشكلي نداره.
حالا مي خوام مثلا كاربر 2 تا ورودي ديگه هم وارد كنه و اونا هم با زدن دكمه ي "اضافه كردن " به vsflex اضافه بشن.
در آخر بعد از اينكه چند تا ورودي ديگه هم اضافه كرد همه ثبت شن
من براي اينكار از adodc1.recordset.updatebach استفاده مي كنم و بعد از چند تا تغييرات همه رو با هم ذخيره مي كنم .
تا اينجا هم مشكلي نيست .
ولي در اين حالت براي حذف يه سطر اررور مي ده
vsf.removeitem (vsf.row)
در حالي كه اين كد وقتي vsflex مستقيم به پايگاه وصله و هر تغيري همون لحظه ثبت مي شه مشكلي نداره.
اميد وارم تونسته باشم منظورمو برسونم.
كسي علتشو مي دونه يا راه ديگه اي به ذهنش مي رسه؟
(راهي براي اينكه :
1 - vsflex به پايگاه وصل باشه و داده هاي قبلي رو نشون بده.
2- همونجا با تكست باكس ها بشه داده ي جديد وارد كرد يا قبلي ها رو اديت كرد ولي ذخيره نشن
3-با زدن دكمه ي ثبت همه ي تغييرات با هم ذخيره بشن
4-با زدن دكمه ي ديليت سطر مورد نظر حذف بشه )

فاطمه وطن دوست
شنبه 26 مرداد 1387, 13:48 عصر
سلام ، خوبین ؟ پیشا پیش عیدتون مبارک .

لطفا اینو تست کنید. امیدوارم به دردتون بخوره .

پــــــــــــــــــــیروز باشـــــید. :چشمک:

maryamb
شنبه 26 مرداد 1387, 16:25 عصر
اگه vsflxgrid به پايگاه مستقيم وصل باشه باز هم مي شه يكي از فيلد هاشو چك باكس كرد ؟
من مي خوام در قسمت انتخاب واحد درسي ، ليست درسها بياد كاربر مثلا 6 تا انتخاب كنه بعد كه ok رو زد ، هر 6 درس بياد تو جدول اصلي (vsflexgrid دومي )
عجله دارم. دوستان با تجربه ما رو هم از لطف خودشون بهره مند كنند

فاطمه وطن دوست
شنبه 26 مرداد 1387, 18:41 عصر
اگه vsflxgrid به پايگاه مستقيم وصل باشه باز هم مي شه يكي از فيلد هاشو چك باكس كرد ؟
من مي خوام در قسمت انتخاب واحد درسي ، ليست درسها بياد كاربر مثلا 6 تا انتخاب كنه بعد كه ok رو زد ، هر 6 درس بياد تو جدول اصلي (vsflexgrid دومي )
عجله دارم. دوستان با تجربه ما رو هم از لطف خودشون بهره مند كنند

سلام

در قسمت فرم لود ، اینو بنویسین .



vsFlex.ColDataType(3) = flexDTBoolean



در ضمن باید فیلدتون هم از نوع بولین( yes/no ) باشه !


مثلا تو نمونه ای که براتون اپ کردم یه فیلد از نوع بولین تعریف کردم . بعدش با این کد تست کردم جواب داد .

maryamb
شنبه 26 مرداد 1387, 18:51 عصر
نه فیلد بولین بکارم نمیاد آخه .
فقط واسه گروهی انتخاب می خوام چک باکس داشته باشم . راهی نداره ؟

فاطمه وطن دوست
شنبه 26 مرداد 1387, 19:14 عصر
نه فیلد بولین بکارم نمیاد آخه .
فقط واسه گروهی انتخاب می خوام چک باکس داشته باشم . راهی نداره ؟

سلام

لطفا یکم بیشتر توضیح بدین!
من IQ ام پائینه ! :چشمک:
با مثال ، ولی کامل .

نمیدونم درست متوجه شدم یا نه ولی این برنامه رو هم یه تست کنید.

اینو ببینید . فکر کنم میخواین از گرید اولیه چند تا از رکورداشو انتخاب کنین و تو گرید دومی نشون بدین !

اولا باید خاصیت editable روی 2 باشه ، چرا ؟ واسه اینکه اون فیلد بولین با انتخاب کاربر تو دیتابیس ذخیره بشه .
نکته دوم اینکه باید کاری کنید که کاربر نتونه بقیه فیلدها رو تغییر بده ولی فقط بتونه از طریق تکست باکس ها اونا رو ادیت کنه .چون در این حالت هر تغییری تو فیلدا بدین مستقیما ثبت میشه
تو دیتابیس بنابراین باید از این کد استفاده کنید.
در ضمن اون فیلد بولینو هم باید بزارید.
موفق باشید.



For t = 0 To 3
If Col = t Then Cancel = True
Next t

sohrab o
یک شنبه 27 مرداد 1387, 01:14 صبح
ftp://ftp.mshdiau.ac.ir/Programming/TrueDBGrid/
این لینکو دانلود کن.یه گرید فوقولاده