コード例 #1
0
        /// <summary>
        /// 進級結果并輸出進級名單porm_list
        /// </summary>
        /// <param name="si_id"></param>
        /// <param name="s_item"></param>
        /// <param name="rcx"></param>
        /// <param name="p_si_id"></param>
        /// <param name="p_s_item"></param>
        /// <param name="p_rcx"></param>
        /// <param name="conn"></param>
        /// <param name="porm_list">進級名單porm_list</param>
        /// <param name="file_name"></param>
        /// <param name="pGR"></param>
        public RC_Prom_Html_Output(string si_id,string s_item,string rcx,string p_si_id,string p_s_item,string p_rcx,OdbcConnection conn,out List<string> porm_list,string file_name,iGR pGR):base(si_id,s_item,rcx,conn,file_name,pGR)
        {
            
            int p_cnt = 0;
            if (p_s_item.Contains("(初賽)")) p_cnt = group_p_cnt * 4;
            if (p_s_item.Contains("(複賽)")) p_cnt = group_p_cnt * 2;
            if (p_s_item.Contains("(決賽)")) p_cnt = group_p_cnt;
            MPPFORM.InputStrBox inputtxt = new MPPFORM.InputStrBox("進級人數:",p_cnt.ToString());
            if (inputtxt.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                
                int out_int=p_cnt;
                if (int.TryParse(inputtxt.textbox_str, out out_int))
                {
                    p_cnt = out_int;
                    System.Windows.Forms.MessageBox.Show("人數修改為:" + p_cnt);
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("數字格式錯誤:"+inputtxt.textbox_str+" 使用默認值:"+p_cnt);
                }
            }
            StreamWriter sw = new StreamWriter(html_filename, false, Encoding.Default);
            if (file_name.ToLower().Contains(".htm"))
            {
                sw.WriteLine(RC_Html_EXCEL_TAG.html_head);
            }
            else
            {
                sw.WriteLine(RC_Html_EXCEL_TAG.EXCEL_HEAD);
            }
            sw.WriteLine("<B><center>成績公告<br>{0}</center></b>", s_item);
            sw.WriteLine("<table border=1 width=100%><tr>{0}",TH_STR());
            string[] f_ar = fieldnames.Split(',');
            using (OdbcDataReader dr = new OdbcCommand(String.Format("select rc_id,{0}  from sport_rc where si_id='{1}' order by rc;", fieldnames, si_id), conn).ExecuteReader())
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("rc_key"); dt.Columns.Add("rc_id");
                foreach (string s in f_ar) dt.Columns.Add(s);
                while (dr.Read())
                {
                     DataRow d_row=dt.NewRow();
                    string key = null;
                    if (dr["rc"].ToString().Trim() == "" ) { key = "NULL"; }
                    else if (dr["note"].ToString().Contains("GR") || dr["note"].ToString() == "")
                    {
                        key = String.Format("{0}-{1}", dr["rc"], dr["rc_id"]);
                    }
                    else
                    {
                        key = String.Format("{0}-{1}-{2}", dr["note"], dr["rc"], dr["rc_id"]);
                    }
                    d_row["rc_key"] = key;
                    for (int i = 0; i < dr.FieldCount; i++)
                        d_row[dr.GetName(i)] = dr[i];
                    d_row["grk"] = d_row["rank"];
                    dt.Rows.Add(d_row);
                }
                DataView dv    =dt.DefaultView;
                dv.Sort = "rc_key";
                int drv_cnt = 0;
                porm_list = new List<string>();

                string[] porm_road_s=null;
                if(group_p_cnt==7)
                {
                    porm_road_s= new String[]{ ",4;,5;,3;,6;,2;,7;,8", "二,4;一,4;一,5;二,5;二,3;一,3;一,6;二,6;二,2;一,2;二,7;一,7;一,8;二,8" };
                }else if(group_p_cnt==6)
                {
                    porm_road_s = new String[] { ",4;,5;,3;,6;,2;,7;,8", "二,4;一,4;一,5;二,5;二,3;一,3;一,6;二,6;二,2;一,2;二,7;一,7;一,8;二,8" };
                }
                else
                {
                    porm_road_s =new String[]{",4;,5;,3;,6;,2;,1;,7;,8","二,4;一,4;一,5;二,5;二,3;一,3;一,6;二,6;二,2;一,2;一,1;二,1;二,7;一,7;一,8;二,8",
                        "三,4;二,4;一,4;一,5;二,5;三,5;三,3;二,3;一,3;一,6;二,6;三,6;三,2;二,2;一,2;一,1;二,1;三,1;一,7;二,7;三,7;一,8;二,8;三,8",
            "四,4;三,4;二,4;一,4;一,5;二,5;三,5;四,5;四,3;三,3;二,3;一,3;一,6;二,6;三,6;四,6;四,2;三,2;二,2;一,2;一,1;二,1;三,1;四,1;四,7;三,7;二,7;一,7;一,8;二,8;三,8;四,8"

                        };
                }
                int temp_ = p_cnt / group_p_cnt - 1;
                if (temp_ < 0) temp_ = 0;
                string[] porm_road=porm_road_s[temp_].Split(';');
                foreach (DataRowView drv in dv)
                {
                    drv_cnt++;
                    sw.WriteLine("<tr>");
                    if (drv["rank"].ToString().Trim() != "") { sw.Write("<td>{0}&nbsp;", drv_cnt); } else { sw.Write("<td>&nbsp;"); }
                    for (int j = 5; j < dv.Table.Columns.Count; j++)
                    {
                        sw.Write("<td colspan={0}>{1}&nbsp;", colspan_ar[j-4],drv[j]);
                    }
                    if (drv_cnt <= p_cnt)
                    {
                        sw.Write("Q");
                        porm_list.Add(string.Format("{0},{1},{2}", p_si_id, porm_road[(drv_cnt - 1)],drv["rc_id"]));
                    }
                }
            }
            sw.WriteLine("</table><br><br>");
            sw.WriteLine(GR_STR(si_id,conn,rcx));
            sw.WriteLine(RC_Html_EXCEL_TAG.EXCEL_END);
            sw.Flush();
            sw.Close();
            sw.Dispose();
        }
