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 }
public bool Create() { bool bReturn = false; if (m_Table == null) return bReturn; GenDetailTableHeader(); int i, Start_SC = 1; string Style_SC; PccRow myRow; PccMsg myMsg; PccMsg myTempMsg; GetMenuAuth myAuth = new GetMenuAuth(); if (m_myDTableData != null) { foreach (DataRow myDRow in m_myDTableData.Rows) { if (Start_SC % 2 == 0) Style_SC = m_RowClass1; else Style_SC = m_RowClass2; myRow = new PccRow("", HorizontalAlign.Center, VerticalAlign.Middle, 0); myRow.SetRowCss(Style_SC); string strData = ""; for (i = 0; i < m_FieldsItem.Length; i++) { if (m_FieldsItem[i] != "--NO--") { myMsg = new PccMsg(m_FieldsType[i]); if (myMsg.Query("Type") != "Space") { if (Convert.IsDBNull(myDRow[m_FieldsItem[i]])) { strData = ""; } else { if (m_TransFunc.Length != 0) { try { strData = CallTrnasFunc(m_objThis, m_TransFunc[i], myDRow[m_FieldsItem[i]].ToString()); } catch (Exception ex) { strData = myDRow[m_FieldsItem[i]].ToString() + ex.Message; } } else { strData = myDRow[m_FieldsItem[i]].ToString(); } } } switch (myMsg.Query("Type")) { case "Text": //myRow.AddTextCell(myDRow[m_FieldsItem[i]].ToString(),m_FieldsPercent[i]); //myRow.AddTextCell(strData,m_FieldsPercent[i]); if (myMsg.Query("HAlign").Equals(string.Empty)) myRow.AddTextCell(strData, m_FieldsPercent[i]); else { switch (myMsg.Query("HAlign")) { case "Center": myRow.AddTextCell(strData, m_FieldsPercent[i], HorizontalAlign.Center); break; case "Right": if ((myMsg.Query("Round").Equals(string.Empty)) || (strData.Equals(string.Empty))) { myRow.AddTextCell(strData, m_FieldsPercent[i], HorizontalAlign.Right); } else { int round = int.Parse(myMsg.Query("Round")); decimal temp = decimal.Parse(strData); temp = Math.Round(temp, round); myRow.AddTextCell(temp.ToString(), m_FieldsPercent[i], HorizontalAlign.Right); } break; case "Left": myRow.AddTextCell(strData, m_FieldsPercent[i], HorizontalAlign.Left); break; } } break; case "ImageButton": break; case "HyperLink": break; case "LinkButton": break; case "CheckBox": myTempMsg = new PccMsg(); //myTempMsg.CreateFirstNode("Checked",myDRow[m_FieldsItem[i]].ToString()); myTempMsg.CreateFirstNode("Checked", strData); myTempMsg.CreateFirstNode("Name", m_TableName); myTempMsg.CreateFirstNode("Value", myDRow[myMsg.Query("Value")].ToString()); myRow.AddCheckBoxByValueCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); break; case "CheckBoxReadOnly": myTempMsg = new PccMsg(); //myTempMsg.CreateFirstNode("Checked",myDRow[m_FieldsItem[i]].ToString()); myTempMsg.CreateFirstNode("Checked", strData); myTempMsg.CreateFirstNode("Name", m_FieldsItem[i] + m_TableName); myTempMsg.CreateFirstNode("Value", myDRow[myMsg.Query("Value")].ToString()); myRow.AddCheckBoxReadOnlyCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); break; case "CheckBoxByValue": myTempMsg = new PccMsg(); //myTempMsg.CreateFirstNode("Checked",myDRow[m_FieldsItem[i]].ToString()); myTempMsg.CreateFirstNode("Checked", strData); myTempMsg.CreateFirstNode("Name", m_FieldsItem[i] + m_TableName); myTempMsg.CreateFirstNode("Value", myDRow[myMsg.Query("Value")].ToString()); myRow.AddCheckBoxByValueCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); break; case "CheckBoxByValueJudgeUserRight": myTempMsg = new PccMsg(); myTempMsg.CreateFirstNode("Checked", strData); myTempMsg.CreateFirstNode("Name", m_FieldsItem[i] + m_TableName); myTempMsg.CreateFirstNode("Value", myDRow[myMsg.Query("Value")].ToString()); myAuth.Url = myDRow["menu_link"].ToString(); if (myAuth.GetAuth(m_FieldsItem[i]) == "Y") myRow.AddCheckBoxByValueCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); else myRow.AddCheckBoxReadOnlyCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); break; case "MultiLink": myRow.AddMultiLinkCell(GenMultiLinkXML(myDRow, m_FieldsType[i]), m_FieldsPercent[i]); break; case "Space": myRow.AddTextCell("", m_FieldsPercent[i]); break; default: break; } } else { myRow.AddTextCell(Start_SC.ToString(), m_FieldsPercent[i]); } } m_Table.Controls.Add(myRow.Row); Start_SC += 1; } } else { foreach (DataRow myDRow in m_myRows) { if (Start_SC % 2 == 0) Style_SC = m_RowClass1; else Style_SC = m_RowClass2; myRow = new PccRow("", HorizontalAlign.Center, VerticalAlign.Middle, 0); myRow.SetRowCss(Style_SC); string strData = ""; for (i = 0; i < m_FieldsItem.Length; i++) { if (m_FieldsItem[i] != "--NO--") { myMsg = new PccMsg(m_FieldsType[i]); if (myMsg.Query("Type") != "Space") { if (Convert.IsDBNull(myDRow[m_FieldsItem[i]])) { strData = ""; } else { if (m_TransFunc.Length != 0) { try { strData = CallTrnasFunc(m_objThis, m_TransFunc[i], myDRow[m_FieldsItem[i]].ToString()); } catch (Exception ex) { strData = myDRow[m_FieldsItem[i]].ToString() + ex.Message; } } else { strData = myDRow[m_FieldsItem[i]].ToString(); } } } switch (myMsg.Query("Type")) { case "Text": //myRow.AddTextCell(myDRow[m_FieldsItem[i]].ToString(),m_FieldsPercent[i]); if (myMsg.Query("HAlign").Equals(string.Empty)) myRow.AddTextCell(strData, m_FieldsPercent[i]); else { switch (myMsg.Query("HAlign")) { case "Center": myRow.AddTextCell(strData, m_FieldsPercent[i], HorizontalAlign.Center); break; case "Right": if ((myMsg.Query("Round").Equals(string.Empty)) || (strData.Equals(string.Empty))) { myRow.AddTextCell(strData, m_FieldsPercent[i], HorizontalAlign.Right); } else { int round = int.Parse(myMsg.Query("Round")); decimal temp = decimal.Parse(strData); temp = Math.Round(temp, round); myRow.AddTextCell(temp.ToString(), m_FieldsPercent[i], HorizontalAlign.Right); } break; case "Left": myRow.AddTextCell(strData, m_FieldsPercent[i], HorizontalAlign.Left); break; } } break; case "ImageButton": break; case "HyperLink": break; case "LinkButton": break; case "CheckBox": myTempMsg = new PccMsg(); //myTempMsg.CreateFirstNode("Checked",myDRow[m_FieldsItem[i]].ToString()); myTempMsg.CreateFirstNode("Checked", strData); myTempMsg.CreateFirstNode("Name", m_TableName); myTempMsg.CreateFirstNode("Value", myDRow[myMsg.Query("Value")].ToString()); myRow.AddCheckBoxByValueCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); break; case "CheckBoxReadOnly": myTempMsg = new PccMsg(); //myTempMsg.CreateFirstNode("Checked",myDRow[m_FieldsItem[i]].ToString()); myTempMsg.CreateFirstNode("Checked", strData); myTempMsg.CreateFirstNode("Name", m_FieldsItem[i] + m_TableName); myTempMsg.CreateFirstNode("Value", myDRow[myMsg.Query("Value")].ToString()); myRow.AddCheckBoxReadOnlyCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); break; case "CheckBoxByValue": myTempMsg = new PccMsg(); //myTempMsg.CreateFirstNode("Checked",myDRow[m_FieldsItem[i]].ToString()); myTempMsg.CreateFirstNode("Checked", strData); myTempMsg.CreateFirstNode("Name", m_FieldsItem[i] + m_TableName); myTempMsg.CreateFirstNode("Value", myDRow[myMsg.Query("Value")].ToString()); myRow.AddCheckBoxByValueCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); break; case "CheckBoxByValueJudgeUserRight": myTempMsg = new PccMsg(); myTempMsg.CreateFirstNode("Checked", strData); myTempMsg.CreateFirstNode("Name", m_FieldsItem[i] + m_TableName); myTempMsg.CreateFirstNode("Value", myDRow[myMsg.Query("Value")].ToString()); myAuth.Url = myDRow["menu_link"].ToString(); if (myAuth.GetAuth(m_FieldsItem[i]) == "Y") myRow.AddCheckBoxByValueCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); else myRow.AddCheckBoxReadOnlyCell(myTempMsg.GetXmlStr, m_FieldsPercent[i]); break; case "MultiLink": myRow.AddMultiLinkCell(GenMultiLinkXML(myDRow, m_FieldsType[i]), m_FieldsPercent[i]); break; case "Space": myRow.AddTextCell("", m_FieldsPercent[i]); break; default: break; } } else { myRow.AddTextCell(Start_SC.ToString(), m_FieldsPercent[i]); } } m_Table.Controls.Add(myRow.Row); Start_SC += 1; } } bReturn = true; return bReturn; }
private void GenMasterTableData(ref PccErrMsg myLabel) { #region 取得Login的使用者是否有刪除的權限 GetMenuAuth myAuth = new GetMenuAuth(); myAuth.AspxFile = "FactGroupManage104.aspx"; bool del_auth = myAuth.IsDeleteAuth(); //判斷是否為系統超級管理者 string superAdmin = "N"; if (ConfigurationManager.AppSettings["superAdminEmail"].Equals(Session["UserEMail"].ToString())) { superAdmin = "Y"; } #endregion #region 取得廠群組的主資料ByUpID bs_FactGroupManage mybs = new bs_FactGroupManage(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", Request.Params["ApID"]); myMsg.CreateFirstNode("LoginUser_Id", Session["UserID"].ToString()); myMsg.CreateFirstNode("SuperAdmin", superAdmin); myMsg.CreateFirstNode("CheckUser_Id", Request.Params["UserID"]); string strXML = myMsg.GetXmlStr; DataSet myDS_FGRPDs = mybs.DoReturnDataSet("GetFgrpByLoginUserAndCheck", strXML, ""); DataTable myDS_FGRPData = myDS_FGRPDs.Tables["FgrpByLoginUserAndCheck"]; #endregion if (myDS_FGRPData != null && myDS_FGRPData.Rows.Count > 0) { #region 定義基本變數 ViewState["group_org"] = ""; int MasterCount = 0; string MasterStyle = string.Empty; PccMsg myTempMsg; PccMsg myMsg1; PccRow myRow; #endregion #region 明細資料類別之共同參數 myMsg.LoadXml(); myMsg.CreateFirstNode("TableClass", "ActDocTB"); myMsg.CreateFirstNode("RowHeaderClass", "TDShowHeader"); myMsg.CreateFirstNode("RowClass1", "ffd000"); myMsg.CreateFirstNode("RowClass2", "fff000"); string strClassXML = myMsg.GetXmlStr; //要取得明細資料的Table變數 DataTable tblFactGroup; #endregion #region 內建廠別明細資料的欄位參數 string[] FFields = { "編號", "廠別", "廠別名稱", "事業群", "公司編號" }; int[] FFieldsPercent = { 5, 15, 40, 20, 20 }; string[] FFieldsItem = { "--NO--", "fact_no", "fact_nm", "fgrp_nm", "comp_no" }; string[] FFieldType = new string[5]; FFieldType[0] = "--NO--"; FFieldType[1] = "<PccMsg><Type>Text</Type></PccMsg>"; FFieldType[2] = "<PccMsg><Type>Text</Type></PccMsg>"; FFieldType[3] = "<PccMsg><Type>Text</Type></PccMsg>"; FFieldType[4] = "<PccMsg><Type>Text</Type></PccMsg>"; #endregion //再利用此Table再取得其每一列的資料,再Gen出主要的Table Row. foreach (DataRow myMasterRow in myDS_FGRPData.Rows) { #region 主要廠群組的資料列設定 if (MasterCount % 2 == 0) MasterStyle = "eee000"; else MasterStyle = "fff000"; myRow = new PccRow("", HorizontalAlign.Center, 0, 0); myRow.SetRowCss(MasterStyle); //編號 myRow.AddTextCell(MasterCount.ToString(), 5); //廠群組名稱 myRow.AddTextCell(myMasterRow["Fgrp_Nm"].ToString(), 60); //廠別檢視 myTempMsg = new PccMsg(); myTempMsg.CreateFirstNode("ToolTip", "檢視所屬廠別"); myTempMsg.CreateFirstNode("LinkID", "HLinkView" + myMasterRow["Fgrp_Id"].ToString()); myTempMsg.CreateFirstNode("Image", Session["PageLayer"] + "images/detal.gif"); myTempMsg.CreateFirstNode("ClickFun", "doSection(view_F" + MasterCount.ToString() + ")"); myRow.AddLinkCell(myTempMsg.GetXmlStr, 20); //選取 myTempMsg.LoadXml(); myTempMsg.CreateFirstNode("Checked", myMasterRow["IsChecked"].ToString()); myTempMsg.CreateFirstNode("Name", "JoinFgrpID"); myTempMsg.CreateFirstNode("Value", myMasterRow["Fgrp_Id"].ToString()); myRow.AddCheckBoxByValueCell(myTempMsg.GetXmlStr, 15); //設定原始的FgrpID的資料 if (myMasterRow["IsChecked"].ToString() == "Y") ViewState["Fgrp_Org"] += myMasterRow["Fgrp_Id"].ToString() + ","; TblDs_Fgrp.Rows.Add(myRow.Row); #endregion #region 內建廠別明細資料的欄位參數,此處會取得資料,並設定給主表格 //設定要取得廠別資料的XML myMsg1 = new PccMsg(); myMsg1.CreateFirstNode("Fgrp_Id", myMasterRow["Fgrp_Id"].ToString()); tblFactGroup = mybs.DoReturnDataSet("get_DS_FACTGRPByFgrpID", myMsg1.GetXmlStr, string.Empty).Tables["DS_FACTGRP"]; PccDetailTable myFDTable = new PccDetailTable("FDT" + myMasterRow["Fgrp_Id"].ToString()); myFDTable.ClassXML = strClassXML; myFDTable.Fields = FFields; myFDTable.FieldsPercent = FFieldsPercent; myFDTable.FieldsItem = FFieldsItem; myFDTable.FieldsType = FFieldType; myFDTable.NewDataTable = tblFactGroup; myFDTable.Create(); myRow.Reset(); myRow.SetRowCss("off"); myRow.SetRowID("view_F" + MasterCount); myRow.SetDefaultCellData("DGridTD", HorizontalAlign.Center, 0, 10); myRow.AddControl(myFDTable.NewTable, 100); TblDs_Fgrp.Rows.Add(myRow.Row); #endregion MasterCount += 1; } // end of foreach datarow if (ViewState["Fgrp_Org"] != null && ViewState["Fgrp_Org"].ToString() != "") ViewState["Fgrp_Org"] = ViewState["Fgrp_Org"].ToString().Substring(0, ViewState["Fgrp_Org"].ToString().Length - 1); else ViewState["Fgrp_Org"] = ""; }// end of if table count is 0 else { //PageControl1.TotalSize = "0"; //PageControl1.BuildPager(); } }