PDA

View Full Version : چطور فقط فیلدهای انتخاب شده ی لیست باکس را در ریپورت نمایش دهم؟



salehsam
شنبه 27 خرداد 1391, 01:50 صبح
چطور فقط فیلدهای انتخاب شده ی لیست باکس را در ریپورت نمایش دهم؟

salehsam
شنبه 27 خرداد 1391, 12:06 عصر
نمیدونم سوالم خیلی سخته یا خیلی ساده که با این تعداد مشاهده بالا هیچ کس جواب نداده ....
ببینین یه فرم دارم که یه مالتی سلکت لیست باکس داره
وقتی از فرم ریپورت میگیرم کل لیست رو نشون میده و انتخاب شده ها رو تیک میذاره
ولی میخوام فقط انتخاب شده ها رو نشون بده
چی کار کنم؟
88325

Abbas Amiri
یک شنبه 28 خرداد 1391, 01:52 صبح
اولین تابع زیر برای شما شرط فیلدا برابر با مقادیر انتخابی لیست باکس برمی گرداند
کافیست بجای آرگومانهای ListText مقدار ListBox.Text و بجای FieldName نام فیلدی که در کوئری ریپورت بایستی براساس آن فیلترشود ، قرار بگیرد
حالا یا با مقداردهی به خصوصیت Filter ریپورت توسط این تابع ویا تشکیل عبارت کوئری ریپورت با استفاده از شرط WHERE واین تابع وسپس بازکردن ریپورت اقدام کنید.
نمونه نداشتم وفی البداهه نوشتم امکان خطا وجود خواهد داشت


Function CheckListBoxFilter(ListText As String, FieldName As String) As String
Dim sFilter As String, s As String
Dim k As Integer, i As Integer
If ListText = "" Then CheckListBoxFilter = "(1)"
k = TextArrayUBound(ListText)
For i = 0 To k
sFilter = sFilter & "'" & Trim(getTheValue(ListText, i)) & "', "
Next
sFilter = Left(sFilter, Len(sFilter) - 2)
sFilter = " " & FieldName & " IN(" & sFilter & ")"
CheckListBoxFilter = sFilter
End Function

Function getTheValue(strTag As String, Nth As Integer) As String
On Error Resume Next
Dim workTb() As String
Dim i As Integer
workTb = Split(strTag, ";")
If Nth > UBound(workTb) + 1 Then Exit Function
getTheValue = workTb(Nth)
End Function
Function TextArrayUBound(strTag As String) As Integer
Dim workTb() As String
Dim i As Integer
workTb = Split(strTag, ";")
TextArrayUBound = UBound(workTb)
End Function

salehsam
یک شنبه 28 خرداد 1391, 02:19 صبح
ممنون از پاسختون
اگه ممکنه نمونه بذارین...

Abbas Amiri
یک شنبه 28 خرداد 1391, 20:01 عصر
همانطور که عرض کردم نمونه ای کاربردی جهت اینکار ندارم . شما نمونه تان را قراردهید تا روی آن امتحان شود

salehsam
یک شنبه 28 خرداد 1391, 20:14 عصر
ممنون
فایلو براتون پیوست میکنم

Abbas Amiri
یک شنبه 28 خرداد 1391, 20:48 عصر
کدی که بنده نوشتم جهت فیلترکردن یک فرم یا گزارش میتواند بکار رود ودرمورد شما ساختار لیست باکس چکدار به اینگونه است ومتاسفانه برخلاف لیست باکسهای معمولی ، SelectedItems را پشتیبانی نمیکند وفقط مقدار تکست های انتخاب شده را برمیگرداند

salehsam
یک شنبه 28 خرداد 1391, 21:21 عصر
ممنون از پاسختون
نمیشه کدی نوشت که مقادیر انتخاب شده رو به یه کوئری منتقل کنه و بعد از کوئری یه ساب ریپورت ساخت؟