コード例 #2
0
ファイル: g_rc.cs プロジェクト: eddylin2015/sportday
        static void Main(string[] args)
        {
			FileInfo finfo0 = new FileInfo(initxt);
            if (finfo0.Exists)
            {
                using (StreamReader file = new StreamReader(initxt, Encoding.Default))
                {
                    Conn_Str = file.ReadToEnd().Replace("\r","").Replace("\n","");
                }
            }
            else
            {
			Console.WriteLine("error not db_config.txt");
			return;
			}
            String[] f1 = {"男A","男B","男C","男D","女A","女B","女C","女D"};
            String[] f2 =  {"男子A","男子B","男子C","男子D","女子A","女子B","女子C","女子D"};
            Object[] o = new Object[8];
            o[0] = new List<String>();
            o[1] = new List<String>();
            o[2] = new List<String>();
            o[3] = new List<String>();
            o[4] = new List<String>();
            o[5] = new List<String>();
            o[6] = new List<String>();
            o[7] = new List<String>();
            

            OdbcConnection conn = new OdbcConnection(Conn_Str);
            conn.Open();
            {
                String sql = "select s_item,rank, name  ,classno  ,rc,note from sport_rc a inner join sport_item b on a.si_id=b.si_id where lock_item=1 and trim(rank) in ('1','2','3') order by s_item,rank";
                OdbcDataReader dr = new OdbcCommand(sql, conn).ExecuteReader();
                Console.WriteLine("<Table>");
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    Console.Write(dr.GetName(i));
                    Console.Write("\t");
                }
                Console.WriteLine();
                while (dr.Read())
                {
                    if (dr[0].ToString().Contains("初") || dr[0].ToString().Contains("複"))
                    {
                    }
                    else
                    {
                        for(int j=0;j<f1.Length;j++){
                        if (dr[0].ToString().Contains(f1[j]) || dr[0].ToString().Contains(f2[j]))
                        {
                            
                            String line0 = "";
                            for (int i = 0; i < dr.FieldCount; i++)
                            {
                            
                                line0+=dr[i].ToString()+"\t";
                            }
                            List<String> li = (List<string>)o[j];
                            li.Add(line0);
                        }
                        }
                    }
                }

            }
            {
                String sql = "select f_item,rank,classno,name,rc,note from field_rc a inner join field_item b on a.fi_id=b.fi_id where lock_item=1 and trim(rank) in ('1','2','3') and rc >'' order by f_item,rank";
                OdbcDataReader dr = new OdbcCommand(sql, conn).ExecuteReader();
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    Console.Write(dr.GetName(i));
                    Console.Write("\t");
                }
		Console.WriteLine();
                while (dr.Read())
                {

                    if (dr[0].ToString().Contains("初") || dr[0].ToString().Contains("複"))
                    {
                    }
                    else
                   {
                        for(int j=0;j<f1.Length;j++){
                        if (dr[0].ToString().Contains(f1[j]) || dr[0].ToString().Contains(f2[j]))
                        {
                            String line0 = "";
                            for (int i = 0; i < dr.FieldCount; i++)
                            {

                                line0 += dr[i].ToString() + "\t";
                            }
                            List<String> li = (List<string>)o[j];
                            li.Add(line0);
                        }
                        }
                    }
                }

                conn.Close();

                for (int i = 0; i < f1.Length; i++)
                {
                    List<string> li =(List<String>) o[i];
                    foreach (String s in li)
                    {
                        Console.WriteLine(s);
                    }
                }
               // Console.Read();
            }

        }
コード例 #3
0
 public RC_Html_Print(string si_id, string s_item, string rcx, OdbcConnection conn,string file_name,iGR pGR)
     : base(si_id, s_item, rcx,conn,file_name,pGR)
 {
  //   html_filename = Basic_HTB_Info.baseFilePath + "\\temp\\" + String.Format("{0}_{1}.htm", si_id, s_item);
     StreamWriter sw = new StreamWriter(html_filename,false,Encoding.GetEncoding(950));
     if (file_name.ToLower().Contains(".htm"))
     {
         sw.WriteLine(RC_Html_EXCEL_TAG.html_head);
     }
     else
     {
         sw.WriteLine(RC_Html_EXCEL_TAG.EXCEL_HEAD);
     }
     sw.WriteLine("<B><center>成績公告<br>{0}</center></b>",s_item);
     sw.WriteLine("<table border=1 width=100%><tr>{0}",TH_STR());
     
     string gr_out_str=GR_STR(si_id, conn,rcx);
     int group_cnt = 0;
     using (OdbcDataReader dr = new OdbcCommand(String.Format("select rc_id,{0}  from sport_rc where si_id='{1}' order by group_id,road;", fieldnames, si_id), conn).ExecuteReader())
     {
         string group_str = null;
         bool group_flag=false;
         
         for(int i=0;i<dr.FieldCount;i++)   if(dr.GetName(i)=="group_id"){group_flag=true;break;}
         while (dr.Read())
         {
             if (group_flag)
             {
                 if (group_str == null) group_str = dr["group_id"].ToString(); if (group_str != dr["group_id"].ToString())
                 {
                     sw.WriteLine("</table><br>");
                     group_str = dr["group_id"].ToString();
                     group_cnt++;
                     if (group_cnt % 2 == 0)
                     {
                         sw.WriteLine(gr_out_str);
                         sw.WriteLine("<br class=break>");
                         sw.WriteLine("<B><center>成績公告<br>{0}</center></b>", s_item);
                     }
                     sw.WriteLine("<table border=1 width=100%><tr>{0}",TH_STR());
                 }
             }
             sw.Write( "<tr>");
             for(int i=3; i<dr.FieldCount;i++)
                 sw.Write("<td colspan={0}>{1}&nbsp;",colspan_ar[i-3], dr[i]);
         }
     }
     sw.WriteLine("</table><br><br>");
     sw.WriteLine(gr_out_str);
     sw.WriteLine(RC_Html_EXCEL_TAG.EXCEL_END);
     sw.Flush();
     sw.Close();
     sw.Dispose();
 }
