فیلد محاسباتی در فرمساز

فیلد فرمول

راهنمای فیلد فرمول

ساخت فرم محاسباتی پیشرفته

آیا تا به حال به این فکر بوده‌اید فرمی را طراحی کنید تا محاسبات ریاضی یا هزینه‌ای را به صورت خودکار محاسبه کرده و نمایش دهد؟ عملیات محاسباتی در فرم‌افزار با کمک فیلد فرمول که در دسته‌ی فیلدهای پیشرفته گنجانده شده، امکان‌پذیر خواهد بود. برای آشنایی بیشتر می‌توانید در این مقاله ما را دنبال کرده تا به نتیجه مطلوب برسید.

عملیات محاسباتی در فرم‌ساز

شاید این سوال برایتان پیش بیاید که چرا باید امکان عملیات محاسباتی در فرم‌افزار را ایجاد کنیم؟ چه نیازی به این فیلد داریم؟
این امکان در فرم ساز برای عملیات ساده و پیچیده مورد استفاده قرار می‌گیرد مانند:

  • محاسبات هزینه کالا
  • محاسبه وزن برای وبسایت‌های سلامتی و پزشکی
  • محاسبه کالری(تناسب اندام)
  • محاسبه هزینه هتل برای رزرو
  • محاسبه قرار ملاقات و خدمات
  • محاسبه وام
  • محاسبه مرخصی
  • محاسبه معدل
  • محاسبه هزینه چاپ
  • محاسبه فعالیت‌های خدماتی
  • محاسبه نتیجه آزمون
  • و…

ویژگی‌های موجود در فیلد فرمول

  • محاسبه یک فیلد فرمول در فیلد فرمول دیگر
  • محاسبه تمام فیلدهای داخل یک پنل با انتخاب عنوان پنل
  • استفاده آسان برای نوشتن فرمول
  • پشتیبانی از محاسبات تاریخی(فاصله 2 تاریخ بر اساس روز، ماه و سال شمسی و میلادی)
  • پشتیبانی از محاسبه ساعت(اختلاف بین 2 ساعت)
  • امکان قرار دادن پیشوند و پسوند برای مقدار محاسبه شده
  • تعیین استایل و نحوه نمایش مقدار محاسبه شده
  • امکان برقراری شرط برای فیلد فرمول
  • انتقال به درگاه پرداخت بر اساس مقدار فیلد فرمول

بخش‌های مختلف فیلد فرمول:

در تنظیمات فیلد فرمول به طور کلی 4 بخش وجود دارد.

راهنمای فیلد فرمول

1. فیلدها: در این قسمت فیلدهای فرم از نوع عددی نمایش داده می‌شوند.

فیلدهای عددی
عدد تاریخ ساعت
لیست کشویی چند انتخابی تک انتخابی (دکمه رادیویی)
وضعیت تصویر انتخابی اسلایدر
فرمول لیست مرتبط رتبه
رضایتمندی جدول انتخابی

2. توابع: در این بخش 12 تابع وجود دارد که هر یک به حالت‌های زیر هستند که بعد از انتخاب کافیست ورودی‌های توابع را از فیلدهای موجود انتخاب کنید.

نام تابع نحوه‌ی استفاده فیلد مجاز
اختلاف سال
YearDiff( فیلد تاریخ , فیلد تاریخ )
فیلد تاریخ
اختلاف ماه
MonthDiff( فیلد تاریخ , فیلد تاریخ )
فیلد تاریخ
اختلاف روز
DayDiff( فیلد تاریخ , فیلد تاریخ )
فیلد تاریخ
اختلاف ساعت
TimeDiff( فیلد ساعت , فیلد ساعت )
فیلد ساعت
مجموع
SUM( فیلد عددی )
فیلد عددی
میانگین
AVG( فیلد عددی )
فیلد عددی
حداقل
MIN( فیلد عددی )
فیلد عددی
حداکثر
MAX( فیلد عددی )
فیلد عددی
تعداد
COUNT( فیلد عددی )
فیلد عددی
گرد به بالا
RoundUp( فیلد عددی )
فیلد عددی
گرد به پایین
RoundDown( فیلد عددی )
فیلد عددی
شرط
If( فیلد عددی > فیلد عددی Then فیلد عددی Else فیلد عددی )
فیلد عددی

