0

Formular bzw. Tabellenoperation nach Ende Script

Hallo liebes Forum, ich benötige wieder mal eure Hilfe bei folgendem Problem. Ich habe auf einen Button ein Script gelegt. Bei der Ausführung des Scripts wird eine Schleife durchlaufen und mehrere Datensätze in eine andere Tabelle geschrieben. Jetzt möchte ich gerne nachdem die Datenoperationen durch sind, eine andere Tabelle im Ansichtmodus öffnen.

Mit der Funktion closeAllRecords () sollte das eigentlich funktionieren. Mir ist nur noch nicht ganz klar, wie ich den Befehl im Script am Ende einsetze. Wenn ich diesen einfach ans Ende füge, passiert nichts. Bei einem Einzelbutton nur mit dem Befehl klappt es. Ich vermute, dass es daran liegt, dass ich den Befehl erst ausführen kann, wenn das Script durchgelaufen ist. Tipps sind willkommen.

5 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich würde es mit

    openTable("TABELLENNAME","ANSICHTNAME") 

    probieren. Die Namen sollten genauso wie hier in Anführungszeichen eingetragen werden. M.E. braucht man dabei kein cloeAllRecors().

    Leo

    • Pro BoutiquenFonds GmbH
    • Eichelfr
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, danke für den Tipp. Hatte ich auch bereits versucht,leider ohne Erfolg. Hier mal ein Teil des Scripts, vielleicht bringt das ja etwas Licht ins Dunkel 

     

    let myTitle := "Bitte bestätigen";
    let myMessage := "Wollen Sie die Buchung in Weclapp wirklich vornehmen?";
    let myChoices := ["Nein", "Ja"];
    let NA := this.Newsartikel;
    let Ct := cnt(select 'Kundenübersicht' where Newsartikel = NA);
    if dialog(myTitle, myMessage, myChoices) = "Ja" and Ct > 1 then
    do as server
    delete (select Buchungstabelle);
    let NA := this.Newsartikel;
    let UD := this.Umrechnung_Datum;
    let DUTX := this.DurationUTX;
    let BE := this.'Beschreibung_Aktivität';
    let p := (select 'Kundenübersicht' where Newsartikel = NA);
    for i in p do
    let new := (create Buchungstabelle);
    new.(ProjectID := i.ProjectID);
    new.(UserName := i.UserName);
    new.(UserID := i.UserID);
    new.(ProjectTaskID := i.ProjectTaskId);
    new.('BeschreibungAktivität' := i.BE);
    new.(DatumUTX := UD);
    new.(DauerUTX := DUTX);
    Status := 3;
    openTable("Buchungstabelle", "Buchungsübersicht")
    end
    end
    else

     

    Wie gesagt, wenn ich lediglich den OpenTable Befehl ohne das Script auf einen Button lege, funktioniert es. Sobald ich o.g. Script vorschalte klappt es nicht.

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich würde mal versuchen, das openTable() außerhalb des "do as server"-Blocks auszuführen, also nach den beiden "end", vor dem "else".

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Stimmt, User Interaktionen sind am Server sinnlos

    • Pro BoutiquenFonds GmbH
    • Eichelfr
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Funktioniert nun außerhalb des "Do as server"-Befehls, das war das Problem....wieder was wichtiges gelernt von dem unermüdlichen um Lösungen bemühten Forum! Danke Copytexter, danke Leo!