コード例 #4
0
        public override void Set_TablePanel_TextBox_ForData(TableLayoutPanel tablePanel, string feildnames, string si_id, OdbcConnection conn)
        {
            TB_ARR=new TextBox[tablePanel.ColumnCount,tablePanel.RowCount];
            db_conn = conn;
            String c_fieldnames = "名\n次,次\n序,比賽\n號,姓名,班級,";
            c_fieldnames += "h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16,";
            c_fieldnames += "成績,備註";
            String[] s_ar = c_fieldnames.Split(',');

            string hxsql = string.Format("select h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16 from field_item where fi_id={0} ;",  si_id);
            using (OdbcDataReader hxdr= new OdbcCommand(hxsql, conn).ExecuteReader())
            {
                hxdr.Read();
                for (int c_i = 0; c_i < tablePanel.ColumnCount; c_i++)
                {
                    if (s_ar[c_i][0] == 'h')
                    {
                        System.Windows.Forms.TextBox lb = new System.Windows.Forms.TextBox();
                        lb.Name=String.Format("fieldname_{0}_{1}", s_ar[c_i], si_id);
                        lb.Text = hxdr[s_ar[c_i]].ToString();
                        lb.TextAlign = HorizontalAlignment.Right;
                        lb.TextChanged += hx_changed;
                        tablePanel.Controls.Add(lb, c_i, 0);
                        TB_ARR[c_i, 0] = lb;
                    }
                    else
                    {
                        System.Windows.Forms.Label lb = new System.Windows.Forms.Label();
                        lb.Text = s_ar[c_i];
                        tablePanel.Controls.Add(lb, c_i, 0);
                    }
                }
            }

            string sql = string.Format("select frc_id,{0} from field_rc where fi_id={1} order by BIT_LENGTH( s_number),s_number;", feildnames, si_id);
            int r_i = 1;
            Font fnt = new Font("標楷體", 10);
            using (OdbcDataReader dr = new OdbcCommand(sql, conn).ExecuteReader())
            {
                while (dr.Read())
                {
                    string rc_id = dr[0].ToString();
                    int min_int = tablePanel.ColumnCount;
                    if (dr.FieldCount - 3 < min_int) min_int = dr.FieldCount - 3;
                    for (int i = 0; i < min_int; i++)
                    {
                        if (dr.GetName(i + 3) == "rank" || dr.GetName(i + 3) == "rc" || dr.GetName(i + 3) == "grk" || dr.GetName(i + 3) == "note")
                        {
                            TextBox tb = new TextBox();
                            tb.TextAlign = HorizontalAlignment.Right;
                            tb.Font = fnt;
                            tb.Name = String.Format("{0}_{1}", dr.GetName(i + 3), rc_id);
                            tb.Text = dr[i + 3].ToString();
                            tablePanel.Controls.Add(tb, i, r_i);
                            TB_ARR[i, r_i] = tb;
                        }
                        else if (dr.GetName(i + 3)[0] == 'h')
                        {
                            TextBox tb = new TextBox();
                            tb.TextAlign = HorizontalAlignment.Left;
                            tb.Font = fnt;
                            tb.MaxLength = 3;
                            tb.Name = String.Format("{0}_{1}", dr.GetName(i + 3), rc_id);
                            tb.Text = dr[i + 3].ToString();
                            tablePanel.Controls.Add(tb, i, r_i);
                            TB_ARR[i, r_i] = tb;
                        }
                        else
                        {
                            TextBox lb = new TextBox(); lb.ReadOnly = true; lb.Text = dr[i + 3].ToString(); tablePanel.Controls.Add(lb, i, r_i);
                        }
                    }
                    r_i++;
                }
            }

        }
コード例 #5
0
        public virtual void Set_TablePanel_TextBox_ForData(TableLayoutPanel tablePanel, string feildnames, string si_id, OdbcConnection conn) 
        {
            TB_ARR=new TextBox[tablePanel.ColumnCount,tablePanel.RowCount];
            string sql = string.Format("select frc_id,{0} from field_rc where fi_id={1} order by BIT_LENGTH( s_number),s_number;", feildnames, si_id);
            int r_i = 1;
            Font fnt = new Font("標楷體", 10);
            using (OdbcDataReader dr = new OdbcCommand(sql, conn).ExecuteReader())
            {
                while (dr.Read())
                {
                    string rc_id = dr[0].ToString();
                    int min_int = tablePanel.ColumnCount;

                    if (dr.FieldCount - 3 < min_int) min_int = dr.FieldCount - 3;
                    for (int i = 0; i < min_int; i++)
                    {
                        if (dr.GetName(i + 3) == "rank" || dr.GetName(i + 3) == "rc" || dr.GetName(i + 3) == "grk" || dr.GetName(i + 3) == "note")
                        {
                            TextBox tb = new TextBox();
                            tb.TextAlign = HorizontalAlignment.Right;
                            tb.Font = fnt;
                            tb.Name = String.Format("{0}_{1}", dr.GetName(i + 3), rc_id);
                            tb.Text = dr[i + 3].ToString();
                            tablePanel.Controls.Add(tb, i, r_i);
                            TB_ARR[i, r_i] = tb;
                        }
                        else if (dr.GetName(i + 3)[0] == 'h' || dr.GetName(i + 3)[0] == 'b')
                        {
                            TextBox tb = new TextBox();
                            tb.TextAlign = HorizontalAlignment.Right;
                            tb.Font = fnt;
                            tb.Name = String.Format("{0}_{1}", dr.GetName(i + 3), rc_id);
                            tb.Text = dr[i + 3].ToString();
                            tablePanel.Controls.Add(tb, i, r_i);
                            TB_ARR[i, r_i] = tb;
                        }else
                        {
                            TextBox lb = new TextBox(); lb.ReadOnly = true; lb.Text = dr[i + 3].ToString(); tablePanel.Controls.Add(lb, i, r_i);
                        }
                    }
                    r_i++;
                }
            }
        }
