PHP 报告分拣和生产理念
原则排序报告
见一宝、一只猫的排序,我想照猫画虎,鼓捣自己一个。
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 报告分拣和生产理念的更多相关文章
- Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告
最近在做基于jenkins ant junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...
- PCB行业ERP解决方案
普实PCB管理系统包括PCB企业从接到订单开始,编排生产计划.制作工程指示.生产工具.准备物料.品质保障.工序生产.设备维护等一系列与企业运作密切相关的环节,使得企业的各个部门能够紧密联系.相互协调, ...
- 论文泛读:Click Fraud Detection: Adversarial Pattern Recognition over 5 Years at Microsoft
这篇论文非常适合工业界的人(比如我)去读,有很多的借鉴意义. 强烈建议自己去读. title:五年微软经验的点击欺诈检测 摘要:1.微软很厉害.2.本文描述了大规模数据挖掘所面临的独特挑战.解决这一问 ...
- 用AT命令调试调制解调器
最早生产调制解调器的公司是贺氏,后来组建的厂家制造的调制解调器都与HAYES兼容,大部分的通信软件使用菜单来对调制解调器进行配置.检测.但是有些通信软件要求用户直接发命令给调制解调器,在这种情况下必须 ...
- Allure 安装及使用
linux下安装方法 Allure requires Java 8 or higher npm install -g allure-commandline --save-dev (如果npm不能 ...
- CodeIgniter框架——源码分析之入口文件index.php
CodeIgniter框架的入口文件主要是配置开发环境,定义目录常量,加载CI的核心类core/CodeIgniter.php. 在index.php中,CI首先做的事情就是设置PHP的错误报告, ...
- 网易发起“疾风”智造IoT联盟,深化“互联网+先进制造业”发展
7月26日,2019网易云创峰会在杭州拉开序幕,本次峰会以“连接•洞察•进化”为主题,汇聚行业领袖.技术大咖及业界代表,探讨技术演进与行业应用趋势,研商生态合作升级.共赢未来的道路.上午的主论坛中,网 ...
- bayaim_当前国内外Hadoop的实际使用案例
当前国内外Hadoop的实际使用案例 说到Hadoop,很多朋友都想知道到底它是如何被应用的呢?通过下文,笔者就向大家介绍一下具体的情况. 1.Yahoo Yahoo是Hadoop的最大支持者,截至2 ...
- 吉特仓储管理系统-ERP或WMS系统中常见术语
MPS---主生产计划(Master Production schedules) MTO---订货生产(Make-to-Order) BOM---物料清单或产品结构表(Bill of material ...
随机推荐
- IOS开发之UIView总结
如果想调用某个类的某个方法可以写成这样,这个方法来自NSObject类 performSelector: performSelector:withObject: performSelector:wit ...
- MyBatis深入理解一
Mybatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .iB ...
- 基于visual Studio2013解决C语言竞赛题之1082迷宫
题目 解决代码及点评 /************************************************************************/ /* ...
- APNS 那些事!
之前在消息推送中间件APush里实现了对APNS的桥接.并利用业余时间阅读了官方指南Local and Push Notification Programming Guide.蛮有心得的.稍作总结.分 ...
- 软考之路(四)---软件project一 概念模型,逻辑模型,物理模型
自从接触到数据库到如今这三个概念大家理解的还有些不清楚,今天来为大家解答疑惑,共同提高,结合生活理解 概念模型 概念模型就是在了解了用户的需求,用户的业务领域工作情况以后,经过分析和总结 ...
- 基于visual Studio2013解决面试题之0402合并升序链表并去重
题目
- App 运营 推广相关
基本要素 1.定位和产品 2.取个好名字,一目了然+下载冲动 3.设计一个好图标,有感性和直观的认识 4.做好产品的说明.关键字,截图(前1-2行是重点) 5.做市场的排名(相关因素如下) (1) ...
- 四张类图理一下Streams的用法
首先是输出流 OutputStream.继承它的类有两种,一种是底层实现(纯继承OutputStream的类),一种是格式转换(组合了OutputStream的类). 所谓的底层实现,就是真正和物理存 ...
- Java线程并发中常见的锁--自旋锁 偏向锁
随着互联网的蓬勃发展,越来越多的互联网企业面临着用户量膨胀而带来的并发安全问题.本文着重介绍了在java并发中常见的几种锁机制. 1.偏向锁 偏向锁是JDK1.6提出来的一种锁优化的机制.其核心的思想 ...
- HDU4869:Turn the pokers(费马小定理+高速幂)
Problem Description During summer vacation,Alice stay at home for a long time, with nothing to do. S ...