Exemple #1
0
    private void SetFormData(int est_ref_id)
    {
        this.IEstTermRefID = PageUtility.GetIntByValueDropDownList(ddlEstTermInfo);
        this.strYMD        = PageUtility.GetByValueDropDownList(ddlEstTermMonth);

        Biz_Bsc_Map_Info objMap = new Biz_Bsc_Map_Info(this.IEstTermRefID, est_ref_id, this.strYMD);

        this.IMapVersionID = objMap.Imap_version_id;
        ltEstDeptName.Text = objMap.Iest_dept_name;
        lblChampName.Text  = objMap.Ibscchampion_name;
        lblSTGMapName.Text = objMap.Idept_vision;

        Biz_Bsc_Map_Kpi objKpi = new Biz_Bsc_Map_Kpi();
        DataSet         rDs    = objKpi.GetWeightPerStg(this.IEstTermRefID, est_ref_id, this.strYMD);

        if (rDs.Tables.Count > 0)
        {
            if (rDs.Tables[0].Rows.Count > 0)
            {
                rDs.Tables[0].Columns.Add("PARENT_STG", typeof(string));
                Biz_Bsc_Map_Stg_Parent objPrt = new Biz_Bsc_Map_Stg_Parent();
                int    iRow   = rDs.Tables[0].Rows.Count;
                string sUpStg = "";
                for (int i = 0; i < iRow; i++)
                {
                    objPrt.Iestterm_ref_id  = int.Parse(rDs.Tables[0].Rows[i]["ESTTERM_REF_ID"].ToString());
                    objPrt.Iest_dept_ref_id = int.Parse(rDs.Tables[0].Rows[i]["EST_DEPT_REF_ID"].ToString());
                    objPrt.Imap_version_id  = int.Parse(rDs.Tables[0].Rows[i]["MAP_VERSION_ID"].ToString());
                    objPrt.Istg_ref_id      = int.Parse(rDs.Tables[0].Rows[i]["STG_REF_ID"].ToString());

                    DataSet pDs = objPrt.GetParentStgList
                                      (objPrt.Iestterm_ref_id
                                      , objPrt.Iest_dept_ref_id
                                      , objPrt.Imap_version_id
                                      , objPrt.Istg_ref_id);
                    sUpStg = "";
                    if (pDs.Tables.Count > 0)
                    {
                        for (int k = 0; k < pDs.Tables[0].Rows.Count; k++)
                        {
                            sUpStg += (k == 0) ? pDs.Tables[0].Rows[k]["UP_STG_REF_ID"].ToString()
                                               : "," + pDs.Tables[0].Rows[k]["UP_STG_REF_ID"].ToString();
                        }
                    }

                    rDs.Tables[0].Rows[i]["PARENT_STG"] = sUpStg;
                }
            }
        }

        ugrdStgList.Clear();
        ugrdStgList.DataSource = rDs;
        ugrdStgList.DataBind();
    }
Exemple #2
0
    private void SetResltScoreGrid()
    {
        Biz_Bsc_Map_Kpi biz = new Biz_Bsc_Map_Kpi();
        DataSet         ds  = biz.GetKpiAnalysisPerEstDept(this.IEstTermRefID
                                                           //, this.IDeptID
                                                           , gUserInfo.Dept_Ref_ID
                                                           , this.IYmd
                                                           , 0
                                                           , this.ISumType);

        ugrdResultScore.Clear();
        ugrdResultScore.DataSource = ds;
        ugrdResultScore.DataBind();
    }
Exemple #3
0
    private void SetResultGrid()
    {
        this.SetPageData();
        Biz_Bsc_Map_Kpi objBSC = new Biz_Bsc_Map_Kpi();

        DataSet ds = objBSC.GetKpiStgResultAnalysis(_iestterm_ref_id
                                                    , _iest_dept_ref_id
                                                    , _iymd
                                                    , PageUtility.GetByValueDropDownList(ddlSumType)
                                                    , _istg_ref_id);

        if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
        {
            ugrdResultStatus.Clear();
            ugrdResultStatus.DataSource = ds.Tables[0];
            ugrdResultStatus.DataBind();
        }
    }
Exemple #4
0
    private void SetResultGrid()
    {
        if (Est_Dept_Ref_ID.ToString() == "")
        {
            ltrScript.Text = JSHelper.GetAlertScript("평가부서를 선택하십시오.", false);
            return;
        }

        Biz_Bsc_Map_Kpi biz = new Biz_Bsc_Map_Kpi();
        DataSet         ds  = biz.GetKpiAnalysisPerEstDept(Estterm_Ref_ID
                                                           , Est_Dept_Ref_ID
                                                           , Ymd
                                                           , _ithreshold_ref_id
                                                           , Sum_Type);

        ugrdResultStatus.Clear();
        ugrdResultStatus.DataSource = ds;
        ugrdResultStatus.DataBind();
    }
