PageAdmin CMS网站管理系统官方论坛

注册

 

QQ登录

只需一步,快速开始

发新话题 回复该主题

部门投稿排行榜的代码 [复制链接]

1#
之前做的一个项目,按部门来统计投稿数(article表),下面把代码分享给大家。
  1. <script language="c#" runat="server">
  2. string Get_Username(int departmentid)
  3.   {
  4.     string rv="";
  5.     DataTable mdt=Get_Data("select username from pa_member where department_id="+departmentid);
  6.     DataRow dr;
  7.     for(int i=0;i<mdt.Rows.Count;i++)
  8.     {
  9.       dr=mdt.Rows[i]; //说明:给dr赋值
  10.       rv+=dr["username"].ToString()+",";
  11.      }
  12.     return rv;
  13.   }
  14. int Get_Count(string username)
  15.   {
  16.     int count=0;
  17.     string[] Ausername=username.Split(',');
  18.     for(int i=0;i<Ausername.Length;i++)
  19.     {
  20.       if(Ausername[i]==""){continue;}
  21.       count+=int.Parse(Get_Data("co","select count(id) as co from article where checked=1 and source_id=0 and username='"+Ausername[i]+"'"));
  22.      }
  23.     return count;
  24.   }
  25. </script>
  26. <%
  27. DataTable tgdt=new DataTable("default"); //新建一个投稿DataTable
  28. DataRow row;
  29.     tgdt.Columns.Add("department",Type.GetType("System.String"));
  30.     tgdt.Columns.Add("tgcount",Type.GetType("System.Int32"));

  31. //给新建的DataTable赋值
  32. DataTable dt=Get_Data("select id,name from pa_department");
  33. DataRow dr;
  34. string usernames="";
  35. for(int i=0;i<dt.Rows.Count;i++)
  36. {
  37.   dr=dt.Rows[i];
  38.   row = tgdt.NewRow();
  39.   row["department"]=dr["name"].ToString();
  40.   usernames=Get_Username(int.Parse(dr["id"].ToString()));
  41.   row["tgcount"]= Get_Count(usernames);
  42.   tgdt.Rows.Add(row);
  43.   }
  44.   tgdt.DefaultView.Sort="tgcount desc";
  45.   tgdt=tgdt.DefaultView.ToTable();
  46. //给新建的DataTable赋值结束
  47. %>
  48. <style type="text/css">
  49. .tgtb{border:1px solid #d2e5ee;border-collapse:collapse;width:100%}
  50. .tgtb td{border:1px solid #d2e5ee;padding:4px;}
  51. </style>
  52. <table cellpadding="0" cellspacing="0" class="tgtb">
  53. <tr>
  54. <td align=center>排名</td>
  55. <td align=center>部门</td>
  56. <td align=center>投稿数</td>
  57. </tr>
  58. <%
  59. for(int i=0;i<tgdt.Rows.Count;i++)
  60. {
  61.   if(i==10){return;} //只统计前10位。
  62.   dr=tgdt.Rows[i];
  63. %>
  64. <tr>
  65. <td><%=i+1%></td>
  66. <td><%=dr["department"]%></td>
  67. <td><%=dr["tgcount"]%></td>
  68. </tr>
  69. <%}%>
  70. </table>
复制代码
使用方法,可以新建一个自定义的导航或自定义的模块,然后进入设置界面开启标签代码模式,复制上面的代码进入保存,见下图:

您所在的用户组无法下载或查看附件


打开效果:

您所在的用户组无法下载或查看附件
分享 转发
网站模板如有任何问题,请在回复中反馈,我们将不断改进。
TOP
2#

请问值班信息怎么做的
TOP
3#

谢谢apple分享!!!
TOP
4#

该用户帖子内容已被屏蔽
TOP
5#

代码有问题,TABLE 给定的区域,其他的模块总是会包含进去,该怎么修改
TOP
6#

那一个值班信息的代码可以给我吗? QQ   22390668@qq.com  ,谢谢
TOP
7#

好东西,收藏!
TOP
8#

谢谢楼主,非常有用,请教个问题,我要是想增加个下拉菜单或者时间选择框,同时增加一个按钮,选择时间条件,点击按钮统计某个时间段的投稿量,请问怎加,
TOP
9#

有个人投稿排行就好了
TOP
10#

希望给个值班信息的代码,1023580338@qq.com,谢谢
TOP
11#

老大,这个表不兼容IE8哦。。怎么弄啊。我想兼容IE8
TOP
12#

代码有问题,TABLE 给定的区域,其他的模块总是会包含进去,该怎么修改
TOP
13#

找到原因了!~~~是官方代码有问题

如果在后台部门添加超过10个部门后,前台显示会出乱,也就是说TABLE 给定的区域,其他的模块总是会包含进去

修改方法是:把把 return 改成 break   就OK了
TOP
14#

值班表,跪求版主。。。。
TOP
发新话题 回复该主题