프로그래스바를 구현해본것인데....3티어에서 프로시져의 진행률을 알려고합니다.
1,전체갯수
2,현재진행갯수
3,오류
#region 프로그래스바
public delegate void UpdateUIHandler();
public Thread progressThread = null;
bool m_Abort = false;
public string strKey;
public int index = 0;
private void ubtnStart_Click(object sender, EventArgs e)
{
strKey = DateTime.Now.ToString("yyyyMMddHHmmss");
m_State[0] = "C";
SetDaliGate();
}
private void ubtnCancle_Click(object sender, EventArgs e)
{
m_State[0] = "D";
SetDaliGate();
}
private void SetDaliGate()
{
string[] strTemp = lblSchDate.Text.Split(new string[] { "~" }, StringSplitOptions.None);
//전체갯수와 초기화
string[] sqlParams = new string[5];
sqlParams[0] = strKey;
sqlParams[1] = uneSch_Yy.Value.ToString();
sqlParams[2] = ucbeSchAcc_Unit_CD.Value.ToString();
sqlParams[3] = "%";
sqlParams[4] = ucbeSchTax_Prd.Value.ToString();
string strBizMethod = "ADMACCTTxblMana130Get_010";
uteEdtTotCnt.Tag = Remoting.ExecuteScalar(this.m_BizComponent, strBizMethod, sqlParams,
JNU.Framework.Common.TransactionType.NotSupport, "CMMCOMM", false);
{
if (Convert.ToInt32(uteEdtTotCnt.Tag) >= 0)
{
m_Abort = false;
SetCtrEnable(0, true);
}
else
{
SetCtrEnable(0, false);
}
uteEdtTotCnt.Text = uteEdtTotCnt.Tag.ToString();
}
upbT1Edt.Maximum = int.Parse(string.IsNullOrEmpty(uteEdtTotCnt.Text) ? "0" : uteEdtTotCnt.Text);//전체갯수
progressThread = new Thread(new ThreadStart(UpdateUI));
progressThread.Start();
//배치프로시져호출
sqlParams = new string[14];
sqlParams[0] = m_State[0];
sqlParams[1] = uneSch_Yy.Value.ToString();
sqlParams[2] = ucbeSchAcc_Unit_CD.Value.ToString();
sqlParams[3] = string.IsNullOrEmpty(ucbeSchDiv_Org_CD.Value.ToString()) ? "%" : ucbeSchDiv_Org_CD.Value.ToString();
sqlParams[4] = "%";
sqlParams[5] = "%";
sqlParams[6] = uosSchOrg_CD.CheckedItem.DataValue.ToString();
sqlParams[7] = "%";
sqlParams[8] = strTemp[0].Replace("-", "");;
sqlParams[9] = strTemp[1].Replace("-", "");;
sqlParams[10] = m_User_Id;
sqlParams[11] = m_Ip_Address;
sqlParams[12] = m_User_Id;
sqlParams[13] = m_Ip_Address;
strBizMethod = "ADMACCTTxblMana010Bat_010";
if ((int)Remoting.Execute(this.m_BizComponent, strBizMethod, sqlParams,
JNU.Framework.Common.TransactionType.NotSupport, "CMMCOMM", false) == 0)
{
if (index > 0)
{
m_Abort = true;
}
upbT1Edt.Value = upbT1Edt.Minimum;
}
}
public void DoProgress()
{
upbT1Edt.Invoke(new UpdateUIHandler(UpdateUI));
}
private void UpdateUI()
{
try
{
for (int i = 0; i <= upbT1Edt.Maximum; i++)
{
index = i;
if (m_Abort)
{
m_Abort = false;
break;
}
Application.DoEvents();
upbT1Edt.Value = i;
uteEdtProCnt.Text = i.ToString();
Thread.Sleep(10);
}
Application.DoEvents();
}
finally
{
Thread.Sleep(100);
upbT1Edt.Value = upbT1Edt.Minimum;
uteEdtErrCnt.Text = Convert.ToString(int.Parse(uteEdtTotCnt.Text) - int.Parse(uteEdtProCnt.Text));
}
}
#endregion
[최초 등록일: ]
[최종 수정일: 7/15/2008]