Exemple #5
0
    private void DrawMapTreeDetail(TreeView iTrvMap, int iEstTermRefID, int iEstDeptRefID, int iMapVersionID, string iSelectedKey)
    {
        int    cntRow = 0;
        int    cntStg = 0;
        int    cntKpi = 0;
        string strKey = "";
        string strVal = "";

        strKey = "D" + ";" + Convert.ToString(this.IEstDeptRefID) + ";0";
        strVal = this.IEstDeptName + " 전략맵";
        TreeNode topNode = new TreeNode(strVal, strKey);

        iTrvMap.Nodes.Clear();
        iTrvMap.Nodes.Add(topNode);
        topNode.ImageUrl = "../images/stg/TREE_D.gif";

        TreeNode vNode;

        MicroBSC.BSC.Biz.Biz_Bsc_View_Info objView = new MicroBSC.BSC.Biz.Biz_Bsc_View_Info();
        DataSet dsView = objView.GetAllList();

        TreeNode sNode;

        MicroBSC.BSC.Biz.Biz_Bsc_Map_Stg objSTG = new Biz_Bsc_Map_Stg();
        DataSet dsSTG = new DataSet();

        TreeNode kNode;

        MicroBSC.BSC.Biz.Biz_Bsc_Map_Kpi objKPI = new Biz_Bsc_Map_Kpi();
        DataSet dsKPI = new DataSet();

        cntRow = dsView.Tables[0].Rows.Count;
        for (int i = 0; i < cntRow; i++)
        {
            string imgWork = "<img alt='' src='../images/stg/TREE_W.gif'/>";
            string imgExec = "<img alt='' src='../images/stg/TREE_E.gif'/>";

            strKey         = "V" + ";" + dsView.Tables[0].Rows[i]["VIEW_REF_ID"].ToString() + ";0";
            strVal         = dsView.Tables[0].Rows[i]["VIEW_NAME"].ToString();
            vNode          = new TreeNode(strVal, strKey);
            vNode.ImageUrl = "../images/stg/TREE_V.gif";
            topNode.ChildNodes.Add(vNode);

            if (iSelectedKey == strKey)
            {
                vNode.Select();
                vNode.ExpandAll();
                vNode.SelectAction = TreeNodeSelectAction.Select;
            }

            int stgrefid = 0;
            int kpirefid = 0;

            dsSTG  = objSTG.GetStrategyPerView(IEstTermRefID, IEstDeptRefID, IMapVersionID, int.Parse(dsView.Tables[0].Rows[i]["VIEW_REF_ID"].ToString()));
            cntStg = dsSTG.Tables[0].Rows.Count;

            for (int j = 0; j < cntStg; j++)
            {
                strKey = "S" + ";" + dsSTG.Tables[0].Rows[j]["STG_REF_ID"].ToString() + ";0";

                stgrefid = Convert.ToInt32(dsSTG.Tables[0].Rows[j]["STG_REF_ID"].ToString());
                kpirefid = 0;

                strVal = dsSTG.Tables[0].Rows[j]["STG_NAME"].ToString()
                         + (WorkCount(IEstTermRefID, IEstDeptRefID, stgrefid, kpirefid) ? imgWork : "")
                         + (ExecCount(IEstTermRefID, IEstDeptRefID, stgrefid, kpirefid) ? imgExec : "");
                sNode = new TreeNode(strVal, strKey);

                sNode.ImageUrl = "../images/stg/TREE_S.gif";
                vNode.ChildNodes.Add(sNode);

                if (iSelectedKey == strKey)
                {
                    sNode.Select();
                    sNode.ExpandAll();
                    sNode.SelectAction = TreeNodeSelectAction.Select;
                }

                dsKPI  = objKPI.GetKpiListPerStg(IEstTermRefID, IEstDeptRefID, IMapVersionID, int.Parse(dsSTG.Tables[0].Rows[j]["STG_REF_ID"].ToString()));
                cntKpi = dsKPI.Tables[0].Rows.Count;

                for (int k = 0; k < cntKpi; k++)
                {
                    strKey = "K" + ";" + dsKPI.Tables[0].Rows[k]["KPI_REF_ID"].ToString() + ";" + dsSTG.Tables[0].Rows[j]["STG_REF_ID"].ToString();

                    kpirefid = Convert.ToInt32(dsKPI.Tables[0].Rows[k]["KPI_REF_ID"].ToString());

                    strVal = dsKPI.Tables[0].Rows[k]["KPI_NAME"].ToString()
                             + (WorkCount(IEstTermRefID, IEstDeptRefID, stgrefid, kpirefid) ? imgWork : "")
                             + (ExecCount(IEstTermRefID, IEstDeptRefID, stgrefid, kpirefid) ? imgExec : "");

                    kNode          = new TreeNode(strVal, strKey);
                    kNode.ImageUrl = "../images/stg/TREE_K.gif";
                    sNode.ChildNodes.Add(kNode);

                    if (iSelectedKey == strKey)
                    {
                        kNode.Select();
                        kNode.ExpandAll();
                        kNode.SelectAction = TreeNodeSelectAction.Select;
                    }
                }
            }
        }

        if (iTrvMap.SelectedNode == null)
        {
            topNode.Select();
        }

        iTrvMap.ExpandAll();
    }
