PDA

View Full Version : سوال: شرط گذاری در مورد کمبوها



Mehr@ban
سه شنبه 27 تیر 1396, 15:18 عصر
سلام

من یک فرم برای انتخاب فیلدهای مورد نظرم در زمان چاپ یک گزارش ایجاد کردم

حالا در این فرم چهار تا کمبوباکس قرار داره که برای نمایش گزارش باید دوتای اول حتما کامل و دارای انتخاب باشن و دوتای بعدی اختیاری هست.

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

cmbJensiat
cmbDore
cmbShift
cmbSath

btnPrint


حالا میخوام اگر دوتا کمبوی اول مقداری توشون نبود و مثل زمان باز کردن فرم خالی باشن، اگر بر روی دکمه پرینت کلیک شد، حاشیه کمبو قرمز بشه و فوکوس بره روش. اگر یه پیام خطا هم نشون بده که بهتره

شرط رو نوشتم ولی نمیدونم داده داخل کمبو رو چجوری باید بررسی کنم
اگر یک نمونه شرط رو بنویسین ممنون میشم

mazoolagh
پنج شنبه 29 تیر 1396, 08:07 صبح
IF ISNULL(CMBJENSIAT) THEN
CMBJENSIAT.BORDERCOLOR=RGB(255,0,0)
MSGBOX("JENSIAT IS REQUIRED")
CMBJENSIAT.SETFOCUS
END IF

یادتون باشه بعد از اینکه مقدار صحیح وارد شد باید رنگ حاشیه رو برگردونین به مقدار اصلیش

1- اسم اینکار DATA VALIDATION یا FORM VALIDATION هست و خود اکسس ابزار مناسب داره (VALIDATION RULE / VALIDATION TEXT)
البته برای DATA ENTRY این ابزار بهتر هست و برای این موقعیت شما کدنویسی لازمه چون VALIDATION RULE وقتی چک میشه که دیتا وارد بشه یا تغییر کنه

2- برای کمبوها و لیست هایی که لازمه مقدار داشته باشن بهتره یک مقدار پیشفرض بهشون بدین مثلا جنسیت مرد یا شهر مشهد و ....
البته برای کمبو باید LIMIT TO LIST هم روشن باشه و در رخداد NOT IN LIST کد RESPONSE=ACDATAERRCONTINUE بنویسین تا پیغام خود اکسس ظاهر نشه

3- نماد استاندارد فیلدهای اجباری * است - بجای قرمز کردن حاشیه کنترل یک ستاره قرمز کنارش نشون بدین

Mehr@ban
پنج شنبه 29 تیر 1396, 20:38 عصر
علاوه بر کد توضیحاتی که در ادامه دادین بسیار عالی و مفید بود برام.

فقط یه سوال دیگه
این کد بالا رو که نوشتین باید در کدوم رویداد بنویسم؟

ممنونم

mazoolagh
یک شنبه 01 مرداد 1396, 06:31 صبح
یادمه دیروز پست داشتم تو این تاپیک!
بهر حال دوباره مینویسم

بطور متداول وقتی قرار هست درستی اطلاعات فرم قبل از ارسال ارزیابی بشه (validation) یک فانکشن boolean‌مینویسن که قوانین ارزیابی رو برای تک تک کنترلها اعمال میکنه و هر کدوم که مقدارش نادرست باشه خروجی تابع false‌میشه - بعبارت همه شرطها and‌ میشن که کد نمونه بالا فقط یکی از این شرط ها رو بررسی میکنه

در اینجا این تابع بطور منطقی در btnprint_onclick صدا زده بشه