private function checkPeriodeArea($idta_struktur_bericht) { $checker = StrukturBerichtSpaltenRecord::finder()->findAllByidta_struktur_bericht($idta_struktur_bericht); if (count($checker) >= 1) { foreach ($checker as $SingleRecord) { if ($SingleRecord->sbs_perioden_fix == 0) { return true; break; } } } return false; }
public function SBSSavedButtonClicked($sender, $param) { $tempus = 'SBSed' . $this->SBSprimarykey; if ($this->SBSedstruktur_bericht_spalten_edit_status->Text == '1') { $SBSeditRecord = StrukturBerichtSpaltenRecord::finder()->findByPK($this->{$tempus}->Text); } else { $SBSeditRecord = new StrukturBerichtSpaltenRecord(); } //HIDDEN foreach ($this->SBShiddenfields as $recordfield) { $edrecordfield = 'SBSed' . $recordfield; $SBSeditRecord->{$recordfield} = $this->{$edrecordfield}->Value; } //DATUM foreach ($this->SBSatfields as $recordfield) { $edrecordfield = 'SBSed' . $recordfield; $SBSeditRecord->{$recordfield} = date('Y-m-d', $this->{$edrecordfield}->TimeStamp); } //BOOL foreach ($this->SBSboolfields as $recordfield) { $edrecordfield = 'SBSed' . $recordfield; $SBSeditRecord->{$recordfield} = $this->{$edrecordfield}->Checked ? 1 : 0; } foreach ($this->SBSfields as $recordfield) { $edrecordfield = 'SBSed' . $recordfield; $SBSeditRecord->{$recordfield} = $this->{$edrecordfield}->Text; } $SBSeditRecord->save(); $this->bindListStrukturBerichtSpaltenValue(); }
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'); }