3. عملگرهای ریاضی: این قسمت شامل اعداد و عملگرهای ضرب(*) ,تقسیم (/), جمع(+) و تفریق(-) است که با کلیک بر روی آن‌ها درون ویرایشگر فرمول قرار می‌گیرد.

4. ویرایشگر فرمول: در این قسمت می‌توان توسط صفحه کلید، عملگرها، توابع و فیلدها فرمول مورد نیاز را نوشت.

شروع به کار با فیلد فرمول

در یک مثال ساده قصد داریم نحوه کار با فیلد فرمول را در فرم ساز بررسی کنیم، می‌خواهیم فرمی ایجاد کنیم تا ثبت‌کننده‌ی آن با انتخاب مقادیر تعریف شده خدمات نظافتی دریافت کند.
طراحی فرم به این شکل است که کاربر ابتدا نوع فعالیت مدنظر خود را انتخاب می‌کند سپس منطقه فعالیت، تاریخ و زمان حضور افراد خدماتی را انتخاب می‌کند.

راهنمای فیلد فرمول

در انتها فرم بر اساس مقادیر انتخاب شده هزینه خدمات را بصورت خودکار محاسبه می‌کند.
برای هر گزینه از نوع فعالیت در فرم نیاز است مبلغ تعیین شود بنابراین وارد تنظیمات این فیلد که از نوع فیلد تک انتخابی (دکمه رادیویی) است می‌شویم و در قسمت "مقداردهی عددی" مبالغ را وارد می‌کنیم.

راهنمای فیلد فرمول

همچنین برای "میزان ساعت فعالیت" که از نوع فیلد لیست است به همین روش مقداردهی عددی می‌کنیم.
برای محاسبه قیمت یک فیلد فرمول از دسته‌بندی فیلدهای پیشرفته درون فرم قرار داده و در تنظیمات آن به شکل زیر برای محاسبه هزینه فرمول می‌نویسیم.

راهنمای فیلد فرمول

حال اگر کاربر نوع فعالیت را "نظافت منزل و محل کار" و میزان ساعت را "2 ساعت" انتخاب کند، نوع فعالیت که 40 هزار تومان است ضرب در 2 می‌شود و هزینه نهایی برابر با 80 هزار تومان می‌شود.
به همین سادگی یک فرم هوشمند ایجاد کردیم تا هزینه‌های خدمات بر اساس درخواست‌های کاربر محاسبه شود. همچنین برای دریافت خدمات محاسبه شده می‌توانیم از قابلیت پرداخت آنلاین استفاده کنیم و فیلد فرمول را به عنوان مبلغ نهایی در نظر بگیریم.

توابع در فیلد فرمول

اختلاف سال:

با استفاده از این تابع می توانید اختلاف سال دو فیلد تاریخ یا یک فیلد تاریخ با تاریخ جاری را استخراج نمایید، این اختلاف سال به صورت یک عدد به جای تابع فوق جایگذاری می شود

به طول مثال اگر در فرمول

YearDiff(فیلد تاریخ , تاریخ جاری) + 2

قرار دهید و اختلاف تاریخ را پیدا کرده مثلا 3 سال می شود و

3+2 =5

را در فرمول قرار می دهد

اختلاف ماه:

این تابع اختلاف ماه دو فیلد تاریخ یا یک فیلد تاریخ با تاریخ جاری را استخراج نمایید، این اختلاف ماه به صورت یک عدد به جای تابع فوق جایگذاری می شود

اختلاف روز:

با استفاده از این تابع می توانید اختلاف روز دو فیلد تاریخ یا یک فیلد تاریخ با تاریخ جاری را استخراج نمایید، این اختلاف روز به صورت یک عدد به جای تابع فوق جایگذاری می شود

