/** * Im Unterschied zu getUpdateMask() liefert diese Methode eine Tabelle in der Direkt alle Felder Eingabefelder sind, * somit kann man direkt mehrere Zeilen auf einmal bearbeiten. */ function getUpdateAllMask() { $tNames = array(); $colNames = array(); $i = 0; foreach ($this->COLNAMES as $colName) { if (!$this->isNoUpdateCol($colName)) { $lbl = ""; if ($i < count($this->LABELS)) { $lbl = $this->LABELS[$i]; } else { $lbl = $colName; } array_push($tNames, $lbl); array_push($colNames, $colName); } $i++; } $deleteMask = null; if ($this->isDeleteInUpdate()) { $deleteMask = !$this->doDeleteFromUpdatemask() ? null : $this->doDeleteFromUpdatemask(); // Damit die Spalte mit dem Entfernen Button // zur Verfügung steht, in Arrays einbinden. array_push($colNames, "entfernen"); array_push($tNames, "entfernen"); } $table = new Table($tNames); if (count($this->COLSIZES) > 0) { $table->setColSizes($this->COLSIZES); } $table->setHeadEnabled(true); $table->setBackgroundColorChange(true); if ($this->WIDTH > 0) { $table->setWidth($this->WIDTH); } if ($this->HEIGHT > 0) { $table->setHeight($this->HEIGHT); } if ($this->BORDER != null && strlen($this->BORDER) > 0) { $table->setBorder($this->BORDER); } if ($this->PADDING >= 0) { $table->setPadding($this->PADDING); } if ($this->HEAD_ENABLED) { $table->setHeadEnabled($this->HEAD_ENABLED); } if ($this->SPACING >= 0) { $table->setSpacing($this->SPACING); } if ($this->XPOS > 0 && $this->YPOS > 0) { $table->setXPos($this->XPOS); $table->setYPos($this->YPOS); } //--------------------------------------------------- // gesamte Tabelle einlesen um Feldtypen zu ermitteln //--------------------------------------------------- $cns = ""; foreach ($colNames as $cn) { if (strpos(" " . $this->COLNAMESTRING, $cn) > 0) { $cns .= $cns == "" ? $cn : "," . $cn; } } $stmnt = "SELECT " . $cns . " FROM " . $this->TABLENAME . " LIMIT 1 "; $result = $this->DBCONNECT->executeQuery($stmnt); //--------------------------------------------------- // ROWS in Table aufnehmen //--------------------------------------------------- $dbComboArrays = array(); $bgCtr = 1; for ($ir = 1; $ir <= count($this->ROWS); $ir++) { $r = $table->createRow(); $r->setStyle("padding", "5px 5px"); $rowId = $this->ROWS[$ir]->getAttribute(count($this->COLNAMES)); $r->setBackgroundColor($_SESSION['config']->COLORS['Tabelle_Hintergrund_' . $bgCtr]); if ($bgCtr == 1) { $bgCtr = 2; } else { $bgCtr = 1; } //--------------------------------------------------- // SPALTEN aufbauen //--------------------------------------------------- for ($ia = 0; $ia < count($this->COLNAMES); $ia++) { $row = $this->ROWS[$ir]; $t = ""; $fieldName = mysql_field_name($result, $ia); $fieldLen = 30; if (!$this->isNoUpdateCol($fieldName)) { $maxLen = mysql_field_len($result, $ia); if ($maxLen < $fieldLen) { $fieldLen = $maxLen; } $lookups = getLookupWerte($_SESSION['config']->DBCONNECT, $this->TABLENAME, $fieldName); if (mysql_num_rows($lookups) > 0) { $t = new LookupCombo($_SESSION['config']->DBCONNECT, $fieldName . $rowId, $this->TABLENAME, $fieldName, $row->getNamedAttribute($fieldName)); } else { if ($this->isDbComboSet($this->TABLENAME, $fieldName)) { // Wenn DbCombo definiert wurde wird die Combobox zur Spalte angezeigt //Wenn die Combobox noch nicht erzeugt wurde, erzeugen. if (!isset($dbComboArrays[$this->TABLENAME . $colNames[$ia]])) { $dbComboArrays[$this->TABLENAME . $colNames[$ia]] = getDbComboArray($this->TABLENAME, $colNames[$ia], $this->ROWS[$ir]); } $dbCombo = $dbComboArrays[$this->TABLENAME . $colNames[$ia]]; if (count($dbCombo) > 0) { $default = $row->getAttribute($ia); if (!existsKeyInArray($default, $dbCombo)) { $default = null; } $t = new ComboBox($fieldName . $rowId, $dbCombo, $default); } } else { if (mysql_field_type($result, $ia) == "blob") { $t = new TextArea($fieldName . $rowId, $row->getNamedAttribute($colNames[$ia]), round(70 / count($this->COLNAMES), 0), 4); } else { if (strpos(mysql_field_flags($result, $ia), "enum") > 0) { $ev = $this->getEnumValues($fieldName); if (count($ev) == 2 && (in_array('J', $ev) && in_array('N', $ev))) { $t = new Checkbox($fieldName . $rowId); if ($row->getNamedAttribute($colNames[$ia]) == "J") { $t->setSelected(true); } } else { $t = new ComboBox($fieldName . $rowId, $this->getComboboxEnumArray($fieldName)); } } else { if (mysql_field_type($result, $ia) == "int") { $t = new TextField($fieldName . $rowId, $row->getNamedAttribute($colNames[$ia]), $fieldLen, $maxLen); } else { if (mysql_field_type($result, $ia) == "date") { //$t = new TextField($fieldName.$rowId,$row->getNamedAttribute($colNames[$ia]), $tfWidth, mysql_field_len ( $result, $ia ) ); $val = $row->getNamedAttribute($colNames[$ia]); $t = new DateTextfield($fieldName . $rowId, $val); } else { if (mysql_field_type($result, $ia) == "timestamp") { $t = new TextField($fieldName . $rowId, $row->getNamedAttribute($colNames[$ia]), $fieldLen, $maxLen); } else { $t = new TextField($fieldName . $rowId, $row->getNamedAttribute($colNames[$ia]), $fieldLen, $maxLen); } } } } } $arrChk = array_search($fieldName, $this->READONLYCOLS); if (strlen($arrChk) != 0) { $t->setReadOnly(true); } } } // Eingabe-Objekt in Zeile einfügen $r->setAttribute($ia, $t); } else { $r->setAttribute($ia, ""); } } // entfernen Button einfügen if ($this->isDeleteInUpdate()) { $btnDel = new Button("delete" . $rowId . $this->TABLENAME, "entfernen"); $r->setAttribute(count($tNames) - 1, $btnDel); } $table->addRow($r); } // Speichern/Abbrechen Button einfügen $btnOk = new Button("DbTableUpdate" . $this->TABLENAME, "Speichern"); $btnOkFake = new Button("DbTableUpdate" . $this->TABLENAME, "Speichern"); $btnOkFake->setStyle("display", "none"); $btnOkFake->setWidth(0); $btnOkFake->setHeight(0); $btnCancel = new Button("", "Abbrechen"); $hidden = new Hiddenfield("UpdateAllMaskIsActive", "true"); $form = new Form($_SERVER['SCRIPT_NAME']); $form->add($this->DEFAULT_HIDDEN_FIELDS); if ($deleteMask != null) { $form->add($deleteMask); } $form->add($btnOkFake); $form->add($this->getPageNavigation()); $form->add($table); $form->add($btnOk); $form->add($btnCancel); $form->add($hidden); return $form; }
$imgRaumplan->setWidth(140); $cBtnRaumplan = new Container(); $cBtnRaumplan->add($btnRaumplan); $cBtnRaumplan->add(new Text("<br>JPG Datei mit den Maßen: 600x340", 1, false, false, false, false)); $r = $tblEtagen->createRow(); $r->setStyle("padding", "10px 5px"); $r->setVAlign("middle"); $r->setAttribute(0, $txfName); $r->setAttribute(1, $imgRaumplan); $r->setAttribute(2, $cBtnRaumplan); $r->setAttribute(3, $btnDelete); $tblEtagen->addRow($r); } $fEt = new Form(); $okBtn = new Button("DbTableUpdatehomecontrol_etagen", "Speichern"); $okBtn->setStyle("display", "none"); $fEt->add($okBtn); $fEt->add($tblEtagen); $fEt->add(new Button("DbTableUpdatehomecontrol_etagen", "Speichern")); $fEt->add(new Hiddenfield("UpdateAllMaskIsActive", "true")); $fEt->show(); $spc->setHeight(10); $spc->show(); if (!isset($_REQUEST['dbTableNewhomecontrol_etagen'])) { $newBtn = $scDbTable->getNewEntryButton("Neue Etage anlegen"); $newBtn->show(); } $spc->show(); $ln->show(); $spc->setHeight(20); $spc->show();