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&uin=" . $rs_a[$j][$listIndexName] . "&site=qq&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>"; }
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'] . " </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] . " </TD>"; print "<TD width=35%>" . $ReportData[$fieldName1] . " </TD>"; print "<TD noWrap width=15%>" . $html_etc[$tablename][$fieldName2] . " </TD>"; print "<TD width=35%>" . $ReportData[$fieldName2] . " </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] . " </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] . " </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 . " </td>"; } print "</TR>"; } UserDefineFunction($list); table_end(); print "<BR>"; print "<hr width=\"80%\" height=\"1\" align=\"{$align}\" color=\"white\">"; print "<BR>"; } //子目录列表结束 //############################################################################## }