اختلاف دقیقه:

با استفاده از این تابع می توانید اختلاف دقیقه دو فیلد ساعت یا یک فیلد ساعت با ساعت جاری را استخراج نمایید، این اختلاف روز به صورت یک عدد به جای تابع فوق جایگذاری می شود

اگر می خواهید اختلاف ساعت را به دست بیاورید می توانید نتیجه این تابع را بر 60 تقسیم نمایید.

مجموع:

در صورتی که فیلد به صورت قابل تکرار باشد و کاربر بتواند تعدادی از فیلد را در هنگام ثبت فرم تکرار نماید با استفاده از این تابع می توانید مجموع تکرار آن فیلد را به دست بیاورید. البته فیلد فرمول به صورت اتوماتیک در صورتی که از فیلد تکراری صورت گرفته است مجموع آن را محاسبه میکند. مثلا SUM(فیلد عدد) *2 و فیلد عدد *2 هر دو یک نتیجه را نشان میدهند

میانگین:

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

حداقل:

این تابع کمترین عدد وارد شده در یک فیلد تکرار شونده را به دست می آورد.

حداکثر:

این تابع بیشترین عدد وارد شده در یک فیلد تکرار شونده را به دست می آورد، اگر کاربر بتواند تعدادی از یک فیلد را در هنگام ثبت فرم تکرار نماید با استفاده از این تابع می توانید بیشترین عدد وارد شده در یک فیلد تکرار شونده را به دست بیاورید .

تعداد:

با استفاده از این تابع می توانید تعداد تکراریک فیلد تکرار شونده را به دست بیاورید، اگر کاربر بتواند تعدادی از یک فیلد را در هنگام ثبت فرم تکرار نماید با استفاده از این تابع می توانید تعداد تکرار فیلد استخراج نمایید .

گرد به بالا:

این تابع عدد به دست آمده را به صورت گرد به بالا تبدیل و قسمت اعشار آن را حذف میکند، اگر عدد به صورت اعشاری باشد این تابع می توانید آن را به گرد به بالا تبدیل نماید. اگر برای این تابع فیلد عددی تکرار شونده انتخاب شود می توان جمع اعداد وارد شده را حساب و آن را به گرد به بالا تبدیل نماید.

توجه نمایید که داخل این فانکش فقط می توان فیلد قرار داد و نمی توان کل فرمول را داخل آن قرار داد تا نتیجه نهایی آن فرمول گرد شود، در صورتیکه نیاز دارید که نتیجه فرمول گرد به بالا شود باید یک فیلد فرمول دیگر در فرم قرار داده و فیلد فرمول را در این فانکشن انتخاب نمایید.

گرد به پایین:

این تابع عدد به دست آمده را به صورت گرد به پایین تبدیل و قسمت اعشار آن را حذف میکند ، اگر عدد به صورت اعشاری باشد این تابع می توانید آن را به گرد به پایین تبدیل نماید. اگر برای این تابع فیلد عددی تکرار شونده انتخاب شود می توان جمع اعداد وارد شده را حساب و آن را به گرد به بالا تبدیل نماید.

توجه نمایید که داخل این فانکش فقط می توان فیلد قرار داد و نمی توان کل فرمول را داخل آن قرار داد تا نتیجه نهایی آن فرمول گرد شود، در صورتیکه نیاز دارید که نتیجه فرمول گرد به پایین شود باید یک فیلد فرمول دیگر در فرم قرار داده و فیلد فرمول را در این فانکشن انتخاب نمایید.

نکته: در تنظیمات فیلد فرمول گزینه "گرد کردن اعشاری" وجود دارد که به صورت اتوماتیک گرد به پایین یا بالا انجام میدهد، اگر اعشار رقم کمتر از 5 باشد گرد به پایین و اگر بیشتر یا مساوی 5 باشد گرد به بالا انجام میدهد

شرط:

با استفاده از این تابع می توان مقدار یک فیلد یا عدد را با مقدار یه فیلد یا عدد دیگر مقایسه کرد در صورتی که شرط برقرار بود بخش اول شرط جایگذاری می شود و در صورتی که شرط برقرار نباشد بخش دوم شرط جایگذاری می شود.

به عنوان مثال اگر فرمول به صورت

If( 20 > 15 Then 100 Else 200 ) + فیلد عددی

باشد (به اینصورت خوانده شود اگر 20 بزرگتر از 15 باشد مقدار 100 انتخاب شود در غیر این صورت مقدار 200 انتخاب شود) مقدار 20 همواره بزرگتر از 15 می باشد و به خاطر اینکه شرط صحیح می باشد (یعنی 20 بزرگتر از 15 می‌باشد) مقدار اول شرط یعنی 100 جایگذاری می شود و فرمول به شکل فیلد عددی + 100 می شود، اگر شرط درست نبود بخش دوم یعنی 200 انتخاب می‌شد.

برای هر چهار مقدار فیلد شرط می تواند فیلد یا عدد ثابت انتخاب کرد، مثلا فیلد اول کوچکتر فیلد دوم بود آنگاه فیلد اول در غیر اینصورت فیلد دوم انتخاب شود

عملگرهای مقایسه ای تابع شرط

با کلیک بر روی عملگر مقایسه‌ای شرط، لیست عملگرهای مقایسه‌ای نمایش داده می شود که می توانید مقادیر بزرگتر و بزرگتر مساوی، کوچکتر و کوچکتر مساوی یا مساوی را انتخاب نماید. اگر نیاز به عملگر نامخالف داشتید می توانید همان عملگر مساوی را انتخاب نمایید فقط مقادیر داخل بخش Then و Else را جابجا کنید

اگر در بخش فرمول نیاز داشتید که مقایسه کنید که مثلا مقدار اول بزرگتر از مقدار دوم بود آنگاه یک مقداری را انتخاب کند و بخش بعدی فرمول را نیاز نداشتید می توانید بخش Else را صفر یا یک (بستگی به فرمول) وارد کنید تا بی اثر باشد. مثلا در این مثال می گویم اگر فیلدA مساوی فیلدB بود آنگاه فیلدC را قرار بده و در صورتی که شرط برقرار نبود مقداری را جایگزین نکند.

If( فیلدA = فیلدB Then فیلدC Else 0 ) + فیلد عددی

در صورتی که عملگر بعد از فرمول جمع باشد مقدار صفر و اگر ضرب باشد مقدار یک را قرار دهید تا بی اثر باشد.

نکاتی در فرمول نویسی

1. از زمان ابداع نماد جبری مدرن، ضرب مقدم بر تقسیم، تقسیم بر جمع و جمع بر تفریق در نظر گرفته شده‌ است. برای جلوگیری از اشتباه در محاسبات بهتر است از () برای عملیات استفاده کرد در غیر این صورت باید به الویت عملگرها دقت شود.

2. از بین فیلدهای موجود در فیلد فرمول فقط فیلدهایی که از جنس تاریخ و ساعت هستند می‌توان در توابع استفاده کرد و فیلد تاریخ و ساعت به تنهایی قابل استفاده نیستند، در صورت رعایت نکردن این موارد فرمول تایید و ذخیره نمی‌شود.

3. اگر در فرمی از چند فیلد فرمول استفاده کرده باشید و فیلدها به هم وابستگی داشته باشند باید به این موضوع دقت کنید که حداقل یک فیلد باید مقدار ثابت داشته باشد تا بدون وابستگی به فیلدهای فرمول بعدی به محاسبه بپردازد. در واقع اگر بین فیلدها حلقه به وجود آید خروجی صفر می‌شود.

4. در صورتی که کمتر یا بیشتر از 2 آرگمان برای توابع قرار داده شود و یا فیلدهای تابع از نوع مشخص شده نباشند، فرمول تایید و ذخیره نمی‌شود.