PDA

View Full Version : چاپ تعدادی از رکوردهای یک VsFlexGrid



shahmahi
دوشنبه 09 آذر 1388, 16:34 عصر
سلام
دوستان عزیز من میخوام که فقط تعدادی از رکوردهایی رو که کاربر انتخاب میکنه ، بفرستم برای نمایش و چاپ . با کمک یکی از کاربران تونستم این کار رو بکنم که کدش رو مشاهده میکنید .
Private Sub VS_KeyDown(KeyCode As Integer, Shift As Integer)
Dim rs As New ADODB.Recordset
If KeyCode = vbKeySpace Then
Dim bColor As String
bColor = VS.Cell(flexcpBackColor, VS.Row, 0, VS.Row, VS.Cols - 1)
If Not bColor = &H8080FF Then
If rs.State = 1 Then rs.Close
rs.Open "Update WordDictionary Set RowSel = 1 where RowSel =" & VS.TextMatrix(VS.Row, 6), Conn, adOpenStatic, adLockOptimistic
VS.Cell(flexcpBackColor, VS.Row, 0, VS.Row, VS.Cols - 1) = &H8080FF
Else
If rs.State = 1 Then rs.Close
rs.Open "Update WordDictionary Set RowSel = 0 where RowSel =" & VS.TextMatrix(VS.Row, 6), Conn, adOpenStatic, adLockOptimistic
VS.Cell(flexcpBackColor, VS.Row, 0, VS.Row, VS.Cols - 1) = Default
End If
End If
End Sub

فقط مشکل اینجاست که با انتخاب رکورد مورد نظر توسط کاربر مقدار 1 درون تمام فیلدهای RowSel ریخته میشه در صورتی که باید فقط فیلد مربوط به اون رکورد که انتخاب شده 1 باشه و بقیه صفر که بعد وقتی خواستیم اون رکورد رو برای چاب بفرستیم بگیم تمام اون هایی رو که مقدار ش برابر 1 هستش ، فرستاده بشه .
لطفا راهنماییم کنید چطوری فقط رکوردهایی رو که انتخاب کردم مقدار RowSel برابر با 1 بشه و بقیه 0 باقی بمونه .:لبخندساده:

Dr.Bronx
دوشنبه 09 آذر 1388, 20:49 عصر
( چرا در همون تاپیک ادامه ندادید ؟ )

وقتی که فرم می خواد باز بشه همرو با 0 مقدار دهی کنید..

Dim rs As New adodb.Recordset
If rs.State = 1 Then rs.Close
rs.Open "Update Tbl_Money Set Sanad_RowSel = 0", conn, adOpenStatic, adLockOptimistic



موفق باشید./

shahmahi
دوشنبه 09 آذر 1388, 21:59 عصر
( چرا در همون تاپیک ادامه ندادید ؟ )
راستش اونجا که مطرح کردم شما که جواب ندادین و کس دیگه ای هم جواب نداد مجبور شدم تاپیک جداگانه ای بزنم .


وقتی که فرم می خواد باز بشه همرو با 0 مقدار دهی کنید..
مشکل از این نیست مشکل اینه که وقتی که یکی از رکوردها انتخاب میشه تمام فیلها از اول تا آخر 1 میشه و موقع چاپ هم تمام رکوردها نشون داده میشه و وقتی هم که اون رکورد رو از حالت انتخاب خارج میکنی تمام فیلدهای RowSel 0 میشه .

من با VsFlexGrid زیاد کار نکردم واسه همینم به مشکل برخوردم .
ممنون میشم راهنماییم کنید .

Dr.Bronx
سه شنبه 10 آذر 1388, 05:24 صبح
من از همین کد استفاده می کنم و مشکلی ندارم
شما اگر امکانش هست اون قسمت از برنامه و بانک اطلاعاتی رو اینجا قرار بدید تا بررسی کنیم

موفق باشید ./

shahmahi
سه شنبه 10 آذر 1388, 09:54 صبح
این تیکه از برناممه که اشکال دارم .

aslan
سه شنبه 10 آذر 1388, 21:41 عصر
اینم فایل اصلاح شده

shahmahi
پنج شنبه 12 آذر 1388, 19:49 عصر
دوستان سلام

یک سوال، میخواستم که با کلیک کردن روی یک دکمه تمام رکوردهایی که انتخاب شده و رنگش عوض شده از حالت انتخاب خارج بشه و دوباره VS برای انتخاب رکورد آماده بشه .
ممنون میشم توی این مورد هم راهنماییم کنید.

aslan
پنج شنبه 12 آذر 1388, 22:55 عصر
برای برنامه شما :

Private Sub Command2_Click()
txt
VS.Clear
Getdata
End Sub

mraforums
پنج شنبه 19 فروردین 1389, 14:47 عصر
سلام دوستان
من هم يك مشكل شبيه مشكل اين دوستمون دارم
من مي خوام كنار هر ركورد درvsflexgrid يك checkbox قرار داشته باشد و ركورد هايي كه تيك خورده اند چاپ شوند لطفا راهنمايي كنيد

ali reza mansoori 2
جمعه 10 اردیبهشت 1389, 17:41 عصر
کسی میتونه این کارو انجام بده چون منم می خوام همچین کاری کنم ولی نمی تونم

ali reza mansoori 2
جمعه 10 اردیبهشت 1389, 18:24 عصر
دوستان یه جا خوندم که باید با دستور Vs.SaveGrid اطلاعات رو ذخیره و با کریستال ریپورت آن را چاپ کرد
فکر کنم با محدود کردن ستون ها و انجام عملیات بالا بشه همچین کاری انجام داد

shahmahi
شنبه 11 اردیبهشت 1389, 10:27 صبح
حالا حتما باید به صورت checkbox باشه ؟ چون اگه فایل ضمیمه شده توی پست 6 رو دیده باشید مشکل انتخاب کردن رکوردها حل شده .