Ergebnis 1 bis 5 von 5

Thema: EFG Modul / Berechnungen in Ausgabe-Liste des Formular-Generators

  1. #1
    Contao-Nutzer
    Registriert seit
    15.07.2009.
    Beiträge
    5

    Standard EFG Modul / Berechnungen in Ausgabe-Liste des Formular-Generators

    Hallo Forenmitglieder,

    gerade frisch als Neuling dabei und habe mit dem EFG erfolgreich ein Formular erstellt und kann mir auch prima die eingegebenen Daten mit dem Modul "EFG Auflistung" ansehen. Nur habe ich jetzt folgendes Problem:

    Es geht bei der ganzen Sache um eine Zeiterfassung. Ein Feld ist mit "Uhrzeit von" und das andere mit "Uhrzeit bis" betitelt. Auf der Datenbank-Ebene heißen die Spalten "ze_uhrzeit_von" und "ze_uhrzeit_bis". Aus diesen beiden Feldern möchte ich gerne die Dauer berechnen, aber dieser Wert braucht nicht in der Tabelle gespeichert werden (Redundanz). Es ist auch angedacht (später) die einzelnen Dauer-Werte zusammen zu zählen zu einer "Gesamt"-Dauer.

    Nur wie gehe ich da vor? Ist so was schon mal behandelt worden? Wenn ja wo?
    Mir schwirrt der Kopf vor Modulen, Hooks und lauter suchen im Forum usw. Oder denke ich zu kompliziert?

    Wie sieht die einfachste Lösung aus? Wie gesagt, stehe ganz am Anfang.

    liebe Grüße

    neu_pe

  2. #2
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das kannst du meines Wissens nach nicht mit den einfachen, bestehenden Funktionen machen. Dazu wäre eine kleine Entwicklung nötig. Bist du denn mit PHP vertraut?
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  3. #3
    Contao-Fan Avatar von tom
    Registriert seit
    16.06.2009.
    Ort
    Ludwigsburg
    Beiträge
    385

    Standard

    Hallo neu_pe,

    Zitat Zitat von neu_pe Beitrag anzeigen
    Wie sieht die einfachste Lösung aus?
    relativ einfach wäre es, die Berechnung und Ausgabe in einem angepassten Auflistungs-Template vorzunehmen.
    Hier am Beispiel des 'list_fd_table_default'.
    Im Original etwa ab Zeile 92 erfolgt die Ausgabe der Tabelle mit folgendem Code:
    PHP-Code:
    <table cellpadding="2" cellspacing="0" border="0" class="all_records" summary="">
    <!-- indexer::stop -->
    <thead>
      <tr><?php foreach ($this->thead as $col): ?>
        <th class="head<?php echo $col['class']; ?>"><a href="<?php echo $col['href']; ?>" title="<?php echo $col['title']; ?>"><?php echo $col['link']; ?></a></th>
        <?php endforeach; if ($this->details || $this->editable || $this->deletable || $this->exportable): ?>
        <th class="head col_last">&nbsp;</th><?php endif; ?>
      </tr>
    </thead>
    <!-- indexer::continue -->
    <tbody><?php foreach ($this->tbody as $class=>$row): ?>
      <tr class="<?php echo $class?>"><?php foreach ($row as $col): ?>
        <td class="body <?php echo $col['class']; ?>"><?php if ($col['type']=='file' && $col['src']): ?><?php if ($col['display']=='image'): ?> <img src="<?php echo($this->getImage($col['src'], 80null)); ?>" alt="<?php echo urldecode(basename($col['src'])); ?>" title="<?php echo urldecode(basename($col['src'])); ?>" /> <?php else: ?><img src="<?php echo $col['icon']; ?>" alt="<?php echo $col['linkTitle']; ?>" />&nbsp;<a href="<?php echo $col['href']; ?>"><?php echo $col['linkTitle'] . $col['size']; ?></a>
        <?php endif; ?>
        <?php else: echo $col['content']; endif;?>&nbsp;</td><?php endforeach; if ($this->details || $this->editable || $this->deletable || $this->exportable): ?>
        <td class="body <?php echo $this->col_last?> col_last"><?php if($this->details):?>&nbsp;<a href="<?php echo $col['link_details']; ?>" title="<?php echo $this->textlink_details[1]; ?>"><img src="<?php echo $this->iconFolder?>/details.gif" alt="<?php echo $this->textlink_details[1]; ?>" title="<?php echo $this->textlink_details[1]; ?>"/></a><?php endif; ?><?php if ($this->arrEditAllowed[$col['id']]): ?>&nbsp;<a href="<?php echo $col['link_edit']; ?>" title="<?php echo $this->textlink_edit[1]; ?>"><img src="<?php echo $this->iconFolder?>/edit.gif" alt="<?php echo $this->textlink_edit[1]; ?>" title="<?php echo $this->textlink_edit[1]; ?>"/></a><?php endif; ?><?php if ($this->arrDeleteAllowed[$col['id']]): ?>&nbsp;<a href="<?php echo $col['link_delete']; ?>" onclick="if (!confirm('<?php echo $this->text_confirmDelete?>')) return false;" title="<?php echo $this->textlink_delete[1]; ?>"><img src="<?php echo $this->iconFolder?>/delete.gif" alt="<?php echo $this->textlink_delete[1]; ?>" title="<?php echo $this->textlink_delete[1]; ?>"/></a><?php endif; ?><?php if ($this->arrExportAllowed[$col['id']]): ?>&nbsp;<a href="<?php echo $col['link_export']; ?>" title="<?php echo $this->textlink_export[1]; ?>"><img src="<?php echo $this->iconFolder?>/exportCSV.gif" alt="<?php echo $this->textlink_export[1]; ?>" title="<?php echo $this->textlink_export[1]; ?>"/></a>&nbsp;<?php endif; ?></td><?php endif; ?>
      </tr><?php endforeach; ?>
    </tbody>
    </table>
    Mit den folgenden Änderungen in einer Kopie des Templates wird eine zusätzliche Spalte für die Dauer erzeugt, sowie die Dauer (vereinfacht) berechnet.
    PHP-Code:
    <table cellpadding="2" cellspacing="0" border="0" class="all_records" summary="">
    <!-- indexer::stop -->
    <thead>
      <tr><?php foreach ($this->thead as $col): ?>
        <th class="head<?php echo $col['class']; ?>"><a href="<?php echo $col['href']; ?>" title="<?php echo $col['title']; ?>"><?php echo $col['link']; ?></a></th>
        <?php endforeach; ?>
    <?php 
    // hier eine zusätzliche Spalte im Table-Header: 
    ?>    
    <th class="head dauer">Dauer</td>    
        <?php if ($this->details || $this->editable || $this->deletable || $this->exportable): ?>
        <th class="head col_last">&nbsp;</th><?php endif; ?>
      </tr>
    </thead>
    <!-- indexer::continue -->
    <tbody><?php foreach ($this->tbody as $class=>$row): ?>
      <tr class="<?php echo $class?>"><?php foreach ($row as $col): ?>
        <td class="body <?php echo $col['class']; ?>"><?php if ($col['type']=='file' && $col['src']): ?><?php if ($col['display']=='image'): ?> <img src="<?php echo($this->getImage($col['src'], 80null)); ?>" alt="<?php echo urldecode(basename($col['src'])); ?>" title="<?php echo urldecode(basename($col['src'])); ?>" /> <?php else: ?><img src="<?php echo $col['icon']; ?>" alt="<?php echo $col['linkTitle']; ?>" />&nbsp;<a href="<?php echo $col['href']; ?>"><?php echo $col['linkTitle'] . $col['size']; ?></a>
        <?php endif; ?>
        <?php else: echo $col['content']; endif;?>&nbsp;</td><?php endforeach; ?>
    <?php 
    // hier eine zusätzliche Spalte für die Dauer, wobei $row[6] und $row[5] anzupassen wären.
    // $row[6] wäre die 5. Spalte der Auflistung  
    ?>    
    <td class="body dauer"><?php echo number_format(($row[6]['raw'] - $row[5]['raw'])/36002',''.'); ?></td>    
        <?php if ($this->details || $this->editable || $this->deletable || $this->exportable): ?>
        <td class="body <?php echo $this->col_last?> col_last"><?php if($this->details):?>&nbsp;<a href="<?php echo $col['link_details']; ?>" title="<?php echo $this->textlink_details[1]; ?>"><img src="<?php echo $this->iconFolder?>/details.gif" alt="<?php echo $this->textlink_details[1]; ?>" title="<?php echo $this->textlink_details[1]; ?>"/></a><?php endif; ?><?php if ($this->arrEditAllowed[$col['id']]): ?>&nbsp;<a href="<?php echo $col['link_edit']; ?>" title="<?php echo $this->textlink_edit[1]; ?>"><img src="<?php echo $this->iconFolder?>/edit.gif" alt="<?php echo $this->textlink_edit[1]; ?>" title="<?php echo $this->textlink_edit[1]; ?>"/></a><?php endif; ?><?php if ($this->arrDeleteAllowed[$col['id']]): ?>&nbsp;<a href="<?php echo $col['link_delete']; ?>" onclick="if (!confirm('<?php echo $this->text_confirmDelete?>')) return false;" title="<?php echo $this->textlink_delete[1]; ?>"><img src="<?php echo $this->iconFolder?>/delete.gif" alt="<?php echo $this->textlink_delete[1]; ?>" title="<?php echo $this->textlink_delete[1]; ?>"/></a><?php endif; ?><?php if ($this->arrExportAllowed[$col['id']]): ?>&nbsp;<a href="<?php echo $col['link_export']; ?>" title="<?php echo $this->textlink_export[1]; ?>"><img src="<?php echo $this->iconFolder?>/exportCSV.gif" alt="<?php echo $this->textlink_export[1]; ?>" title="<?php echo $this->textlink_export[1]; ?>"/></a>&nbsp;<?php endif; ?></td><?php endif; ?>
      </tr><?php endforeach; ?>
    </tbody>
    </table>
    Mit etwas PHP-Kenntnissen (?) sollte sich auch aus den berechneten Zeiten die Gesamtsumme addieren und in zusätzlicher Tabellenzeile ausgeben lassen.

    Hoffe, das hilft als Ansatz weiter.

    Schöne Grüße
    Thomas

  4. #4
    Contao-Nutzer
    Registriert seit
    15.07.2009.
    Beiträge
    5

    Standard EFG Modul / Berechnungen in Ausgabe-Liste des Formular-Generators

    Hallo,

    Vielen Dank für die Antwort!
    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Das kannst du meines Wissens nach nicht mit den einfachen, bestehenden Funktionen machen.
    Ich habe es befürchtet!
    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Dazu wäre eine kleine Entwicklung nötig.
    Wie sähe Dein Vorschlag zur dieser Entwicklung aus?
    Zitat Zitat von andreas.schempp Beitrag anzeigen
    Bist du denn mit PHP vertraut?
    Ich habe es mit Tom's Hilfe geschaft die erwähnten Dateien abzuändern. Habe aber nur vergessen, davon eine Kopie zu machen!!
    Hole ich mir wieder aus dem aktuellen Archiv.

    Gruss
    neu_pe

  5. #5
    Contao-Nutzer
    Registriert seit
    15.07.2009.
    Beiträge
    5

    Standard EFG Modul / Berechnungen in Ausgabe-Liste des Formular-Generators

    Hallo Tom,

    vielen Dank für die Antwort.
    Zitat Zitat von tom Beitrag anzeigen
    Hier am Beispiel des 'list_fd_table_default'. Im Original etwa ab Zeile 92 erfolgt die Ausgabe der Tabelle mit folgendem Code:
    Mit der Info bin ich weiter gekommen.
    Zitat Zitat von tom Beitrag anzeigen
    Mit den folgenden Änderungen in einer Kopie des Templates wird eine zusätzliche Spalte für die Dauer erzeugt, sowie die Dauer (vereinfacht) berechnet.
    Ich habe zwar etwas "anders" rechnen müssen, aber ich habe mein Ziel erreicht!
    Zitat Zitat von tom Beitrag anzeigen
    Mit etwas PHP-Kenntnissen (?) sollte sich auch aus den berechneten Zeiten die Gesamtsumme addieren und in zusätzlicher Tabellenzeile ausgeben lassen.
    Die PHP-Kenntnisse waren glücklicherweise ausreichend, so konnte ich dies dann noch einfacher lösen.
    Zitat Zitat von tom Beitrag anzeigen
    Hoffe, das hilft als Ansatz weiter.
    Das hat er auf jeden Fall.

    ... und ich habe noch eine Frage. Stelle ich neu ein.

    Gruss
    neu_pe
    Geändert von neu_pe (17.07.2009 um 12:54 Uhr) Grund: neue Frage einstellen

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Jobangebot: Seitenauswahl-Liste mit Frontend-Ausgabe
    Von datenkind im Forum Entwickler-Fragen
    Antworten: 5
    Letzter Beitrag: 27.08.2010, 08:09
  2. Seitenweite Berechnungen aus dem Text
    Von Carino im Forum Was kann Contao?
    Antworten: 6
    Letzter Beitrag: 31.07.2010, 17:09
  3. Formular und Ausgabe
    Von Phoenix im Forum Formulare
    Antworten: 8
    Letzter Beitrag: 21.02.2010, 12:04

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •