198 lines
6.8 KiB
PHP
198 lines
6.8 KiB
PHP
<?php
|
|
|
|
include_once 'class/PregReplaceCallbackClass.php';
|
|
|
|
|
|
function show_number_formatted($value) {
|
|
if ( $value < 0 ) {
|
|
$nf = '('.number_format(abs($value),DECIMAL_POINT,DECIMAL_SEP,THOUSAND_SEP).')';
|
|
} else {
|
|
$nf = number_format($value,DECIMAL_POINT,DECIMAL_SEP,THOUSAND_SEP);
|
|
}
|
|
return $nf;
|
|
}
|
|
|
|
|
|
function explode_param(&$ora_obj, $paramValue) {
|
|
$repParam = explode(chr(31), $paramValue);
|
|
$count = count($repParam);
|
|
$paramList="";
|
|
for ($i=0;$i<=$count-2;$i++) {
|
|
$param = explode(chr(30), $repParam[$i]);
|
|
if ($param[0] != 'REP_NAME') {
|
|
$paramtitle = $ora_obj->ORA_FunctionCall("rep_general.get_param_name('$param[0]')");
|
|
$paramList .= "- ".$paramtitle."=".$param[1]."<BR>";
|
|
}
|
|
}
|
|
return $paramList;
|
|
}
|
|
|
|
|
|
function build_tanggal($tgl) {
|
|
$hari = substr($tgl,8,2);
|
|
$bulan = substr($tgl,5,2);
|
|
$tahun = substr($tgl,0,4);
|
|
$tgl_fmt = $hari.'-'.$bulan.'-'.$tahun;
|
|
return $tgl_fmt;
|
|
}
|
|
|
|
|
|
function initArchive(){
|
|
$arcTemplate['ARCHIVE'] = <<< params
|
|
<tr>
|
|
<td Align=center width=100%>
|
|
<table bgColor=#F7F7F7 border=0 cellPadding=5 cellSpacing=1 width="100%">
|
|
<tr>
|
|
<td class="font20" align=left>Archive</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<table width="100%" cellpadding="2" cellspacing="1" border="1" style="layout:auto">
|
|
<tr class="paramtable">
|
|
<td align=center class="font9BW">NO</td>
|
|
<td align=center class="font9BW">NAMA LAPORAN</td>
|
|
<td align=center class="font9BW">NO LAPORAN</td>
|
|
<td align=center class="font9BW">TANGGAL ORDER<BR>PERTAMA</td>
|
|
<td align=center class="font9BW">PARAMETER LAPORAN</td>
|
|
</tr>
|
|
<<ARCHIVE_LIST>>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
params;
|
|
|
|
$arcTemplate['LIST'] = <<< params
|
|
<tr onclick="javascript:rep_archive(<<N_RESULTKEY>>);" onmouseover="changeColor(this,'#FFFF99');" onmouseout="changeColor(this,'#F7F7F7');">
|
|
<td align=Right valign=top class="font9"><<COUNTER>></td>
|
|
<td align=left valign=top class="font9" width=200><<REP_NAME>></td>
|
|
<td align=center valign=top nowrap class="font9"><<N_RESULTKEY>></td>
|
|
<td align=center valign=top nowrap class="font9"><<TGL_CETAK>><BR><<WAKTU_CETAK>></td>
|
|
<td align=left valign=top nowrap class="font9"><<PARAM_REPORT>></td>
|
|
</tr>
|
|
params;
|
|
|
|
$_SESSION['ARC_ARRAY_ADDR'] = &$arcTemplate;
|
|
}
|
|
|
|
|
|
function getArchiveData(&$ora_obj, $rep_id) {
|
|
$templObj = new PregReplaceCallbackClass('');
|
|
$templObj->SetTemplateArray('ARC_ARRAY_ADDR');
|
|
|
|
$sql = <<< sql
|
|
SELECT a.n_resultkey, a.rep_param, a.rep_name, TO_CHAR(a.date_created,'DD Month YYYY','NLS_DATE_LANGUAGE=INDONESIAN') as TGL_CETAK,
|
|
TO_CHAR(a.date_created,'HH24:MI:SS') as WAKTU_CETAK
|
|
FROM rep_archive a
|
|
WHERE a.kd_user = '{$_SESSION["KD_USER"]}' AND a.rep_id = '{$rep_id}'
|
|
ORDER BY a.n_resultkey DESC
|
|
sql;
|
|
|
|
$MultiDArray = $ora_obj->ORA_SelectData($sql,null,null,OCI_FETCHSTATEMENT_BY_ROW);
|
|
if ($ora_obj->nrows>0) {
|
|
foreach ($MultiDArray as $pkey => $pval) {
|
|
$variable_array['COUNTER']++;
|
|
foreach ($pval as $rkey => $rval) {
|
|
$variable_array[$rkey] = $rval;
|
|
}
|
|
$paramList = explode_param($ora_obj, $variable_array["REP_PARAM"]);
|
|
$_SESSION['ARRAY_ADDR_VAR'] = &$variable_array;
|
|
$variable_array['PARAM_REPORT'] = $paramList;
|
|
$templObj->SetFormatName('LIST');
|
|
$list .= $templObj->PregReplaceCallback();
|
|
}
|
|
$variable_array['ARCHIVE_LIST'] = $list;
|
|
$templObj->SetFormatName('ARCHIVE');
|
|
$result = $templObj->PregReplaceCallback();
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
|
|
function get_archive(&$ora_obj, $rep_id) {
|
|
initArchive();
|
|
$result = getArchiveData($ora_obj, $rep_id);
|
|
return $result;
|
|
}
|
|
|
|
|
|
function generateXLSFile(&$ora_obj, $mode, $rep_id) {
|
|
require_once "class/excel.php";
|
|
$xlsFile = "{$_SERVER['DOCUMENT_ROOT']}/xls/{$mode}_{$rep_id}.xls";
|
|
|
|
if ( ! file_exists($xlsFile)) {
|
|
|
|
$sql = <<< sql
|
|
SELECT a.rep_header, i.rep_content, i.n_rowno, a.rep_name
|
|
FROM rep_info i, rep_archive a
|
|
WHERE i.kd_user = a.kd_user AND i.n_resultkey = a.n_resultkey
|
|
AND i.kd_user = '{$_SESSION["KD_USER"]}' AND i.n_resultkey = {$rep_id}
|
|
ORDER BY i.n_rowno
|
|
sql;
|
|
|
|
$MultiDArray = $ora_obj->ORA_SelectData($sql,null,null,OCI_FETCHSTATEMENT_BY_ROW);
|
|
if ($ora_obj->nrows >0) {
|
|
foreach($MultiDArray as $key => $val){
|
|
$MultiDArray[$key]['REP_CONTENT'] = str_replace(array('&'),'&',$MultiDArray[$key]['REP_CONTENT']);
|
|
$xml[$key] = $MultiDArray[$key]['REP_CONTENT'];
|
|
$header = $MultiDArray[$key]['REP_HEADER'];
|
|
$repName = $MultiDArray[$key]['REP_NAME'];
|
|
|
|
}
|
|
foreach ($xml as $xkey => $xval) {
|
|
$xml_obj = simplexml_load_string($xml[$xkey]);
|
|
foreach ($xml_obj as $xml_obj_array){
|
|
$name = $xml_obj_array->getName();
|
|
if (is_null($counter[$name])){
|
|
$counter[$name] = 0;
|
|
}
|
|
$xml_result[$name][$counter[$name]] = $xml_obj_array;
|
|
$counter[$name]++;
|
|
}
|
|
}
|
|
|
|
$XLS_STREAM_ARRAY[] = array('0'=>$repName);
|
|
$XLS_STREAM_ARRAY[] = array('0'=>"");
|
|
|
|
$repHead = explode('^', $header);
|
|
$count = count($repHead);
|
|
for ($i=0;$i<=$count-2;$i++) {
|
|
$xlsHeader .= $repHead[$i]."\t";
|
|
}
|
|
$xlsHeader = substr($xlsHeader,0,strlen($xlsHeader)-1);
|
|
$tempxlsHeader = split("\t",$xlsHeader);
|
|
$XLS_STREAM_ARRAY[] = $tempxlsHeader;
|
|
|
|
foreach ($xml_result as $key => $val) {
|
|
$field = $key;
|
|
unset($element);
|
|
foreach ($val as $p_key => $p_val) {
|
|
unset($item_rep);
|
|
foreach ($p_val as $q_key => $q_val) {
|
|
$q_key = trim($q_key);
|
|
$variable_array[$q_key] = str_replace(array("\r\n","\n","\r"),'<br />',htmlspecialchars_decode($p_val->$q_key));
|
|
$xlsElement .= $variable_array[$q_key]."\t";
|
|
}
|
|
$xlsElement = substr($xlsElement,0,strlen($xlsElement)-1);
|
|
$tempxlsElement = split("\t",$xlsElement);
|
|
$XLS_STREAM_ARRAY[] = $tempxlsElement;
|
|
$xlsElement = '';
|
|
}
|
|
}
|
|
$export_file = "xlsfile:/{$xlsFile}";
|
|
$fp = fopen($export_file, "wb");
|
|
if (!is_resource($fp))
|
|
{
|
|
die("Cannot open $export_file");
|
|
}
|
|
|
|
fwrite($fp, serialize($XLS_STREAM_ARRAY));
|
|
fclose($fp);
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|