Munixo Support Forum - Kostenfreier Support für Munixo Anwender und Entwicklungspartner
0 Punkte
In einem LUA Script möchte ich zu (vielen) markierten Datensätzen aus einem Munixo-Objekt Informationen aus der Datenbank abrufen. In C# würde das einfach (mit einer einzelnen SQL Abfrage) mit einem eFieldComparison.In gehen, gibt es etwas ähnliches in LUA ebenso?
Mein Versuch, am Beispiel der BAS_Products, war wie folgt: (Ausschnitt des LUA Codes)

-- arrange all selected GUIDs in a LUA table
guidTable = {};
    for i = 0, SelectedGuids.Count - 1 do
        table.insert(guidTable, SelectedGuids[i]);
    end

    local objectQuery = DB:Open("BAS_Products", {"GUID","Name","ProductNumber"}, {"GUID", eFieldComparison.In, guidTable}, {"Name"})
    if (objectQuery.RowCount > 0) then
        for i=0, objectQuery.RowCount -1 do
            answerList[i] = {}
            answerList[i].GUID = GetEmptyStringIfTableElementIsNull(objectQuery, i, "GUID") -- "GUID"
            answerList[i].Name = GetEmptyStringIfTableElementIsNull(objectQuery, i, "Name")
[.... rest of code ....]

Was mir leider eine Fehlermeldung erzeugt, die sich über die Serialisierung der Tabelle beschwert.
Das Handbuch legt eine Verwendung von Utils:Serialize() nahe, die Implementierung erschliest sich mir aber nicht direkt.

Kann das so implementiert werden? Wenn ja, wie?
Ein kleines Beispiel wie das in LUA umgesetzt werden muss wäre ideal.
von (1.1k Punkte)

1 Antwort

0 Punkte
Beste Antwort

Ja, es geht. Dafür gibt es eine Funktion in LUA Library Novicon.Common.lua "GetInSearchStringFromLuaTable".
Ein Beispiel dafür wäre:
{cFieldName.GUID, eFieldComparison.In, GetInSearchStringFromLuaTable(guidTable)}
von (560 Punkte)
ausgewählt von