From 4e85e9f21349c1d99e45680f7148c162c55a405c Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 26 Mar 2014 11:22:12 +0000 Subject: [PATCH] =?UTF-8?q?Excel=20Export=20mit=20Spreadsheet=20eingef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/zeitsperre_days.php | 264 +++++++++++++++++------- 1 file changed, 193 insertions(+), 71 deletions(-) diff --git a/cis/private/profile/zeitsperre_days.php b/cis/private/profile/zeitsperre_days.php index c2c2177f8..8d9eead97 100644 --- a/cis/private/profile/zeitsperre_days.php +++ b/cis/private/profile/zeitsperre_days.php @@ -35,6 +35,7 @@ require_once('../../../include/zeitsperre.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/sprache.class.php'); +require_once('../../../include/Excel/excel.php'); $datum_obj = new datum(); $sprache = getSprache(); @@ -53,6 +54,17 @@ if(isset($_REQUEST['lektor'])) $lektor=$_REQUEST['lektor']; else $lektor=null; + +// Link fuer den Export +$export_link='zeitsperre_days.php?format=xls&'; +$export_param=''; + +if(!is_null($days)) + $export_param.=($export_param!=''?'&':'')."days=$days"; +if(!is_null($lektor)) + $export_param.=($export_param!=''?'&':'')."lektor=$lektor"; + +$export_link.=$export_param; $datum_beginn=date('Y-m-d'); $ts_beginn=$datum_obj->mktime_fromdate($datum_beginn); @@ -63,44 +75,186 @@ $datum_ende=date('Y-m-d',$ts_ende); $ma=new mitarbeiter(); $mitarbeiter=$ma->getMitarbeiterZeitsperre($datum_beginn,$datum_ende,$lektor); -echo ' - - - '.$p->t('zeitsperre/zeitsperren').' - - - - - -

'.$p->t('zeitsperre/zeitsperren').'

- -
'.$p->t('zeitsperre/anzahlTage').'
-

'.$p->t('zeitsperre/zeitsperreVonBis',array($datum_beginn, $datum_ende)).'

- - '; - -echo ''; -for ($ts=$ts_beginn;$ts<=$ts_ende; $ts+=$datum_obj->ts_day) +if(isset($_REQUEST['format']) && $_REQUEST['format']=='xls') { - $tag=date('d',$ts); - $wt=date('N',$ts); - $monat=date('M',$ts); + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + + // sending HTTP headers + $workbook->send($p->t('zeitsperre/zeitsperren').".xls"); + $workbook->setVersion(8); + // Creating a worksheet + $worksheet =& $workbook->addWorksheet($p->t('zeitsperre/zeitsperren')); + $worksheet->setInputEncoding('utf-8'); + $worksheet->setZoom (85); + $worksheet->freezePanes(array(1, 0, 1, 0)); + //Formate Definieren + $format_header =& $workbook->addFormat(); + $format_header->setBold(); + $format_header->setAlign("center"); + $format_header->setVAlign('vcenter'); + $format_header->setTextWrap(); - if ($wt==6 || $wt==7) - $class='feiertag'; - else - $class=''; - - echo ""; -} + $format_header_feiertag =& $workbook->addFormat(); + $format_header_feiertag->setBold(); + $format_header_feiertag->setAlign("center"); + $format_header_feiertag->setVAlign('vcenter'); + $format_header_feiertag->setFgColor('yellow'); + $format_header_feiertag->setTextWrap(); + + $format_namen =& $workbook->addFormat(); + $format_namen->setVAlign('top'); + + $format_legende =& $workbook->addFormat(); + $format_legende->setBold(); + $format_legende->setAlign("left"); + $format_legende->setVAlign('vcenter'); + + $format_mehrzeilig = &$workbook->addFormat(array('Align' => 'left')); + $format_mehrzeilig->setVAlign('top'); + $format_mehrzeilig->setTextWrap(); -echo ''; -$zs=new zeitsperre(); -if (!empty ($mitarbeiter)) -{ - foreach ($mitarbeiter as $ma) + $spalte=0; + $zeile=0; + + $worksheet->write(0,$spalte,$p->t('global/datum'), $format_header); + $maxlength[0]=20; + for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day) + { + $tag=date('d',$ts); + $wt=date('N',$ts); + $monat=date('M',$ts); + if ($wt==7 || $wt==6) + $class='feiertag'; + else + $class=''; + $datum = $tagbez[$sprache_index][$wt]. "\n"; + $datum .= $tag.' '.$monat; + $worksheet->write(0,++$spalte,$datum, ($class!=''?$format_header_feiertag:$format_header)); + $maxlength[$spalte]=15; + } + + $zeile=0; + $spalte=0; + $zs=new zeitsperre(); + if (!empty ($mitarbeiter)) { - $zs->getzeitsperren($ma->uid); + foreach ($mitarbeiter as $ma) + { + $zeile++; + $spalte=0; + $zs->getzeitsperren($ma->uid, false); + $worksheet->write($zeile,$spalte,$ma->nachname.' '.$ma->vorname, $format_namen); + for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day) + { + $wt=date('N',$ts); + $grund=$zs->getTyp($ts); + $erbk=html_entity_decode($zs->getErreichbarkeit($ts)); + $vertretung=$zs->getVertretung($ts); + $zelleninhalt = ($grund!=''?(($grund!=''?substr($p->t('zeitsperre/grund'),0,1).': ':'').$grund. "\n"):''); + $zelleninhalt .= ($erbk!=''?(($erbk!=''?substr($p->t('urlaubstool/erreichbarkeit'),0,1).': ':'').$erbk. "\n"):''); + $zelleninhalt .= ($erbk!=''?($erbk!=''?substr($p->t('urlaubstool/vertretung'),0,1).': ':''):''); + $count = 0; + foreach ($vertretung as $vt) + { + if ($vt!='') + { + $ma_kurzbz = new mitarbeiter(); + $ma_kurzbz->load($vt); + $zelleninhalt .= ($count!=0?', ':'').$ma_kurzbz->vorname.' '.$ma_kurzbz->nachname.' ('.$ma_kurzbz->telefonklappe.')'; + $count++; + } + } + $worksheet->write($zeile,++$spalte,$zelleninhalt,$format_mehrzeilig); + } + } + } + ++$zeile; + $worksheet->write(++$zeile,0,$p->t('zeitsperre/legendeGrund'), $format_legende); + $worksheet->write(++$zeile,0,$p->t('zeitsperre/legendeErreichbarkeit'), $format_legende); + $worksheet->write(++$zeile,0,$p->t('zeitsperre/legendeVertretung'), $format_legende); + $worksheet->write(++$zeile,0,$p->t('zeitsperre/legendeDurchwahl'), $format_legende); + + //Die Breite der Spalten setzen + foreach($maxlength as $i=>$breite) + $worksheet->setColumn($i, $i, $breite); + + $workbook->close(); +} +else +{ + echo ' + + + '.$p->t('zeitsperre/zeitsperren').' + + + + + +

'.$p->t('zeitsperre/zeitsperren').'

+ + '.$p->t('zeitsperre/anzahlTage').' +

'.$p->t('zeitsperre/zeitsperreVonBis',array($datum_beginn, $datum_ende)).'

+ Icon Excel Excel Export
+
'.$p->t('zeitsperre/monat').'
'.$p->t('zeitsperre/tag').'
".$tagbez[$sprache_index][$wt]."
$monat
$tag
+ '; + + echo ''; + for ($ts=$ts_beginn;$ts<=$ts_ende; $ts+=$datum_obj->ts_day) + { + $tag=date('d',$ts); + $wt=date('N',$ts); + $monat=date('M',$ts); + + if ($wt==6 || $wt==7) + $class='feiertag'; + else + $class=''; + + echo ""; + } + + echo ''; + $zs=new zeitsperre(); + if (!empty ($mitarbeiter)) + { + foreach ($mitarbeiter as $ma) + { + $zs->getzeitsperren($ma->uid); + echo ''; + echo ""; + for ($ts=$ts_beginn;$ts<=$ts_ende; $ts+=$datum_obj->ts_day) + { + $tag=date('d',$ts); + $monat=date('M',$ts); + $wt=date('N',$ts); + if ($wt==6 || $wt==7) + $class='feiertag'; + else + $class=''; + $grund=$zs->getTyp($ts); + $erbk=$zs->getErreichbarkeit($ts); + $vertretung=$zs->getVertretung($ts); + echo ''; + } + } + else + { + $ma=new mitarbeiter($lektor); echo ''; echo ""; for ($ts=$ts_beginn;$ts<=$ts_ende; $ts+=$datum_obj->ts_day) @@ -112,45 +266,13 @@ if (!empty ($mitarbeiter)) $class='feiertag'; else $class=''; - $grund=$zs->getTyp($ts); - $erbk=$zs->getErreichbarkeit($ts); - $vertretung=$zs->getVertretung($ts); - echo '"; } echo ''; } + + echo '
'.$p->t('zeitsperre/monat').'
'.$p->t('zeitsperre/tag').'
".$tagbez[$sprache_index][$wt]."
$monat
$tag
$ma->nachname $ma->vorname'.($grund!=''?''.substr($p->t('zeitsperre/grund'),0,1).': ':'').$grund; + echo '
'.($erbk!=''?''.substr($p->t('urlaubstool/erreichbarkeit'),0,1).': ':'').$erbk; + echo '
'.($erbk!=''?''.substr($p->t('urlaubstool/vertretung'),0,1).': ':''); + foreach ($vertretung as $vt) + { + if ($vt!='') + { + $ma_kurzbz = new mitarbeiter(); + $ma_kurzbz->load($vt); + echo ''.$ma_kurzbz->kurzbz.' '; + } + } + } + echo '
$ma->nachname $ma->vorname'.($grund!=''?''.substr($p->t('zeitsperre/grund'),0,1).': ':'').$grund; - echo '
'.($erbk!=''?''.substr($p->t('urlaubstool/erreichbarkeit'),0,1).': ':'').$erbk; - echo '
'.($erbk!=''?''.substr($p->t('urlaubstool/vertretung'),0,1).': ':''); - foreach ($vertretung as $vt) - { - if ($vt!='') - { - $ma_kurzbz = new mitarbeiter(); - $ma_kurzbz->load($vt); - echo ''.$ma_kurzbz->kurzbz.' '; - } - } + echo "
 
+ + '; } -else -{ - $ma=new mitarbeiter($lektor); - echo ''; - echo "$ma->nachname $ma->vorname"; - for ($ts=$ts_beginn;$ts<=$ts_ende; $ts+=$datum_obj->ts_day) - { - $tag=date('d',$ts); - $monat=date('M',$ts); - $wt=date('N',$ts); - if ($wt==6 || $wt==7) - $class='feiertag'; - else - $class=''; - echo " "; - } - echo ''; -} - -echo ' - -'; ?> \ No newline at end of file