コード例 #6
0
        public void Set_TablePanel_TextBox_ForData(TableLayoutPanel tablePanel, string feildnames, string si_id, OdbcConnection conn)
        {
            string sql = string.Format("select rc_id,{0} from sport_rc where si_id={1} order by length(group_id), group_id,road;", feildnames, si_id);
            int r_i = 1;
            Font fnt = new Font("標楷體", 10);
            using (OdbcDataReader dr = new OdbcCommand(sql, conn).ExecuteReader())
            {
                while (dr.Read())
                {
                    string rc_id = dr[0].ToString();
                    int min_int = tablePanel.ColumnCount;

                    if (dr.FieldCount - 3 < min_int) min_int = dr.FieldCount - 3;
                    for (int i = 0; i < min_int; i++)
                    {

                        if (dr.GetName(i + 3) == "rank" || dr.GetName(i + 3) == "rc" || dr.GetName(i + 3) == "grk" || dr.GetName(i + 3) == "note")
                        {
                            TextBox tb = new TextBox();
                            tb.TextAlign = HorizontalAlignment.Right;
                            tb.Font = fnt;
                            if (Lib.sysfont != null) tb.Font = Lib.sysfont ;
                            tb.Name = String.Format("{0}_{1}", dr.GetName(i + 3), rc_id);
                            tb.Text = dr[i + 3].ToString();
                            tablePanel.Controls.Add(tb, i, r_i);
                        }
                        else
                        {
                            TextBox lb = new TextBox(); if (Lib.sysfont != null) lb.Font = Lib.sysfont;
                            lb.ReadOnly = true; lb.Text = dr[i + 3].ToString(); tablePanel.Controls.Add(lb, i, r_i);
                        }
                    }
                    r_i++;
                }
            }
        }
コード例 #7
0
        public virtual void main_content(string si_id, string s_item, string rcx,String gr_out_str,OdbcConnection conn, StreamWriter sw)
        {
            int group_cnt = 0;
            using (OdbcDataReader dr = new OdbcCommand(String.Format("select frc_id,{0}  from field_rc where fi_id='{1}' order by BIT_LENGTH( s_number),s_number;", fieldnames, si_id), conn).ExecuteReader())
            {
                string group_str = null;
                bool group_flag = false;

                for (int i = 0; i < dr.FieldCount; i++) if (dr.GetName(i) == "group_id") { group_flag = true; break; }
                while (dr.Read())
                {
                    if (group_flag)
                    {
                        if (group_str == null) group_str = dr["group_id"].ToString(); if (group_str != dr["group_id"].ToString())
                        {
                            sw.WriteLine("</table><br>");
                            group_str = dr["group_id"].ToString();
                            group_cnt++;
                            if (group_cnt % 2 == 0)
                            {
                                sw.WriteLine(gr_out_str);
                                sw.WriteLine("<br class=break>");
                                sw.WriteLine("<B><center>成績公告<br>{0}</center></b>", s_item);
                            }
                            sw.WriteLine("<table border=1 width=100%><tr>{0}", TH_STR());
                        }
                    }
                    sw.Write("<tr>");
                    for (int i = 3; i < dr.FieldCount; i++)
                        sw.Write("<td class=x133r align=\"right\" colspan={0}>{1}&nbsp;", colspan_ar[i - 3], dr[i]);
                }
            }
        }