Exemplo n.º 1
0
function newaiCharts()
{
    global $html_etc, $tablename, $common_html, $custom_type;
    global $db, $return_sql_line, $columns;
    global $_POST, $_GET, $returnmodel, $primarykey_index;
    global $action_submit, $merge, $form_attribute;
    global $tabletitle;
    global $showlistfieldlist, $showlistfieldfilter, $showlistfieldtype;
    $showlistfieldlistArray = explode(',', $showlistfieldlist);
    $showlistfieldfilterArray = explode(',', $showlistfieldfilter);
    $showlistfieldtypeArray = explode(',', $showlistfieldtype);
    //获取系统显示的色彩信息
    $ColorArray = returnColorArray();
    //获取系统求和字段信息
    global $sum_index, $UserUnitFunctionIndex;
    if ($sum_index != "") {
        $sum_sql_index = " ,sum({$sum_index}) as sum ";
    } else {
        $sum_sql_index = "";
    }
    //报表统计主体部分开始
    for ($k = 0; $k < sizeof($showlistfieldlistArray); $k++) {
        $fieldIndex = $showlistfieldlistArray[$k];
        $fieldName = $columns[$fieldIndex];
        $fieldText = $html_etc[$tablename][$fieldName];
        $mode = $showlistfieldfilterArray[$k];
        $modeArray = explode(':', $mode);
        //print_R($modeArray);
        $modeIndex = $modeArray[0];
        $Mode = "";
        switch ($modeIndex) {
            case '':
                break;
            case 'tablefilter':
            case 'tablefiltercolor':
            case 'radiofilter':
            case 'radiofiltercolor':
                if ($modeArray[1] == "month" && $modeArray[2] == "") {
                    $Mode = "Month";
                    $SQL = "select Date_Format({$fieldName},'%c') AS {$fieldName},Sum({$sum_index}) as sum,Count({$fieldName}) as num from {$tablename} group by {$fieldName}";
                } else {
                    if ($modeArray[1] == "year" && $modeArray[2] == "") {
                        $Mode = "Year";
                        $SQL = "select Date_Format({$fieldName},'%Y') AS {$fieldName},Sum({$sum_index}) as sum,Count({$fieldName}) as num from {$tablename} group by {$fieldName}";
                    } else {
                        $Mode = "";
                        $SQL = "select {$fieldName},Count({$fieldName}) as num {$sum_sql_index} from {$tablename} group by {$fieldName}";
                    }
                }
                $rs = $db->CacheExecute(150, $SQL);
                $rs_array = $rs->GetArray();
                //print_R($rs_array);
                //父表结构部分
                $tablenameIndex = $modeArray[1];
                $ColumnsIndex = returntablecolumn($tablenameIndex);
                $html_etcIndex = returnsystemlang($tablenameIndex, $tablenameIndex);
                $WhatIndex = $ColumnsIndex[(string) $modeArray[2]];
                $ReturnIndex = $ColumnsIndex[(string) $modeArray[3]];
                //本表操作部分--数据处理部分 --形成FLASH要处理的数据类型
                $TotalNumberIndex = 0;
                $TotalSumIndex = 0;
                $Array = array();
                for ($i = 0; $i < sizeof($rs_array); $i++) {
                    $ResultNumber = $rs_array[$i]['num'];
                    $ResultSum = $rs_array[$i]['sum'];
                    $ResultFieldCode = $rs_array[$i][$fieldName];
                    switch ($Mode) {
                        case 'Month':
                            $ResultFieldName = $ResultFieldCode . "" . $common_html['common_html']['month'];
                            break;
                        case 'Year':
                            $ResultFieldName = $ResultFieldCode . "" . $common_html['common_html']['year'];
                            break;
                        default:
                            $ResultFieldName = returntablefield($tablenameIndex, $WhatIndex, $ResultFieldCode, $ReturnIndex);
                            if ($ResultFieldName == "") {
                                $ResultFieldName = $ResultFieldCode;
                            }
                            break;
                    }
                    $TotalNumberIndex += $ResultNumber;
                    $TotalSumIndex += $ResultSum;
                    $Array_Statistic_Value = $sum_index != "" ? $ResultSum : $ResultNumber;
                    $Array['XData'][$i]['Name'] = $ResultFieldName;
                    $Array['XData'][$i]['Value'] = $Array_Statistic_Value;
                    $Array['XData'][$i]['Dir'] = $ResultFieldName;
                    $Array['XData'][$i]['AltText'] = $ResultFieldName;
                    //$Array['XData'][$i]['Url'] = "?action=init_customer&$fieldName=$ResultFieldCode";
                    $ColorArray[$i] == "" ? $ColorArray[$i] = "0xCC0000" : '';
                    $Array['XData'][$i]['Color'] = $ColorArray[$i];
                    $Array['Dir'][$i]['Name'] = $ResultFieldName;
                    $Array['Dir'][$i]['Color'] = $ColorArray[$i];
                    $Array['YData']['AltText'] = "移动查看详细信息";
                    $Array['YData']['Value'] < $Array_Statistic_Value ? $Array['YData']['Value'] = $Array_Statistic_Value : '';
                }
                $Array['title'] = $html_etc[$tablename][$tabletitle] . "[" . $html_etc[$tablename][$fieldName] . "]";
                $array_graphInfo = $Array['title'] . "[" . date("Y-m-d H:i:s") . "] " . $common_html['common_html']['totalrecords'] . ": " . $TotalNumberIndex;
                if ($sum_index != "") {
                    $array_graphInfo .= " " . $common_html['common_html']['allnumbers'] . ": " . $TotalSumIndex . " &nbsp;" . $UserUnitFunctionIndex . "\n";
                }
                $Array['graphInfo'] = $array_graphInfo;
                //print_R($FlashFileName);
                //本表操作部分--FALSH图表显示部分--显示FLASH图表的结果
                table_begin("650");
                $ChartMode = $showlistfieldtypeArray[$k];
                //采用的图表类型选择
                //print $tablename;
                switch ($ChartMode) {
                    case 'vBarF':
                        $FlashFileName = WriteXmlFilevBarF($Array, $tablename, $k);
                        //Flash XML 数据写入文件区
                        $create_chart = create_chart("vBarF", $FlashFileName);
                        //FLASH 图表读入XML数据处理以后的显示区
                        break;
                    case 'hBarF':
                        $FlashFileName = WriteXmlFilehBarF($Array, $tablename, $k);
                        //Flash XML 数据写入文件区
                        $create_chart = create_chart("hBarF", $FlashFileName);
                        //FLASH 图表读入XML数据处理以后的显示区
                        break;
                    case 'pieF':
                        $FlashFileName = WriteXmlFilePieF($Array, $tablename, $k);
                        //Flash XML 数据写入文件区
                        $create_chart = create_chart("pieF", $FlashFileName);
                        //FLASH 图表读入XML数据处理以后的显示区
                        break;
                    default:
                        $FlashFileName = WriteXmlFilevBarF($Array, $tablename, $k);
                        //Flash XML 数据写入文件区
                        $create_chart = create_chart("vBarF", $FlashFileName);
                        //FLASH 图表读入XML数据处理以后的显示区
                        break;
                }
                //HTML文体显示部分
                print "<TR class=TableData>";
                print "<TD noWrap width=100% align=center colspan=40>";
                print "{$create_chart} &nbsp;</TD>";
                print "</TR>";
                //本文信息显示部分
                //print_title($html_etc[$tablename][$tabletitle]."<font color=green>[".$html_etc[$tablename][$fieldName]."]</font>",40);
                print_title($html_etc[$tablename][$tabletitle] . "[" . $html_etc[$tablename][$fieldName] . "]", 6);
                for ($i = 0; $i < sizeof($rs_array); $i++) {
                    $ResultNumber = $rs_array[$i][num];
                    $ResultSum = $rs_array[$i][sum];
                    $ResultFieldCode = $rs_array[$i][$fieldName];
                    $ResultFieldName = returntablefield($tablenameIndex, $WhatIndex, $ResultFieldCode, $ReturnIndex);
                    if ($ResultFieldName == "") {
                        $ResultFieldName = $ResultFieldCode;
                    }
                    print "<TR class=TableData>";
                    print "<TD noWrap width=15%>统计类别名称&nbsp;</TD>";
                    print "<TD width=35%>" . $ResultFieldName . "&nbsp;</TD>";
                    if ($sum_index != "") {
                        print "<TD noWrap width=15%>统计额度&nbsp;</TD>";
                        print "<TD noWrap width=10%><font color=red>" . $ResultSum . "&nbsp;" . $UserUnitFunctionIndex . "</font></TD>";
                    } else {
                        //print "<TD noWrap width=15%>统计类别代码&nbsp;</TD>";
                        //print "<TD noWrap width=10%>".$ResultFieldCode."&nbsp;</TD>";
                    }
                    print "<TD  width=15%>统计记录数&nbsp;</TD>";
                    print "<TD noWrap width=10%><font color=red>" . $ResultNumber . "&nbsp;条</font></TD>";
                    print "</TR>";
                }
                print "<TR class=TableData>";
                print "<TD noWrap colspan = 40>\n";
                print $common_html['common_html']['totalrecords'] . ": <font color=red>{$TotalNumberIndex} &nbsp;条</font>\n";
                if ($sum_index != "") {
                    print $common_html['common_html']['allnumbers'] . ": <font color=red>{$TotalSumIndex} &nbsp;" . $UserUnitFunctionIndex . "</font>\n";
                }
                print "</TD>";
                print "</TR>";
                table_end();
                print "<BR>";
                break;
        }
    }
}
Exemplo n.º 2
0
function BaseStatistics($showlistfieldlist1Array, $action_model_2)
{
    global $html_etc, $common_html, $tablename, $tabletitle;
    global $db, $columns;
    global $_POST, $_GET, $primarykey_index;
    //获取系统显示的色彩信息
    $ColorArray = returnColorArray();
    //初始化信息
    $USER_Field = $showlistfieldlist1Array[0];
    $DEPT_Field = $showlistfieldlist1Array[1];
    $DATE_Field = $showlistfieldlist1Array[2];
    $FIELD_Field = $showlistfieldlist1Array[3];
    $FIELD_LIST = explode(':', $FIELD_Field);
    $Action_Model = $FIELD_LIST[0];
    switch ($Action_Model) {
        case 'NUM':
            //array_shift($FIELD_LIST);
            $SQL_Text = "Count({$FIELD_LIST['1']}) AS Number";
            break;
        case 'SUM':
            break;
    }
    $_GET['Year'] == "" ? $_GET['Year'] = Date("Y") : '';
    $Year = $_GET['Year'];
    if ($DATE_Field == "BaoBeiDate") {
        $SQL_ADD1 = "IsFor AS IsFor,";
        $SQL_ADD2 = ",IsFor";
        $SQL_ADD3 = " and IsFor = 'on' ";
        $SQL_ADD4 = "";
    } else {
        $SQL_ADD1 = "";
        $SQL_ADD2 = "";
        $SQL_ADD3 = "";
        $SQL_ADD4 = "";
    }
    $sql = "select Date_Format({$DATE_Field},'%Y-%c') AS Date,\n\t\tDate_Format({$DATE_Field},'%Y') AS Year,\n\t\t\t{$SQL_ADD1}\n\t\t\t{$SQL_Text},\n\t\t\t{$USER_Field} AS USER_Field,\n\t\t\t{$DEPT_Field} AS DEPT_Field\n\t\t\tfrom {$tablename}\n\t\t\tgroup by {$DATE_Field},{$USER_Field},{$DEPT_Field} {$SQL_ADD2}\n\t\t\thaving Year='{$Year}' {$SQL_ADD3}\n\t\t\torder by DEPT_Field\n\t\t\t";
    // having CommunicationNeeds_SureDate != null
    //$SQL = "select Date_Format($fieldName,'%c') AS $fieldName,Sum($sum_index) as sum,Count($fieldName) as num from $tablename group by $fieldName";
    //print $sql;
    $rs = $db->CacheExecute(150, $sql);
    $rs_a = $rs->GetArray();
    for ($i = 0; $i < sizeof($rs_a); $i++) {
        $list = $rs_a[$i];
        $DateValue = $list['Date'];
        $UserValue = $list['USER_Field'];
        $DeptValue = $list['DEPT_Field'];
        $NewArray['USER'][$UserValue][$DateValue] += $list['Number'];
        $NewArray['DEPT'][$DeptValue][$DateValue] += $list['Number'];
        $NewArray['DEPT_YEAR'][$DeptValue][$Year] += $list['Number'];
        $NewArray['USER_YEAR'][$UserValue][$Year] += $list['Number'];
        $NewArray['USER_DEPT'][$UserValue] = $DeptValue;
    }
    //print_R($NewArray['DEPT']);
    table_begin("900");
    $Title_URL .= "<font color=white title='客户信息统计:" . $Year . "年'>客户信息统计:" . $Year . "年</font> ";
    $Title_URL .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n\t\t\t\t<a href=\"?Year=" . ($Year - 1) . "&action_model={$action_model_2}\" title=\"点击此按钮,来确定不同的年份进行统计\"><img src=\"../../Framework/images/arrow_l.gif\" border></a>\n\t\t\t\t<a href=\"?Year=" . ($Year + 1) . "&action_model={$action_model_2}\" title=\"点击此按钮,来确定不同的年份进行统计\"><img src=\"../../Framework/images/arrow_r.gif\" border></a>\n\t\t\t\t";
    print_title("<font color=white title='按 \"" . $html_etc[$tablename][$DATE_Field . "_STS"] . "\" 进行信息统计'>[" . $html_etc[$tablename][$DATE_Field . "_STS"] . "]</font>" . $Title_URL, 15);
    //标题栏--用户区域
    print "<TR class=TableContent>\n";
    print "<TD nowrap title='用户列表'>用户列表</TD>\n";
    for ($i = 1; $i <= 12; $i++) {
        $HeaderName = Date("Y-n", mktime(0, 0, 0, $i, Date("d"), $Year));
        print "<TD nowrap title='显示" . $HeaderName . "月份数据统计信息'>{$HeaderName}</TD>\n";
    }
    print "<TD nowrap>" . $Year . "年</TD>\n";
    print "</TR>\n";
    //数据区域--用户区域
    $USER_LIST = @array_keys($NewArray['USER']);
    for ($i = 0; $i < sizeof($USER_LIST); $i++) {
        $USER_TEXT = $USER_LIST[$i];
        $DEPT_TEXT = $NewArray['USER_DEPT'][$USER_TEXT];
        $USER_TEXT_NAME = returntablefield("user", "USER_NAME", $USER_TEXT, "NICK_NAME");
        $DEPT_TEXT_NAME = returntablefield("department", "DEPT_ID", $DEPT_TEXT, "DEPT_NAME");
        print "<TR class=TableContent>\n";
        print "<TD nowrap class=TableData><font color=black title=\"" . $USER_TEXT_NAME . "一年统计数量:" . $NewArray['USER_YEAR'][$USER_TEXT][$Year] . "\">" . $USER_TEXT_NAME . "[" . $DEPT_TEXT_NAME . "]</font>&nbsp;</TD>\n";
        for ($k = 1; $k <= 12; $k++) {
            $HeaderName = Date("Y-n", mktime(0, 0, 0, $k, Date("d"), $Year));
            $HeaderName2 = Date("Y-m", mktime(0, 0, 0, $k, Date("d"), $Year));
            if ($NewArray['USER'][$USER_TEXT][$HeaderName] != "") {
                $base64_string = "action=init_default_search&searchvalue={$HeaderName2}&searchfield={$DATE_Field}&{$USER_Field}={$USER_TEXT}";
                $base64_url = base64_encode($base64_string);
                $Element = "<a href=\"crm_customer_newai.php?{$base64_url}\" target=_blank>" . $NewArray['USER'][$USER_TEXT][$HeaderName] . "</a>";
            } else {
                $Element = "";
            }
            print "<TD nowrap class=TableData>" . $Element . "&nbsp;</TD>\n";
        }
        if ($NewArray['USER_YEAR'][$USER_TEXT][$Year] != "") {
            $base64_string = "action=init_default_search&searchvalue={$Year}&searchfield={$DATE_Field}&{$USER_Field}={$USER_TEXT}";
            $base64_url = base64_encode($base64_string);
            $Element = "<a href=\"crm_customer_newai.php?{$base64_url}\" target=_blank>" . $NewArray['USER_YEAR'][$USER_TEXT][$Year] . "</a>";
        } else {
            $Element = "";
        }
        print "<TD nowrap class=TableData><font color=black title='" . $USER_TEXT_NAME . "用户" . $Year . "年客户数量:" . $NewArray['USER_YEAR'][$USER_TEXT][$Year] . "'>" . $Element . "</font>&nbsp;</TD>\n";
        print "</TR>\n";
    }
    //标题栏--部门区域
    print "<TR class=TableContent>\n";
    print "<TD nowrap title='部门列表'>部门列表</TD>\n";
    for ($i = 1; $i <= 12; $i++) {
        $HeaderName = Date("Y-n", mktime(0, 0, 0, $i, Date("d"), $Year));
        print "<TD nowrap title='显示" . $HeaderName . "月份数据统计信息'>{$HeaderName}</TD>\n";
    }
    print "<TD nowrap>" . $Year . "年</TD>\n";
    print "</TR>\n";
    //数据区域--部门区域
    $DEPT_LIST = @array_keys($NewArray['DEPT']);
    for ($i = 0; $i < sizeof($DEPT_LIST); $i++) {
        $DEPT_TEXT = $DEPT_LIST[$i];
        $DEPT_TEXT_NAME = returntablefield("department", "DEPT_ID", $DEPT_TEXT, "DEPT_NAME");
        print "<TR class=TableContent>\n";
        print "<TD nowrap class=TableData><font color=black title=\"" . $DEPT_TEXT_NAME . "一年统计数量:" . $NewArray['DEPT_YEAR'][$DEPT_TEXT][$Year] . "\">" . $DEPT_TEXT_NAME . "[" . $NewArray['DEPT_YEAR'][$DEPT_TEXT][$Year] . "]</font>&nbsp;</TD>\n";
        for ($k = 1; $k <= 12; $k++) {
            $HeaderName = Date("Y-n", mktime(0, 0, 0, $k, Date("d"), $Year));
            $HeaderName2 = Date("Y-m", mktime(0, 0, 0, $k, Date("d"), $Year));
            if ($NewArray['DEPT'][$DEPT_TEXT][$HeaderName] != "") {
                $base64_string = "action=init_default_search&searchvalue={$HeaderName2}&searchfield={$DATE_Field}&{$DEPT_Field}={$DEPT_TEXT}";
                $base64_url = base64_encode($base64_string);
                $Element = "<a href=\"crm_customer_newai.php?{$base64_url}\" target=_blank>" . $NewArray['DEPT'][$DEPT_TEXT][$HeaderName] . "</a>";
            } else {
                $Element = "";
            }
            print "<TD nowrap class=TableData>" . $Element . "&nbsp;</TD>\n";
        }
        if ($NewArray['DEPT_YEAR'][$DEPT_TEXT][$Year] != "") {
            $base64_string = "action=init_default_search&searchvalue={$Year}&searchfield={$DATE_Field}&{$DEPT_Field}={$DEPT_TEXT}";
            $base64_url = base64_encode($base64_string);
            $Element = "<a href=\"crm_customer_newai.php?{$base64_url}\" target=_blank>" . $NewArray['DEPT_YEAR'][$DEPT_TEXT][$Year] . "</a>";
        } else {
            $Element = "";
        }
        print "<TD nowrap class=TableData><font color=black title='" . $DEPT_TEXT_NAME . $Year . "年客户数量:" . $NewArray['DEPT_YEAR'][$DEPT_TEXT][$Year] . "'>" . $Element . "</font>&nbsp;</TD>\n";
        print "</TR>\n";
    }
    //合并说明
    print "<TR class=TableContent>\n";
    print "<TD nowrap colspan=15 title='如果使用浏览器打印不是太方便的话,可以复制表格数据区到MS EXCEL,然后进行排版打印' class=TableData>报表说明:点击标题栏两个黑色三角箭头,即可实现年份之间的切换&nbsp;</TD>\n";
    print "</TR>\n";
    //报表统计主体部分开始
    for ($k = 0; $k < sizeof($showlistfieldlistArray); $k++) {
        $fieldIndex = $showlistfieldlistArray[$k];
        $fieldName = $columns[$fieldIndex];
        $fieldText = $html_etc[$tablename][$fieldName];
        $mode = $showlistfieldfilterArray[$k];
        $modeArray = explode(':', $mode);
        //$rs=$db->CacheExecute(150,$SQL);
        //$rs_array=$rs->GetArray();//print_R($rs_array);
        //父表结构部分
        //本表操作部分--数据处理部分 --形成FLASH要处理的数据类型
        //本表操作部分--FALSH图表显示部分--显示FLASH图表的结果
        //本文信息显示部分
        //print_title($html_etc[$tablename][$tabletitle]."<font color=green>[".$html_etc[$tablename][$fieldName]."]</font>",40);
        print "<TR class=TableData>";
        print "<TD width=30%>名称</TD>";
        print "<TD width=30%>数目</TD>";
        print "<TD width=30%>百分比</TD>";
        print "<TD width=30%>总记录</TD>";
        print "</TR>";
        for ($i = 0; $i < sizeof($rs_array); $i++) {
            $ResultNumber = $rs_array[$i][num];
            $ResultSum = $rs_array[$i][sum];
            $ResultFieldCode = $rs_array[$i][$fieldName];
            $ResultFieldName = returntablefield($tablenameIndex, $WhatIndex, $ResultFieldCode, $ReturnIndex);
            if ($sum_index != "") {
                print "<TD noWrap width=15%>统计额度&nbsp;</TD>";
                print "<TD noWrap width=10%><font color=red>" . $ResultSum . "&nbsp;" . $UserUnitFunctionIndex . "</font></TD>";
            }
            print "<TR class=TableData>";
            print "<TD >{$ResultFieldName}</TD>";
            print "<TD >{$ResultNumber}</TD>";
            //print "<TD >".number_format($ResultNumber/$TotalNumberIndex,2,'.','')."</TD>";
            print "<TD >" . $TotalNumberIndex . "</TD>";
            print "</TR>";
        }
        print "<TR class=TableData>";
        print "<TD noWrap colspan = 40>\n";
        print "&nbsp;";
        print "</TD>";
        print "</TR>";
        table_end();
        print "<BR>";
        break;
    }
}