Ejemplo n.º 1
0
function viewChildTableList($subtable, $parent_value)
{
    global $db;
    $maintable_key = $subtable['maintable_key'];
    $table_title = $subtable['subtable_title'];
    $tablename2 = $subtable['subtable_name'];
    $childkey2 = $subtable['subtable_key'];
    $where2 = $subtable['subtable_where'];
    $where2 = str_replace("(", "(", $where2);
    $where2 = str_replace(")", ")", $where2);
    $showlistfieldlist2 = $subtable['subtable_showlistfieldlist'];
    $columns2 = returntablecolumn($tablename2);
    $html_etc2 = returnsystemlang($tablename2);
    $showlistfieldlistArray2 = explode(",", $showlistfieldlist2);
    $iniFilename = "Model/" . $tablename2 . "_newai.ini";
    if (!file_exists($iniFilename)) {
        $iniFilename = "../JXC/Model/" . $tablename2 . "_newai.ini";
    }
    if (!file_exists($iniFilename)) {
        $iniFilename = "../CRM/Model/" . $tablename2 . "_newai.ini";
    }
    if (!file_exists($iniFilename)) {
        $iniFilename = "../Framework/Model/" . $tablename2 . "_newai.ini";
    }
    $file_ini2 = parse_ini_file($iniFilename, true);
    $org_showlistfieldlist = explode(",", $file_ini2['view_default']['showlistfieldlist']);
    $org_showlistfieldfilter = explode(",", $file_ini2['view_default']['showlistfieldfilter']);
    $showlistfieldfilterArray2 = array();
    for ($i = 0; $i < sizeof($org_showlistfieldlist); $i++) {
        if (in_array($org_showlistfieldlist[$i], $showlistfieldlistArray2)) {
            $showlistfieldfilterArray2[$org_showlistfieldlist[$i]] = $org_showlistfieldfilter[$i];
        }
    }
    //构建SQL语句
    $SQLText = "";
    for ($i = 0; $i < sizeof($showlistfieldlistArray2); $i++) {
        $listIndex = $showlistfieldlistArray2[$i];
        $listIndexName = $columns2[$listIndex];
        if ($SQLText != "") {
            $SQLText .= ",";
        }
        $SQLText .= $listIndexName;
    }
    if (is_array($parent_value)) {
        $childkey2Array = explode(",", $childkey2);
        $mainkey2Array = explode(",", $maintable_key);
        $SQL_Select = "select {$SQLText} from {$tablename2} where 1=1 ";
        $i = 0;
        foreach ($mainkey2Array as $row) {
            $SQL_Select = $SQL_Select . "and " . $childkey2Array[$i] . "='" . $parent_value[$row] . "' ";
            $i++;
        }
    } else {
        $SQL_Select = "select {$SQLText} from {$tablename2} where {$childkey2} = '" . $parent_value . "'";
    }
    if ($where2 != '') {
        $where2 = str_replace(":", "=", $where2);
        $where2 = str_replace("\\", "", $where2);
        $SQL_Select .= " and " . $where2;
    }
    $rs = $db->Execute($SQL_Select);
    $rs_a = $rs->GetArray();
    //print_R($rs_a);print_R($showlistfieldlistArray2);
    print "<tr ><td colspan=6 nowrap width=100%>\n";
    table_begin("100%");
    //标题显示部分
    if ($table_title != "") {
        $url_filename = $tablename2 . "_newai.php";
        if (file_exists("../JXC/" . $url_filename)) {
            $url_filename = "../JXC/" . $url_filename;
        } else {
            if (file_exists("../CRM/" . $url_filename)) {
                $url_filename = "../CRM/" . $url_filename;
            } else {
                $url_filename = "";
            }
        }
        if ($url_filename != '') {
            $table_title = "<a href='{$url_filename}' target='_blank'>{$table_title}</a>";
        }
        print "<tr><td class=TableHeader align=center colspan=" . sizeof($showlistfieldlistArray2) . ">{$table_title}</td></tr>";
    }
    print "<tr class=TableContent>\n";
    for ($i = 0; $i < sizeof($showlistfieldlistArray2); $i++) {
        $listIndex = $showlistfieldlistArray2[$i];
        $listIndexName = $columns2[$listIndex];
        $listFilter = $showlistfieldfilterArray2[$listIndex];
        $listFilterArray = explode(":", $listFilter);
        if (stristr($listFilterArray[0], "tablefilter") && $listFilterArray[1] == $tablename2) {
            $TempColumns = returntablecolumn($listFilterArray[1]);
            $showText = $html_etc2[$tablename2][$TempColumns[$listFilterArray[3]]];
        } else {
            $showText = $html_etc2[$tablename2][$listIndexName];
        }
        print "<td nowrap>" . $showText . "</td>";
    }
    print "</tr>";
    $allnum = array();
    $allmoney = array();
    //数据窗口部分
    for ($j = 0; $j < sizeof($rs_a); $j++) {
        print "<tr class=TableData>\n";
        for ($i = 0; $i < sizeof($showlistfieldlistArray2); $i++) {
            $listIndex = $showlistfieldlistArray2[$i];
            $listIndexName = $columns2[$listIndex];
            $listFilter = $showlistfieldfilterArray2[$listIndex];
            //数据过滤区
            $listFilterArray = explode(":", $listFilter);
            if (stristr($listFilterArray[0], 'color')) {
                $hascolor = true;
            } else {
                $hascolor = false;
            }
            $nowrap = "";
            if (strlen($rs_a[$j][$listIndexName]) < 20) {
                $nowrap = "nowrap";
            }
            switch ($listFilterArray[0]) {
                case 'tablefilter':
                case 'tablefiltercolor':
                    $TempColumns = returntablecolumn($listFilterArray[1]);
                    $DataElement = returntablefieldColorFilterGray($listFilterArray[1], $TempColumns[(string) $listFilterArray[2]], $rs_a[$j][$listIndexName], $TempColumns[(string) $listFilterArray[3]], '', '', '', $hascolor);
                    break;
                case 'radiofilter':
                    $TempColumns = returntablecolumn($listFilterArray[1]);
                    $DataElement = returntablefield($listFilterArray[1], $TempColumns[(string) $listFilterArray[2]], $rs_a[$j][$listIndexName], $TempColumns[(string) $listFilterArray[3]]);
                    break;
                case 'radiofiltergroup':
                    $TempColumns = returntablecolumn($listFilterArray[1]);
                    $DataElement = returntablefield($listFilterArray[1], $TempColumns[(string) $listFilterArray[2]], $rs_a[$j][$listIndexName], $TempColumns[(string) $listFilterArray[3]]);
                    break;
                case 'select_sex':
                    $DataElement = returnsex($rs_a[$j][$listIndexName]);
                    break;
                case 'boolean':
                    $DataElement = returnboolean($rs_a[$j][$listIndexName]);
                    break;
                case 'datetime':
                    if ($rs_a[$j][$listIndexName] == '0000-00-00 00:00:00') {
                        $DataElement = '';
                    } else {
                        $DataElement = $rs_a[$j][$listIndexName];
                    }
                    break;
                    /*
                    case 'input':
                    	$DataElement=cutStr($rs_a[$j][$listIndexName],15);
                    	if($DataElement!=$rs_a[$j][$listIndexName])
                    		$DataElement="<span title='".$rs_a[$j][$listIndexName]."'>".$DataElement."..</span>";
                    	else
                    		$DataElement = $rs_a[$j][$listIndexName];
                    	break;
                    case 'textarea':
                    	if(cutStr($rs_a[$j][$listIndexName],30)!=$rs_a[$j][$listIndexName])
                    		$DataElement = "<div title='".$rs_a[$j][$listIndexName]."'>".cutStr($rs_a[$j][$listIndexName],30)."...</div>";
                    	else 
                    		$DataElement = $rs_a[$j][$listIndexName];
                    	break;
                    */
                /*
                case 'input':
                	$DataElement=cutStr($rs_a[$j][$listIndexName],15);
                	if($DataElement!=$rs_a[$j][$listIndexName])
                		$DataElement="<span title='".$rs_a[$j][$listIndexName]."'>".$DataElement."..</span>";
                	else
                		$DataElement = $rs_a[$j][$listIndexName];
                	break;
                case 'textarea':
                	if(cutStr($rs_a[$j][$listIndexName],30)!=$rs_a[$j][$listIndexName])
                		$DataElement = "<div title='".$rs_a[$j][$listIndexName]."'>".cutStr($rs_a[$j][$listIndexName],30)."...</div>";
                	else 
                		$DataElement = $rs_a[$j][$listIndexName];
                	break;
                */
                case 'qq':
                    $DataElement = !empty($rs_a[$j][$listIndexName]) ? "<a target=\"_blank\" href=\"http://wpa.qq.com/msgrd?v=3&amp;uin=" . $rs_a[$j][$listIndexName] . "&amp;site=qq&amp;menu=yes\"><img border=\"0\" src=\"http://wpa.qq.com/pa?p=2:" . $rs_a[$j][$listIndexName] . ":45\" onerror=\"this.src='" . ROOT_DIR . "general/ERP/Framework/images/help3.gif';this.title='此QQ号码可能不存在'\" title=\"点击这里发消息\">" . $rs_a[$j][$listIndexName] . "</a>" : '';
                    break;
                case 'mobile':
                    $addicon = "<img  src='" . ROOT_DIR . "general/ERP/Framework/images/menu/gif-0348.gif' title='点击号码发送短信'>";
                    if ($rs_a[$j][$listIndexName] != '') {
                        $DataElement = "<a href='../JXC/sms_sendlist_newai.php?" . base64_encode("action=add_default&sendlist=" . $rs_a[$j][$listIndexName]) . "' target='_blank'>" . $addicon . $rs_a[$j][$listIndexName] . "</a>";
                    } else {
                        $DataElement = $rs_a[$j][$listIndexName];
                    }
                    break;
                case 'email':
                    $linkman = '';
                    $fromsrc = '';
                    if ($tablename2 == 'linkman') {
                        $fromsrc = 'customer';
                        $linkman = gettablefield($tablename2, 'email', 'rowid', $rs_a[$j][$listIndexName]);
                    } else {
                        if ($tablename2 == 'supplylinkman') {
                            $fromsrc = 'supply';
                            $linkman = gettablefield($tablename2, 'email', 'rowid', $rs_a[$j][$listIndexName]);
                        } else {
                            $linkman = $rs_a[$j][$listIndexName];
                            $fromsrc = '';
                        }
                    }
                    $addicon = "<img src='" . ROOT_DIR . "general/ERP/Framework/images/menu/gif-0037.gif' title='点击链接发送邮件'>";
                    if ($rs_a[$j][$listIndexName] != '') {
                        $DataElement = "<a href='../CRM/email_newai.php?" . base64_encode("action=add_default&sendlist=" . $linkman . "&fromsrc=" . $fromsrc) . "' target='_blank' >" . $addicon . $rs_a[$j][$listIndexName] . "</a>";
                    }
                    break;
                case 'picturefile':
                    global $ifincludemaginfier;
                    $PicturePath = $rs_a[$j][$listIndexName];
                    if ($PicturePath != "" && strlen($PicturePath) > 10) {
                        if (!$ifincludemaginfier) {
                            print "<script type=\"text/javascript\" language=\"javascript\" src=\"" . ROOT_DIR . "general/ERP/Enginee/jquery/jquery.js\"></script>";
                            print "<script type=\"text/javascript\" language=\"javascript\" src=\"" . ROOT_DIR . "general/ERP/Enginee/jquery/jquery.magnifier.js\"></script>";
                            $ifincludemaginfier = true;
                        }
                        $DataElement = "<img src='" . $PicturePath . "' width=32  class=\"magnify\"  data-magnifyto=\"500\" onmouseover=\"this.style.cursor='pointer';this.style.cursor='hand'\" onmouseout=\"this.style.cursor='default'\">";
                        //$file_path="<a href='$PicturePath'><img src='".$PicturePath."' border=0 width=120></a>";
                    } else {
                        $DataElement = "";
                    }
                    break;
                case 'userdefine':
                    $functionName = trim($listFilterArray[1]);
                    $fileName = $functionName . ".php";
                    $fileName0 = "userdefine/{$fileName}";
                    $fileName = "../../Enginee/userdefine/{$fileName}";
                    if (file_exists($fileName0)) {
                        require_once $fileName0;
                        $functionName = $functionName . "_value";
                        if (function_exists($functionName)) {
                            $DataElement = $functionName($rs_a[$j][$listIndexName], $rs_a, $j);
                        }
                    } else {
                        $DataElement = $rs_a[$j][$listIndexName];
                    }
                    break;
                case 'tdoafile':
                    require_once 'lib/utility_file.php';
                    //形成通达OA下载文件所需要的变量格式
                    $var_value_array = explode('||', $rs_a[$j][$listIndexName]);
                    $ATTACHMENT_ID = $var_value_array[1];
                    $ATTACHMENT_NAME = $var_value_array[0];
                    if (strlen($rs_a[$j][$listIndexName]) < 3) {
                        $file_path = "无附件";
                    } else {
                        $file_path = attach_link($ATTACHMENT_ID, $ATTACHMENT_NAME, 1, 1, 1, 0, 0, 1, 1, 0);
                    }
                    //print_R($ATTACHMENT_NAME);exit;
                    print "<script src=\"../../Enginee/lib/attach.js\"></script>";
                    print "\n\t\t\t\t\t<input type=\"hidden\" name=\"ATTACHMENT_ID_OLD\" value=\"{$ATTACHMENT_ID}\">\n\t\t\t\t\t<input type=\"hidden\" name=\"ATTACHMENT_NAME_OLD\" value=\"{$ATTACHMENT_NAME}\">";
                    $DataElement = $file_path;
                    break;
                default:
                    $DataElement = $rs_a[$j][$listIndexName];
                    break;
            }
            if ($listIndexName == 'zhekou') {
                $DataElement = $DataElement * 100 . "%";
            }
            $tip = '';
            if ((stristr($tablename2, "detail") || $tablename2 == "store_product") && $listIndexName == 'num') {
                $tablename3 = $tablename2 . "_color";
                if ($tablename2 == "store_product") {
                    $tablename3 = "store_color";
                }
                $sql = "SELECT COUNT(*) as allnum FROM information_schema.TABLES WHERE TABLE_NAME='{$tablename3}'";
                $rs = $db->Execute($sql);
                if ($rs->fields['allnum'] == 1) {
                    $sql = "select id,{$SQLText} from {$tablename2} where {$childkey2} = '" . $parent_value . "'";
                    $rs = $db->Execute($sql);
                    $rs_id = $rs->GetArray();
                    $id = $rs_id[$j][id];
                    $sql = "select a.num,b.name from {$tablename3} a inner join productcolor b on a.color=b.id where a.id={$id}";
                    $rs = $db->Execute($sql);
                    $rs_color = $rs->GetArray();
                    foreach ($rs_color as $row) {
                        $tip .= $row[name] . ":" . $row[num] . "\r\n";
                    }
                    if ($tip != '') {
                        $tip = " <span title='{$tip}'><img src='" . ROOT_DIR . "general/ERP/Framework/images/sepan.gif'></span>";
                    }
                }
            }
            print "<td {$nowrap}>" . $DataElement . $tip . "</td>";
            if (stristr($html_etc2[$tablename2][$listIndexName], "数量")) {
                $allnum[$html_etc2[$tablename2][$listIndexName]] = $allnum[$html_etc2[$tablename2][$listIndexName]] + $rs_a[$j][$listIndexName];
            } else {
                if (stristr($html_etc2[$tablename2][$listIndexName], "金额")) {
                    $allmoney[$html_etc2[$tablename2][$listIndexName]] = $allmoney[$html_etc2[$tablename2][$listIndexName]] + $rs_a[$j][$listIndexName];
                }
            }
        }
        print "</tr>";
    }
    if (sizeof($allnum) > 0 || sizeof($allmoney) > 0) {
        print "<tr class=TableData><td align=center><b>合计</b></td>";
        for ($i = 1; $i < sizeof($showlistfieldlistArray2); $i++) {
            $listIndex = $showlistfieldlistArray2[$i];
            $listIndexName = $columns2[$listIndex];
            if (array_key_exists($html_etc2[$tablename2][$listIndexName], $allnum)) {
                print "<td nowrap>" . $allnum[$html_etc2[$tablename2][$listIndexName]] . "</td>";
            } else {
                if (array_key_exists($html_etc2[$tablename2][$listIndexName], $allmoney)) {
                    print "<td nowrap>" . $allmoney[$html_etc2[$tablename2][$listIndexName]] . "</td>";
                } else {
                    print "<td nowrap></td>";
                }
            }
        }
        print "</tr>";
    }
    if (sizeof($rs_a) == 0) {
        print "<tr class=TableData><td align=center nowrap colspan=" . sizeof($showlistfieldlistArray2) . "><font color=gray>无此项记录</font></td>";
        print "</tr>";
    }
    table_end();
    print "</td></tr>";
}
Ejemplo n.º 2
0
function newaiReport($fields, $list, $mode)
{
    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 $showlistfieldlist, $showlistfieldfilter;
    $showlistfieldlistArray = explode(',', $showlistfieldlist);
    $showlistfieldfilterArray = explode(',', $showlistfieldfilter);
    //SQL语句初始化区
    $fields['other']['title'] = $common_html['common_html'][$mode];
    $_GET[$primarykey_index] = $list;
    $return_sql_line = return_sql_line($fields);
    $SQL = $return_sql_line['select_sql'];
    //print $SQL;
    //多项数据搜索部分 如果定义了外部SQL语句,即结果集为多数据时采用外部SQL语句
    global $NEWAI_REPORT_SEARCH_SYSTEM;
    if (strlen($NEWAI_REPORT_SEARCH_SYSTEM) > 10 && $mode == "Multiple") {
        $SQL = $NEWAI_REPORT_SEARCH_SYSTEM;
    }
    //定义要显示的结果集,默认为30个结果集
    global $totalnumber;
    $totalnumber == "" ? $totalnumber = 30 : '';
    //执行SQL语言部分
    $result = $db->CacheSelectLimit(15, $SQL, $totalnumber, 0);
    $rs_array = $result->GetArray();
    //数据显示区,其含数据过滤部分
    for ($h = 0; $h < sizeof($rs_array); $h++) {
        $ReportData = $rs_array[$h];
        //数据过滤区 - Begin #################################################
        for ($f = 0; $f < sizeof($showlistfieldlistArray); $f++) {
            $filterIndex = $showlistfieldlistArray[$f];
            //索引列表值
            $filterType = $showlistfieldfilterArray[$f];
            //过滤列表值
            $filterName = $columns[$filterIndex];
            //列表名称
            $TypeNameFilterArray = explode(':', $filterType);
            //对应的过滤数组
            switch ($TypeNameFilterArray[0]) {
                case 'input':
                    break;
                case 'boolean':
                    $ReportData[$filterName] = returnboolean($ReportData[$filterName]);
                    break;
                case 'tablefilter':
                    $filterTableName = $TypeNameFilterArray[1];
                    $filterTableColumns = returntablecolumn($filterTableName);
                    $filterTableFieldID = $filterTableColumns[(string) $TypeNameFilterArray[2]];
                    $filterTableFieldName = $filterTableColumns[(string) $TypeNameFilterArray[3]];
                    $filterResultText = returntablefield($filterTableName, $filterTableFieldID, $ReportData[$filterName], $filterTableFieldName);
                    $ReportData[$filterName] = $filterResultText;
                    break;
                case 'userdefine':
                    $filtervalue = $fields['value'][$counter][$list_index];
                    $functionName = $TypeNameFilterArray[1];
                    $fileName = $functionName . ".php";
                    $fileName0 = "userdefine/{$fileName}";
                    $fileName = "../../Enginee/userdefine/{$fileName}";
                    if (file_exists($fileName0)) {
                        require_once $fileName0;
                        $functionName = $functionName . "_Value";
                        if (function_exists($functionName)) {
                            $ReportData[$filterName] = $functionName($fields['value'][$counter][$list_index], $fields, $counter);
                        }
                    } else {
                        if (file_exists($fileName)) {
                            require_once $fileName;
                            $functionName = $functionName . "_Value";
                            if (function_exists($functionName)) {
                                $ReportData[$filterName] = $functionName($fields['value'][$counter][$list_index], $fields, $counter);
                            } else {
                                print "函数名称[{$functionName}]不存在!";
                            }
                        } else {
                            print "没有相应文件,文件名:{$fileName}";
                        }
                    }
                    break;
            }
        }
        //数据过滤区 - End ##################################################
        print "<BR>";
        table_begin("80%");
        print "<TR class=TableHeader>";
        print "<TD noWrap colspan=4>" . $html_etc[$tablename][$tablename] . $common_html['common_html']['report'] . "&nbsp;</TD>";
        print "</TR>";
        $Counter = 0;
        for ($i = 0; $i < sizeof($showlistfieldlistArray); $i += 2) {
            $fieldName1 = (string) $columns[(string) $showlistfieldlistArray[$i]];
            $k = $i + 1;
            $fieldName2 = (string) $columns[(string) $showlistfieldlistArray[$k]];
            print "<TR class=TableData>";
            print "<TD noWrap width=15%>" . $html_etc[$tablename][$fieldName1] . "&nbsp;</TD>";
            print "<TD width=35%>" . $ReportData[$fieldName1] . "&nbsp;</TD>";
            print "<TD noWrap width=15%>" . $html_etc[$tablename][$fieldName2] . "&nbsp;</TD>";
            print "<TD width=35%>" . $ReportData[$fieldName2] . "&nbsp;</TD>";
            print "</TR>";
        }
        table_end();
    }
    //end of rs_array
    //##############################################################################
    //实现子目录列表
    global $child_tablename, $child_showlistfieldlist;
    global $child_partent, $child_showlistfieldfilter;
    //子目录列表开始
    if ($child_tablename != "" && $child_showlistfieldlist != "") {
        $child_columns = returntablecolumn($child_tablename);
        $child_html_etc = returnsystemlang($child_tablename);
        table_begin("80%");
        print "<TR class=TableHeader>";
        print "<TD noWrap width=100% colspan=32>" . $child_html_etc[$child_tablename]["list" . $child_tablename] . "&nbsp;</td>";
        print "</TR>";
        print "<TR class=TableHeader>";
        $child_showlistfieldlist_Array = explode(",", $child_showlistfieldlist);
        $child_showlistfieldfilter_Array = explode(",", $child_showlistfieldfilter);
        for ($i = 0; $i < sizeof($child_showlistfieldlist_Array); $i++) {
            $child_index = $child_showlistfieldlist_Array[$i];
            $indexName = $child_columns[$child_index];
            print "<TD noWrap>" . $child_html_etc[$child_tablename][$indexName] . "&nbsp;</td>";
        }
        print "</TR>";
        //子表与父表关联部分
        $child_partent_Array = explode(":", $child_partent);
        $sql = "select * from {$child_tablename} where " . $child_columns[(string) $child_partent_Array[0]] . "='" . $list . "'";
        $rs = $db->CacheExecute(150, $sql);
        $rs_a = $rs->GetArray();
        for ($i = 0; $i < sizeof($rs_a); $i++) {
            print "<TR class=TableData>";
            for ($j = 0; $j < sizeof($child_showlistfieldlist_Array); $j++) {
                $child_index = $child_showlistfieldlist_Array[$j];
                $indexName = $child_columns[$child_index];
                $ChildValue = $rs_a[$i][$indexName];
                $filterType = $child_showlistfieldfilter_Array[$j];
                $TypeNameFilterArray = explode(":", $filterType);
                switch ($TypeNameFilterArray[0]) {
                    case 'input':
                        break;
                    case 'boolean':
                        $ChildValue = returnboolean($ChildValue);
                        break;
                    case 'tablefilter':
                        $filterTableName = $TypeNameFilterArray[1];
                        $filterTableColumns = returntablecolumn($filterTableName);
                        $filterTableFieldID = $filterTableColumns[(string) $TypeNameFilterArray[2]];
                        $filterTableFieldName = $filterTableColumns[(string) $TypeNameFilterArray[3]];
                        $filterResultText = returntablefield($filterTableName, $filterTableFieldID, $ChildValue, $filterTableFieldName);
                        $ChildValue = $filterResultText;
                        break;
                }
                print "<TD noWrap>" . $ChildValue . "&nbsp;</td>";
            }
            print "</TR>";
        }
        UserDefineFunction($list);
        table_end();
        print "<BR>";
        print "<hr width=\"80%\" height=\"1\" align=\"{$align}\" color=\"white\">";
        print "<BR>";
    }
    //子目录列表结束
    //##############################################################################
}