Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 public function createExamples($ind)
 {
     $table_box = new Table();
     $table_box->setWidth(250)->setDefaultAlign(RowTable::ALIGN_LEFT);
     $table_box->addRow();
     $body_obj = new Object();
     $body_obj->setAlign(Object::ALIGN_CENTER);
     //->setId("id_body_obj")->setStyle("padding:5px;background:".$this->background_body->getValue().";");
     $text_obj = new Object(__(TEXT_ON_BODY));
     $body_obj->add($text_obj->setId("id_body_text"), "<br/>");
     $link_obj = new Object(new Link("javascript:void(0);", Link::TARGET_BLANK, __(LINK_ON_BODY)));
     $body_obj->add($link_obj->setId("id_body_link"), "<br/>");
     $body_obj->add($this->text_link_note_obj, "<br/>");
     $table_box->addRow($body_obj);
     $table_box->addRow();
     $table_box->addRow();
     $button_1 = new Button($this);
     $button_1->setWidth(245);
     $table_box->addRow($button_1->setValue("Button [style jquery]"));
     $table_box->addRow();
     $tabs = new Tabs("tab-sample");
     $tabs->addTab("Tab1", "");
     $tabs->addTab("Tab2", "");
     $tabs->addTab("Tab3", "");
     $table_box->addRow($tabs);
     $table_box->addRow();
     $table_box->addRow();
     $table_box->addRow();
     $table_box->addRow();
     $table_box->addRow();
     $dialogbox = new DialogBox(__(DIALOGBOX_TITLE), __(DIALOGBOX_CONTENT));
     $dialogbox->setWidth(245)->activateOneInstance()->setPosition("");
     $dialogbox_link = new Object(new Link($dialogbox, Link::TARGET_NONE, __(VIEW_DIALOGBOX)));
     $table_box->addRow($dialogbox_link->setId("id_dialogbox_link"));
     $dialogbox->setPositionX("\$('#" . $dialogbox_link->getId() . "').position().left-f_scrollLeft()");
     $dialogbox->setPositionY("\$('#" . $dialogbox_link->getId() . "').position().top-f_scrollTop()-70");
     $this->addObject(clone $dialogbox);
     $table_box->addRow();
     $table_box->addRow();
     $table_box->addRow();
     $table_box->addRow();
     $table_box->addRow();
     $table_box->addRow();
     $style1_box_text = new Box("text", false, $this->current_style_val, $this->current_style_val, "", "box_text_" . $this->current_style_val, 245);
     if ($this->background_picture_1->getValue() != "") {
         $style1_box_text->forceBoxWithPicture(true, $this->border_table_1->getValue());
     } else {
         $style1_box_text->forceBoxWithPicture(false);
     }
     $table_box->addRow($style1_box_text->setContent("Box Object [<a href=\"javascript:void(0);\">style " . $this->current_style_val . "</a>]"));
     $style1_box = new Box("link", false, $this->current_style_val, $this->current_style_val, "javascript:void(0);", "box_" . $this->current_style_val, 245);
     if ($this->background_picture_1->getValue() != "") {
         $style1_box->forceBoxWithPicture(true, $this->border_table_1->getValue());
     } else {
         $style1_box->forceBoxWithPicture(false);
     }
     $style1_box->setShadow(true);
     $table_box->addRow($style1_box->setContent("Box Object [<a href=\"javascript:void(0);\">style " . $this->current_style_val . "</a>]"));
     $style1_box = new RoundBox($this->current_style_val, "round_box_" . $this->current_style_val, 245);
     $style1_box->setShadow(true);
     if ($this->background_picture_1->getValue() != "") {
         $style1_box->forceBoxWithPicture(true, $this->border_table_1->getValue());
     } else {
         $style1_box->forceBoxWithPicture(false);
     }
     $table_box->addRow($style1_box->setContent("RoundBox Object<br/>[style " . $this->current_style_val . "]"));
     $table_box->addRow();
     if (!defined('DEFINE_STYLE_BORDER_TABLE_' . $this->current_style_val)) {
         define('DEFINE_STYLE_BORDER_TABLE_' . $this->current_style_val, $this->border_table_1->getValue());
     }
     $table = new Table();
     $table->setId("table_sample")->setWidth(245);
     $table->addRowColumns("header1", "header2", "header3")->setHeaderClass($this->current_style_val);
     $table->addRowColumns("cel 1-1", "cel 1-2", "cel 1-3")->setId("table_tr_sample")->setBorderPredefinedStyle($this->current_style_val)->setAlign(RowTable::ALIGN_CENTER);
     $table_box->addRow($table);
     return $table_box;
 }