Пример #1
0
/*
 *              public string[] getRandomQIDArray(string strPaperID , int intQuestionNum)
 *              {
 *                      ///亂數取得某一個問題組別中的問題
 *
 *                      //傳回的陣列
 *                      string[] arrayQID = new String[intQuestionNum];
 *                      int intArrayIndex = 0;//代表arrayQID的指標
 *
 *                      //取得Paper_Grouping的資料
 *                      string strSQL = "SELECT * FROM Paper_GroupingQuestion WHERE cPaperID = '"+strPaperID+"' ";
 *                      DataSet dsGroup = sqldb.getDataSet(strSQL);
 *                      if(dsGroup.Tables[0].Rows.Count > 0)
 *                      {
 *                              for(int i=0 ; i<dsGroup.Tables[0].Rows.Count ; i++)
 *                              {
 *                                      //針對每一個組別找出屬於此分組的題目
 *
 *                                      //QuestionGroupID
 *                                      string strGroupID = "";
 *                                      try
 *                                      {
 *                                              strGroupID = dsGroup.Tables[0].Rows[i]["cGroupID"].ToString();
 *                                      }
 *                                      catch
 *                                      {
 *                                      }
 *
 *                                      //Question number
 *                                      int intGroupQuestionNum = 0;
 *                                      try
 *                                      {
 *                                              intGroupQuestionNum = Convert.ToInt32(dsGroup.Tables[0].Rows[i]["sQuestionNum"]);
 *                                      }
 *                                      catch
 *                                      {
 *                                      }
 *
 *                                      //GroupDivision
 *                                      string strDivisionID = "";
 *                                      try
 *                                      {
 *                                              strDivisionID =	dsGroup.Tables[0].Rows[i]["cDivisionID"].ToString();
 *                                      }
 *                                      catch
 *                                      {
 *                                      }
 *
 *                                      //取得屬於該組別並且尚未被引用的問題集合
 *                                      strSQL = mySQL.getGroupQuestionLevel1NotSelect(strGroupID , strPaperID);
 *                                      DataSet dsQuestionList = sqldb.getDataSet(strSQL);
 *
 *                                      //亂數選取問題後存入Array中
 *                                      //檢查intQuestionNum是否大於QuestionList中的題目數量
 *                                      if(intGroupQuestionNum <= dsQuestionList.Tables[0].Rows.Count)
 *                                      {
 *                                              for(int j=0 ; j<intGroupQuestionNum ; j++)
 *                                              {
 *                                                      //亂數取得一個介於0~RowCount之間的數字
 *                                                      int intRandom = 0;
 *                                                      string strQID = "";
 *                                                      do
 *                                                      {
 *                                                              intRandom = myRandom.Next(0,dsQuestionList.Tables[0].Rows.Count);
 *                                                              strQID = dsQuestionList.Tables[0].Rows[intRandom]["cQID"].ToString();
 *                                                      }
 *                                                      while(checkArray(strQID , arrayQID));
 *
 *                                                      //將此QID存入Array中
 *                                                      arrayQID[intArrayIndex] = strQID;
 *                                                      intArrayIndex += 1;
 *                                              }
 *                                      }
 *                                      else
 *                                      {
 *                                              //把所有的題目都挑選進Array來
 *                                              for(int j=0 ; j<dsQuestionList.Tables[0].Rows.Count ; j++)
 *                                              {
 *                                                      arrayQID[j] = dsQuestionList.Tables[0].Rows[j]["cQID"].ToString();
 *                                              }
 *                                      }
 *                                      dsQuestionList.Dispose();
 *                              }
 *                      }
 *                      dsGroup.Dispose();
 *
 *                      return arrayQID;
 *              }
 */
        public string[] getRandomQIDArray(string strPaperID)
        {
            ///亂數取得某一個問題組別中的問題

            //取得此問卷所有需要亂數取得的問題總數
            int intQuestionSum = 0;

            intQuestionSum = myReceiver.getTotalQuestionNumFromRandomQuestion(strPaperID);

            //傳回的陣列
            string[] arrayQID      = new String[intQuestionSum];
            int      intArrayIndex = 0;       //代表arrayQID的指標

            //取得Paper_RandomQuestionNum的資料
            string  strSQL     = mySQL.getPaper_RandomQuestionNum(strPaperID);
            DataSet dsGroupNum = sqldb.getDataSet(strSQL);

            if (dsGroupNum.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < dsGroupNum.Tables[0].Rows.Count; i++)
                {
                    //get GroupID
                    string strGroupID = "";
                    try
                    {
                        strGroupID = dsGroupNum.Tables[0].Rows[i]["cQuestionGroupID"].ToString();
                    }
                    catch
                    {
                    }

                    //get Question number
                    int intQuestionNum = 0;
                    try
                    {
                        intQuestionNum = Convert.ToInt32(dsGroupNum.Tables[0].Rows[i]["sQuestionNum"]);
                    }
                    catch
                    {
                    }

                    //取得此問題組別的所有Level 1問題
                    if (strGroupID == "Specific")
                    {
                        strSQL = mySQL.getSpecificSelectionQuestion(strPaperID);
                    }
                    else
                    {
                        strSQL = mySQL.getGroupSelectionQuestion(strGroupID);
                    }

                    DataSet dsQuestionList = sqldb.getDataSet(strSQL);
                    if (dsQuestionList.Tables[0].Rows.Count > 0)
                    {
                        //檢查intQuestionNum是否大於QuestionList中的題目數量
                        if (intQuestionNum <= dsQuestionList.Tables[0].Rows.Count)
                        {
                            //亂數選取問題後存入Array中
                            for (int j = 0; j < intQuestionNum; j++)
                            {
                                //亂數取得一個介於0~RowCount之間的數字
                                int    intRandom = 0;
                                string strQID    = "";
                                do
                                {
                                    intRandom = myRandom.Next(0, dsQuestionList.Tables[0].Rows.Count);
                                    strQID    = dsQuestionList.Tables[0].Rows[intRandom]["cQID"].ToString();
                                }while(checkArray(strQID, arrayQID));
                                //將此QID存入Array中
                                arrayQID[intArrayIndex] = strQID;
                                intArrayIndex          += 1;
                            }
                        }
                        else
                        {
                            //把所有的題目都挑選進Array來
                            for (int j = 0; j < dsQuestionList.Tables[0].Rows.Count; j++)
                            {
                                arrayQID[j] = dsQuestionList.Tables[0].Rows[j]["cQID"].ToString();
                            }
                        }
                    }
                    else
                    {
                        //找不到此問題組別的資料
                    }
                    dsQuestionList.Dispose();
                }
            }
            else
            {
                //在Paper_RandomQuestion找不到資料
            }
            dsGroupNum.Dispose();

            return(arrayQID);
        }
