0

ui.popupRecord in einer Untertabelle

Wenn ich bei meinen Untertabellen (z.b. Angebote.Angebotspositionen) in folgendem Fenster zwischen den Positionen in der Ansicht wechseln möchte, dann öffnet sich jedes mal ein neues Fenster. Das möchte ich gerne ändern. 

 Meine Idee war eine HTML-Ansicht statt Ninox-Ansicht und dann mit ui.popupRecord. Zusätzlich irgendwas mit closeRecord, aber soweit komme ich noch gar nicht. In meinen anderen HTML Tabellen funktioniert der Code, aber nicht in der Untertabelle. Dort passiert nichts, wenn ich auf die Spalten der HTML-Ansicht klicke.

Was mache ich falsch? Und falls es einen einfacheren Weg gibt, dass sich nicht für jede Position ein neues Fenster öffnet, gerne her damit ;)

 

let me := this;
let offers := me.Angebote.Positionen;
let css := "<style>
body { font-family:system-ui, sans-serif; margin:0; padding:0; }
.table-container { background:#fff; border-radius:8px; box-shadow:0 2px 5px rgba(0,0,0,0.1); padding:12px; max-width:100%; overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:12px; table-layout:fixed; }
th { text-align:left; background:#f1f5f9; padding:6px; border-bottom:2px solid #e2e8f0; }
td { padding:6px; border-bottom:1px solid #e2e8f0; word-wrap:break-word; }
tr:hover { background:#f8fafc; cursor:pointer; }
.link { color:#1f7aff; font-weight:500; text-decoration:none; }
/* kleine Anpassungen für Smartphones */
@media (max-width: 600px) {
  table { font-size:11px; }
  th, td { padding:4px; }
}
</style>";
let body := ---
<div class='table-container'>
  <h3>Angebotspositionen</h3>
  <table>
    <thead>
      <tr>
        <th>Position</th>
        <th>Dienstleistung</th>
        <th>Menge</th>
        <th>Einheit</th>
        <th>Preis netto</th>
        <th>Gesamtpreis netto</th>
      </tr>
    </thead>
    <tbody>{ for o in offers do }
<tr onclick=ui.popupRecord('{ o }')>

        <td>{ o.Position }</td>
        <td>{ o.Dienstleistung }</td>
        <td>{ o.Menge }</td>
        <td>{ o.Einheit }</td>
        <td>{ o.'Preis netto' }</td>
        <td>{ o.'Gesamtpreis Netto' }</td>
      </tr>{ end }
    </tbody>
  </table>
</div>
    ---;
html(css + body)

 

12 Antworten

null
    • m2apla gmbh
    • Fabian_Zusli
    • vor 2 Tagen
    • Gemeldet - anzeigen
    <tr onclick="ui.popupRecord('{ string(o) }')">
    

    So müsste es funktionieren

      • yellow_scissors
      • vor 2 Tagen
      • Gemeldet - anzeigen

       funktioniert, danke! nun noch die frage, wie man gleichzeitig das vorige fenster schließen kann. 

      <tr onclick="ui.closeRecord ()" ; "ui.popupRecord('{ string(o) }')">
      

      Hier schließt sich nur der Record, aber popupRecord wird nicht ausgeführt

    • mirko3
    • vor 2 Tagen
    • Gemeldet - anzeigen

    Hallo  Wenn es kleine Tabellen sind (meine Personaltabelle, Wartungsbuch für Geräte) und ich innerhalb der Records navigieren möchte, dann benutze ich dynamische Auswahlfelder, die im Record ganz oben stehen. Ich bleibe also in der Formularansicht und wechsle nicht auf die Tabellenansicht oder Ansichten. Klicke ich dann auf eine Auswahl, dann wird über einen Trigger (openRecord()) der gewählte angezeigt. Das ist bei mir durch ein paar Tricks bis ca. 40 Records (Wartungskalender für Geräte) hilfreich - also übersichtlich genug.

    Eine Sonderform ist die Nutzung einer Rückverknüpfung mit Anzeige als "Eingebettet". Z.B. von einer Page oder einer Tabelle aus. Damit ist es auch recht einfach und du kannst den gewählten Record auch bearbeiten. Dafür habe ich persönlich keinen Anwendungsfall. In der angelegten Datei habe ich mal als Idee so deine Tabellen nachgestellt unter dem Reiter "admin" in der Tabelle "Angebot" ist das zu sehen. Demzufolge brauchst du die Tabelle "Angebotspositionen" nicht mehr öffnen und arbeitest nur noch nach Auswahl des Projekts gleich in der Tabelle "Angebote". Ist nur so eine Idee. Mirko

      • yellow_scissors
      • vor 2 Tagen
      • Gemeldet - anzeigen

       Auch dir danke für die Antwort, aber ich verstehe es noch nicht ganz bzw. finde in deiner Beispieltabelle leider die Lösung für mein Problem nicht :- ) 

      Was ich eigentlich möchte, ist bereits über die Pfeiltasten in Ninox möglich: Wenn ich Position 1 "Baumfällung" geöffnet habe und auf Pfeiltaste rechts klicke, dann öfnnet sich im gleichen Fenster stattdessen Position 2 "Aufräumarbeiten". Nur wenn ich auf die Spalte "Position 2" in der Ansicht klicke öffnet sich ein 2. Fenster. 

      • mirko3
      • vor 2 Tagen
      • Gemeldet - anzeigen

       Diese Schreibweise sollte helfen.

      <tr onclick=ui.closeRecord();ui.popupRecord('{ string(i) }') >
      
      • yellow_scissors
      • gestern
      • Gemeldet - anzeigen

       hat funktioniert, super ;)

    • Fred
    • gestern
    • Gemeldet - anzeigen

    Now that Ninext is an official plugin, you can use it to add the ability to redirect the table/record that opens when you click in a view. Take a look at the docs. It works really well.

    • yellow_scissors
    • gestern
    • Gemeldet - anzeigen

     thank's for the heads-up, i didn't now about the plugin yet. 

    i have spent some hours trying to understand how to implement the ninext functions in the past and find it really hard to understand. (being very inexperienced with scripting)

    could you give me a hint what i would need to do in order to achieve my current goal? (View table of Angebote.Positionen with the function, that the current record closes and the selected record opens once i click on one of the records)

    • Ninox Widgets & User Interfaces
    • arc_rider
    • vor 21 Stunden
    • Gemeldet - anzeigen

    Schau dir gerne unsere Arc Rider Table an. Da ist jede Row und Spalte einfach zu konfigurieren, u.A. mit vorgefertigten Actions für Popup, Update, Delete.  Natürlich gibt es damit auch die Möglichkeit direkt mehrere Ebenen höher den Record zu öffnen :) Kein HTML/CSS/JS notwendig - manch einer will sich ja da nicht einarbeiten, weil kein Low Code. Quasi Custom Ansichten mit Leitplanken.

    https://www.arc-rider.de/documentation/custom-table

      • yellow_scissors
      • vor 10 Stunden
      • Gemeldet - anzeigen

       Nein, danke, für meinen winzigen Betrieb würde diese Erweiterung laut Website jedes Jahr ungefähr soviel kosten, wie meine gesamte Ninox-Lizenz. Das ist mir entschieden zu teuer. Ich hatte euch in den letzten Jahren zwei mal eine E-Mail geschickt, ob ihr für sehr kleine Betriebe auch individuelle Angebote macht und nie eine Antwort bekommen

      • Ninox Widgets & User Interfaces
      • arc_rider
      • vor 9 Stunden
      • Gemeldet - anzeigen

       erstmal danke für dein ehrliches Feedback – und die Kritik an den unbeantworteten E-Mails nehmen wir uns sehr zu Herzen. Das hätte nicht passieren dürfen, und dafür möchte ich mich entschuldigen. Gerade bei persönlichen Anfragen ist uns ein guter Austausch wichtig.

      Ich verstehe, dass das Preis-Leistungs-Verhältnis für sehr kleine Betriebe anders aussieht als für größere Teams. Das ist ein Punkt, den wir auf dem Schirm haben und an dem wir aktiv arbeiten.

      Ich würde mich freuen, wenn wir noch mal ins Gespräch zu kommen, gerade um unser Pricing aus einer anderen Perspektive sehen zu können. Schreib uns gerne an office@arc-rider.com und ich kümmere mich darum, dass du diesmal eine Antwort bekommst. Vielleicht finden wir ja eine Lösung, die für dich passt.

      Frische Grüße aus Brandenburg, Jakob

      • Pushing the Boundaries of Ninox
      • Gotje_Ing
      • vor 4 Stunden
      • Gemeldet - anzeigen

       
      Moin,
      schau mal bei uns vorbei, wir haben ein anderes Preismodell mit Einmalkauf und attraktiveren Umfängen. 
      https://www.goetje-ing.de/Shop
      Grüße Philipp

Content aside

  • vor 4 StundenZuletzt aktiv
  • 12Antworten
  • 52Ansichten
  • 5 Folge bereits