原则排序报告

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

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. 用QT打开网页

    原地址:http://blog.csdn.net/fjb2080/article/details/8136084 1.用qlabel. QLabellabel->setText(tr(" ...

  2. QT在Windows控制台下输出

    原地址:http://blog.csdn.net/fjb2080/article/details/9013047 在windows的控制台下输出,需要在pro文件中加入: CONFIG += cons ...

  3. Mac os 进行Android开发笔记(1)

    1> MAC OS Android环境搭建: 2>MAC OS  配置 Andoid ADB: 3>MAC OS 上进行Android真机调试: Android 开发环境搭建: 点击 ...

  4. 博弈问题之SG函数博弈小结

    SG函数: 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移 动者判负.事实上,这个游戏可以认为是所有Impartial Combinatorial Ga ...

  5. Kendo UI开发教程(20): Kendo MVVM 数据绑定(九) Text

    Text绑定可以使用ViewModel来设置DOM元素的文本属性,如果需要设置input,textarea,或select的显示,需要使用value属性. 1 <span data-bind=& ...

  6. [置顶] 单键模式的C++描述

    设计模式-单键(Signelton):其实单键的设计模式说来很简单,说的直白一点就是程序运行过程中保证只有一个实例在运行而已.在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例, ...

  7. Tomcat 用户配置

    如果你没有改变任何配置文件,请检查文件conf / tomcat用户.xml在你安装.该文件必须包含凭证让你使用这个应用. 例如,添加一个用户名为tomcat manager gui角色s3cret密 ...

  8. Selenium Webdriver ie 浏览器

    webDriver 在测试ie 的时候会遇到很多的问题,记录下: 1.需要ie的driver驱动 需要下载 IEDriverServer.exe 并把这个驱动放在系统ie 的文件夹下 C:\Progr ...

  9. Eclipse Maven 插件地址

    http://download.eclipse.org/technology/m2e/releases maven 插件安装地址

  10. VC 获取指定文件夹路径的方法小结

    VC获取指定文件夹路径 flyfish  2010-3-5 一 使用Shell函数 1 获取应用程序的安装路径 TCHAR buf[_MAX_PATH];SHGetSpecialFolderPath( ...