Exemple #6
0
    public DataTable GetStgCaE()
    {
        // 1. 전략을 가진 부서를 조회하여 컬럼으로 늘이기
        Biz_Bsc_Map_Stg objStg = new Biz_Bsc_Map_Stg();
        DataSet         dsDept = objStg.GetEstDeptHaveStrategy(this.IEstTermRefID, this.IEstDeptRefID, this.IYmd);

        DataTable dtStgMoon = new DataTable("STG_MOON_CHART");
        string    sDeptId   = "";

        string cDeptId = "";  // 부서id
        string cStgId  = "";  // 전략id
        string cStgNm  = "";  // 전략명
        string cKpiId  = "";  // 지표ID
        string cKpiNm  = "";  // 지표명
        string cTarget = "";  // 목표
        string cResult = "";  // 실적
        string cSignal = "";  // 시그널
        string cWeight = "";  // 가중치

        if (dsDept.Tables.Count > 0)
        {
            for (int i = 0; i < dsDept.Tables[0].Rows.Count; i++)
            {
                sDeptId = dsDept.Tables[0].Rows[i]["EST_DEPT_REF_ID"].ToString();
                cDeptId = sPfxDeptId + sDeptId;
                cStgId  = sPfxStgId + sDeptId;
                cStgNm  = sPfxStgNm + sDeptId;
                cKpiId  = sPfxKpiId + sDeptId;
                cKpiNm  = sPfxKpiNm + sDeptId;
                cTarget = sPfxTarget + sDeptId;
                cResult = sPfxResult + sDeptId;
                cSignal = sPfxSignal + sDeptId;
                cWeight = sPfxWeight + sDeptId;

                dtStgMoon.Columns.Add(cStgId, typeof(string));
                dtStgMoon.Columns.Add(cStgNm, typeof(string));
                dtStgMoon.Columns.Add(cKpiId, typeof(string));
                dtStgMoon.Columns.Add(cKpiNm, typeof(string));
                dtStgMoon.Columns.Add(cTarget, typeof(string));
                dtStgMoon.Columns.Add(cResult, typeof(string));
                dtStgMoon.Columns.Add(cSignal, typeof(string));
                dtStgMoon.Columns.Add(cWeight, typeof(string));
            }
        }

        // 2. 전략관계가져오기
        Biz_Bsc_Stg_Tree_Term objSTerm = new Biz_Bsc_Stg_Tree_Term(this.IEstTermRefID, this.IYmd);


        //Biz_Bsc_Stg_Tree objSTree = new Biz_Bsc_Stg_Tree();
        //DataSet dtSTree = objSTree.GetStgTree(this.IEstTermRefID, objSTerm.IVersion_Ref_Id);


        // 3. 해당조직의 전략을 조회하여 나래비를 세움
        Biz_Bsc_Map_Kpi objKpi = new Biz_Bsc_Map_Kpi();

        if (dsDept.Tables.Count > 0)
        {
            for (int k = 0; k < dsDept.Tables[0].Rows.Count; k++)
            {
                sDeptId = dsDept.Tables[0].Rows[k]["EST_DEPT_REF_ID"].ToString();
                DataSet dsStgDept = objKpi.GetKpiAnalysisPerEstDept(this.IEstTermRefID, int.Parse(sDeptId), this.IYmd, 0, "MS");
                if (dsStgDept.Tables.Count > 0)
                {
                    DataRow dr = null;
                    for (int i = 0; i < dsStgDept.Tables[0].Rows.Count; i++)
                    {
                        dr      = dtStgMoon.NewRow();
                        sDeptId = dsStgDept.Tables[0].Rows[i]["EST_DEPT_REF_ID"].ToString();
                        cDeptId = sPfxDeptId + sDeptId;
                        cStgId  = sPfxStgId + sDeptId;
                        cStgNm  = sPfxStgNm + sDeptId;
                        cKpiId  = sPfxKpiId + sDeptId;
                        cKpiNm  = sPfxKpiNm + sDeptId;
                        cTarget = sPfxTarget + sDeptId;
                        cResult = sPfxResult + sDeptId;
                        cSignal = sPfxSignal + sDeptId;
                        cWeight = sPfxWeight + sDeptId;

                        dr[cStgId]  = dsStgDept.Tables[0].Rows[i]["STG_REF_ID"].ToString();
                        dr[cStgNm]  = dsStgDept.Tables[0].Rows[i]["STG_NAME"].ToString();
                        dr[cKpiId]  = dsStgDept.Tables[0].Rows[i]["KPI_REF_ID"].ToString();
                        dr[cKpiNm]  = dsStgDept.Tables[0].Rows[i]["KPI_NAME"].ToString();
                        dr[cTarget] = dsStgDept.Tables[0].Rows[i]["TARGET"].ToString();
                        dr[cResult] = dsStgDept.Tables[0].Rows[i]["RESULT"].ToString();
                        dr[cSignal] = dsStgDept.Tables[0].Rows[i]["THRESHOLD_IMG"].ToString();
                        dr[cWeight] = dsStgDept.Tables[0].Rows[i]["WEIGHT"].ToString();

                        dtStgMoon.Rows.Add(dr);
                    }
                }

                if (k == 2)
                {
                    break;
                }
            }
        }


        return(dtStgMoon);
    }
