ORA_FunctionCall("rep_general.get_param_name('$param[0]')");
$paramList .= "- ".$paramtitle."=".$param[1]."
";
}
}
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
Archive |
NO |
NAMA LAPORAN |
NO LAPORAN |
TANGGAL ORDER PERTAMA |
PARAMETER LAPORAN |
<>
|
|
params;
$arcTemplate['LIST'] = <<< params
<> |
<> |
<> |
<> <> |
<> |
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"),'
',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);
}
}
}
?>