PDA

View Full Version : 1مشکل جستو جو در فرم و 2 خاصیت can grow در گزارش



bhd2013
یک شنبه 21 خرداد 1396, 20:55 عصر
سلام دوستان
دوتا سوال متفاوت داشتم

سوال1 :؟ در فرمی که در حالت Continuous Forms هست در رویداد on change تکستی عمل جستوجو را کد نویسی کردم ولی هنگام تایپ در تکست جستوجو با نوشتن هر هر حرف فوکس از تکست جستو جو خارج میشه چرا ؟؟؟؟


سوال 2 ؟ : در گزارش گیری با توجه به طولانی بودن فیلد شرح نامه خاصیت CanGrow آنرا را فعال کردم . حالا چطور بقیه فلید ها را با فیلد شرح نامه همانگ کنم تا هنگام اجرا ارتفاع یکسان داشته باشن (با توجه به فیلد شرح نامه اندازه ارتفاع فیلد ها متغییر باشن)

لطفا نمونه را ملاحضه فرمایید

ممنون

bhd2013
شنبه 27 خرداد 1396, 00:36 صبح
!!!!!!!!!!!!!!!!!!!!!؟:افسرده:

mazoolagh
یک شنبه 28 خرداد 1396, 11:40 صبح
در فرمی که در حالت Continuous Forms هست در رویداد on change تکستی عمل جستوجو را کد نویسی کردم ولی هنگام تایپ در تکست جستوجو با نوشتن هر هر حرف فوکس از تکست جستو جو خارج میشه چرا ؟؟؟؟
روش کلی اینجور هست که فرم جستجو هم باید unbound باشه.
نتایج جستجو هم باید در یک سابفرم (یا یک کنترل مثل listbox) نشون داده بشه که تغییر recordsource اون تاثیری روی فوکوس فرم جستجو نداشته باشه


در گزارش گیری با توجه به طولانی بودن فیلد شرح نامه خاصیت CanGrow آنرا را فعال کردم . حالا چطور بقیه فلید ها را با فیلد شرح نامه همانگ کنم تا هنگام اجرا ارتفاع یکسان داشته باشن
خیلی ساده و سرراست نشدنی هست اینکار - چرایی اش هم این هست که زمانی به ارتفاع کنترل دسترسی دارین که دیگه نمیشه ارتفاع کنترل ها رو تغییر داد
بجاش border فیلدهای دیگه رو transparent کنین

اما اگر خیلی اصرار دارین فیلدهای دیگه border با ارتفاع کنترل مورد نظر داشته باشن کافی هست با کد یک box دورشون بکشین
اما کار تمیزی نیست چون جدای از سربار کد ، محتوای فیلدها هم از نظر ارتفاع وسط چین نمیشه

bhd2013
سه شنبه 06 تیر 1396, 13:07 عصر
روش کلی اینجور هست که فرم جستجو هم باید unbound باشه.
نتایج جستجو هم باید در یک سابفرم (یا یک کنترل مثل listbox) نشون داده بشه که تغییر recordsource اون تاثیری روی فوکوس فرم جستجو نداشته باشه


اینا را انجام دادم (نتایج تو سابفرم نشان میده Continuous Forms فرم جستوجو هم UnBound هست) نشد که نشد تو OnChange تکست باکس جستو جو انجام نمیشه !!!!! ولی با باتون انجام میشه
من میخوام توی تکست باکس جستو جو کنم

لطف میکنید نمونه بالا اصلاح بفرمایید
ممنون

mazoolagh
چهارشنبه 07 تیر 1396, 12:58 عصر
برای فرم جستجو از نمونه پیوست استفاده کنین

145629

Option Compare Database
Option Explicit

Dim Scope()
Dim Q As String
Const SQLQ As String = "SELECT * FROM CUSTOMERS WHERE @fld LIKE '*@txt*'"

Private Sub ClearText_Click()
Me.SearchText = ""
Me.SearchText.SetFocus
SearchText_Change
End Sub

Private Sub FieldSelector_AfterUpdate()
Me.SearchText.SetFocus
SearchText_Change
End Sub

Private Sub FieldSelector_NotInList(NewData As String, Response As Integer)
Me.FieldSelector = 0
Response = acDataErrContinue
End Sub

Private Sub Form_Load()
Scope = Array("[CompanyName]", "[ContactName]", "[CompanyName]+'|'+[ContactName]+'|'+[ContactTitle]")
End Sub

Private Sub SearchText_Change()
Q = Replace(SQLQ, "@fld", Scope(Me.FieldSelector))
Q = Replace(Q, "@txt", Me.SearchText.Text)
Me.SearchResults.Form.RecordSource = Q
End Sub

saeed1234n
پنج شنبه 08 تیر 1396, 11:55 صبح
برای فرم جستجو از نمونه پیوست استفاده کنین

.
.
.

[/VB]


با سلام

با تشکر از جناب mazoolagh (http://barnamenevis.org/member.php?9893-mazoolagh)

روش جالبی بود

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

http://yon.ir/6mrIc

bhd2013
پنج شنبه 08 تیر 1396, 16:04 عصر
با سلام

با تشکر از جناب mazoolagh (http://barnamenevis.org/member.php?9893-mazoolagh)

روش جالبی بود

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

http://yon.ir/6mrIc


ممنونم از شما دوست عزیز و همچین جناب mazoolagh (http://barnamenevis.org/member.php?9893-mazoolagh)

در روش شما باید ساب فرم باند باشه

saeed1234n
پنج شنبه 08 تیر 1396, 16:35 عصر
ممنونم از شما دوست عزیز و همچین جناب mazoolagh (http://barnamenevis.org/member.php?9893-mazoolagh)

در روش شما باید ساب فرم باند باشه

سلام

لزوما نه

mazoolagh
سه شنبه 13 تیر 1396, 12:16 عصر
با سلام

با تشکر از جناب mazoolagh (http://barnamenevis.org/member.php?9893-mazoolagh)

روش جالبی بود

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

http://yon.ir/6mrIc

سلام و روز خوش
همینجا هم میشد پیوست کنین

البته فقط یک روش دیگه بود (اعمال فیلتر بجای تغییر رکوردسورس) که ساده تر هم نیست برقضا
اول اینکه فیلتر در تعداد رکوردهای زیاد کندتر عمل میکنه و در شبکه این قضیه خودش رو نشون میده

ضمنا بجای استفاده از تکسباکس مخفی (که به اون هم نیاز نبود) میتونستین یک متغیر private تعریف کنین.

اگر واقعا قرار بود کد رو قدری ساده تر کنیم میتونستیم شرط رو مستقیما در rowsource کمبوباکس اضافه کنیم و به هیچ if یا select case هم نیاز نبود.

در هر صورت ممنونم از نظر لطفتون