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 ...
随机推荐
- Apache服务器学习笔记
Apache服务器知识 首先我们要知道一共有那几个程序在监听网络端口,即与网络保持活跃连接,打开CMD命令窗口 输入: netstat –an 指令就能显示出所有与网络保持连接的程序,输入net s ...
- 3.跟我学solr---使用solrj加入索引
上一章讲了怎么使用solr admin向solrserver加入索引,Solr 是一个独立的企业级搜索应用server.它对外提供类似于 Web-service 的 API 接口. 用户能够通过 ht ...
- jquery 获取 TABLE单元格的值
1.JQ部分: var tds = $("#table1 td"); tds.click(function(){ //给所有td添加点击事件 var tdSeq = ...
- <2>集腋成裘
标量项: [root@wx03 2]# cat a1.pl unshift(@INC,"/root/big/2"); use Horse;; print $Horse::days; ...
- Swift - 给表格UITableView添加索引功能(快速定位)
像iOS中的通讯录,通过点击联系人表格右侧的字母索引,我们可以快速定位到以该字母为首字母的联系人分组. 要实现索引,我们只需要两步操作: (1)实现索引数据源代理方法 (2)响应点击索引触发的代理 ...
- Python中字符串的方法及注释
先整理到这里:用的时候便于查询.相当于自己的资料库吧. capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) ...
- POJ2782:Bin Packing
Description A set of n<tex2html_verbatim_mark> 1-dimensional items have to be packed in iden ...
- c# in depth之泛型的类型约束详细
类型约束 1.引用类型约束 这种约束(表示成T:class,必须是为类型参数指定的第一个约束)用于确保使用的类型实参是引用类型,这可能是任何类,接口,数组,委托或者已知是引用类型的另一个类型参数. 例 ...
- 算法设计与分析——多边形游戏(DP)
1.问题描述: 给定N个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且N条边按照顺时针依次编号为1~N.下图给出了一个N=4个顶点的多边形. 游戏规则 :(1) 首先 ...
- WebApp中调试jsavascript
app有时候会使用网页作为一些功能页面,好处自然是有很多,但是也得调试 1 android app调试 自然是chrome remote debug 在android里面自带的浏览器一般都是基于chr ...