همانطور که می دانید، یکی از امکانات سیستم مدیریت فرایندها، استفاده از فیلدهای از نوع محاسباتی در کلاینت در فرمهای ورود اطلاعات است. این مطلب به جنبه خاصی از این فیلدها یعنی نحوه استفاده از آنها در آرایه ها می پردازد و لذا پیش نیاز این مطلب آشنایی با مفهوم فیلدهای محاسباتی در کلاینت است. بنابراین برای یادآوری یا آشنایی اولیه با مفهوم و کارکردهای این نوع از فیلدها می توانید به مطلب زیر مراجعه کنید:
کنترل رفتار فیلدها در فرم
برای درک بهتر نحوه تعریف و استفاده خاص از فیلدهای محاسباتی در کلاینت در آرایه ها به مثال زیر توجه کنید:
مثال: محاسبه وجه پرداختی در لیست درخواست کالاها
فرض کنید در یک گردش کار "تامین کالاها"، فهرست کالاهای درخواستی در یک آرایه بنام "لیست درخواستها" به شکل زیر ثبت می شود:
ملاحظه می کنید که ستون وجه پرداختی در این آرایه خالی است. برای محاسبه و پر کردن اتوماتیک این ستون، می توانید همانند شکل زیر، فیلد "وجه پرداختی" را از نوع "محاسباتی در کلاینت" تعریف کنید:
حال گام بعدی نوشتن یک تابع محاسبه در کلاینت برای این فیلد است.
تابع محاسبه در کلاینت
برای این کار روی زبانه "رفتار در فرم" که در شکل بالا با خط آبی مشخص شده است کلیک می کنیم تا محاوره زیر روی صفحه باز شود:
حال در ناحیه محاسبه مقدار، دبل کلیک می کنیم تا یک تابع محاسباتی (در کلاینت) بطور اتوماتیک و به شکل زیر ایجاد شود:
حال با توجه به این که وجه پرداختی برابر با حاصل ضرب فی در تعداد کالاست، این تابع را به شکل زیر تکمیل می کنیم:
در مورد این تابع دو نکته مهم وجود دارد:
- در حالت عادی توابع محاسباتی در کلاینت (WorkField)بدون پارامتر هستند اما در این مورد خاص، این تابع حتما باید با پارامتر i نوشته شود.
- حتما باید شرط i>=0 را چک کنید تا آرایه از اندیس 0 به بعد محاسبه را انجام دهد.
- در نوشتن اجزای آرایه در فرمول محاسبه، نیازی به نام آرایه نیست و فقط کافی است نام اجزا را درج کنید. در این مثال نام آرایه لیست درخواستها، reqList است اما ملاحظه می کنید که هیچ نشانی از این نام در تابع وجود ندارد و تنها، اجزای این آرایه بنامهای فی (FromFields.fee) و تعداد کالا (FormFields.num) درج شده است.
به این ترتیب، نمایش آرایه به شکل زیر خواهد شد:
با تشکر از آقای نیکخواه برای انتقال تجربه و با سپاس از آقای نجفی برای راهنمایی هایشان