Exemple #7
0
    public void SetPrintMoonChartGrid()
    {
        ugrdMoonChart.Visible = true;

        this.IEstTermRefID = PageUtility.GetIntByValueDropDownList(ddlEstTermInfo);
        this.IEstDeptRefID = PageUtility.GetIntByValueDropDownList(ddlEstDept);
        this.IYmd          = PageUtility.GetByValueDropDownList(ddlEstTermMonth);

        DeptInfos objDept = new DeptInfos();
        DataSet   rDs     = objDept.GetEstDeptHaveMap(this.IEstTermRefID, this.IYmd, this.IEstDeptRefID, gUserInfo.Emp_Ref_ID);

        Biz_Bsc_Map_Kpi objMap = new Biz_Bsc_Map_Kpi();
        DataSet         rDsKpi = null;
        DataSet         rDsTop = null;

        string strEstDeptID = "";
        string strEstDeptNm = "";
        string strViwID     = "";
        string strViwName   = "";
        string strStgID     = "";
        string strStgName   = "";
        string strKpiID     = "";
        string strKpiName   = "";
        string strUnit      = "";
        string strTarget    = "";
        string strResult    = "";
        string strWeight    = "";

        int          intRow = rDs.Tables[0].Rows.Count;
        DataRow      rDr    = null;
        DataRow      rDrKpi = null;
        ColumnHeader ch     = null;

        ugrdMoonChart.Clear();

        for (int i = ugrdMoonChart.Columns.Count; i > 0; i--)
        {
            ugrdMoonChart.Bands[0].Columns.RemoveAt(i - 1);
            ugrdMoonChart.Bands[0].HeaderLayout.RemoveAt(i - 1);
        }

        ugrdMoonChart.ResetColumns();

        for (int i = 0; i < intRow; i++)
        {
            rDr          = rDs.Tables[0].Rows[i];
            strEstDeptID = rDr["EST_DEPT_REF_ID"].ToString();
            strEstDeptNm = rDr["DEPT_NAME"].ToString();
            strViwID     = strEstDeptID + "_VIEW_REF_ID";
            strViwName   = strEstDeptID + "_VIEW_NAME";
            strStgID     = strEstDeptID + "_STG_REF_ID";
            strStgName   = strEstDeptID + "_STG_NAME";
            strKpiName   = strEstDeptID + "_KPI_REF_ID";
            strUnit      = strEstDeptID + "_UNIT";
            strTarget    = strEstDeptID + "_TARGET";
            strResult    = strEstDeptID + "_RESULT";
            strWeight    = strEstDeptID + "_WEIGHT";

            ugrdMoonChart.Columns.Add(strViwName, "관점명");
            ugrdMoonChart.Columns.Add(strStgID, "전략ID");
            ugrdMoonChart.Columns.Add(strStgName, "전략명");
            ugrdMoonChart.Columns.Add(strKpiName, "지표명");
            ugrdMoonChart.Columns.Add(strUnit, "단위");
            ugrdMoonChart.Columns.Add(strResult, "전년실적");
            ugrdMoonChart.Columns.Add(strTarget, "목표");
            ugrdMoonChart.Columns.Add(strWeight, "가중치");

            ugrdMoonChart.Columns.FromKey(strViwName).Width = (i == 0) ? Unit.Pixel(60)  : Unit.Pixel(0);
            ugrdMoonChart.Columns.FromKey(strStgID).Width   = Unit.Pixel(0);
            ugrdMoonChart.Columns.FromKey(strStgName).Width = (i == 0) ? Unit.Pixel(100) : Unit.Pixel(0);
            ugrdMoonChart.Columns.FromKey(strKpiName).Width = Unit.Pixel(160);
            ugrdMoonChart.Columns.FromKey(strUnit).Width    = Unit.Pixel(30);
            ugrdMoonChart.Columns.FromKey(strTarget).Width  = Unit.Pixel(80);
            ugrdMoonChart.Columns.FromKey(strResult).Width  = Unit.Pixel(80);
            ugrdMoonChart.Columns.FromKey(strWeight).Width  = Unit.Pixel(50);

            ugrdMoonChart.Columns.FromKey(strUnit).CellStyle.HorizontalAlign   = HorizontalAlign.Center;
            ugrdMoonChart.Columns.FromKey(strTarget).CellStyle.HorizontalAlign = HorizontalAlign.Right;
            ugrdMoonChart.Columns.FromKey(strResult).CellStyle.HorizontalAlign = HorizontalAlign.Right;
            ugrdMoonChart.Columns.FromKey(strWeight).CellStyle.HorizontalAlign = HorizontalAlign.Right;

            ugrdMoonChart.Columns.FromKey(strTarget).Format = "#,##0.00";
            ugrdMoonChart.Columns.FromKey(strResult).Format = "#,##0.00";
            ugrdMoonChart.Columns.FromKey(strWeight).Format = "#,##0.00";

            ugrdMoonChart.Columns.FromKey(strViwName).Header.RowLayoutColumnInfo.OriginX = 0 + (i * 8);
            ugrdMoonChart.Columns.FromKey(strStgID).Header.RowLayoutColumnInfo.OriginX   = 1 + (i * 8);
            ugrdMoonChart.Columns.FromKey(strStgName).Header.RowLayoutColumnInfo.OriginX = 2 + (i * 8);
            ugrdMoonChart.Columns.FromKey(strKpiName).Header.RowLayoutColumnInfo.OriginX = 3 + (i * 8);
            ugrdMoonChart.Columns.FromKey(strUnit).Header.RowLayoutColumnInfo.OriginX    = 4 + (i * 8);
            ugrdMoonChart.Columns.FromKey(strResult).Header.RowLayoutColumnInfo.OriginX  = 5 + (i * 8);
            ugrdMoonChart.Columns.FromKey(strTarget).Header.RowLayoutColumnInfo.OriginX  = 6 + (i * 8);
            ugrdMoonChart.Columns.FromKey(strWeight).Header.RowLayoutColumnInfo.OriginX  = 7 + (i * 8);

            ugrdMoonChart.Columns.FromKey(strViwName).Header.RowLayoutColumnInfo.OriginY = 1;
            ugrdMoonChart.Columns.FromKey(strStgID).Header.RowLayoutColumnInfo.OriginY   = 1;
            ugrdMoonChart.Columns.FromKey(strStgName).Header.RowLayoutColumnInfo.OriginY = 1;
            ugrdMoonChart.Columns.FromKey(strKpiName).Header.RowLayoutColumnInfo.OriginY = 1;
            ugrdMoonChart.Columns.FromKey(strUnit).Header.RowLayoutColumnInfo.OriginY    = 1;
            ugrdMoonChart.Columns.FromKey(strTarget).Header.RowLayoutColumnInfo.OriginY  = 1;
            ugrdMoonChart.Columns.FromKey(strResult).Header.RowLayoutColumnInfo.OriginY  = 1;
            ugrdMoonChart.Columns.FromKey(strWeight).Header.RowLayoutColumnInfo.OriginY  = 1;

            rDsKpi = objMap.GetKpiForMoonchart(this.IEstTermRefID, Convert.ToInt32(strEstDeptID), this.IYmd);
            int cntKpi = rDsKpi.Tables[0].Rows.Count;

            if (i == 0)
            {
                // 최상위 부서의 데이터 복사
                rDsTop = rDsKpi.Copy();
                rDsTop.Tables[0].Columns.Add("RowUseYN", typeof(string));
                rDsTop.Tables[0].Columns.Add("NewYN", typeof(string));

                ugrdMoonChart.Columns.FromKey(strViwName).Header.Fixed = true;
                ugrdMoonChart.Columns.FromKey(strStgID).Header.Fixed   = true;
                ugrdMoonChart.Columns.FromKey(strStgName).Header.Fixed = true;
                ugrdMoonChart.Columns.FromKey(strKpiName).Header.Fixed = true;
                ugrdMoonChart.Columns.FromKey(strUnit).Header.Fixed    = true;
                ugrdMoonChart.Columns.FromKey(strTarget).Header.Fixed  = true;
                ugrdMoonChart.Columns.FromKey(strResult).Header.Fixed  = true;
                ugrdMoonChart.Columns.FromKey(strWeight).Header.Fixed  = true;

                ch         = new ColumnHeader(true);
                ch.Caption = strEstDeptNm;
                ch.RowLayoutColumnInfo.OriginY = 0;
                ch.RowLayoutColumnInfo.OriginX = 0;
                ch.RowLayoutColumnInfo.SpanX   = 8;
                ch.Style.Height = Unit.Pixel(20);
                ugrdMoonChart.Bands[0].HeaderLayout.Add(ch);
                ugrdMoonChart.Bands[0].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                ch = null;

                ugrdMoonChart.Columns.FromKey(strViwName).MergeCells = true;
                ugrdMoonChart.Columns.FromKey(strStgID).MergeCells   = true;
                ugrdMoonChart.Columns.FromKey(strStgName).MergeCells = true;
                ugrdMoonChart.Columns.FromKey(strKpiName).MergeCells = true;

                for (int k = 0; k < cntKpi; k++)
                {
                    rDrKpi = rDsKpi.Tables[0].Rows[k];
                    ugrdMoonChart.Rows.Add();
                    ugrdMoonChart.Rows[k].Cells.FromKey(strViwName).Value = rDrKpi["VIEW_NAME"].ToString();
                    ugrdMoonChart.Rows[k].Cells.FromKey(strStgID).Value   = rDrKpi["STG_REF_ID"].ToString();
                    ugrdMoonChart.Rows[k].Cells.FromKey(strStgName).Value = rDrKpi["STG_NAME"].ToString();
                    ugrdMoonChart.Rows[k].Cells.FromKey(strKpiName).Value = rDrKpi["KPI_NAME"].ToString();
                    ugrdMoonChart.Rows[k].Cells.FromKey(strUnit).Value    = rDrKpi["UNIT"].ToString();
                    ugrdMoonChart.Rows[k].Cells.FromKey(strTarget).Value  = Convert.ToDouble(rDrKpi["TARGET"].ToString());
                    ugrdMoonChart.Rows[k].Cells.FromKey(strResult).Value  = Convert.ToDouble(rDrKpi["RESULT"].ToString());
                    ugrdMoonChart.Rows[k].Cells.FromKey(strWeight).Value  = Convert.ToDouble(rDrKpi["WEIGHT"].ToString());
                }
            }
            else
            {
                ch         = new ColumnHeader(true);
                ch.Caption = strEstDeptNm;
                ch.RowLayoutColumnInfo.OriginY = 0;
                ch.RowLayoutColumnInfo.OriginX = (i * 8);
                ch.RowLayoutColumnInfo.SpanX   = 8;
                ch.Style.Height = Unit.Pixel(20);
                ugrdMoonChart.Bands[0].HeaderLayout.Add(ch);
                ugrdMoonChart.Bands[0].HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                ch = null;

                string   strStgRefID = "";
                int      intIdx      = 0;
                string   strCurKPI   = "0";
                bool     blnPrintYN  = false;
                bool     blnHaveKpi  = false;
                bool     blnExitsKpi = false;
                string[] ArrKpi      = null;

                // 최상위부서 행번호 사용여부 초기화
                for (int y = 0; y < rDsTop.Tables[0].Rows.Count; y++)
                {
                    rDsTop.Tables[0].Rows[y]["RowUseYN"] = "N";
                }

                #region -- 현재 부서의 지표 인쇄
                // 현재 조직을 기준으로 검색한다
                for (int k = 0; k < cntKpi; k++)
                {
                    rDrKpi      = rDsKpi.Tables[0].Rows[k];
                    strStgRefID = rDrKpi["STG_REF_ID"].ToString();
                    strCurKPI   = rDrKpi["KPI_REF_ID"].ToString();
                    intIdx      = 0;
                    blnHaveKpi  = false;
                    blnPrintYN  = false;
                    blnExitsKpi = false;

                    #region -- 지표별 인쇄 --
                    // 최상위 부서의 데이터셋에서 나의 지표아이디가 있는지 검색한다
                    // 첫번째로 상위지표별로 검색하고 없으면 전략아이디로 검색한다
                    for (int x = 0; x < rDsTop.Tables[0].Rows.Count; x++)
                    {
                        ArrKpi = rDsTop.Tables[0].Rows[x]["CHILD_KPI"].ToString().Split(',');
                        ArrKpi.Initialize();
                        blnExitsKpi = false;
                        for (int n = 0; n < ArrKpi.Length; n++)
                        {
                            if (ArrKpi[n] == strCurKPI)
                            {
                                blnExitsKpi = true;
                                break;
                            }
                        }

                        if (blnExitsKpi)
                        {
                            if (rDsTop.Tables[0].Rows[x]["RowUseYN"].ToString() == "N" ||
                                rDsTop.Tables[0].Rows[x]["RowUseYN"] == DBNull.Value ||
                                rDsTop.Tables[0].Rows[x]["RowUseYN"] == "")
                            {
                                intIdx     = x;
                                blnPrintYN = true;
                                blnHaveKpi = true;
                                rDsTop.Tables[0].Rows[x]["RowUseYN"] = "Y";
                                break;
                            }
                            else
                            {
                                intIdx     = x;
                                blnHaveKpi = true;
                            }
                        }
                        else
                        {
                            blnPrintYN = false;
                        }

                        ArrKpi = null;
                    }

                    //if (!blnHaveKpi && !blnPrintYN)
                    //{
                    //    // 최상위 부서의 데이터셋에서 나의 전략아이디가 있는지 검색한다
                    //    // 두번째로 상위지표별로 검색하고 없으면 전략아이디로 검색한다
                    //    for (int x = 0; x < rDsTop.Tables[0].Rows.Count; x++)
                    //    {
                    //        if (rDsTop.Tables[0].Rows[x]["STG_REF_ID"].ToString() == strStgRefID)
                    //        {
                    //            if (rDsTop.Tables[0].Rows[x]["RowUseYN"].ToString() == "N" ||
                    //                rDsTop.Tables[0].Rows[x]["RowUseYN"] == DBNull.Value ||
                    //                rDsTop.Tables[0].Rows[x]["RowUseYN"] == "")
                    //            {
                    //                intIdx = x;
                    //                blnPrintYN = true;
                    //                blnHaveKpi = true;
                    //                rDsTop.Tables[0].Rows[x]["RowUseYN"] = "Y";
                    //                break;
                    //            }
                    //            else
                    //            {
                    //                intIdx = x;
                    //                blnHaveKpi = true;
                    //            }
                    //        }
                    //        else
                    //        {
                    //            blnPrintYN = false;
                    //        }
                    //    }
                    //}

                    try
                    {
                        // 나의 지표아이디가 최상위 부서에 존재하고 프린트할 자리도 있는 경우
                        if (blnHaveKpi && blnPrintYN)
                        {
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strViwName).Value = rDrKpi["VIEW_NAME"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strStgID).Value   = rDrKpi["STG_REF_ID"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strStgName).Value = rDrKpi["STG_NAME"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strKpiName).Value = rDrKpi["KPI_NAME"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strUnit).Value    = rDrKpi["UNIT"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strTarget).Value  = Convert.ToDouble(rDrKpi["TARGET"].ToString());
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strResult).Value  = Convert.ToDouble(rDrKpi["RESULT"].ToString());
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strWeight).Value  = Convert.ToDouble(rDrKpi["WEIGHT"].ToString());
                        }
                        // 상위지표는 존재 하나 프린트할 자리가 없는경우
                        // 행을 하나 늘이고 인쇄한다
                        else if (!blnPrintYN && blnHaveKpi)
                        {
                            UltraGridRow ugrNew = new UltraGridRow();
                            for (int m = 0; m < 8; m++)
                            {
                                ugrNew.Cells.Add(ugrdMoonChart.Rows[intIdx].Cells[m]);
                            }

                            ugrdMoonChart.Rows.Insert(intIdx + 1, ugrNew);

                            DataRow drNew  = rDsTop.Tables[0].NewRow();
                            int     TopCnt = rDsTop.Tables[0].Columns.Count;
                            for (int z = 0; z < TopCnt; z++)
                            {
                                drNew[z] = rDsTop.Tables[0].Rows[intIdx][z];
                                // 새로 추가된 행을 구분하고 검색후 삭제한다
                                if (z == (TopCnt - 1))
                                {
                                    drNew[z] = "Y";
                                }
                            }

                            rDsTop.Tables[0].Rows.InsertAt(drNew, intIdx);

                            intIdx += 1;

                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strViwName).Value = rDrKpi["VIEW_NAME"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strStgID).Value   = rDrKpi["STG_REF_ID"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strStgName).Value = rDrKpi["STG_NAME"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strKpiName).Value = rDrKpi["KPI_NAME"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strUnit).Value    = rDrKpi["UNIT"].ToString();
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strTarget).Value  = Convert.ToDouble(rDrKpi["TARGET"].ToString());
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strResult).Value  = Convert.ToDouble(rDrKpi["RESULT"].ToString());
                            ugrdMoonChart.Rows[intIdx].Cells.FromKey(strWeight).Value  = Convert.ToDouble(rDrKpi["WEIGHT"].ToString());
                        }
                        #endregion
                    }
                    catch (Exception e)
                    {
                        ltrScript.Text = JSHelper.GetAlertScript(e.Message, false);
                    }
                }
                #endregion
            }

            rDsKpi = null;
        }

        lblCountRow.Text = "Total Rows : " + ugrdMoonChart.Rows.Count.ToString();
    }
        public int Add_BSC_MAP_STG_MANUAL(int estterm_ref_id
                                          , int est_dept_ref_id
                                          , string ymd
                                          , string st_up_tbl_id
                                          , string st_tbl_id
                                          , string ed_up_tbl_id
                                          , string ed_tbl_id
                                          , string[] arrX1
                                          , string[] arrY1
                                          , string[] arrX2
                                          , string[] arrY2
                                          , int create_user
                                          , DateTime create_date
                                          , int map_version_id)
        {
            int okCnt = 0;

            IDbConnection conn = DbAgentHelper.CreateDbConnection();

            conn.Open();
            IDbTransaction trx = conn.BeginTransaction();

            MicroBSC.BSC.Biz.Biz_Bsc_Map_Stg_Parent objPrt = new Biz_Bsc_Map_Stg_Parent();
            MicroBSC.BSC.Biz.Biz_Bsc_Map_Kpi        objKpi = new Biz_Bsc_Map_Kpi();

            try
            {
                DataSet ds = base.Select(conn
                                         , trx
                                         , estterm_ref_id
                                         , est_dept_ref_id
                                         , ymd
                                         , st_up_tbl_id
                                         , st_tbl_id
                                         , ed_up_tbl_id
                                         , ed_tbl_id);

                if (ds.Tables[0].Rows.Count > 0)
                {
                    base.Delete(conn
                                , trx
                                , estterm_ref_id
                                , est_dept_ref_id
                                , ymd
                                , st_up_tbl_id
                                , st_tbl_id
                                , ed_up_tbl_id
                                , ed_tbl_id);
                }

                for (int i = 0; i < arrX1.Length; i++)
                {
                    if (arrX1[i] == arrX2[i] && arrY1[i] == arrY2[i])
                    {
                    }
                    else
                    {
                        int seq = base.NewSeq(conn
                                              , trx
                                              , estterm_ref_id
                                              , est_dept_ref_id
                                              , ymd
                                              , st_up_tbl_id
                                              , st_tbl_id
                                              , ed_up_tbl_id
                                              , ed_tbl_id);

                        okCnt += base.Insert(conn
                                             , trx
                                             , seq
                                             , estterm_ref_id
                                             , est_dept_ref_id
                                             , ymd
                                             , st_up_tbl_id
                                             , st_tbl_id
                                             , ed_up_tbl_id
                                             , ed_tbl_id
                                             , arrX1[i]
                                             , arrY1[i]
                                             , arrX2[i]
                                             , arrY2[i]
                                             , create_user
                                             , DateTime.Now);
                    }
                }

                if (okCnt > 0)
                {
                    string[] stg_ref_id    = st_tbl_id.Split('_');
                    string[] up_stg_ref_id = ed_tbl_id.Split('_');

                    Biz_Bsc_Map_Stg_Parent bizBsc_Map_Stg_Parent = new Biz_Bsc_Map_Stg_Parent();
                    bizBsc_Map_Stg_Parent.InsertData(conn
                                                     , trx
                                                     , estterm_ref_id
                                                     , est_dept_ref_id
                                                     , map_version_id
                                                     , DataTypeUtility.GetToInt32(stg_ref_id[1])
                                                     , DataTypeUtility.GetToInt32(up_stg_ref_id[1])
                                                     , DataTypeUtility.GetToInt32(create_user));
                }

                base.Transaction_Message = "정상적으로 처리되었습니다.";
                base.Transaction_Result  = "Y";
                trx.Commit();
            }
            catch (Exception e)
            {
                base.Transaction_Message = e.Message;
                base.Transaction_Result  = "N";
                trx.Rollback();
                okCnt = 0;
            }
            finally
            {
                conn.Close();
            }



            return(okCnt);
        }