📄 flow_report.php
字号:
break;
case 5: $WHERE_STR.="<='".$FIELDVALUE."'";
break;
case 6: $WHERE_STR.="!='".$FIELDVALUE."'";
break;
case 7: $WHERE_STR.=" like '".$FIELDVALUE."%'";
break;
case 8: $WHERE_STR.=" like '%".$FIELDVALUE."%'";
break;
case 9: $WHERE_STR.=" like '%".$FIELDVALUE."'";
break;
}
$query1="select * from FLOW_RUN_DATA".$WHERE_STR;
$cursor1= exequery($connection,$query1);
if(!$ROW=mysql_fetch_array($cursor1))
{
$NOT_FOUND=1;
break;
}
}//if($FIELDVALUE!="")
}//for
if($NOT_FOUND==1) //数据部份未查询到
continue;
//流程状态显示
if($FLOW_STATUS=="ALL")
{
if(find_id($STATUS_RUN,$RUN_ID))
$STATUS="<font color=red>执行中</font>";
else
$STATUS="已结束";
}
elseif($FLOW_STATUS=="0")
$STATUS="<font color=red>执行中</font>";
else
$STATUS="已结束";
$DATA_ARRAY[$RUN_COUNT][1]=$STATUS;
//--- 读取数据 ---
$query1 = "SELECT * from FLOW_RUN_DATA where RUN_ID=$RUN_ID order by ITEM_ID";
$cursor1 = exequery($connection,$query1);
while($ROW=mysql_fetch_array($cursor1))
{
$ITEM_ID=$ROW["ITEM_ID"];
$ITEM_DATA=$ROW["ITEM_DATA"];
$STR="DATA_LIST_".$ITEM_ID;
$$STR=$ITEM_DATA;
}
//-------- Html 智能分析,数据转换 -----------
$ITEM_ID=0;
for($J=0;$J<$ITEM_ID_MAX;$J++)
{
$ELEMENT=$ELEMENT_ARRAY[$J];
$ENAME=get_attr($ELEMENT,"NAME");
$EVALUE=get_attr($ELEMENT,"VALUE");
$ECLASS=get_attr($ELEMENT,"CLASS");
if($ECLASS=="DATE"||$ECLASS=="USER")
continue;
$ITEM_ID++;
$STR="DATA_LIST_".$ITEM_ID;
$ITEM_VALUE=$$STR;
if($ECLASS!="LIST_VIEW")
{
$ITEM_DATA=str_replace(chr(10)," ",$ITEM_DATA);
$ITEM_DATA=str_replace(chr(13)," ",$ITEM_DATA);
}
//--- 用值替换控件 ----
if($ECLASS=="AUTO" && $ENAME=="SELECT" && $ITEM_VALUE!="") //--- 下拉菜单型宏控件 ---
{
$EDATAFLD=get_attr($ELEMENT,"DATAFLD");
switch($EDATAFLD)
{
case "SYS_LIST_DEPT":
$query_auto="SELECT DEPT_NAME from DEPARTMENT where DEPT_ID='$ITEM_VALUE'";
$cursor_auto = exequery($connection,$query_auto);
if($ROW=mysql_fetch_array($cursor_auto))
$ITEM_VALUE=$ROW["DEPT_NAME"];
break;
case "SYS_LIST_PRIV":
$query_auto="SELECT PRIV_NAME from USER_PRIV where USER_PRIV=$ITEM_VALUE";
$cursor_auto = exequery($connection,$query_auto);
if($ROW=mysql_fetch_array($cursor_auto))
$ITEM_VALUE=$ROW["PRIV_NAME"];
break;
case "SYS_LIST_USER":
case "SYS_LIST_PRCSUSER1":
case "SYS_LIST_PRCSUSER2":
$query_auto="SELECT USER_NAME from USER where USER_ID='$ITEM_VALUE'";
$cursor_auto = exequery($connection,$query_auto);
if($ROW=mysql_fetch_array($cursor_auto))
$ITEM_VALUE=$ROW["USER_NAME"];
break;
case "SYS_LIST_SQL":
break;
}
}
elseif($ECLASS=="LIST_VIEW") //列表控件
{
if($ITEM_VALUE!="")
{
$LV_TITLE=get_attr($ELEMENT,"LV_TITLE");
$LV_SIZE=get_attr($ELEMENT,"LV_SIZE");
$MY_ARRAY_SIZE=explode("`",$LV_SIZE);
$LV_VALUE= $ITEM_VALUE;
$ITEM_VALUE="<TABLE class='small' style='border-collapse:collapse' border=1 cellspacing=0 cellpadding=2 bordercolor='#000000'><TR class=TableHeader>\n";
$MY_ARRAY=explode("`",$LV_TITLE);
$ARRAY_COUNT_TITLE=sizeof($MY_ARRAY);
if($MY_ARRAY[$ARRAY_COUNT_TITLE-1]=="")$ARRAY_COUNT_TITLE--;
for($K=0;$K<$ARRAY_COUNT_TITLE;$K++)
$ITEM_VALUE.="<TD nowrap>".$MY_ARRAY[$K]."</TD>\n";
$ITEM_VALUE.="</TR>\n";
$MY_ARRAY=explode("\r\n",$LV_VALUE);
$ARRAY_COUNT=sizeof($MY_ARRAY);
if($MY_ARRAY[$ARRAY_COUNT-1]=="")$ARRAY_COUNT--;
for($K=0;$K<$ARRAY_COUNT;$K++)
{
$ITEM_VALUE.="<tr>\n";
$TR_DATA=$MY_ARRAY[$K];
$MY_ARRAY1=explode("`",$TR_DATA);
for($L=0;$L<$ARRAY_COUNT_TITLE;$L++)
{
$TD_DATA=$MY_ARRAY1[$L];
if($TD_DATA=="")
$TD_DATA=" ";
$ITEM_VALUE.="<td width=".($MY_ARRAY_SIZE[$L]*9).">".$TD_DATA."</td>\n";
}
$ITEM_VALUE.="</tr>\n";
}
$ITEM_VALUE.="</TABLE>\n";
}
}
elseif($ECLASS=="SIGN") //手写控件
{
$ITEM_VALUE="";
}
else //--- 普通控件 ---
{
if($ECLASS=="AUTO" && $ITEM_VALUE=="{宏控件}")
$ITEM_VALUE="";
$ITEM_VALUE=str_replace("<","<",$ITEM_VALUE);
$ITEM_VALUE=str_replace(">",">",$ITEM_VALUE);
$ITEM_VALUE=stripslashes($ITEM_VALUE);
$ITEM_VALUE=str_replace(chr(10),"<br>",$ITEM_VALUE);
if($ENAME=="INPUT" && strstr($ELEMENT,"type=checkbox"))
{
if($ITEM_VALUE=="on")
$ITEM_VALUE="是";
else
$ITEM_VALUE="否";
}
}
$DATA_ARRAY[$RUN_COUNT][$ITEM_ID+3]=$ITEM_VALUE;
}//for
$RUN_COUNT++;
}
if($RUN_COUNT==0)
{
Message("提示","无符合条件的记录");
exit;
}
//-------------------------------------------- 报表输出 -----------------------------------------
$ROW_COUNT=$RUN_COUNT;
$COL_COUNT=$ITEM_ID+4;
//-- 获取表头 --
$TITLE_ARRAY[0]="名称/文号";
$TITLE_ARRAY[1]="流程状态";
$TITLE_ARRAY[2]="流程开始日期";
$TITLE_ARRAY[3]="开始时间";
$J=0;
for($I=0;$I<$ITEM_ID_MAX;$I++)
{
$ELEMENT=$ELEMENT_ARRAY[$I];
$ETITLE=get_attr($ELEMENT,"TITLE");
$ECLASS=get_attr($ELEMENT,"CLASS");
if($ECLASS=="DATE"||$ECLASS=="USER")
continue;
$ETITLE=str_replace("<","<",$ETITLE);
$ETITLE=str_replace(">",">",$ETITLE);
$ETITLE=stripslashes($ETITLE);
$TITLE_ARRAY[$J+4]=$ETITLE;
$J++;
}
?>
<table cellspacing="0" width="100%" style="border-collapse:collapse" border=1 cellspacing=0 cellpadding=3 bordercolor='#000000' class="small">
<?
if($OP==1)
{
?>
<tr class="TableContent">
<?
}
else
{
?>
<tr style="BACKGROUND: #D3E5FA; color: #000000; font-weight: bold;">
<?
}
//--- 输出表头 ---
?>
<td class="TableControl" align="center" nowrap><b>分组:<?=$TITLE_ARRAY[$GROUP_FLD]?> </b></td>
<?
$ARRAY_COUNT=sizeof($TITLE_ARRAY);
for($I=0;$I<$ARRAY_COUNT;$I++)
{
if($I==$GROUP_FLD)
continue;
?>
<td nowrap align="center"><b><?=$TITLE_ARRAY[$I]?> </b></td>
<?
}
?>
</tr>
<?
//--- 建立排序索引数组,并排序 ---
for($I=0;$I<$ROW_COUNT;$I++)
{
$DATA_INDEX_ARRAY[0][$I]=$DATA_ARRAY[$I][$GROUP_FLD];
$DATA_INDEX_ARRAY[1][$I]=$I;
}
if($GROUP_SORT=="ASC")
array_multisort($DATA_INDEX_ARRAY[0], SORT_STRING, SORT_ASC,$DATA_INDEX_ARRAY[1], SORT_STRING, SORT_ASC);
else
array_multisort($DATA_INDEX_ARRAY[0], SORT_STRING, SORT_DESC,$DATA_INDEX_ARRAY[1], SORT_STRING, SORT_ASC);
//--- 建立分组数组 ---
$CUR_VALUE_PREV="OA_NULL_VALUE";
$GROUP_COUNT=-1;
for($I=0;$I<$ROW_COUNT;$I++)
{
if($DATA_INDEX_ARRAY[0][$I]!=$CUR_VALUE_PREV)
$GROUP_COUNT++;
$DATA_GROUP_ARRAY[$GROUP_COUNT][0]=$DATA_INDEX_ARRAY[0][$I];
$DATA_GROUP_ARRAY[$GROUP_COUNT][1].=$DATA_INDEX_ARRAY[1][$I].",";
$CUR_VALUE_PREV=$DATA_INDEX_ARRAY[0][$I];
}
/*
//--- 输出排序索引数组 ---
for($I=0;$I<$ROW_COUNT;$I++)
{
?>
<tr class="TableData">
<td><?=$DATA_INDEX_ARRAY[0][$I]?> </td>
<td><?=$DATA_INDEX_ARRAY[1][$I]?> </td>
</tr>
<?
}
//--- 输出分组数组 ---
for($I=0;$I<=$GROUP_COUNT;$I++)
{
?>
<tr class="TableContent">
<td><?=$DATA_GROUP_ARRAY[$I][0]?> </td>
<td><?=$DATA_GROUP_ARRAY[$I][1]?> </td>
</tr>
<?
}
*/
//----------------------------------------- 输出表格正文 -----------------------------------------
for($I=0;$I<=$GROUP_COUNT;$I++)
{
unset($SUM_DATA_ARRAY);
$ROW_ARRAY=explode(",",$DATA_GROUP_ARRAY[$I][1]);
$ARRAY_COUNT=sizeof($ROW_ARRAY)-1;
$ROWSPAN=$ARRAY_COUNT;
if($SUM_FLD!="")
$ROWSPAN++;
for($J=0;$J<$ARRAY_COUNT;$J++)
{
?>
<tr class="TableData">
<?
if($J==0)
{
?>
<td rowspan="<?=$ROWSPAN?>" class="TableContent">
<?=$DATA_GROUP_ARRAY[$I][0]?><br><b>(共<?=$ARRAY_COUNT?>项)</b></td>
<?
}
for($K=0;$K<$COL_COUNT;$K++)
{
if($K==$GROUP_FLD)
continue;
if(find_id($SUM_FLD,$K))
{
$SUM_DATA_ARRAY[$K]+=$DATA_ARRAY[$ROW_ARRAY[$J]][$K];
$SUM_TOTAL_DATA_ARRAY[$K]+=$DATA_ARRAY[$ROW_ARRAY[$J]][$K];
}
?>
<td <?if(find_id($SUM_FLD,$K))echo "align=right";?>><?=$DATA_ARRAY[$ROW_ARRAY[$J]][$K]?> </td>
<?
}//col
?>
</tr>
<?
}//row
//--- 小计 ---
if($SUM_FLD!="")
{
?>
<tr class="TableData">
<?
$flag=0;
for($K=0;$K<$COL_COUNT;$K++)
{
if($K==$GROUP_FLD)
continue;
if($flag==0)
{
$flag=1;
?>
<td class="TableControl" align=right><b>小计</b></td>
<?
continue;
}
?>
<td class="TableControl" align=right><?=$SUM_DATA_ARRAY[$K]?> </td>
<?
}
echo "</tr>";
}
}//group
//-------------------- 合计 ----------------
if($SUM_FLD!="")
{
?>
<tr class="TableControl">
<td align="center"><b>合计</b></td>
<?
for($K=0;$K<$COL_COUNT;$K++)
{
if($K==$GROUP_FLD)
continue;
?>
<td align="right"><?=$SUM_TOTAL_DATA_ARRAY[$K]?> </td>
<?
}
echo "</tr>";
}
?>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -