private function walkChildren($Node, $Path = '', $Label = '') { $ALTERNATING = 0; if ($this->check_forChildren($Node)) { //hier checken wir, ob noch Pivot Kinder existieren foreach ($this->get_Children($Node) as $CurrentDimension) { $FirstColum = new TTableRow(); $this->mastertable->Rows[] = $FirstColum; $cell = new TTableCell(); $cell->Text = $CurrentDimension->stammdaten_name; $cell->setRowSpan($this->calc_NumberNextLevel($Node)); fmod($ALTERNATING, 2) == 0 ? $cell->setCssClass('listalternating') : $cell->setCssClass('listnonealternating'); $FirstColum->Cells[] = $cell; $ALTERNATING++; foreach ($this->get_PivotChildren($Node) as $PivotNode) { $TmpPath = $Path . $CurrentDimension->idtm_stammdaten . 'xx'; $this->walkChildren($PivotNode, $TmpPath, $CurrentDimension->stammdaten_name); } } } else { $this->ParentDimCounter++; $PFPivot = new PFCalculator(); $PFPivot->setFeldFunktion($this->PivotBerichtRecord->idta_feldfunktion); $PFPivot->setStartPeriod($this->Periode); $PFPivot->GLOBALVARIANTE = $this->PivotBerichtRecord->idta_variante; $PFPivot->loadDimension($Node); $PFPivot->buildPivotCondition($Path); $PFPivot->dimension = $Label; $PFPivot->setOperator($this->PivotBerichtRecord->pivot_bericht_operator); $this->draw_cells($PFPivot); } }
public function initTable() { //this needs to be loaded before the period, because we need the variant_id for the startperiod if ($this->Request['idta_variante'] != '') { $this->Variante = $this->Request['idta_variante']; } else { $this->Variante = VarianteRecord::finder()->findByvar_default(1)->idta_variante; $this->Variante == "" ? $this->Variante = 1 : ''; } if ($this->Request['periode'] != '') { $this->Periode = $this->Request['periode']; } else { $sec_per = $this->Periode; $this->Periode = VarianteRecord::finder()->findByidta_variante($this->Variante)->idta_perioden; $this->Periode == '' ? $this->Periode = $sec_per : ''; } if ($this->Request['idtm_struktur'] != '') { $this->idtm_struktur = $this->Request['idtm_struktur']; } else { $this->idtm_struktur = $this->user->getStartNode($this->user->getUserId($this->user->Name), "tm_struktur"); $this->idtm_struktur == '' ? $this->idtm_struktur = 1 : ''; } if ($this->Request['per_single'] != '') { $this->SinglePeriode = $this->Request['per_single']; } if ($this->Request['idta_struktur_bericht'] != '') { $this->idta_struktur_bericht = $this->Request['idta_struktur_bericht']; } else { $this->idta_struktur_bericht = StrukturBerichtRecord::finder()->findBysb_startbericht(1)->idta_struktur_bericht; } $this->ccom_id->Text = $this->idtm_struktur; $this->cidta_variante->Text = $this->Variante; $this->cidta_periode->Text = $this->Periode; //setting up the db-connection $myDBConnection = new TDbConnection($this->Application->getModule('db1')->database->getConnectionString(), $this->Application->getModule('db1')->database->getUsername(), $this->Application->getModule('db1')->database->getPassword()); $myDBConnection->Active = true; //this calculator is used to build the subcats $mySubcatsCalculator = new PFCalculator(); $mySubcatsCalculator->setDBConnection($myDBConnection); $mySubcatsCalculator->setStartNode($this->idtm_struktur, 1); if (!$this->Nested) { $mySubcatsCalculator->load_all_cats(); $mySubcatsCalculator->setsubcats($mySubcatsCalculator->getsubcats()); } //THE REPORT HEADER $this->sheetrow++; $this->StrukturPfad->Text = $mySubcatsCalculator->getCurrentPath($this->idtm_struktur); //here we build the statements nthat a stored inside the database $Report = StrukturBerichtRecord::finder()->findByPK($this->idta_struktur_bericht); $this->ttpivot_struktur_name->Text = $Report->pivot_struktur_name; $ColumnCriteria = new TActiveRecordCriteria(); $ColumnCriteria->Condition = "idta_struktur_bericht = :suchtextcolumn"; $ColumnCriteria->Parameters[':suchtextcolumn'] = $this->idta_struktur_bericht; $ColumnCriteria->OrdersBy['sbs_order'] = 'ASC'; $ReportColumns = StrukturBerichtSpaltenRecord::finder()->findAll($ColumnCriteria); $idta_struktur_bericht_spalten = array(); foreach ($ReportColumns as $ReportColumn) { $this->GraphOffset++; $this->InputBericht = $ReportColumn->sbs_input; $this->StrukturBerichtSaveButton->Visible = $this->InputBericht; $this->StrukturBerichtSaveImageButton->Visible = $this->InputBericht; //wenn die Variante fix uebergeben wurde if ($ReportColumn->sbs_idta_variante_fix) { $this->Varianten[$ReportColumn->idta_struktur_bericht_spalten] = $ReportColumn->idta_variante; } else { $this->Varianten[$ReportColumn->idta_struktur_bericht_spalten] = $this->Variante; } //hier befuelle ich die variablenliste pro if ($ReportColumn->sbs_struktur_switch_type == 1) { $mySubcatsCalculator->setStartNode($ReportColumn->sbs_idtm_struktur, $this->Nested); } else { $mySubcatsCalculator->setStartNode($this->idtm_struktur, $this->Nested); } //das brauchen wir, fuer den fall dass wir die nested informationen noch nicht im modell haben if (!$this->Nested) { $ChildrenNodes[$ReportColumn->idta_struktur_bericht_spalten] = $mySubcatsCalculator->ChildrenNodes; $tmpInString = ''; if (count($ChildrenNodes[$ReportColumn->idta_struktur_bericht_spalten]) > 0) { $counter = 0; foreach ($ChildrenNodes[$ReportColumn->idta_struktur_bericht_spalten] as $key => $value) { if ($value != '') { $counter == 0 ? $tmpInString .= "'" . $value . "' " : ($tmpInString .= ",'" . $value . "' "); $counter++; $this->STRcounter == 0 ? $this->ReportIDsInStringAll .= "'" . $value . "' " : ($this->ReportIDsInStringAll .= ",'" . $value . "' "); $this->STRcounter++; } } } $this->ReportIDsInString[$ReportColumn->idta_struktur_bericht_spalten] = $tmpInString; } else { if ($ReportColumn->sbs_struktur_switch_type == 1) { $StartRecord = StrukturRecord::finder()->findByidtm_struktur($ReportColumn->sbs_idtm_struktur); } else { $StartRecord = StrukturRecord::finder()->findByidtm_struktur($this->idtm_struktur); } $this->ReportIDsLeft[$ReportColumn->idta_struktur_bericht_spalten] = $StartRecord->struktur_lft; $this->ReportIDsRight[$ReportColumn->idta_struktur_bericht_spalten] = $StartRecord->struktur_rgt; } //falls eine zeitliche abweichung festgestellt wurde if ($ReportColumn->sbs_perioden_fix == 1 or !$ReportColumn->idta_perioden_gap == 0 and !$ReportColumn->idta_perioden_gap == '') { $mySubcatsCalculator->setStartPeriod($ReportColumn->idta_perioden_gap, $ReportColumn->sbs_perioden_fix); $this->ReportPerioden[$ReportColumn->idta_struktur_bericht_spalten] = $mySubcatsCalculator->Perioden; } else { $mySubcatsCalculator->setStartPeriod($this->Periode, $this->SinglePeriode); $this->ReportPerioden[$ReportColumn->idta_struktur_bericht_spalten] = $mySubcatsCalculator->Perioden; } $this->ReportOperator[$ReportColumn->idta_struktur_bericht_spalten] = $ReportColumn->sbs_bericht_operator; } foreach ($this->ReportPerioden as $tempPerioden) { foreach ($tempPerioden as $key => $value) { $this->Perioden[] = $value[0]; } } //print_r($this->Perioden); if ($this->InputBericht || !$this->page->isCallback && !$this->page->isPostBack) { $criteria = new TActiveRecordCriteria(); $criteria->Condition = "idta_struktur_bericht = :suchbedingung1"; $criteria->Parameters[':suchbedingung1'] = $this->idta_struktur_bericht; $criteria->OrdersBy['sbz_order'] = "ASC"; $ReportRows = StrukturBerichtZeilenRecord::finder()->findAll($criteria); $rowcounter = 0; foreach ($ReportRows as $SingleRow) { ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"} = new PFCalculator(); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setDBConnection($myDBConnection); //${$SingleRow->idta_struktur_bericht_zeilen."RObj"}->setsubcats($mySubcats); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setInputReport($this->InputBericht); //Perioden muss vor CALCCOLUMNS kommen, sonst ergebnis nicht richtig ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->Varianten = $this->Varianten; //aus der zeile ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->Perioden = $this->ReportPerioden; //aus der zeile //this needs to be set, before we calc the number of columns ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setColumns($ReportColumns); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->calcColumns(); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setFeldFunktion($SingleRow->idta_feldfunktion); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setVariante($this->Variante); //muss noch aus der definition der spalte geholt werden ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->idta_struktur_bericht_spalten = $idta_struktur_bericht_spalten; //aus der zeile ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportOperator = $this->ReportOperator; //uebergabe des operators an den calculator //hier uebergeben wir die entsprechenden spaltenwerte... if ($this->Nested) { ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportIDsLeft = $this->ReportIDsLeft; ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportIDsRight = $this->ReportIDsRight; } else { ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportIDsInString = $this->ReportIDsInString; ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportIDsInStringAll = $this->ReportIDsInStringAll; ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ChildrenNodes = $ChildrenNodes; //aus der zeile } //${$SingleRow->idta_struktur_bericht_zeilen."RObj"}->setStartNode($this->Request['idtm_struktur']); if ($rowcounter == 0) { $this->load_header(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}); $rowcounter++; } if ($SingleRow->sbz_spacer_label != "" or !$SingleRow->sbz_spacer_label == 0) { if ($SingleRow->sbz_type == 4) { } else { $this->draw_spacer(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}, $SingleRow->sbz_spacer_label); } } if ($SingleRow->sbz_type == 0) { //type == 0 bedeutet die normale listenabfrage $this->draw_cells(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}, $SingleRow->sbz_label, $SingleRow->sbz_detail); } if ($SingleRow->sbz_type == 1) { //type == 1 bedeutet die dimensionsabfrage ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->dimension = $SingleRow->idtm_stammdaten; $this->draw_cells_dimension(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}, $SingleRow->sbz_label, $SingleRow->sbz_order, $SingleRow->sbz_detail); } if ($SingleRow->sbz_type == 3) { //type == 3 Bedeutet eine Berechnung auf bereits existierende Objekte $this->build_difference_zwischenergebnisse($SingleRow->idta_struktur_bericht_zeilen, $SingleRow->sbz_label); } if ($SingleRow->sbz_type == 4) { //type == 4 bedeutet einen graphen $this->draw_graph(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}, $SingleRow->sbz_label, $SingleRow->sbz_spacer_label); } } } }
public function onPreInit($param) { $myTheme = $this->User->getUserTheme($this->User->getUserId(), 'mod_theme'); $this->setTheme($myTheme); parent::onPreInit($param); $this->workbook = new PHPExcel(); $this->sheet = $this->workbook->getActiveSheet(); $this->sheet->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT); $this->sheet->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); if ($this->Request['periode'] != '') { $this->Periode = $this->Request['periode']; } if ($this->Request['idtm_struktur'] != '') { $this->idtm_struktur = $this->Request['idtm_struktur']; } else { $this->idtm_struktur = $this->user->getStartNode($this->user->getUserId($this->user->Name), "idtm_struktur"); $this->idtm_struktur == '' ? $this->idtm_struktur = 1 : ''; } if ($this->Request['per_single'] != '') { $this->SinglePeriode = $this->Request['per_single']; } if ($this->Request['idta_variante'] != '') { $this->Variante = $this->Request['idta_variante']; } if ($this->Request['idta_struktur_bericht'] != '') { $this->idta_struktur_bericht = $this->Request['idta_struktur_bericht']; } else { $this->idta_struktur_bericht = StrukturBerichtRecord::finder()->findBysb_startbericht(1)->idta_struktur_bericht; } //setting up the db-connection $myDBConnection = new TDbConnection($this->Application->getModule('db1')->database->getConnectionString(), $this->Application->getModule('db1')->database->getUsername(), $this->Application->getModule('db1')->database->getPassword()); $myDBConnection->Active = true; //this calculator is used to build the subcats $mySubcatsCalculator = new PFCalculator(); $mySubcatsCalculator->setDBConnection($myDBConnection); $mySubcatsCalculator->setStartNode($this->idtm_struktur, 1); if (!$this->Nested) { $mySubcatsCalculator->load_all_cats(); $mySubcatsCalculator->setsubcats($mySubcatsCalculator->getsubcats()); } //THE REPORT HEADER $this->sheetrow++; $local_column = $this->sheetleftgap; $local_cell = ''; $local_cell = $this->ColumnArray[$local_column] . $this->sheetrow; $this->sheet->setCellValue($local_cell, $mySubcatsCalculator->getCurrentPath($this->idtm_struktur)); $this->workbook->getActiveSheet()->getStyle($local_cell)->getFont()->setSize(14); $this->workbook->getActiveSheet()->getStyle($local_cell)->getFont()->getColor()->setRGB('999900'); $this->sheetrow++; //Adjusting the size $this->sheet->getColumnDimension($this->ColumnArray[$local_column])->setWidth(30); $local_column++; for ($ii = $local_column; $ii < count($this->ColumnArray); $ii++) { $this->sheet->getColumnDimension($this->ColumnArray[$ii])->setWidth(12); } //here we build the statements nthat a stored inside the database $Report = StrukturBerichtRecord::finder()->findByPK($this->idta_struktur_bericht); $this->sheet->setTitle($Report->pivot_struktur_name); $ReportColumns = StrukturBerichtSpaltenRecord::finder()->findAllByidta_struktur_bericht($this->idta_struktur_bericht); $idta_struktur_bericht_spalten = array(); foreach ($ReportColumns as $ReportColumn) { $this->GraphOffset++; $this->InputBericht = $ReportColumn->sbs_input; //$this->StrukturBerichtSaveButton->Visible = $this->InputBericht; //wenn die Variante fix uebergeben wurde if ($ReportColumn->sbs_idta_variante_fix) { $this->Variante = $ReportColumn->idta_variante; } //hier befuelle ich die variablenliste pro if ($ReportColumn->sbs_struktur_switch_type == 1) { $mySubcatsCalculator->setStartNode($ReportColumn->sbs_idtm_struktur, $this->Nested); } else { $mySubcatsCalculator->setStartNode($this->idtm_struktur, $this->Nested); } //das brauchen wir, fuer den fall dass wir die nested informationen noch nicht im modell haben if (!$this->Nested) { $ChildrenNodes[$ReportColumn->idta_struktur_bericht_spalten] = $mySubcatsCalculator->ChildrenNodes; $tmpInString = ''; if (count($ChildrenNodes[$ReportColumn->idta_struktur_bericht_spalten]) > 0) { $counter = 0; foreach ($ChildrenNodes[$ReportColumn->idta_struktur_bericht_spalten] as $key => $value) { if ($value != '') { $counter == 0 ? $tmpInString .= "'" . $value . "' " : ($tmpInString .= ",'" . $value . "' "); $counter++; $this->STRcounter == 0 ? $this->ReportIDsInStringAll .= "'" . $value . "' " : ($this->ReportIDsInStringAll .= ",'" . $value . "' "); $this->STRcounter++; } } } $this->ReportIDsInString[$ReportColumn->idta_struktur_bericht_spalten] = $tmpInString; } else { if ($ReportColumn->sbs_struktur_switch_type == 1) { $StartRecord = StrukturRecord::finder()->findByidtm_struktur($ReportColumn->sbs_idtm_struktur); } else { $StartRecord = StrukturRecord::finder()->findByidtm_struktur($this->idtm_struktur); } $this->ReportIDsLeft[$ReportColumn->idta_struktur_bericht_spalten] = $StartRecord->struktur_lft; $this->ReportIDsRight[$ReportColumn->idta_struktur_bericht_spalten] = $StartRecord->struktur_rgt; } //falls eine zeitliche abweichung festgestellt wurde if ($ReportColumn->sbs_perioden_fix == 1 or !$ReportColumn->idta_perioden_gap == 0 and !$ReportColumn->idta_perioden_gap == '') { $mySubcatsCalculator->setStartPeriod($ReportColumn->idta_perioden_gap, $ReportColumn->sbs_perioden_fix); $this->ReportPerioden[$ReportColumn->idta_struktur_bericht_spalten] = $mySubcatsCalculator->Perioden; } else { $mySubcatsCalculator->setStartPeriod($this->Periode, $this->SinglePeriode); $this->ReportPerioden[$ReportColumn->idta_struktur_bericht_spalten] = $mySubcatsCalculator->Perioden; } $this->ReportOperator[$ReportColumn->idta_struktur_bericht_spalten] = $ReportColumn->sbs_bericht_operator; } foreach ($this->ReportPerioden as $tempPerioden) { foreach ($tempPerioden as $key => $value) { $this->Perioden[] = $value[0]; } } //print_r($this->Perioden); if ($this->InputBericht || !$this->page->isCallback && !$this->page->isPostBack) { $criteria = new TActiveRecordCriteria(); $criteria->Condition = "idta_struktur_bericht = :suchbedingung1"; $criteria->Parameters[':suchbedingung1'] = $this->idta_struktur_bericht; $criteria->OrdersBy['sbz_order'] = "ASC"; $ReportRows = StrukturBerichtZeilenRecord::finder()->findAll($criteria); $rowcounter = 0; foreach ($ReportRows as $SingleRow) { ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"} = new PFCalculator(); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setDBConnection($myDBConnection); //${$SingleRow->idta_struktur_bericht_zeilen."RObj"}->setsubcats($mySubcats); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setInputReport($this->InputBericht); //hier immer auf 1, da sonst die formate nicht passen... //Perioden muss vor CALCCOLUMNS kommen, sonst ergebnis nicht richtig ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->Perioden = $this->ReportPerioden; //aus der zeile //this needs to be set, before we calc the number of columns ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setColumns($ReportColumns); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->calcColumns(); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setFeldFunktion($SingleRow->idta_feldfunktion); ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->setVariante($this->Variante); //muss noch aus der definition der spalte geholt werden ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->idta_struktur_bericht_spalten = $idta_struktur_bericht_spalten; //aus der zeile ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportOperator = $this->ReportOperator; //uebergabe des operators an den calculator //hier uebergeben wir die entsprechenden spaltenwerte... if ($this->Nested) { ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportIDsLeft = $this->ReportIDsLeft; ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportIDsRight = $this->ReportIDsRight; } else { ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportIDsInString = $this->ReportIDsInString; ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ReportIDsInStringAll = $this->ReportIDsInStringAll; ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->ChildrenNodes = $ChildrenNodes; //aus der zeile } //${$SingleRow->idta_struktur_bericht_zeilen."RObj"}->setStartNode($this->Request['idtm_struktur']); if ($rowcounter == 0) { $this->load_header(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}); $rowcounter++; } if ($SingleRow->sbz_spacer_label != "" or !$SingleRow->sbz_spacer_label == 0) { if ($SingleRow->sbz_type == 4) { } else { $this->draw_spacer(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}, $SingleRow->sbz_spacer_label); } } if ($SingleRow->sbz_type == 0) { //type == 0 bedeutet die normale listenabfrage $this->draw_cells(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}, $SingleRow->sbz_label, $SingleRow->sbz_detail); } if ($SingleRow->sbz_type == 1) { //type == 1 bedeutet die dimensionsabfrage ${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}->dimension = $SingleRow->idtm_stammdaten; $this->draw_cells_dimension(${$SingleRow->idta_struktur_bericht_zeilen . "RObj"}, $SingleRow->sbz_label, $SingleRow->sbz_order, $SingleRow->sbz_detail); } if ($SingleRow->sbz_type == 3) { //type == 3 Bedeutet eine Berechnung auf bereits existierende Objekte $this->build_difference_zwischenergebnisse($SingleRow->idta_struktur_bericht_zeilen, $SingleRow->sbz_label); } if ($SingleRow->sbz_type == 4) { //type == 4 bedeutet einen graphen //$this->draw_graph(${$SingleRow->idta_struktur_bericht_zeilen."RObj"},$SingleRow->sbz_label,$SingleRow->sbz_spacer_label); } } } $this->generate('Excel5', 'planlogIQ'); }
public function onLoad($param) { parent::onLoad($param); if (!$this->isPostBack && !$this->isCallback) { //hier schreiben wir den aktuellen Pfad, damit der User erkennen kann, wo er sich befindet $this->id_struktur->Text = $this->STRcurrentID; $this->idta_struktur_type->Text = $this->piq_idta_struktur_type; $wfl_values = array(1 => "offen", 2 => "planen", 3 => "pruefen", 4 => "genehmigt", 5 => "geschlossen"); $this->wfl_status->dataSource = $wfl_values; $this->wfl_status->dataBind(); //build the path $pfad = new PFCalculator(); $this->StrukturPfad->Text = $pfad->getCurrentPath($this->Request['idtm_struktur']); //laden der Werte $this->getLatestWorkflow(); $this->load_values(); } }
private function sum_down($local_jahr, $local_month, $local_from_stammdaten, $local_to_stammdaten, $NeuerJahresWert) { //init des kalender $JahresWert = $this->sum_up($local_jahr, $local_month, $local_from_stammdaten, $local_to_stammdaten); $Taschenrechner = new PFCalculator(); $Taschenrechner->setStartPeriod($this->DWH_idta_perioden->Text); $returnresult = 0; foreach ($Taschenrechner->Perioden as $Periode) { $PerMonat = $Periode[0]; if ($PerMonat < 9999) { $UniqueID = 'xxx' . $local_jahr . 'xxx' . $PerMonat . 'xxx' . $local_from_stammdaten . 'xxx' . $local_to_stammdaten; if ($JahresWert != 0) { $this->page->ACTPanel->FindControl($UniqueID)->Text = $NeuerJahresWert * ($this->page->ACTPanel->FindControl($UniqueID)->Text * 1 / $JahresWert); } else { $this->page->ACTPanel->FindControl($UniqueID)->Text = $NeuerJahresWert * (1 / (count($Taschenrechner->Perioden) - 1)); } } } return true; }