0

Daten für Handyapp Temporär erstellen

Hallo zusammen,

ich möchte gerne unsere Kundenabrechnungen der Montagen, Papierlos über die Handyapp abbilden. Daher war meine überlegung, eine neue Tabelle "Handy" zu erstellen. Hier soll über einen Butten in der Tabelle Aufträge,  für die jeweilige Tour (sichtbarkeit wird über Rollen geregelt) ein Datensatz mit dem in  "Montageauftrag" hinterlegten Dokument (PDF im Bildfeld) erstellt werden. Warum Temporär? Die daten sollen nur ein Tag vorher für die Monteure abrufbar sein und nach abarbeitung ( Bilder erstellt, Reklamationen erstellt , Unterschrift des Kunden ect.) sollen sie in die Betreffende Tabelle "Abrechnungen" per Butten zurück geschrieben werden und der Datensatz in "Handy" wieder gelöscht werden.

Leider kann ich das Dokument in Montageaufträge nicht aus der übersicht Aufträge ansprechen. Aus dem Datensatz direkt geht das wunderbar mit :

let bez := 'Aufträge2'.'KV-Nr.';
let vShare := shareFile(Dokument);
let new := (create Handy);
new.(Bild := importFile(this, vShare, bez + ".pdf"));
popupRecord(new)

Wo liegt denn mein fehler? Kann man eigentlich auch die Bildgröße der Handyaufnahmen welche über die App erstellt werden sollen dierekt verkleinern im Bildfeld? (über die optionen des feldes)

Grüße Michi

8 Antworten

null
    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Wenn ich es richtig herauslese liegt das Bildfeld in der Tabelle 'Montageauftrag':
    Wenn du shareFile() nutzt, musst du auch darin auf den Record in 'Montageauftrag' verweisen.
    shareFile(Montageauftrag.Dokument)

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Das ist richtig. Doch da bringt mir ninox den Fehler shareFile({file}). Natürlich benötige ich da auch noch eine Eingrenzung. "Documentenart=1 and Status =1" damit nur ein file zur Verfügung steht.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Von Einschränkungen stand da in der Frage nichts.
    Dann musst du den Verweis genau auf das Bildfeld, welches in Frage kommt ähnlich einer select Abfrage auf einen bestimmten Record handhaben:
    Da ich deine Suchkriterien und deinen Datenbankaufbau nicht kenne, kann ich auch keine funktionsfähige Lösung präsentieren.
    In etwa sollte es dann so aussehen: shareFile((Montageauftrag[Bedingung]).Dokument)

      • Michi.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG 

      • Michi.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Probiere ich gern aus, irgendwas hab ich immer falsch das er mich nicht an das file läst.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Erstelle dir mal ein Funktionsfeld in dem Dashboard und teste einfach mal wie du mit einem select oder der Verknüpfung auf das gewünschte Bildfeld in der Tabelle Montageauftrag kommst. Ich habe keine Ahnung, welche Abhängigkeiten dafür eine Rolle spielen. Hast du das richtige Bildfeld mit dem select oder der Verknüpfung  getroffen, wird dir der Inhalt des Bildfeldes in dem Funktionsfeld angezeigt. Das ist dann der Inhalt der Funktion shareFile()
     

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Grüße,

    Jetzt macht Ninox alles so wie ich es will, jedoch bekomm ich keine File´s mit gleichen Dateinamen in die Bildfelder.(Das kommt jedoch oft vor) Es liegt immer nur ein File im Verknüpften ursprungsrecord, daher ist das da irrelevant. Kann ich die Dateinamen für Tabelle Handy irgendwie mit der KV-NR. und einer Zusatz zahl (zb. Bildfeld: 054545 _1 / Bildfeld 2: 054545_2  / usw. ) Es können bis zu 4 Bildfelder / Files in Handy erstellt werden.

    let me := this;
    first(delete (select Handy where Ident = me.'KV-Nr.'));
    let dat := "KV_" + format(number('KV-Nr.') + 1, "00");
    let KV := 'KV-Nr.';
    let Rol := 'Team wählen';
    let Die := shareFile(first(Montageauftrag[Dockumentenart = 2 and Status = 1].Montageauftrag));
    let Mon := shareFile(first(Montageauftrag[Dockumentenart = 1 and Status = 1].Montageauftrag));
    let new := (create Handy);
    new.(Bild := importFile(this, Mon, dat + ".pdf"));
    new.('Bild 2' := importFile(this, Die, dat + ".pdf"));
    new.(Text := "Montageauftrag");
    new.('Text 2' := "Dienstleistungsauftrag");
    new.(Rolle := text(Rol));
    new.(Ident := KV);
    popupRecord(new)

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Gibt es eine Möglichkeit das ganze unter do as server laufen zu lassen? Mit do as server geht das, aber die files werden nicht übertragen.

    for i in (select 'Aufträge')[ Liefertermin = today()] do
        let me := i.this;
        first(delete (select Handy where Ident = i.me.'KV-Nr.'));
        let li := i.Liefertermin;
        let li2 := i.'bis Liefertermin (bei mehrtägigen Montagen)';
        let KV := i.'KV-Nr.';
        let bil := i.'KV-Nr.' + "_1";
        let bil2 := i.'KV-Nr.' + "_2";
        let bil3 := i.'KV-Nr.' + "_3";
        let bil4 := i.'KV-Nr.' + "_4";
        let bil5 := i.'KV-Nr.' + "_5";
        let Rol := i.'Team wählen';
    let Na := i.Name;
        let Vo := i.Vorname;
        let In := i.'Informationen zum Kunden (werden mit ausgedruckt)';
        let St := i.'Straße';
        let Or := i.Ort;
        let PL := i.PLZ;
        let Te := i.'Telefon 1';
        let Te2 := i.'Telefon 2';
        let Et := i.text(Lieferetage);
        let Fa := i.'Aufzug vorhanden';
        let La := i.'Lagerort Neu-Ware';
        let Die := i.shareFile(first(Montageauftrag[Dockumentenart = 2 and Status = 1].Montageauftrag));
        let Mon := i.shareFile(first(Montageauftrag[Dockumentenart = 1 and Status = 1].Montageauftrag));
        let Sk := i.shareFile(first(Montageauftrag[Dockumentenart = 3 and Status = 1].Montageauftrag));
        let So := i.shareFile(first(Montageauftrag[Dockumentenart = 4 and Status = 1].Montageauftrag));
        let Auf := i.shareFile(first(Montageauftrag[Dockumentenart = 5 and Status = 1].Montageauftrag));
        let new := i.(create Handy);
        new.(Bild := importFile(this, Mon, bil + ".pdf"));
        new.('Bild 2' := importFile(this, Die, bil2 + ".pdf"));
        new.('Bild 3' := importFile(this, Sk, bil3 + ".pdf"));
        new.('Bild 4' := importFile(this, So, bil4 + ".pdf"));
        new.('Bild 5' := importFile(this, Auf, bil5 + ".pdf"));
        new.(Liefertermin := li);
        new.(Rolle := text(Rol));
        new.(Ident := KV);
        new.(Liefertermin2 := li2);
        new.(Name := Na);
        new.(Vorname := Vo);
        new.(Info := In);
        new.('Straße' := St);
        new.(Ort := Or);
        new.(PLZ := PL);
        new.(Telefon := Te);
        new.('Telefon 2' := Te2);
        new.(Etage := Et);
        new.(Fahrstuhl := Fa);
        new.(Lagerort := La)
    end