private void BindDataGrid(string strOrder, string strUserDesc, string strUserNm, string strDeptID, ref bs_UserManager mybs, int iPage)
    {
        PccMsg myMsg = new PccMsg();
            myMsg.CreateFirstNode("ap_id", Request.QueryString["ApID"]);
            myMsg.CreateFirstNode("dept_id", strDeptID);
            myMsg.CreateFirstNode("user_desc", strUserDesc);
            myMsg.CreateFirstNode("user_nm", strUserNm);
            myMsg.CreateFirstNode("order", strOrder);

            //加入判斷是否要有事業群之判斷20041116
            myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());
            GetMenuAuth myAuth = new GetMenuAuth();
            myAuth.AspxFile = "UserManage104.aspx";

            //判斷是否要利用事業群來分設權限
            if (ConfigurationManager.AppSettings[m_apid + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_apid + "-FactByGroup"].ToString() == "Y")
            {
                //判斷此使用者是否可以分配不同的事業群權限
                if (!myAuth.IsReportAuth())
                {
                    //表示他必須區分事業群
                    myMsg.CreateFirstNode("GroupFilter", "Y");
                }
                else
                {
                    myMsg.CreateFirstNode("GroupFilter", "N");
                }
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
            }

            if (ConfigurationManager.AppSettings[m_apid + "-FactFilter"] != null && ConfigurationManager.AppSettings[m_apid + "-FactFilter"].ToString() == "Y")
            {
                //表示他必須區分廠管理 20041118 注意要區別廠管理的先決條件是要區分事業群
                myMsg.CreateFirstNode("FactFilter", "Y");
            }

            DataSet ds = mybs.DoReturnDataSet("GetAnotherUser", myMsg.GetXmlStr, "");
            ViewState["order"] = strOrder;

            if (ds != null)
            {
                DataGrid1.DataSource = ds.Tables["AnotherUser"].DefaultView;
                //  DataGrid1.DataBind();
                PageControl1.BindDataGrid = DataGrid1;
                PageControl1.CurrentPageIndex = iPage;

            }
            else
            {
                btnAddComeOn.Visible = false;
            }
    }
    private void GenMasterTableData(ref PccErrMsg myLabel)
    {
        bs_GroupManage mybs = new bs_GroupManage(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);
        PccMsg myMsg = new PccMsg();
        myMsg.CreateFirstNode("StartRecord", PageControl1.StartRecord.ToString());
        myMsg.CreateFirstNode("PageSize", PageControl1.PageSize.ToString());
        myMsg.CreateFirstNode("ap_id", Request.QueryString["ApID"]);
        myMsg.CreateFirstNode("group_nm", txtGroupName.Text);

        //加入判斷是否要有事業群之判斷20041116
        string strGroupFilter = "N", strFactFilter = "N";
        string strTemp = "";
        myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());
        GetMenuAuth myAuth = new GetMenuAuth();

        //判斷是否要利用事業群來分設權限
        if (ConfigurationManager.AppSettings[m_apid + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_apid + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (!myAuth.IsReportAuth())
            {
                //表示他必須區分事業群
                myMsg.CreateFirstNode("GroupFilter", "Y");
                strGroupFilter = "Y";
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
            }
        }
        else
        {
            myMsg.CreateFirstNode("GroupFilter", "N");
        }

        if (ConfigurationManager.AppSettings[m_apid + "-FactFilter"] != null && ConfigurationManager.AppSettings[m_apid + "-FactFilter"].ToString() == "Y")
        {
            //表示他必須區分廠管理 20041118 注意要區別廠管理的先決條件是要區分事業群
            myMsg.CreateFirstNode("FactFilter", "Y");
            strFactFilter = "Y";
        }

        string strXML = myMsg.GetXmlStr;
        DataSet myGroupDs = mybs.DoReturnDataSet("GetGroupbyApID", strXML, "");

        DataTable myGroupData = myGroupDs.Tables["Group"];

        if (myGroupData.Rows.Count > 0)
        {
            int MasterCount = 0;
            string MasterStyle = "";
            PccMsg myTempMsg;

            PccRow myRow;
            //取出資料總筆數
            PageControl1.TotalSize = myGroupDs.Tables["TCounts"].Rows[0]["Counts"].ToString();
            PageControl1.BuildPager();

            //明細資料類別之共同參數
            myMsg.LoadXml();
            myMsg.CreateFirstNode("TableClass", "ActDocTB");
            myMsg.CreateFirstNode("RowHeaderClass", "TDShowHeader");
            myMsg.CreateFirstNode("RowClass1", "ffd000");
            myMsg.CreateFirstNode("RowClass2", "fff000");
            string strClassXML = myMsg.GetXmlStr;

            //使用者明細資料類別之參數
            string strOrgFields5 = "";
            if (myAuth.IsDeleteAuth())
            {
                strOrgFields5 = "btn-刪除-Return_Click(this)";
            }
            string[] Fields = { "編號", "電子郵件帳號", "使用者名稱", "廠別", strOrgFields5 };
            int[] FieldsPercent = { 5, 30, 20, 35, 10 };
            string[] FieldsItem = { "--NO--", "email", "user_desc", "fact_nm", "user_id" };
            //string[] TransFunc = {"","TransUserNm","TransUserDesc","TransFactNm",""};
            string[] FieldsType = new string[5];
            FieldsType[0] = "--NO--";
            FieldsType[1] = "<PccMsg><Type>Text</Type></PccMsg>";
            FieldsType[2] = "<PccMsg><Type>Text</Type></PccMsg>";
            FieldsType[3] = "<PccMsg><Type>Text</Type></PccMsg>";
            FieldsType[4] = "<PccMsg><Type>CheckBox</Type><Value>user_id</Value></PccMsg>";

            //選單明細資料類別之參數
            string strOrgFields8 = "";
            if (myAuth.IsUpdateAuth())
            {
                strOrgFields8 = "btn-更新送出-Return_ClickM(this)"; ;
            }

            //判斷是否為超級管理者,若是則不控管自己Menu的CheckBox權限 20041119
            string strcheckbox = "";
            if (Session["UserEMail"].ToString() != ConfigurationManager.AppSettings["superAdminEmail"].ToString())
                strcheckbox = "CheckBoxByValueJudgeUserRight";
            else
                strcheckbox = "CheckBoxByValue";

            string[] MFields = { "編號", "選單名稱", "顯示權限", "新增權限", "更新權限", "刪除權限", "報表權限", "發信權限", strOrgFields8 };
            int[] MFieldsPercent = { 5, 25, 10, 10, 10, 10, 10, 10, 10 };
            string[] MFieldsItem = { "--NO--", "menu_nm", "show_mk", "add_mk", "upd_mk", "del_mk", "rpt_mk", "send_mk", "groupd_id" };
            string[] MFieldsType = new string[9];
            MFieldsType[0] = "--NO--";
            MFieldsType[1] = "<PccMsg><Type>Text</Type></PccMsg>";
            MFieldsType[2] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            MFieldsType[3] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            MFieldsType[4] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            MFieldsType[5] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            MFieldsType[6] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            MFieldsType[7] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            MFieldsType[8] = "<PccMsg><Type>Space</Type></PccMsg>";

            //要取得明細資料的Table變數
            DataTable tblUserGroup, tblMenuGroup;

            //再利用此Table再取得其每一列的資料,再Gen出主要的Table Row.
            foreach (DataRow myMasterRow in myGroupData.Rows)
            {
                if (MasterCount % 2 == 0) MasterStyle = "cssGridRowAlternating"; else MasterStyle = "cssGridRow";
                myRow = new PccRow("", HorizontalAlign.Center, 0, 0);
                myRow.SetRowCss(MasterStyle);

                //編號
                myRow.AddTextCell(PageControl1.ListCount, 10);
                //群組名稱(點選群組名稱可把使用者加入此群組)
                myTempMsg = new PccMsg();
                myTempMsg.CreateFirstNode("ToolTip", myMasterRow["group_nm"].ToString());
                myTempMsg.CreateFirstNode("LinkID", "ULink" + myMasterRow["group_id"].ToString());
                myTempMsg.CreateFirstNode("Href", USERADDCOMEON + "?ApID=" + CheckQueryString("ApID") + "&GroupID=" + myMasterRow["group_id"].ToString() + "&GroupNm=" + myMasterRow["group_nm"].ToString() + "&QueryCondition=" + GetQueryCondition());
                myTempMsg.CreateFirstNode("Text", myMasterRow["group_nm"].ToString());
                myRow.AddLinkHrefCell(myTempMsg.GetXmlStr, 60);
                //檢視使用者
                myTempMsg = new PccMsg();
                myTempMsg.CreateFirstNode("ToolTip", myLabel.GetErrMsg("lbl0020", "ADTPurDoc/GroupManage"));
                myTempMsg.CreateFirstNode("LinkID", "HLinkViewU" + myMasterRow["group_id"].ToString());
                myTempMsg.CreateFirstNode("Image", Session["PageLayer"] + "images/detal.gif");
                myTempMsg.CreateFirstNode("ClickFun", "doSection(view_U" + MasterCount.ToString() + ")");
                myRow.AddLinkCell(myTempMsg.GetXmlStr, 10);
                //檢視選單
                myTempMsg = new PccMsg();
                myTempMsg.CreateFirstNode("ToolTip", myLabel.GetErrMsg("lbl0021", "ADTPurDoc/GroupManage"));
                myTempMsg.CreateFirstNode("LinkID", "HLinkViewM" + myMasterRow["group_id"].ToString());
                myTempMsg.CreateFirstNode("Image", Session["PageLayer"] + "images/detal.gif");
                myTempMsg.CreateFirstNode("ClickFun", "doSection(view_M" + MasterCount.ToString() + ")");
                myRow.AddLinkCell(myTempMsg.GetXmlStr, 10);
                //群組管理
                myTempMsg.LoadXml();
                //加入群組管理修改及刪除的Item
                if (myAuth.IsUpdateAuth())
                {
                    myTempMsg.CreateNode("LinkButton");
                    myTempMsg.AddToNode("Image", Session["PageLayer"] + "images/edit.gif");
                    myTempMsg.AddToNode("ToolTip", "修改群組");
                    myTempMsg.AddToNode("href", GROUPADDNEW + "?ApID=" + Request.Params["ApID"].ToString());
                    myTempMsg.AddToNode("QueryCondition", GetQueryCondition());
                    myTempMsg.AddToNode("Method", GetMethod("MasterUpdateFunc", "group_id", "group_nm", myMasterRow));
                    myTempMsg.UpdateNode();
                }
                if (myAuth.IsDeleteAuth())
                {
                    myTempMsg.CreateNode("LinkButton");
                    myTempMsg.AddToNode("Image", Session["PageLayer"] + "images/del.gif");
                    myTempMsg.AddToNode("ToolTip", "刪除群組");
                    myTempMsg.AddToNode("href", GROUPMANAGE + "?ApID=" + Request.Params["ApID"].ToString());
                    myTempMsg.AddToNode("QueryCondition", GetQueryCondition());
                    myTempMsg.AddToNode("Method", GetMethod("MasterDelFunc", "group_id", "group_nm", myMasterRow));
                    myTempMsg.UpdateNode();
                }
                myRow.AddMultiLinkCell(myTempMsg.GetXmlStr, 10);

                tblGroup.Rows.Add(myRow.Row);

                //設定使用者明細資料類別之參數
                strTemp = "<PccMsg>";
                strTemp += "<group_id>" + myMasterRow["group_id"].ToString() + "</group_id>";
                strTemp += "<ap_id>" + m_apid + "</ap_id>";
                strTemp += "<user_id>" + Session["UserID"].ToString() + "</user_id>";
                strTemp += "<GroupFilter>" + strGroupFilter + "</GroupFilter>";
                strTemp += "<FactFilter>" + strFactFilter + "</FactFilter>";
                strTemp += "</PccMsg>";
                tblUserGroup = mybs.DoReturnDataSet("GetUserByGroupID", strTemp, "").Tables["UserGroup"];

                PccDetailTable myDTable = new PccDetailTable("UDT" + myMasterRow["group_id"].ToString());
                myDTable.ClassXML = strClassXML;
                myDTable.Fields = Fields;
                myDTable.FieldsPercent = FieldsPercent;
                myDTable.FieldsItem = FieldsItem;
                myDTable.FieldsType = FieldsType;
                myDTable.NewDataTable = tblUserGroup;

                //myDTable.TransFunc = TransFunc;
                //myDTable.objThis = this;

                myDTable.Create();

                myRow.Reset();
                myRow.SetRowCss("off");
                myRow.SetRowID("view_U" + MasterCount);
                myRow.SetDefaultCellData("DGridTD", HorizontalAlign.Center, 0, 10);
                myRow.AddControl(myDTable.NewTable, 100);

                tblGroup.Rows.Add(myRow.Row);

                //設定選單明細資料類別之參數
                tblMenuGroup = mybs.DoReturnDataSet("GetMenuByGroupID", "<PccMsg><group_id>" + myMasterRow["group_id"].ToString() + "</group_id></PccMsg>", "").Tables["MenuGroup"];

                PccDetailTable myMDTable = new PccDetailTable("MDT" + myMasterRow["group_id"].ToString());
                myMDTable.ClassXML = strClassXML;
                myMDTable.Fields = MFields;
                myMDTable.FieldsPercent = MFieldsPercent;
                myMDTable.FieldsItem = MFieldsItem;
                myMDTable.FieldsType = MFieldsType;
                myMDTable.NewDataTable = tblMenuGroup;

                myMDTable.Create();

                if (m_menuIDArray == null)
                {
                    m_menuIDArray = myMDTable.GetDataArray("menu_id");
                    ViewState["MenuID"] = m_menuIDArray;
                }

                myRow.Reset();
                myRow.SetRowCss("off");
                myRow.SetRowID("view_M" + MasterCount);
                myRow.SetDefaultCellData("DGridTD", HorizontalAlign.Center, 0, 10);
                myRow.AddControl(myMDTable.NewTable, 100);

                tblGroup.Rows.Add(myRow.Row);

                MasterCount += 1;

            } // end of foreach datarow
        } // end of if table count is 0
        else
        {
            PageControl1.TotalSize = "0";
            PageControl1.BuildPager();
        }
    }
    private void GenMasterTableData(ref PccErrMsg myLabel)
    {
        PccErrMsg myErrMsg = new PccErrMsg(Server.MapPath(Session["PageLayer"] + "XmlDoc"), Session["CodePage"].ToString(), "Error");

        bs_UserFactManage mybs = new bs_UserFactManage(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);
        PccMsg myMsg = new PccMsg();
        myMsg.CreateFirstNode("ap_id", m_ap_id);
        myMsg.CreateFirstNode("fact_id", m_fact_id);
        myMsg.CreateFirstNode("Ufact_id", listfact.SelectedItem.Value.ToString());
        myMsg.CreateFirstNode("user_desc", txtuser.Text);
        if (ConfigurationManager.AppSettings[m_ap_id + "-UserMultiFact"] != null)
            myMsg.CreateFirstNode("UserMultiFact", ConfigurationManager.AppSettings[m_ap_id + "-UserMultiFact"]);
        else
            myMsg.CreateFirstNode("UserMultiFact", "Y");
        myMsg.CreateFirstNode("StartRecord", PageControl1.StartRecord.ToString());
        myMsg.CreateFirstNode("PageSize", PageControl1.PageSize.ToString());
        myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());

        DataSet ds;

        //判斷是否要利用事業群來分設權限 20041125

        GetMenuAuth myAuth = new GetMenuAuth();
        myAuth.AspxFile = PICKUSER;

        myMsg.CreateFirstNode("order", "");

        if (ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (!myAuth.IsReportAuth())
            {
                //表示他必須區分事業群
                myMsg.CreateFirstNode("GroupFilter", "Y");
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
            }
        }
        else
        {
            myMsg.CreateFirstNode("GroupFilter", "N");
        }

        if (ConfigurationManager.AppSettings[m_ap_id + "-FactFilter"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactFilter"].ToString() == "Y")
        {
            //表示他必須區分廠管理 20041125 注意要區別廠管理的先決條件是要區分事業群
            if (myAuth.IsSendAuth())  //表示若有Report及Send的權限則其為群管理者
            {
                myMsg.CreateFirstNode("FactFilter", "N");
            }
            else
            {
                myMsg.CreateFirstNode("FactFilter", "Y");
            }
        }
        else
        {
            myMsg.CreateFirstNode("FactFilter", "N");
        }

        ds = mybs.DoReturnDataSet("GetUserByApIDAndUserGroupIn", myMsg.GetXmlStr, "");

        /*string strSp = "";
        //判斷是否要利用事業群來分設權限
        if (ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (myAuth.IsReportAuth())
                strSp = "GetUserForAp";
            else
                strSp = "GetUserForUserGroupAndAp";
        }
        else
        {
            strSp = "GetUserForAp";
        }

        ds = mybs.DoReturnDataSet(strSp, myMsg.GetXmlStr, "");*/

        DataTable myTable = ds.Tables["User"];

        PccRow myRow;

        if (myTable.Rows.Count > 0)
        {
            int MasterCount = 1;
            string MasterStyle = "";

            //取出資料總筆數
            PageControl1.TotalSize = ds.Tables["GetUserCount"].Rows[0]["Counts"].ToString();
            PageControl1.BuildPager();
            string cVal = "";
            foreach (DataRow myMasterRow in myTable.Rows)
            {
                if (MasterCount % 2 == 0) MasterStyle = "eee000"; else MasterStyle = "fff000";
                myRow = new PccRow(MasterStyle, HorizontalAlign.Center, VerticalAlign.Middle, 0);

                //勾選值 ==
                string chk = "";
                string userid = "";

                //session("")不是Nothing 也不是 ""時則執行
                if (Session["Usertemporary"] != null && Session["Usertemporary"].ToString() != "")
                {
                    string[] chkarray = Session["Usertemporary"].ToString().Split(',');
                    userid = ((int)decimal.Parse(myMasterRow["user_id"].ToString())).ToString();
                    for (int i = 0; i < chkarray.Length; i++)
                    {
                        if (userid == chkarray[i].ToString())
                        {
                            chk = "checked";
                            cVal += userid + ",";

                        }
                    }

                }
                //編號
                myRow.AddTextCell(PageControl1.ListCount, 5);
                //管理者名稱
                myRow.AddTextCell(myMasterRow["user_desc"].ToString(), 10);
                //廠別
                myRow.AddTextCell(myMasterRow["fact_nm"].ToString(), 35);
                //事業群
                myRow.AddTextCell(myMasterRow["fgrp_nm"].ToString(), 15);
                //Email
                myRow.AddTextCell(myMasterRow["email"].ToString(), 30);
                //選取
                myRow.AddTextCell("<input type=checkbox name=user_id id=user_id" + MasterCount + " value=" + ((int)decimal.Parse(myMasterRow["user_id"].ToString())).ToString() + " " + chk + ">", 5);

                tab_user.Controls.Add(myRow.Row);
                MasterCount += 1;
            }
            Session["chkcount"] = MasterCount;
            ViewState["CurrentValue"] = "";
            if (cVal != "")
            {
                ViewState["CurrentValue"] = cVal.Substring(0, cVal.Length - 1);
            }
        }
        else
        {
            PageControl1.TotalSize = "0";
            Session["chkcount"] = 0;
            PageControl1.BuildPager();
            myRow = new PccRow("DGridTD", HorizontalAlign.Center, VerticalAlign.Middle, 5);
            myRow.AddTextCell("<b><font color='darkred'>" + myErrMsg.GetErrMsg("AdtWeb/msg0073") + "</font></b>", 100);
            tab_user.Controls.Add(myRow.Row);
        }
    }
    private void GenMasterTableData(ref PccErrMsg myLabel)
    {
        PccBsSystemForC.bs_UserManager mybs = new PccBsSystemForC.bs_UserManager(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);
        PccMsg myMsg = new PccMsg();
        myMsg.CreateFirstNode("StartRecord", PageControl1.StartRecord.ToString());
        myMsg.CreateFirstNode("PageSize", PageControl1.PageSize.ToString());
        myMsg.CreateFirstNode("ap_id", m_apid);
        myMsg.CreateFirstNode("user_desc", user_desc.Text);
        //string strXML = myMsg.GetXmlStr;

        GetMenuAuth myAuth = new GetMenuAuth();

        //判斷是否要利用事業群來分設權限 20041118
        myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());
        myMsg.CreateFirstNode("order", "");

        if (ConfigurationManager.AppSettings[m_apid + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_apid + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (!myAuth.IsReportAuth())
            {
                //表示他必須區分事業群
                myMsg.CreateFirstNode("GroupFilter", "Y");
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
            }
        }
        else
        {
            myMsg.CreateFirstNode("GroupFilter", "N");
        }

        if (ConfigurationManager.AppSettings[m_apid + "-FactFilter"] != null && ConfigurationManager.AppSettings[m_apid + "-FactFilter"].ToString() == "Y")
        {
            //表示他必須區分廠管理 20041118 注意要區別廠管理的先決條件是要區分事業群
            myMsg.CreateFirstNode("FactFilter", "Y");
        }

        DataSet myAskDs = mybs.DoReturnDataSet("GetAskByApID", myMsg.GetXmlStr, "");

        PccMsg myTempMsg = new PccMsg();

        DataTable myAskData = myAskDs.Tables["Ask"];

        if (myAskData != null && myAskData.Rows.Count > 0)
        {
            int MasterCount = 0;
            string MasterStyle = "";

            PccRow myRow;
            //取出資料總筆數
            PageControl1.TotalSize = myAskDs.Tables["TCounts"].Rows[0]["Counts"].ToString();
            PageControl1.BuildPager();

            //再利用此Table再取得其每一列的資料,再Gen出主要的Table Row.
            foreach (DataRow myMasterRow in myAskData.Rows)
            {
                if (MasterCount % 2 == 0) MasterStyle = "cssGridRowAlternating"; else MasterStyle = "cssGridRow";
                myRow = new PccRow();
                myRow.SetRowCss(MasterStyle);
                //編號
                myRow.AddTextCell(PageControl1.ListCount, 5);
                //姓名
                myRow.AddTextCell(myMasterRow["user_desc"].ToString(), 10);
                //電子郵件帳號
                myRow.AddTextCell(myMasterRow["email"].ToString(), 33);
                //廠別
                myRow.AddTextCell(myMasterRow["fact_nm"].ToString(), 22);
                //Email
                //myRow.AddTextCell(myMasterRow["email"].ToString(),25);
                //分機
                myRow.AddTextCell(myMasterRow["ext"].ToString(), 5);
                //群組
                myRow.SetDefaultCellData("", HorizontalAlign.Center, 0, 0);
                myRow.AddControl(GetGroup(myMasterRow["ask_id"].ToString()), 15);
                //核準
                myRow.AddTextCell(GetCheck(myMasterRow["ask_id"].ToString()), 5);
                //駁回
                myTempMsg.LoadXml();
                myTempMsg.CreateNode("LinkButton");
                myTempMsg.AddToNode("Image", Session["PageLayer"] + "images/del.gif");
                myTempMsg.AddToNode("ToolTip", "駁回此使用者之申請");
                myTempMsg.AddToNode("href", CHECKUSERMANAGE + "?ApID=" + Request.Params["ApID"].ToString());
                myTempMsg.AddToNode("QueryCondition", GetQueryCondition());
                myTempMsg.AddToNode("Method", GetMethod("MasterDelFunc", "ask_id", "user_desc", myMasterRow));
                myTempMsg.UpdateNode();
                myRow.AddMultiLinkCell(myTempMsg.GetXmlStr, 5);

                tblCheckUser.Rows.Add(myRow.Row);

                MasterCount += 1;
            } // end of foreach datarow
        } // end of if table count is 0
        else
        {
            PageControl1.TotalSize = "0";
            PageControl1.BuildPager();
        }
    }
    private DropDownList GetGroup(string ask_id)
    {
        PccMsg myMsg = new PccMsg();
        myMsg.CreateFirstNode("ap_id", m_apid);
        myMsg.CreateFirstNode("group_nm", "");

        GetMenuAuth myAuth = new GetMenuAuth();

        //判斷是否要利用事業群來分設權限 20041118
        myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());

        if (ConfigurationManager.AppSettings[m_apid + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_apid + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (!myAuth.IsReportAuth())
            {
                //表示他必須區分事業群
                myMsg.CreateFirstNode("GroupFilter", "Y");
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
            }
        }
        else
        {
            myMsg.CreateFirstNode("GroupFilter", "N");
        }

        bs_GroupManage mybsGroup = new bs_GroupManage(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);
        DataTable dt = mybsGroup.DoReturnDataSet("GetAllGroupByApID", myMsg.GetXmlStr, "").Tables["Group"];

        DataRow myRow = dt.NewRow();
        myRow["group_id"] = 0;
        myRow["group_nm"] = "--請選擇--";
        myRow["group_type"] = "0";
        dt.Rows.InsertAt(myRow, 0);

        DropDownList myddlGroup = new DropDownList();

        myddlGroup.ID = "ddlGroup";
        myddlGroup.Attributes.Add("onChange", "GroupChange(this)");
        //myddlGroup.Enabled = false;

        myddlGroup.DataSource = dt.DefaultView;
        myddlGroup.DataTextField = "group_nm";
        myddlGroup.DataValueField = "group_id";
        myddlGroup.DataBind();

        return myddlGroup;
    }
    private void GenMasterTableData(ref PccErrMsg myLabel)
    {
        PccMsg myMsg = new PccMsg();
        string strUserID = "";
        if (CheckQueryString("Method") != "")
        {
            myMsg.LoadXml(CheckQueryString("Method"));
            strUserID = myMsg.Query("Key");
            ViewState["UserID"] = strUserID;
        }
        else
        {
            lblMsg.Text = "Load Error!!!";
            return;
        }

        bs_GroupManage mybs = new PccBsSystemForC.bs_GroupManage(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);
        myMsg.LoadXml();
        myMsg.CreateFirstNode("ap_id", CheckQueryString("ApID"));
        myMsg.CreateFirstNode("user_id", strUserID);
        myMsg.CreateFirstNode("StartRecord", "0");
        myMsg.CreateFirstNode("PageSize", "3000");
        myMsg.CreateFirstNode("group_nm", "");

        //加入判斷是否要有事業群之判斷20041116
        myMsg.CreateFirstNode("page_check", "UserJoinGroup104");
        myMsg.CreateFirstNode("login_user_id", Session["UserID"].ToString());
        GetMenuAuth myAuth = new GetMenuAuth();
        myAuth.AspxFile = "UserManage104.aspx";

        //判斷是否要利用事業群來分設權限
        if (ConfigurationManager.AppSettings[m_apid + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_apid + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (!myAuth.IsReportAuth())
            {
                //表示他必須區分事業群
                myMsg.CreateFirstNode("GroupFilter", "Y");
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
            }
        }
        else
        {
            myMsg.CreateFirstNode("GroupFilter", "N");
        }

        if (ConfigurationManager.AppSettings[m_apid + "-FactFilter"] != null && ConfigurationManager.AppSettings[m_apid + "-FactFilter"].ToString() == "Y")
        {
            //表示他必須區分廠管理 20041118 注意要區別廠管理的先決條件是要區分事業群
            myMsg.CreateFirstNode("FactFilter", "Y");
        }

        DataSet myGroupDs = mybs.DoReturnDataSet("GetGroupAndUserCheckByApID", myMsg.GetXmlStr, "");
        DataTable myGroupData = myGroupDs.Tables["Group"];

        if (myGroupData.Rows.Count > 0)
        {
            ViewState["group_org"] = "";

            int MasterCount = 0;
            string MasterStyle = "";
            PccMsg myTempMsg;

            PccRow myRow;

            //明細資料類別之共同參數
            myMsg.LoadXml();
            myMsg.CreateFirstNode("TableClass", "ActDocTB");
            myMsg.CreateFirstNode("RowHeaderClass", "TDShowHeader");
            myMsg.CreateFirstNode("RowClass1", "ffd000");
            myMsg.CreateFirstNode("RowClass2", "fff000");
            string strClassXML = myMsg.GetXmlStr;

            //明細資料的欄位參數
            string[] Fields = { "編號", "選單名稱", "顯示權限", "新增權限", "更新權限", "刪除權限", "報表權限", "發信權限" };
            int[] FieldsPercent = { 5, 35, 10, 10, 10, 10, 10, 10 };
            string[] FieldsItem = { "--NO--", "menu_nm", "show_mk", "add_mk", "upd_mk", "del_mk", "rpt_mk", "send_mk" };
            string[] FieldsType = new string[8];
            FieldsType[0] = "--NO--";
            FieldsType[1] = "<PccMsg><Type>Text</Type></PccMsg>";
            FieldsType[2] = "<PccMsg><Type>CheckBoxReadOnly</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[3] = "<PccMsg><Type>CheckBoxReadOnly</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[4] = "<PccMsg><Type>CheckBoxReadOnly</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[5] = "<PccMsg><Type>CheckBoxReadOnly</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[6] = "<PccMsg><Type>CheckBoxReadOnly</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[7] = "<PccMsg><Type>CheckBoxReadOnly</Type><Value>menu_id</Value></PccMsg>";

            //要取得明細資料的Table變數
            DataTable tblMenuByGroupID;

            //再利用此Table再取得其每一列的資料,再Gen出主要的Table Row.
            foreach (DataRow myMasterRow in myGroupData.Rows)
            {
                if (MasterCount % 2 == 0) MasterStyle = "eee000"; else MasterStyle = "fff000";
                myRow = new PccRow("", HorizontalAlign.Center, 0, 0);
                myRow.SetRowCss(MasterStyle);
                //編號
                myRow.AddTextCell(ListCount, 10);
                //群組名稱
                myRow.AddTextCell(myMasterRow["group_nm"].ToString(), 60);
                //檢視
                myTempMsg = new PccMsg();
                myTempMsg.CreateFirstNode("ToolTip", myLabel.GetErrMsg("lbl0021", "ADTPurDoc/GroupManage"));
                myTempMsg.CreateFirstNode("LinkID", "HlinkView" + myMasterRow["group_id"].ToString());
                myTempMsg.CreateFirstNode("Image", Session["PageLayer"] + "images/detal.gif");
                myTempMsg.CreateFirstNode("ClickFun", "doSection(view_" + MasterCount.ToString() + ")");
                myRow.AddLinkCell(myTempMsg.GetXmlStr, 20);
                //選擇
                myTempMsg.LoadXml();
                myTempMsg.CreateFirstNode("Checked", myMasterRow["UserCheck"].ToString());
                myTempMsg.CreateFirstNode("Name", "JoinGroupID");
                myTempMsg.CreateFirstNode("Value", myMasterRow["group_id"].ToString());
                myRow.AddCheckBoxByValueCell(myTempMsg.GetXmlStr, 10);

                //設定原始的GroupID的資料
                if (myMasterRow["UserCheck"].ToString() == "Y")
                    ViewState["group_org"] += myMasterRow["group_id"].ToString() + ",";

                tblGroup.Rows.Add(myRow.Row);

                tblMenuByGroupID = mybs.DoReturnDataSet("GetMenuByGroupID", "<PccMsg><group_id>" + myMasterRow["group_id"].ToString() + "</group_id></PccMsg>", "").Tables["MenuGroup"];

                //設定選單明細資料類別之參數
                PccDetailTable myDTable = new PccDetailTable("DT" + myMasterRow["group_id"].ToString());
                myDTable.ClassXML = strClassXML;
                myDTable.Fields = Fields;
                myDTable.FieldsPercent = FieldsPercent;
                myDTable.FieldsItem = FieldsItem;
                myDTable.FieldsType = FieldsType;
                myDTable.NewDataTable = tblMenuByGroupID;

                myDTable.Create();

                myRow.Reset();
                myRow.SetRowCss("off");
                myRow.SetRowID("view_" + MasterCount);
                myRow.SetDefaultCellData("DGridTD", HorizontalAlign.Center, 0, 10);
                myRow.AddControl(myDTable.NewTable, 100);

                tblGroup.Rows.Add(myRow.Row);

                MasterCount += 1;

            } // end of foreach datarow

            if (ViewState["group_org"].ToString() != "")
                ViewState["group_org"] = ViewState["group_org"].ToString().Substring(0, ViewState["group_org"].ToString().Length - 1);
            else
                ViewState["group_org"] = "";

        } // end of if table count is 0
    }
    private void GenMasterTableData(ref PccErrMsg myLabel)
    {
        PccErrMsg myErrMsg = new PccErrMsg(Server.MapPath(Session["PageLayer"] + "XmlDoc"), Session["CodePage"].ToString(), "Error");

        bs_UserFactManage mybs = new bs_UserFactManage(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);
        PccMsg myMsg = new PccMsg();
        myMsg.CreateFirstNode("ap_id", m_ap_id);
        myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());
        //取得要設定的這個使用者 20041125
        myMsg.CreateFirstNode("set_user_id", m_user_id);

        myMsg.CreateFirstNode("fact_no", txtfactno.Text);
        myMsg.CreateFirstNode("fact_nm", txtfactnm.Text);
        if (ConfigurationManager.AppSettings[m_ap_id + "-UserMultiFact"] != null)
            myMsg.CreateFirstNode("UserMultiFact", ConfigurationManager.AppSettings[m_ap_id + "-UserMultiFact"]);
        else
            myMsg.CreateFirstNode("UserMultiFact", "Y");

        myMsg.CreateFirstNode("StartRecord", PageControl1.StartRecord.ToString());
        myMsg.CreateFirstNode("PageSize", PageControl1.PageSize.ToString());

        DataSet ds;

        //以後可以加入若是有Report和Send的權限,表示是群管理者,所以可以看到這個群的所有資料 20041125
        GetMenuAuth myAuth = new GetMenuAuth();
        myAuth.AspxFile = USERFACTMANAGE;
        myMsg.CreateFirstNode("order", "");
        //判斷是否要利用事業群來分設權限 20041124

        if (ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (!myAuth.IsReportAuth())
            {
                //表示他必須區分事業群
                myMsg.CreateFirstNode("GroupFilter", "Y");
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
            }
        }
        else
        {
            myMsg.CreateFirstNode("GroupFilter", "N");
        }

        if (ConfigurationManager.AppSettings[m_ap_id + "-FactFilter"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactFilter"].ToString() == "Y")
        {
            //表示他必須區分廠管理 20041125 注意要區別廠管理的先決條件是要區分事業群
            if (myAuth.IsSendAuth())  //表示若有Report及Send的權限則其為群管理者
                myMsg.CreateFirstNode("FactFilter", "N");
            else
                myMsg.CreateFirstNode("FactFilter", "Y");
        }
        else
        {
            myMsg.CreateFirstNode("FactFilter", "N");
        }

        /*GetMenuAuth myAuth = new GetMenuAuth();
        myAuth.AspxFile = USERFACTMANAGE;

        string strSp = "";
        bool isGroupFilter = true;
        //判斷是否要利用事業群來分設權限
        if (ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (myAuth.IsReportAuth())
                isGroupFilter = false;
            else
                isGroupFilter = true;
        }
        else
        {
            isGroupFilter = false;
        }

        //再判斷廠別和使用者是否只能一對一
        if (ConfigurationManager.AppSettings[m_ap_id + "-UserMultiFact"] != null && ConfigurationManager.AppSettings[m_ap_id + "-UserMultiFact"].ToString() != "Y")
        {
            if (isGroupFilter)
                strSp = "GetQFactForGroupUserAndApJustOnly";  //要分事業群又要一對一
            else
                strSp = "GetQFactForApJustOnly";	 //不要分事業群但要一對一
        }
        else
        {
            if (isGroupFilter)
                strSp = "GetQFactByUserGroupAndApID";  //要分事業群多對多
            else
                strSp = "GetQFactByApID";  //不要分事業群多對多
        }

        ds = mybs.DoReturnDataSet(strSp, myMsg.GetXmlStr, "");*/

        ds = mybs.DoReturnDataSet("GetQFactByApIDAndUserGroupIn", myMsg.GetXmlStr, "");
        DataTable myTable = ds.Tables["QFact"];

        PccRow myRow;

        if (myTable.Rows.Count > 0)
        {
            int MasterCount = 1;
            string MasterStyle = "";

            //取出資料總筆數
            PageControl1.TotalSize = ds.Tables["GetQFactCount"].Rows[0]["Counts"].ToString();
            PageControl1.BuildPager();
            string cVal = "";
            foreach (DataRow myMasterRow in myTable.Rows)
            {
                if (MasterCount % 2 == 0) MasterStyle = "eee000"; else MasterStyle = "fff000";
                myRow = new PccRow(MasterStyle, HorizontalAlign.Center, VerticalAlign.Middle, 0);

                //勾選值 ==
                string chk = "";
                string factid = "";

                //session("")不是Nothing 也不是 ""時則執行
                if (Session["Fact1Temporary"] != null && Session["Fact1Temporary"].ToString() != "")
                {
                    string[] chkarray = Session["Fact1Temporary"].ToString().Split(',');
                    factid = myMasterRow["fact_id"].ToString().Trim();
                    for (int i = 0; i < chkarray.Length; i++)
                    {
                        if (factid == chkarray[i].ToString())
                        {
                            chk = "checked";
                            cVal += factid + ",";

                        }
                    }

                }
                //編號
                myRow.AddTextCell(PageControl1.ListCount, 5);
                //廠別編號
                myRow.AddTextCell(myMasterRow["fact_no"].ToString(), 20);
                //廠別名稱
                myRow.AddTextCell(myMasterRow["fact_nm"].ToString(), 55);
                //事業群
                myRow.AddTextCell(myMasterRow["fgrp_nm"].ToString(), 15);
                //選取
                myRow.AddTextCell("<input type=checkbox name=fact_id id=fact_id" + MasterCount + " value=" + ((int)decimal.Parse(myMasterRow["fact_id"].ToString())).ToString() + " " + chk + ">", 5);

                tab_fact.Controls.Add(myRow.Row);
                MasterCount += 1;
            }
            Session["chkcount"] = MasterCount;
            ViewState["CurrentValue"] = "";
            if (cVal != "")
            {
                ViewState["CurrentValue"] = cVal.Substring(0, cVal.Length - 1);
            }
        }
        else
        {
            PageControl1.TotalSize = "0";
            Session["chkcount"] = 0;
            PageControl1.BuildPager();
            myRow = new PccRow("DGridTD", HorizontalAlign.Center, VerticalAlign.Middle, 5);
            myRow.AddTextCell("<b><font color='darkred'>" + myErrMsg.GetErrMsg("AdtWeb/msg0073") + "</font></b>", 100);
            tab_fact.Controls.Add(myRow.Row);
        }
    }
    private void GenMasterTableData(ref PccErrMsg myLabel)
    {
        PccErrMsg myErrMsg = new PccErrMsg(Server.MapPath(Session["PageLayer"] + "XmlDoc"), Session["CodePage"].ToString(), "Error");

        bs_UserFactManage mybs = new bs_UserFactManage(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);

        PccMsg myMsg = new PccMsg();
        PccMsg myTempMsg;

        myMsg.CreateFirstNode("ap_id", m_ap_id);
        myMsg.CreateFirstNode("fact_no", txtfactno.Text);
        myMsg.CreateFirstNode("fact_nm", txtfactnm.Text);
        myMsg.CreateFirstNode("StartRecord", PageControl1.StartRecord.ToString());
        myMsg.CreateFirstNode("PageSize", PageControl1.PageSize.ToString());
        myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());

        //以後可以加入若是有Report和Send的權限,表示是群管理者,所以可以看到這個群的所有資料 20041125
        string strGroupFilter = "Y", strFactFilter = "Y";

        GetMenuAuth myAuth = new GetMenuAuth();
        myMsg.CreateFirstNode("order", "");
        //判斷是否要利用事業群來分設權限 20041124

        if (ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (!myAuth.IsReportAuth())
            {
                //表示他必須區分事業群
                myMsg.CreateFirstNode("GroupFilter", "Y");
                strGroupFilter = "Y";
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
                strGroupFilter = "N";
            }
        }
        else
        {
            myMsg.CreateFirstNode("GroupFilter", "N");
            strGroupFilter = "N";
        }

        if (ConfigurationManager.AppSettings[m_ap_id + "-FactFilter"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactFilter"].ToString() == "Y")
        {
            //表示他必須區分廠管理 20041125 注意要區別廠管理的先決條件是要區分事業群
            if (myAuth.IsSendAuth())  //表示若有Report及Send的權限則其為群管理者
            {
                myMsg.CreateFirstNode("FactFilter", "N");
                strFactFilter = "N";
            }
            else
            {
                myMsg.CreateFirstNode("FactFilter", "Y");
                strFactFilter = "Y";
            }
        }
        else
        {
            myMsg.CreateFirstNode("FactFilter", "N");
            strFactFilter = "N";
        }

        DataSet ds = mybs.DoReturnDataSet("GetQFactByApIDAndUserGroup", myMsg.GetXmlStr, "");

        DataTable myTable = ds.Tables["QFact"];

        PccRow myRow;

        if (myTable.Rows.Count > 0)
        {
            int MasterCount = 0;
            string MasterStyle = "";

            //取出資料總筆數
            PageControl1.TotalSize = ds.Tables["GetQFactCount"].Rows[0]["Counts"].ToString();
            PageControl1.BuildPager();

            //明細資料類別之共同參數
            myMsg.LoadXml();
            myMsg.CreateFirstNode("TableClass", "cssGridTable");
            myMsg.CreateFirstNode("RowHeaderClass", "TDShowHeader");
            myMsg.CreateFirstNode("RowClass1", "ffd000");
            myMsg.CreateFirstNode("RowClass2", "cssGridRow");
            string strClassXML = myMsg.GetXmlStr;

            //XmlElement myNode;

            //明細資料的欄位參數
            string[] MFields = { "編號", "使用者", "廠別", "電子郵件帳號", "刪除" };
            int[] MFieldsPercent = { 5, 15, 40, 30, 10 };
            //string[] MFieldsItem = {"--NO--", "user_desc","fact_nm","email","uf_id$user_desc"};
            string[] MFieldsItem = { "--NO--", "user_desc", "fact_nm", "email", "uf_id" };
            string[] MFieldType = new string[5];
            MFieldType[0] = "--NO--";
            MFieldType[1] = "<PccMsg><Type>Text</Type></PccMsg>";
            MFieldType[2] = "<PccMsg><Type>Text</Type></PccMsg>";
            MFieldType[3] = "<PccMsg><Type>Text</Type></PccMsg>";

            //設定明細欄位中多個Link Image的參數
            myMsg.LoadXml();

            //因為要設定其相關權限已改由廠群組來設定,所以在此不能再有刪除的動作了 20050529
            /*if (myAuth.IsDeleteAuth())
            {
                myMsg.CreateFirstNode("Type","MultiLink");

                myMsg.CreateNode("LinkButton");
                myMsg.AddToNode("Image",Session["PageLayer"] + "images/del.gif");
                myMsg.AddToNode("ToolTip","刪除此使用者與此廠別之關係");
                myMsg.AddToNode("href",USERFACTMANAGE + "?ApID=" + m_ap_id);
                myMsg.AddToNode("QueryCondition",GetQueryCondition());
                myNode = myMsg.CreateParentNode("Method");
                myMsg.AddToNode("MethodName","MasterDelFunc",ref myNode);
                myMsg.AddToNode("Key","uf_id",ref myNode);
                myMsg.AddToNode("KeyOther","user_desc",ref myNode);
                myMsg.UpdateNode(myNode);
                myMsg.UpdateNode();

            }
            else
            {
                myMsg.CreateFirstNode("Type","Space");
            }*/

            myMsg.CreateFirstNode("Type", "Space");
            MFieldType[4] = myMsg.GetXmlStr;

            //再利用此Table再取得其每一列的資料,再Gen出主要的Table Row.
            foreach (DataRow myMasterRow in myTable.Rows)
            {
                if (MasterCount % 2 == 0) MasterStyle = "cssGridRowAlternating"; else MasterStyle = "cssGridRow";
                myTempMsg = new PccMsg();
                myRow = new PccRow(MasterStyle, HorizontalAlign.Center, VerticalAlign.Middle, 0);
                //編號
                myRow.AddTextCell(PageControl1.ListCount, 5);
                //廠別編號
                myRow.AddTextCell(myMasterRow["fact_no"].ToString(), 10);
                //廠別名稱
                //因為要設定其相關權限已改由廠群組來設定,所以在此不能再有新增的動作了 20050529
                /*if (myAuth.IsAddAuth())
                {
                    // ting
                    //原本的寫法 myRow.AddTextCell("<A href=" + PICKUSER + "?ApID=" + m_ap_id + "&FactID=" + myMasterRow["fact_id"] + "&FactName=" + myMasterRow["fact_no"].ToString().Trim() + myMasterRow["fact_nm"].ToString().Trim()  +"&QueryCondition1=" + GetQueryCondition1() +">" + myMasterRow["fact_nm"].ToString().Trim() + "</A>",50);//+ "&QueryCondition=" + txtfactno.Text
                    myTempMsg.CreateFirstNode("Href",PICKUSER + "?ApID=" + m_ap_id + "&FactID=" + myMasterRow["fact_id"] + "&FactName=" + myMasterRow["fact_no"].ToString().Trim() + myMasterRow["fact_nm"].ToString().Trim()  +"&QueryCondition=" + GetQueryCondition());
                    myTempMsg.CreateFirstNode("Text",myMasterRow["fact_nm"].ToString().Trim());
                    myRow.AddLinkHrefCell(myTempMsg.GetXmlStr,50);
                }
                else
                {
                    myRow.AddTextCell(myMasterRow["fact_nm"].ToString(),10);
                }*/
                myRow.AddTextCell(myMasterRow["fact_nm"].ToString(), 10);
                //事業群
                myRow.AddTextCell(myMasterRow["fgrp_nm"].ToString(), 15);
                //檢視
                myTempMsg = new PccMsg();
                myTempMsg.CreateFirstNode("ToolTip", myLabel.GetErrMsg("lbl0005", "AdtWeb/MaintainArea"));
                myTempMsg.CreateFirstNode("LinkID", "HLinkView" + myMasterRow["fact_id"].ToString());
                myTempMsg.CreateFirstNode("Image", Session["PageLayer"] + "images/detal.gif");
                myTempMsg.CreateFirstNode("ClickFun", "doSection(view_" + MasterCount.ToString() + ")");
                myRow.AddLinkCell(myTempMsg.GetXmlStr, 10);
                //取消
                myTempMsg.LoadXml();
                myTempMsg.CreateNode("LinkButton");
                myTempMsg.AddToNode("Image", Session["PageLayer"] + "images/del.gif");
                myTempMsg.AddToNode("ToolTip", "刪除此廠別在此系統中的使用");
                myTempMsg.AddToNode("href", USERFACTMANAGE + "?ApID=" + m_ap_id);
                myTempMsg.AddToNode("QueryCondition", GetQueryCondition());
                myTempMsg.AddToNode("Method", GetMethod("DelQFact", "fact_id", "fact_nm", myMasterRow));
                myTempMsg.UpdateNode();
                if (myAuth.IsDeleteAuth())
                    myRow.AddMultiLinkCell(myTempMsg.GetXmlStr, 10);
                else
                    myRow.AddTextCell("", 10);

                tblFact.Rows.Add(myRow.Row);

                //要取得明細資料的Table變數
                DataTable myDTable;

                string StrXml = "<PccMsg><ap_id>" + m_ap_id + "</ap_id><fact_id>" + myMasterRow["fact_id"] + "</fact_id>";
                StrXml += "<user_id>" + Session["UserID"].ToString() + "</user_id>";
                StrXml += "<GroupFilter>" + strGroupFilter + "</GroupFilter>";
                StrXml += "<FactFilter>" + strFactFilter + "</FactFilter>";
                StrXml += "<order></order>";
                StrXml += "</PccMsg>";
                myDTable = mybs.DoReturnDataSet("GetUserByFactIDAndUserGroup", StrXml, "").Tables["UserFact"];

                //設定選單明細資料類別之參數
                PccDetailTable myMDTable = new PccDetailTable(myMasterRow["fact_id"].ToString());
                myMDTable.Fields = MFields;
                myMDTable.FieldsItem = MFieldsItem;
                myMDTable.FieldsPercent = MFieldsPercent;
                myMDTable.FieldsType = MFieldType;
                myMDTable.ClassXML = strClassXML;
                myMDTable.NewDataTable = myDTable;
                myMDTable.Create();

                myRow.Reset();
                myRow.SetRowCss("off");
                myRow.SetRowID("view_" + MasterCount);
                myRow.SetDefaultCellData("DGridTD", HorizontalAlign.Center, 0, 6);
                myRow.AddControl(myMDTable.NewTable, 100);

                tblFact.Rows.Add(myRow.Row);

                MasterCount += 1;
            }
        }
        else
        {
            PageControl1.TotalSize = "0";
            PageControl1.BuildPager();
            myRow = new PccRow("DGridTD", HorizontalAlign.Center, VerticalAlign.Middle, 6);
            myRow.AddTextCell("<b><font color='darkred'>" + myErrMsg.GetErrMsg("AdtWeb/msg0072") + "</font></b>", 100);
            tblFact.Controls.Add(myRow.Row);
        }
    }
    private void GenMasterTableData(ref PccErrMsg myLabel)
    {
        bs_UserManager mybs = new bs_UserManager(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);
        PccMsg myMsg = new PccMsg();
        myMsg.CreateFirstNode("StartRecord", PageControl1.StartRecord.ToString());
        myMsg.CreateFirstNode("PageSize", PageControl1.PageSize.ToString());
        myMsg.CreateFirstNode("ap_id", Request.QueryString["ApID"]);
        myMsg.CreateFirstNode("fact_no", ddlFact.SelectedItem.Value);
        myMsg.CreateFirstNode("order", "user_desc");
        myMsg.CreateFirstNode("orderType", "desc");
        if (ddlUserType.SelectedItem.Value.ToString() == "All")
            myMsg.CreateFirstNode("mana_mk", "");
        else
            myMsg.CreateFirstNode("mana_mk", ddlUserType.SelectedItem.Value.ToString());

        if (ddlQuerySelect.SelectedItem.Value.ToString() == "1")
        {
            myMsg.CreateFirstNode("user_desc", txtUserName.Text);
            myMsg.CreateFirstNode("user_nm", string.Empty);
        }
        else
        {
            myMsg.CreateFirstNode("user_desc", string.Empty);
            myMsg.CreateFirstNode("user_nm", txtUserName.Text);
        }

        //加入判斷是否要有事業群之判斷20041116
        myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());
        GetMenuAuth myAuth = new GetMenuAuth();

        //判斷是否要利用事業群來分設權限
        if (ConfigurationManager.AppSettings[m_apid + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_apid + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (!myAuth.IsReportAuth())
            {
                //表示他必須區分事業群
                myMsg.CreateFirstNode("GroupFilter", "Y");
            }
            else
            {
                myMsg.CreateFirstNode("GroupFilter", "N");
            }
        }
        else
        {
            myMsg.CreateFirstNode("GroupFilter", "N");
        }

        if (ConfigurationManager.AppSettings[m_apid + "-FactFilter"] != null && ConfigurationManager.AppSettings[m_apid + "-FactFilter"].ToString() == "Y")
        {
            //表示他必須區分廠管理 20041118 注意要區別廠管理的先決條件是要區分事業群
            myMsg.CreateFirstNode("FactFilter", "Y");
        }

        string strXML = myMsg.GetXmlStr;
        DataSet myUserDs = mybs.DoReturnDataSet("GetUserAndMarkByApID_V1", strXML, "");

        DataTable myUserData = myUserDs.Tables["UserAndMark"];

        if (myUserData != null && myUserData.Rows.Count > 0)
        {
            int MasterCount = 0;
            string MasterStyle = "";
            PccMsg myTempMsg;

            PccRow myRow;
            //取出資料總筆數
            PageControl1.TotalSize = myUserDs.Tables["TCounts"].Rows[0]["Counts"].ToString();
            PageControl1.BuildPager();

            //明細資料類別之共同參數
            myMsg.LoadXml();
            myMsg.CreateFirstNode("TableClass", "ActDocTB");
            myMsg.CreateFirstNode("RowHeaderClass", "TDShowHeader");
            myMsg.CreateFirstNode("RowClass1", "ffd000");
            myMsg.CreateFirstNode("RowClass2", "fff000");
            string strClassXML = myMsg.GetXmlStr;

            //判斷是否為超級管理者,若是則不控管自己Menu的CheckBox權限 20041116
            string strcheckbox = "";
            if (Session["UserEMail"].ToString() != ConfigurationManager.AppSettings["superAdminEmail"].ToString())
                strcheckbox = "CheckBoxByValueJudgeUserRight";
            else
                strcheckbox = "CheckBoxByValue";

            //明細資料的欄位參數
            string strOrgFields8 = "btn-更新送出-Return_ClickM(this)";
            string[] Fields = { "編號", "選單名稱", "顯示權限", "新增權限", "更新權限", "刪除權限", "報表權限", "發信權限", strOrgFields8 };
            int[] FieldsPercent = { 5, 25, 10, 10, 10, 10, 10, 10, 10 };
            string[] FieldsItem = { "--NO--", "menu_nm", "show_mk", "add_mk", "upd_mk", "del_mk", "rpt_mk", "send_mk", "menud_id" };
            string[] FieldsType = new string[9];
            FieldsType[0] = "--NO--";
            FieldsType[1] = "<PccMsg><Type>Text</Type></PccMsg>";
            FieldsType[2] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[3] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[4] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[5] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[6] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[7] = "<PccMsg><Type>" + strcheckbox + "</Type><Value>menu_id</Value></PccMsg>";
            FieldsType[8] = "<PccMsg><Type>Space</Type></PccMsg>";

            //要取得明細資料的Table變數
            DataTable tblMenuByUserID;

            //再利用此Table再取得其每一列的資料,再Gen出主要的Table Row.
            foreach (DataRow myMasterRow in myUserData.Rows)
            {
                if (MasterCount % 2 == 0) MasterStyle = "cssGridRowAlternating"; else MasterStyle = "cssGridRow";
                myRow = new PccRow("", HorizontalAlign.Center, 0, 0);
                myRow.SetRowCss(MasterStyle);

                //註記
                if (myMasterRow["remark"].ToString() == "N")
                    myRow.AddTextCell("", 4);
                else
                    myRow.AddTextCell("*", 4);

                //姓名
                myRow.AddTextCell(myMasterRow["user_desc"].ToString(), 8);
                //部門
                //myRow.AddTextCell(myMasterRow["dept_desc"].ToString(),10);
                //廠別
                myRow.AddTextCell(myMasterRow["fact_nm"].ToString(), 10);
                //帳號
                //myRow.AddTextCell(myMasterRow["user_nm"].ToString(),10);
                //電子郵件
                myRow.AddTextCell(CheckDBNull(myMasterRow["email"]), 48);
                //分機
                myRow.AddTextCell(CheckDBNull(myMasterRow["ext"]), 5);
                //檢視
                myTempMsg = new PccMsg();
                myTempMsg.CreateFirstNode("ToolTip", myLabel.GetErrMsg("lbl0026", "ADTPurDoc/GroupManage"));
                myTempMsg.CreateFirstNode("LinkID", "HLinkView" + ((int)((decimal)myMasterRow["user_id"])).ToString());
                myTempMsg.CreateFirstNode("Image", Session["PageLayer"] + "images/detal.gif");
                myTempMsg.CreateFirstNode("ClickFun", "doSection(view_M" + MasterCount.ToString() + ")");
                myRow.AddLinkCell(myTempMsg.GetXmlStr, 5);
                //管理
                if (myMasterRow["mana_mk"].ToString() == "N")
                    myRow.AddTextCell("<input type=checkbox value=N disabled>", 5);
                else
                    myRow.AddTextCell("<input type=checkbox value=Y checked disabled>", 5);
                //群組
                myTempMsg.LoadXml();
                //加入群組的Item
                myTempMsg.CreateNode("LinkButton");
                myTempMsg.AddToNode("Image", Session["PageLayer"] + "images/add.gif");
                myTempMsg.AddToNode("ToolTip", myLabel.GetErrMsg("lbl0001", "ADTPurDoc/GroupManage"));
                myTempMsg.AddToNode("href", USERJOINGROUP + "?ApID=" + Request.Params["ApID"].ToString());
                myTempMsg.AddToNode("QueryCondition", GetQueryCondition());
                myTempMsg.AddToNode("Method", GetMethod("MasterGroupFunc", "user_id", "user_desc", myMasterRow));
                myTempMsg.UpdateNode();
                myRow.AddMultiLinkCell(myTempMsg.GetXmlStr, 5);
                //使用者管理
                myTempMsg.LoadXml();
                //先加入修改的Item
                if (myAuth.IsUpdateAuth()) //判斷是否有修改使用者的權限 20041118
                {
                    myTempMsg.CreateNode("LinkButton");
                    myTempMsg.AddToNode("Image", Session["PageLayer"] + "images/edit.gif");
                    myTempMsg.AddToNode("ToolTip", myLabel.GetErrMsg("lbl0028", "ADTPurDoc/GroupManage"));
                    //myTempMsg.AddToNode("href",USERADDNEW + "?ApID=" + Request.Params["ApID"].ToString());
                    //Modify by Lemor Beacause must redirect to PfsBaseWeb
                    myTempMsg.AddToNode("href", USERADDNEW + "?ApID=" + Request.Params["ApID"].ToString() + "&UserID=" + myMasterRow["user_id"].ToString() + "&AcctionType=UpdByAdmin&UserAccount=" + CheckDBNull(myMasterRow["email"]) + "&ul=" + ConfigurationManager.AppSettings["myServer"] + ConfigurationManager.AppSettings["vpath"] + "/SysManager/UserManage/UserManage104.aspx?ApID=" + Request.Params["ApID"].ToString());
                    myTempMsg.AddToNode("Method", GetMethod("MasterUpdateFunc", "user_id", "user_desc", myMasterRow));
                    myTempMsg.UpdateNode();
                }
                //再加入刪除的Item
                if (myAuth.IsDeleteAuth()) //判斷是否有修改使用者的權限 20041118
                {
                    myTempMsg.CreateNode("LinkButton");
                    myTempMsg.AddToNode("Image", Session["PageLayer"] + "images/del.gif");
                    myTempMsg.AddToNode("ToolTip", myLabel.GetErrMsg("lbl0029", "ADTPurDoc/GroupManage"));
                    myTempMsg.AddToNode("href", USERMANAGE + "?ApID=" + Request.Params["ApID"].ToString());
                    myTempMsg.AddToNode("QueryCondition", GetQueryCondition());
                    myTempMsg.AddToNode("Method", GetMethod("MasterDelFunc", "user_id", "user_desc", myMasterRow));
                    myTempMsg.UpdateNode();
                }
                if (myMasterRow["remark"].ToString() != "N")
                {
                    //如果是不受群組管控則再加入回歸群組的Item
                    myTempMsg.CreateNode("LinkButton");
                    myTempMsg.AddToNode("Image", Session["PageLayer"] + "images/mana.gif");
                    myTempMsg.AddToNode("ToolTip", myLabel.GetErrMsg("lbl0027", "ADTPurDoc/GroupManage"));
                    myTempMsg.AddToNode("href", USERMANAGE + "?ApID=" + Request.Params["ApID"].ToString());
                    myTempMsg.AddToNode("QueryCondition", GetQueryCondition());
                    myTempMsg.AddToNode("Method", GetMethod("MasterReturnFunc", "user_id", "user_desc", myMasterRow));
                    myTempMsg.UpdateNode();
                }
                myRow.AddMultiLinkCell(myTempMsg.GetXmlStr, 5);

                tblApUser.Rows.Add(myRow.Row);

                tblMenuByUserID = mybs.DoReturnDataSet("GetMenudByUserID", "<PccMsg><ap_id>" + Request.QueryString["ApID"] + "</ap_id><user_id>" + myMasterRow["user_id"].ToString() + "</user_id></PccMsg>", "").Tables["MenuByUser"];

                //設定選單明細資料類別之參數
                PccDetailTable myDTable = new PccDetailTable("MDT" + ((int)((decimal)myMasterRow["user_id"])).ToString());
                myDTable.ClassXML = strClassXML;
                myDTable.Fields = Fields;
                myDTable.FieldsPercent = FieldsPercent;
                myDTable.FieldsItem = FieldsItem;
                myDTable.FieldsType = FieldsType;
                myDTable.NewDataTable = tblMenuByUserID;

                myDTable.Create();

                if (m_menuIDArray == null)
                {
                    m_menuIDArray = myDTable.GetDataArray("menu_id");
                    ViewState["MenuID"] = m_menuIDArray;
                }

                myRow.Reset();
                myRow.SetRowCss("off");
                myRow.SetRowID("view_M" + MasterCount);
                myRow.SetDefaultCellData("DGridTD", HorizontalAlign.Center, 0, 10);
                myRow.AddControl(myDTable.NewTable, 100);

                tblApUser.Rows.Add(myRow.Row);

                MasterCount += 1;

            } // end of foreach datarow
        }// end of if table count is 0
        else
        {
            PageControl1.TotalSize = "0";
            PageControl1.BuildPager();
        }
    }
    private void GenMasterTableData(ref PccErrMsg myLabel)
    {
        PccErrMsg myErrMsg = new PccErrMsg(Server.MapPath(Session["PageLayer"] + "XmlDoc"), Session["CodePage"].ToString(), "Error");

        bs_UserFactManage mybs = new bs_UserFactManage(ConfigurationManager.AppSettings["ConnectionType"], ConfigurationManager.AppSettings["ConnectionServer"], ConfigurationManager.AppSettings["ConnectionDB"], ConfigurationManager.AppSettings["ConnectionUser"], ConfigurationManager.AppSettings["ConnectionPwd"], Session["UserIDAndName"].ToString(), ConfigurationManager.AppSettings["EventLogPath"]);
        PccMsg myMsg = new PccMsg();
        myMsg.CreateFirstNode("ap_id", m_ap_id);
        myMsg.CreateFirstNode("fact_no", txtfactno.Text);
        myMsg.CreateFirstNode("fact_nm", txtfactnm.Text);
        myMsg.CreateFirstNode("StartRecord", PageControl1.StartRecord.ToString());
        myMsg.CreateFirstNode("PageSize", PageControl1.PageSize.ToString());

        myMsg.CreateFirstNode("user_id", Session["UserID"].ToString());

        DataSet ds;

        GetMenuAuth myAuth = new GetMenuAuth();
        myAuth.AspxFile = USERFACTMANAGE;

        string strSp = "";
        //判斷是否要利用事業群來分設權限
        if (ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"] != null && ConfigurationManager.AppSettings[m_ap_id + "-FactByGroup"].ToString() == "Y")
        {
            //判斷此使用者是否可以分配不同的事業群權限
            if (myAuth.IsReportAuth())
                strSp = "GetPubFactByApID";
            else
                strSp = "GetPubFactByUserGroupAndApID";
        }
        else
        {
            strSp = "GetPubFactByApID";
        }

        ds = mybs.DoReturnDataSet(strSp, myMsg.GetXmlStr, "");
        DataTable myTable = ds.Tables["PubFact"];

        PccRow myRow;

        if (myTable.Rows.Count > 0)
        {
            int MasterCount = 1;
            string MasterStyle = "";

            //取出資料總筆數
            PageControl1.TotalSize = ds.Tables["GetPubFactCount"].Rows[0]["Counts"].ToString();
            PageControl1.BuildPager();
            string cVal = "";
            foreach (DataRow myMasterRow in myTable.Rows)
            {
                if (MasterCount % 2 == 0) MasterStyle = "eee000"; else MasterStyle = "fff000";
                myRow = new PccRow(MasterStyle, HorizontalAlign.Center, VerticalAlign.Middle, 0);

                //勾選值 ==
                string chk = "";
                string factno = "";

                //session("")不是Nothing 也不是 ""時則執行
                if (Session["Facttemporary"] != null && Session["Facttemporary"].ToString() != "")
                {
                    string[] chkarray = Session["Facttemporary"].ToString().Split(',');
                    factno = myMasterRow["fact_no"].ToString().Trim();
                    for (int i = 0; i < chkarray.Length; i++)
                    {
                        if (factno == chkarray[i].ToString())
                        {
                            chk = "checked";
                            cVal += factno + ",";

                        }
                    }

                }
                //編號
                myRow.AddTextCell(PageControl1.ListCount, 5);
                //廠別編號
                myRow.AddTextCell(myMasterRow["fact_no"].ToString(), 10);
                //廠別名稱
                myRow.AddTextCell(myMasterRow["fact_nm"].ToString(), 60);
                //事業群
                myRow.AddTextCell(myMasterRow["fgrp_nm"].ToString(), 20);
                //選取
                myRow.AddTextCell("<input type=checkbox name=fact_no id=fact_no" + MasterCount + " value=" + myMasterRow["fact_no"].ToString().Trim() + " " + chk + ">", 5);

                tab_fact.Controls.Add(myRow.Row);
                MasterCount += 1;
            }
            Session["chkcount"] = MasterCount;
            ViewState["CurrentValue"] = "";
            if (cVal != "")
            {
                ViewState["CurrentValue"] = cVal.Substring(0, cVal.Length - 1);
            }
        }
        else
        {
            PageControl1.TotalSize = "0";
            PageControl1.BuildPager();
            myRow = new PccRow("DGridTD", HorizontalAlign.Center, VerticalAlign.Middle, 5);
            myRow.AddTextCell("<b><font color='darkred'>" + myErrMsg.GetErrMsg("AdtWeb/msg0072") + "</font></b>", 100);
            tab_fact.Controls.Add(myRow.Row);
        }
    }