public string SelectContent(string excelfilename)
        {
            string debugText = "";
            string fileType  = System.IO.Path.GetExtension(excelfilename);

            if (!string.IsNullOrEmpty(fileType))
            {
                bool hasTitle = false;
                using (DataSet ds = new DataSet())
                {
                    string strCon = string.Format("Provider=Microsoft.{0}.OLEDB.{1}.0;" +
                                                  "Extended Properties=\"Excel {2}.0;HDR={3};IMEX=1;\";" +
                                                  "data source={4};", (fileType == ".xls" ? "JET" : "ACE"),
                                                  (fileType == ".xls" ? 4 : 12), (fileType == ".xls" ? 8 : 12), (hasTitle ? "Yes" : "NO"), excelfilename);

                    using (OleDbConnection myConn = new OleDbConnection(strCon))
                    {
                        myConn.Open();
                        string[] Tablename  = { "" };//CommonFunction.GetExcelTableList(myConn);
                        int      TableCount = Tablename.Count();
                        for (int i = 0; i < TableCount; i++)
                        {
                            ds.Clear();
                            string strCom = " SELECT * FROM [" + Tablename[i] + "]";
                            using (OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn))
                            {
                                myCommand.Fill(ds);
                                if (ds != null && ds.Tables.Count > 0)
                                {
                                    DataTable TableTemp   = ds.Tables[0];;
                                    DataRow[] Rows        = TableTemp.Select();
                                    int       ColumnCount = TableTemp.Columns.Count;
                                    string[]  Columnname  = new string[ColumnCount];
                                    string[]  ColumnCap   = new string[ColumnCount];

                                    for (int j = 0; j < ColumnCount; j++)
                                    {
                                        Columnname[j] = TableTemp.Columns[j].ColumnName;
                                        ColumnCap[j]  = Rows[0][Columnname[j]].ToString();
                                    }
                                    string[] CurrentTabelTag    = new string[KeyNumber];
                                    bool     b_NeedNewSelection = false;
                                    for (int k = 0; k < KeyIdxList.Count; k++)
                                    {
                                        b_NeedNewSelection = false;
                                        for (int m = 0; m < KeyNumber; m++)
                                        {
                                            CurrentTabelTag[m] = ColumnCap[KeyIdxList[k][m]];   //KeyIdx
                                            if (CurrentTabelTag[m] != CurrentKeyTag[m])
                                            {
                                                b_NeedNewSelection = true;
                                            }
                                        }
                                        if (!b_NeedNewSelection)
                                        {
                                            CurrentKeySet = k;
                                            break;
                                        }
                                    }
                                    if (b_NeedNewSelection)
                                    {
                                        int[] keyidx = new int[KeyNumber];
                                        KeyIdxList.Add(keyidx);
                                        CurrentKeySet = KeyIdxList.Count - 1;

                                        SelectContent TerminForm = new SelectContent(KeyNumber, TableColumnTag);
                                        TerminForm.Text = "Sheet: " + Tablename[i];
                                        TerminForm.SetContent(ColumnCap);

                                        TerminForm.ShowDialog(this);

/*                                        debugText += "Sheet " + Tablename[i] + ":";// Original Tag:" + KeyIdx[0].ToString() + " " + CurrentKeyTag[0] + " Target Tag:" + KeyIdx[1].ToString() + " " + CurrentKeyTag[1] + "\r\n";
 *                                      for (int m = 0; m < KeyNumber; m++)
 *                                      {
 *                                          CurrentKeyTag[m] = ColumnCap[KeyIdxList[CurrentKeySet][m]];
 *                                          debugText += "Column "+ KeyIdxList[CurrentKeySet][m].ToString() + ":" + CurrentKeyTag[m]+"\t";
 *                                      }
 *                                      debugText += "\r\n";
 */                                 }
//                                    else
//                                    {
//                                        debugText += "Sheet " + Tablename[i] + "have the same structure, ignore selection!\r\n";
//                                    }
                                    debugText += "Sheet " + Tablename[i] + ":";// Original Tag:" + KeyIdx[0].ToString() + " " + CurrentKeyTag[0] + " Target Tag:" + KeyIdx[1].ToString() + " " + CurrentKeyTag[1] + "\r\n";
                                    for (int m = 0; m < KeyNumber; m++)
                                    {
                                        CurrentKeyTag[m] = ColumnCap[KeyIdxList[CurrentKeySet][m]];
                                        debugText       += "Column " + KeyIdxList[CurrentKeySet][m].ToString() + ":" + CurrentKeyTag[m] + "\t";
                                    }
                                    debugText += "\r\n";
                                    for (int j = 1; j < Rows.Count(); j++)
                                    {
                                        bool     need_append = false;
                                        string[] tempVal     = new string[KeyNumber];
                                        for (int m = 0; m < KeyNumber; m++)
                                        {
                                            tempVal[m] = Rows[j][Columnname[KeyIdxList[CurrentKeySet][m]]].ToString();
                                            if (tempVal[m] != "")
                                            {
                                                need_append = true;
                                            }
                                        }
                                        if (need_append)
                                        {
                                            DataRow dw = SelectedTable.NewRow();
                                            for (int m = 0; m < KeyNumber; m++)
                                            {
                                                dw[TableColumnTag[m]] = tempVal[m];
                                            }
                                            dw["Source"] = Tablename[i];
                                            SelectedTable.Rows.Add(dw);
                                        }
                                    }
                                }
                            }
                        }
                        myConn.Close();
                    }
                }
            }
            KeyIdxList.Clear();
            return(debugText);
        }
