PDA

View Full Version : مشکل نوشتن در هر سطر فرم



منصور بزرگمهر
دوشنبه 25 خرداد 1383, 01:38 صبح
هر بار که یک تکس باکس را (که در قسمت دیتیل فرم و خاصیت تکرار آن Continue است)، به یک تابع در ماژول ویژوال بیسک وصل می کنیم(با فرض به اینکه یکی از آرگومان های تابع، به اطلاعات فرم مقید به جدولی باشد، تا در هر سطر تابع اجرا شود) تابع زمانهای اجرا می شود که فقط شی مربوطه در صفحه مانیتور ظاهر شود، و سطرهائی که ظاهر نمی شوند، تابع آنها اجرا نشده، و چنانچه ما فرم را به پائین بالا اسکرول کنیم، هر تکس باکسی که دیده می شود، تابع آن اجرا و حتی سطرهای که بدلیل سطر اسکرول تکس باکس آنها دیده نشده است، تابع آن اجرا نمی شود، ولی ما می خواهیم، ابتدا کلیه سطرهای فرم چه دیده شود و چه دیده نشود، مسلسل وار؛ تابع را درخواست کنند، و همچنین هر زمان که دوباره سطر مربوطه دیده شد، دیگر تابع مذکور فرخوانی نشود، چرا که یکبار شده، و دلیلی برای تکرار نمی باشد، (که فرض اگر تابع مورد نظر جمع برای ردیف هر سطر باشد، حال دوباره تکرار شده، و شماره ردیف را بهم زده، که حتی موارد گفته شده بالا نیز ایجاد چنین حالتی رانیز غیر ممکن کرده بوده است)
حال باید چکار کنیم که مشکل فوق حل و تابع به زمان و دفعات مناسب تکرار گردد.

ضمناً در نمای راپورت(نمای چاپ) بدلیل رخداد Print هر سطر رخداد تکرار شده، و چنانچه به تکس باکس سطر، عددی را بفرستیم درست سر همان سطر آمده و بر عکس فرم دیگر هنگام نمایش مجدد نه رخداد اجرا شده، و نه تابع مقید شده احتمالی به تکس باکس، و به راحتی در نمای راپورت این مشکل حل می گردد. (حتی نمای راپورت خاصیت Running Sum دارد که فرم ندارد، و چکار باید بکنیم تا مشکل فوق نیز حل گردد)

در آخر باید بگویم در فرم از توابع DSum و DCount و ... نمی خواهیم استفاده کنیم، چون که این توابع توکار، در هر سطر، کل پرس جو و شرایط گذاشته شده را پرس جو می کند(کل جدول محدوده)، و چنانچه تعداد سطر ها زیاد و علی الخصوص شرایط پرس جو سنگین باشد، آنچنان زمان طولانی برای هر سطر مصرف می کند، که اینجانب را کلاُ از استفاده از این توابع نا امید، و دنباله رو راه های جدید از جمله درخواست سئوال فعلی می گرداند.
حال چنانچه دوستانی توانسته اند مشکل فوق را بگونه ای حل نماید، اینجانب را نیز مطلع فرماید، که بسیار بسیار بسیار ! محتاج می باشم.

متشکرم منصور بزرگمهر 1383/3/26 ساعت 1:57 بامداد