Пример #2
0
        /// <summary>
        /// 傳回Paper_RandomNum的組別問題數目表格(不做動作)
        /// </summary>
        private Table setupQuestionNumTable(string strPaperID)
        {
            Table table = new Table();

            table.Attributes.Add("Class", "TableName");
            table.Style.Add("WIDTH", "100%");
            table.CellSpacing = 0;
            table.CellPadding = 2;
            table.BorderWidth = Unit.Pixel(1);
            table.BorderStyle = BorderStyle.Solid;
            table.BorderColor = System.Drawing.Color.Black;

            SQLString    mySQL      = new SQLString();
            DataReceiver myReceiver = new DataReceiver();

            //從Paper_RandomQuestionNum取出此問卷的資料

            SqlDB   sqldb         = new SqlDB(System.Configuration.ConfigurationSettings.AppSettings["connstr"]);
            string  strSQL        = mySQL.getPaper_RandomQuestionNum(strPaperID);
            DataSet dsQuestionNum = sqldb.getDataSet(strSQL);

            if (dsQuestionNum.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < dsQuestionNum.Tables[0].Rows.Count; i++)
                {
                    //設定Table的Style
                    string strStyle = "header1_tr_odd_row";
                    if ((i % 2) != 0)
                    {
                        strStyle = "header1_tr_odd_row";
                    }
                    else
                    {
                        strStyle = "header1_tr_even_row";
                    }

                    TableRow tr = new TableRow();
                    tr.CssClass = strStyle;
                    table.Rows.Add(tr);

                    //get GroupID
                    string strGroupID = "";
                    try
                    {
                        strGroupID = dsQuestionNum.Tables[0].Rows[i]["cQuestionGroupID"].ToString();
                    }
                    catch
                    {
                    }

                    //get Question number
                    int intQuestionNum = 0;
                    try
                    {
                        intQuestionNum = Convert.ToInt32(dsQuestionNum.Tables[0].Rows[i]["sQuestionNum"]);
                    }
                    catch
                    {
                    }

                    //get 此組別全部的問題數目
                    int intQuestionCount = 0;
                    if (strGroupID == "Specific")
                    {
                        strSQL = mySQL.getSpecificSelectionQuestion(strPaperID);
                    }
                    else
                    {
                        strSQL = mySQL.getGroupSelectionQuestion(strGroupID);
                    }

                    DataSet dsQuestionCount = sqldb.getDataSet(strSQL);
                    try
                    {
                        intQuestionCount = dsQuestionCount.Tables[0].Rows.Count;
                    }
                    catch
                    {
                    }
                    dsQuestionCount.Dispose();

                    //組別名稱
                    TableCell tcGroupName = new TableCell();
                    tr.Cells.Add(tcGroupName);

                    string strGroupName = "";
                    if (strGroupID == "Specific")
                    {
                        strGroupName = "Specific questions";
                    }
                    else
                    {
                        strGroupName = mySQL.getQuestionGroupName(strGroupID);
                    }
                    tcGroupName.Text = strGroupName;

                    //問題個數
                    TableCell tcQuestionNum = new TableCell();
                    tr.Cells.Add(tcQuestionNum);

                    TextBox txtQuestionNum = new TextBox();
                    tcQuestionNum.Controls.Add(txtQuestionNum);
                    txtQuestionNum.ID   = "txt" + strGroupID;
                    txtQuestionNum.Text = intQuestionNum.ToString();

                    //此組別的問題總數
                    TableCell tcQuestionCount = new TableCell();
                    tr.Cells.Add(tcQuestionCount);

                    tcQuestionCount.Text = intQuestionCount.ToString();
                    tcQuestionCount.Attributes.Add("Align", "Center");

                    //建立Title的TextArea
                    TableRow trQuestionTitle = new TableRow();
                    table.Rows.Add(trQuestionTitle);

                    TableCell tcTitle = new TableCell();
                    trQuestionTitle.Cells.Add(tcTitle);
                    tcTitle.Attributes.Add("align", "right");
                    tcTitle.ColumnSpan = 3;

                    //建立Question title的TextArea
                    HtmlTextArea txtTitle = new HtmlTextArea();
                    tcTitle.Controls.Add(txtTitle);
                    txtTitle.ID = "txtTitle" + strGroupID;
                    txtTitle.Style.Add("WIDTH", "100%");
                    txtTitle.Rows = 5;
                    txtTitle.Style.Add("DISPLAY", "none");

                    //取出此QuestionTitle的內容
                    txtTitle.InnerText = myReceiver.getQuestionTitle(strPaperID, strGroupID);

                    //建立Question title button
                    HtmlInputButton btnTitle = new HtmlInputButton("button");
                    tcTitle.Controls.Add(btnTitle);
                    btnTitle.ID    = "btnTitle" + strGroupID;
                    btnTitle.Value = "Add a question title";
                    btnTitle.Attributes.Add("onclick", "showQuestionTitle('" + strGroupID + "')");

                    //建立間隔
                    Label lblCell0 = new Label();
                    lblCell0.Style.Add("WIDTH", "20px");
                    tcTitle.Controls.Add(lblCell0);

                    //建立Empty row
                    if (i < dsQuestionNum.Tables[0].Rows.Count - 1)
                    {
                        TableRow trEmpty = new TableRow();
                        table.Rows.Add(trEmpty);
                        trEmpty.BackColor = System.Drawing.Color.White;

                        TableCell tcEmpty1 = new TableCell();
                        trEmpty.Cells.Add(tcEmpty1);
                        tcEmpty1.Style.Add("Height", "10px");
                        tcEmpty1.ColumnSpan = 3;
                    }
                }

                //加入Table的Title
                TableRow trTitle = new TableRow();
                table.Rows.AddAt(0, trTitle);
                trTitle.Attributes.Add("Class", "header1_table_first_row");

                TableCell tcGroupTitle = new TableCell();
                trTitle.Cells.Add(tcGroupTitle);
                tcGroupTitle.Text = "Question topic";

                TableCell tcQuestionTitle = new TableCell();
                trTitle.Cells.Add(tcQuestionTitle);
                tcQuestionTitle.Text = "Selected questions number";

                TableCell tcQuestionCountTitle = new TableCell();
                trTitle.Cells.Add(tcQuestionCountTitle);
                tcQuestionCountTitle.Text = "Maximum questions count";
            }
            else
            {
                //沒有資料
            }
            dsQuestionNum.Dispose();

            return(table);
        }