Example #2
0
        /// <summary>
        /// 产生规则的信息
        /// </summary>
        /// <param name="index"></param>
        void SpwanMethod(int index)
        {
            int num_MultiChoiceBtn = 0;  //表示隐藏多选按钮数量
            //int num_OnlyOneChoice = 0;  //表示隐藏多选按钮数量
            MahjongCommonMethod mcm = MahjongCommonMethod.Instance;

            MahjongLobby_AH.Data.CreatRoomMessagePanelData cd = MahjongLobby_AH.GameData.Instance.CreatRoomMessagePanelData;

            //删除规则
            for (int i = 0; i < RuleParent.Length - 1; i++)
            {
                Toggle[] tog = new Toggle[RuleParent[i].GetComponentsInChildren <Toggle>().Length];
                tog = RuleParent[i].GetComponentsInChildren <Toggle>();
                if (tog.Length > 0)
                {
                    for (int k = 0; k < tog.Length; k++)
                    {
                        Destroy(tog[k].gameObject);
                    }
                }
            }
            #region 托管条显示不显示
            ///////////////////////////////////////////////////////////
            if (cd.roomMessage_[5] > 0)
            {
                TuoGuan.SetActive(true);
                GameObject gotuoguan = null;
                m_GameRule.enabled = true;

                m_GameRule.transform.GetChild(0).GetChild(0).transform.SetParent(m_GameRule.transform.GetChild(0));
                m_GameRule.transform.GetChild(0).GetChild(0).transform.localPosition = new Vector3(0, 0, 0);
                for (int i = 0; i < 4; i++)
                {
                    gotuoguan = Instantiate(Resources.Load <GameObject>("Lobby/PlayerMethodPanel/OnlyOneChoice"));
                    gotuoguan.GetComponent <Toggle>().group = RuleParent[3].GetComponent <ToggleGroup>();
                    gotuoguan.name = "OnlyOneChoice";

                    gotuoguan.transform.SetParent(RuleParent[3].transform);
                    gotuoguan.transform.localPosition = new Vector3(gotuoguan.transform.localPosition.x, gotuoguan.transform.localPosition.y, 0);
                    gotuoguan.transform.localScale    = Vector3.one;
                    gotuoguan.transform.Find("Label").GetComponent <Text>().text = MahjongLobby_AH.UIMainView.Instance.CreatRoomMessagePanel.lTuoGuan[i];
                    gotuoguan.GetComponent <Toggle>().interactable = false;
                    int LateTime = 0;
                    if (i != 0)
                    {
                        string str = MahjongLobby_AH.UIMainView.Instance.CreatRoomMessagePanel.lTuoGuan[i];
                        str      = str.Substring(0, MahjongLobby_AH.UIMainView.Instance.CreatRoomMessagePanel.lTuoGuan[i].Length - 1);
                        LateTime = (Convert.ToInt32(str) / 60);
                    }

                    if (cd.roomMessage_[5] == LateTime)
                    {
                        gotuoguan.GetComponent <Toggle>().isOn = true;
                    }
                    else
                    {
                        gotuoguan.GetComponent <Toggle>().isOn = false;
                    }
                }
            }
            else
            {
                TuoGuan.SetActive(false);
                m_GameRule.enabled = false;
            }
            if (MahjongCommonMethod.Instance.ReadColumnValue(cd.roomMessage_, 2, 39) == 2)
            {
                RuleParent[4].transform.GetChild(0).GetComponent <Toggle>().isOn = true;
                RuleParent[4].transform.GetChild(1).GetComponent <Toggle>().isOn = false;
            }
            else if (MahjongCommonMethod.Instance.ReadColumnValue(cd.roomMessage_, 2, 39) <= 1)
            {
                RuleParent[4].transform.GetChild(0).GetComponent <Toggle>().isOn = false;
                RuleParent[4].transform.GetChild(1).GetComponent <Toggle>().isOn = true;
            }
            if (RuleParent[0].GetComponentsInChildren <Transform>().Length < 1)
            {
                RuleParent[0].transform.parent.gameObject.SetActive(false);
            }
            else
            {
                RuleParent[0].transform.parent.gameObject.SetActive(true);
            }

            if (PlayGoldModth.activeSelf)
            {
                m_GameRule.enabled = true;
            }
            #endregion

            if (!mcm._dicMethodCardType.ContainsKey(index))
            {
                RuleParent_.SetActive(false);
                return;
            }
            RuleParent_.SetActive(true);
            //该玩法有多个规则可以实现
            for (int i = 0; i < mcm._dicMethodCardType[index].Count; i++)
            {
                GameObject go = null;

                //如果该玩法为多选
                if (mcm._dicmethodToCardType[index][i].Choice == 2)
                {
                    go      = Instantiate(Resources.Load <GameObject>("Lobby/PlayerMethodPanel/MultiChoiceBtn"));
                    go.name = "MultiChoiceBtn";
                    if (mcm._dicmethodToCardType[index][i].Hierarchy == 1)
                    {
                        num_MultiChoiceBtn++;
                    }
                    else
                    {
                        RuleParent[mcm._dicmethodToCardType[index][i].Hierarchy - 1].GetComponent <GridLayoutGroup>().padding.left = 65;
                        go.transform.Find("Label").transform.localPosition += new Vector3(20, 0, 0);
                    }
                }
                else
                {
                    go = Instantiate(Resources.Load <GameObject>("Lobby/PlayerMethodPanel/OnlyOneChoice"));
                    go.GetComponent <Toggle>().group = RuleParent[mcm._dicmethodToCardType[index][i].Hierarchy - 1].GetComponent <ToggleGroup>();
                    go.name = "OnlyOneChoice";
                }
                bool status = mcm.JudgeIsShow(mcm._dicmethodToCardType[index][i].RuleId);
                if (status)
                {
                    for (int k = 0; k < mcm._dicMethodCardType[index].Count; k++)
                    {
                        if (mcm._dicMethodCardType[index][i].ID == mcm._dicmethodToCardType[index][i].RuleId)
                        {
                            SelectContent.Add(mcm._dicMethodCardType[index][i].notes);
                            break;
                        }
                    }
                }
                go.transform.SetParent(RuleParent[mcm._dicmethodToCardType[index][i].Hierarchy - 1].transform);
                go.transform.localPosition = new Vector3(go.transform.localPosition.x, go.transform.localPosition.y, 0);
                go.transform.localScale    = Vector3.one;
                go.transform.Find("Label").GetComponent <Text>().text = mcm._dicMethodCardType[index][i].card_type;
                go.GetComponent <Toggle>().interactable = false;
                if (status)
                {
                    go.transform.Find("Label").GetComponent <Text>().color = new Color(1, 0, 0, 1);//红色 选中为红色
                    go.GetComponent <Toggle>().isOn = true;
                }
            }

            if (num_MultiChoiceBtn <= 4)
            {
                RuleParent[0].GetComponentInParent <LayoutElement>().minHeight = 70f;
            }
            else
            {
                RuleParent[0].GetComponentInParent <LayoutElement>().minHeight = 120f;
            }


            //if (num_OnlyOneChoice == 0)
            //{
            //    RuleParent[1].SetActive(false);
            //    RuleParent[2].SetActive(false);
            //}
            //else
            //{
            //    RuleParent[1].SetActive(true);
            //    RuleParent[2].SetActive(true);
            //}

            RuleParent_.GetComponent <LayoutElement>().minHeight = 170f + (int)((num_MultiChoiceBtn) / 4f - 0.5f) * 50f;
        }
 public void SelectContent(SelectContent value, Action<dynamic> yield)
 {
     WithConnection(
         c =>
         {
             value.ExecuteReader(c).WithEach(yield);
         }
     );
 }