原则排序报告

见一宝、一只猫的排序,我想照猫画虎,鼓捣自己一个。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3VqaWFuZ3dlaTU2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

原理记录例如以下:

1、前台部分

<table>
<tr class="proghead">
<td class="canclick progsort1" onclick="sort_prog(0)">学号</td>
<td class="canclick progsort2" onclick="sort_prog(1)">姓名</td>
</tr>
</table>

2、CSS部分

.upsort:hover,.upsort{background:rgb(0,161,222) url(./css/up.png) no-repeat center right ; color:#fff; }
.downsort:hover, .downsort{background:rgb(0,161,222) url(./css/down.png) no-repeat center right ; color:#fff; }

2、js部分

函数 sort_prog

var SORTPROG_FLAG = [0,0];
var SORTPROG_COL = ['sid','username']; //排序筛选
function sort_prog(num){
clear_arr(SORTPROG_FLAG,num);
//更改显示标识 1升序
if(SORTPROG_FLAG[num] === 0 || SORTPROG_FLAG[num] === 2){
SORTPROG_FLAG[num] = 1;
} 2 降序 否则不排序
else if(SORTPROG_FLAG[num] === 1){
SORTPROG_FLAG[num] = 2;
}
if(num >= 0){
var htmlcode = '';
$.ajax({
'url':'./ajax.php',
'data':get_param('prog'),
'dataType':'text',
'type':'post',
'async':false,
'success':function(data){
if(data){
$('.curseload').hide();
htmlcode = data;
}
}
});
$('.progreport').html(htmlcode);
//更改显示标识
if(SORTPROG_FLAG[num] == 2){
$('.'+obj).addClass('downsort').removeClass('upsort');
}
else if(SORTPROG_FLAG[num] == 1){
$('.'+obj).addClass('upsort').removeClass('downsort');
}
$('.'+obj).siblings().removeClass('downsort').removeClass('upsort'); }else{
clear_arr(SORTPROG_FLAG,-1);
$.ajax({
'url':'./ajax.php',
'data':get_param('prog'),
'dataType':'text',
'type':'post',
'success':function(data){
if(data){
$('.prog').html(data);
}
}
});
}
} //数组清零 初始化
function clear_arr(arr, index){
var len = arr.length;
for (var i= 0; i < len; i++) {
if(i != index){
arr[i] = 0;
}
}
} //数组获取 点击索引
function get_index(arr){
var len = arr.length;
var index = -1 ;
for (var i = 0; i < len; i++) {
if(arr[i] != 0){
index = i;
}
}
return index;
} //參数获取
//获取 參数
function get_param(type){
if(type == 'prog'){
var num = get_index(SORT_FLAG);
var sid = $('.sid').val();
var username = $('.username').val();
return {'sid':sid,'username':username,'sort_col':SORTPROG_COL[num],'sort_type':SORTPROG_FLAG[num]};
}
}

3、PHP部分

class reportclass{
//按列排序
public function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC){
$sorttype = optional_param('sorttype', 1, PARAM_RAW);
if($sorttype == 1){
$sort=SORT_ASC;
}else if($sorttype == 2){
$sort=SORT_DESC;
} if(is_array($multi_array)){
foreach ($multi_array as $row_array){
if(is_array($row_array)){
//将utf-8中文转换为 gbk 进行中文拼音排序
$key_array[] = iconv('UTF-8', 'GBK', strip_tags($row_array[$sort_key]));
}else{
return false;
}
}
}else{
return false;
}
array_multisort($key_array,$sort,$multi_array);
return $multi_array;
}
//
public function print_report(){
$arr = get_report();
$sort_col = $_POST['sort_col'];
$sort_type = $_POST['sort_type'];
if($sort_type == 1){$sort = SORT_ASC ;}
else if($sort_type == 2){$sort = SORT_DESC ;}
$newarr = $this->multi_array_sort($arr,$sort_col,$sort);
$this->show_report();
}
//实现获取 报表信息二维数组
public function get_report(){}
//依据二维数组 打印报表
public function show_report(){}
}

代码并不完整。可是思路是完整的。欢迎不同见解者拍砖

然后附下面我个人做报表的思路图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3VqaWFuZ3dlaTU2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

版权声明:本文博客原创文章。博客,未经同意,不得转载。

PHP 报告分拣和生产理念的更多相关文章

  1. Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告

    最近在做基于jenkins ant  junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...

  2. PCB行业ERP解决方案

    普实PCB管理系统包括PCB企业从接到订单开始,编排生产计划.制作工程指示.生产工具.准备物料.品质保障.工序生产.设备维护等一系列与企业运作密切相关的环节,使得企业的各个部门能够紧密联系.相互协调, ...

  3. 论文泛读:Click Fraud Detection: Adversarial Pattern Recognition over 5 Years at Microsoft

    这篇论文非常适合工业界的人(比如我)去读,有很多的借鉴意义. 强烈建议自己去读. title:五年微软经验的点击欺诈检测 摘要:1.微软很厉害.2.本文描述了大规模数据挖掘所面临的独特挑战.解决这一问 ...

  4. 用AT命令调试调制解调器

    最早生产调制解调器的公司是贺氏,后来组建的厂家制造的调制解调器都与HAYES兼容,大部分的通信软件使用菜单来对调制解调器进行配置.检测.但是有些通信软件要求用户直接发命令给调制解调器,在这种情况下必须 ...

  5. Allure 安装及使用

    linux下安装方法 Allure requires Java 8 or higher    npm install -g allure-commandline --save-dev (如果npm不能 ...

  6. CodeIgniter框架——源码分析之入口文件index.php

    CodeIgniter框架的入口文件主要是配置开发环境,定义目录常量,加载CI的核心类core/CodeIgniter.php.   在index.php中,CI首先做的事情就是设置PHP的错误报告, ...

  7. 网易发起“疾风”智造IoT联盟,深化“互联网+先进制造业”发展

    7月26日,2019网易云创峰会在杭州拉开序幕,本次峰会以“连接•洞察•进化”为主题,汇聚行业领袖.技术大咖及业界代表,探讨技术演进与行业应用趋势,研商生态合作升级.共赢未来的道路.上午的主论坛中,网 ...

  8. bayaim_当前国内外Hadoop的实际使用案例

    当前国内外Hadoop的实际使用案例 说到Hadoop,很多朋友都想知道到底它是如何被应用的呢?通过下文,笔者就向大家介绍一下具体的情况. 1.Yahoo Yahoo是Hadoop的最大支持者,截至2 ...

  9. 吉特仓储管理系统-ERP或WMS系统中常见术语

    MPS---主生产计划(Master Production schedules) MTO---订货生产(Make-to-Order) BOM---物料清单或产品结构表(Bill of material ...

随机推荐

  1. JSP页面小脚本实现日期比較,Java同理,精简过后的,可能在效率上不太好,有大大能够给优化下就更好了

    <%         java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd ...

  2. 微软C#版SQLHelper.cs类

    转载自:http://blog.csdn.net/fengqingtao2008/article/details/17399247 using System; using System.Data; u ...

  3. ShareSDK第三方登陆 (IOS)

    1.http://www.mob.com/ 注册申请 2.http://www.mob.com/#/download SDK下载  (简洁版:http://www.mob.com/#/download ...

  4. tomcat 后台启动设置

    如果你环境变量配置对了且保证tomcat的bin目录下有如下三个文件,则你只需在cmd中运行 service install tomcat即可将tomcat添加的服务项中,然后在设置开机自动启动,则以 ...

  5. java WEB Response重定向和缓存控制

    package cn.com; import java.io.IOException; import javax.servlet.ServletException; import javax.serv ...

  6. UVA 6480 Zombie Invasion(模拟退火)

    A group of survivors has arrived by helicopter to an isolated island. The island is made up of a lon ...

  7. ASP.NET之Application、Session和Cookie的差别

    在Asp.net中Application.Session和Cookie都能够保存信息,那么它们有什么不同呢? 一.首先Application是在server端建立一个状态变量,存储于server的全局 ...

  8. RMAN 备份

    backup database; --备份整库 backup database format '\xxxxxx\xxx_%U'; --备份整库到指定路劲 backup tablespace users ...

  9. goldengate 简单配置 oracle to oralce

    做oracle时配置的,goldengate 是同步异构数据库最好的工具.这个是基于oracle to oracle 单向复制 添加增量复制进程   add extract process -- -- ...

  10. Eclipse中导入第三方源码的问题和备用解决方案

    在前篇<配置BeanUtils包,同时也是对导入第三包的步骤说明>中,我已经将[commons-beanutils-1.9.2.jar]包导入,但是在使用BeanUtils进行日期转换的过 ...