پرش به محتوای اصلی

شماره درخواست

شماره درخواست

شرح صورت مسئله

درج شماره درخواست روی فرم:

فرض کنید در یک فرآیند نیاز است که روی فرم یک فعالیت کاربر(UserTask) شماره درخواست را که از 1000 شروع می‌شود به همراه یک پیشوند پییش فرض را نمایش دهیم.

با استفاده از کد زیر درون یک فعالیت-کدنویسی(ScriptTask) و همچنین نام فیلدی که شماره درخواست را نشان می‌دهد را درون بخش پارامترهای خروجی فعالیت کدنویسی (ScriptTask) و درون بخش پارامترهای ورودی فعالیت کاربر(UserTask) بعدی تعریف کنیم. در اینجا این فیلدها  RequstNum  هستند.

شماره درخواست فعالیت کدنویسی

 

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

using System;

using System.Data;

using System.Data.SqlClient;

using Chargoon.Didgah.BPMS.CommonApi;

namespace Chargoon.Didgah.BPMS.Runtime

{

    public class ScriptTask : IScriptTask

    {

        public IExecution Execution { get; set; }

        public void Execute()

        {

//تعریف دو متغییر Prefixو FormNum از جنس رشته که متغییر Prefixبه عنوان پیشوند برای شماره درخواست میتوان استفاده کرد برای مثال در اینجا مقدار “/الف” را دارد و متغییر FormNumکه در آن شماره درخواست مقداردهی میشود.//

            string FormNum=””;

           string Prefix = “/الف”;

// اتصال به دیتا بیس . BPMSConnection نام رشته اتصال میباشد.//

SqlConnection sqlConnection = new SqlConnection(Execution.GetConnectionString(“BPMSConnection”));

// با استفاده از SqlCommandکوئری مینویسیم.//

            using (SqlCommand SqlCommand = new SqlCommand())

                  {

                      SqlCommand.Connection = sqlConnection;

                      SqlCommand.CommandType = CommandType.Text;

//کوئری SQL که در آن از دستور count(Id)  از جدول ProcessInstances استفاده میکنیم با شرط //

//  ProcessId=N که در آن N ،  ProcessIdفرایند میباشد که این عدد را از جدولProcess بدست میاوریم.//

// برای مثال در اینجا 13 قرار داده ایم.//

                      SqlCommand.CommandText = @”

                       select count(Id)

                       FROM[Demo_Didgah_BPMS].[dbo].[bpm_ProcessInstances]

                      where ProcessId=13″;

                      sqlConnection.Open();

// تبدیل خروجی کوئری به رشته و ریختن آن در متغییر FormNum .//

                       FormNum = SqlCommand.ExecuteScalar().ToString();

                       sqlConnection.Close();

                  }

//حال با توجه به اینکه میخواهیم شماره درخواست از 1000 شروع شود طبق شرط های زیر عمل میکنیم://

// متغییر  IntFormNum را درون فیلدی که روی فرم هست و قرار است شماره درخواست (RequstNum)را نمایش دهد میریزیم.//

   int IntFormNum = Convert.ToInt32(FormNum);

   if (IntFormNum >=0 && IntFormNum <10)

   Execution.SetVariable(“RequstNum”,”000″+ IntFormNum.ToString()+Prefix);

  else if(IntFormNum >=10 && IntFormNum <100)

   Execution.SetVariable(“RequstNum”,”00″+ IntFormNum.ToString()+Prefix);

  else if(IntFormNum >=100 && IntFormNum <1000)

   Execution.SetVariable(“RequstNum”,”0″+ IntFormNum.ToString()+Prefix);

  else

   Execution.SetVariable(“RequstNum”,IntFormNum.ToString()+Prefix);

        }

    }

}


[ratemypost]