0

Branching Checklist – verzweigtes Checklisten-System

Das Beispiel zeigt eine solche Checkliste, welche hier an einer Stelle abzweigen muß. Die Liste enthält 10 Felder, von denen nur jeweils 1-2 angezeigt werden. Abschliessend wird die jeweilige Triagefarbe ohne Schrift angezeigt. Es sind sicher auch weiter verzweigtere Entscheidungsbäume möglich. Falls jemand so einen eher exotischen Code mal benötigt, mülle ich hier mal wieder die Tipps voll. In den "flowchartValues" sind alle Checklistenfelder enthalten. Der "displayedIndex" enthält die nach Auswahl des Eintrags anzuzeigenden Checklistenfelder. Man benötigt also nur ein dchoice-Feld. Um kurze Einträge zu haben, habe ich mich für das mathematische "Nicht" entschieden: "¬". 

Hier die Papierform:

 Hier der Code für das dchoice namens "dchoice":

let dchoiceValue := number(dchoice);
let flowchartValues := [{
            ID: 1,
            color: "seagreen",
            value: "walking",
            displayedIndex: [1]
        }, {
            ID: 2,
            color: "clear",
            value: "¬ walking",
            displayedIndex: [3, 4]
        }, {
            ID: 3,
            color: "firebrick",
            value: "severe bleeding",
            displayedIndex: [3]
        }, {
            ID: 4,
            color: "clear",
            value: "¬ severe bleeding",
            displayedIndex: [5, 6]
        }, {
            ID: 5,
            color: "clear",
            value: "talking",
            displayedIndex: [7, 8]
        }, {
            ID: 6,
            color: "clear",
            value: "¬ talking",
            displayedIndex: [9, 10]
        }, {
            ID: 7,
            color: "firebrick",
            value: "penetrating",
            displayedIndex: [7]
        }, {
            ID: 8,
            color: "gold",
            value: "¬ penetrating",
            displayedIndex: [8]
        }, {
            ID: 9,
            color: "firebrick",
            value: "breathing",
            displayedIndex: [9]
        }, {
            ID: 10,
            color: "gray",
            value: "¬ breathing",
            displayedIndex: [10]
        }];
let display := if dchoiceValue = null then
        [1, 2]
    else
        for i in item(flowchartValues, dchoiceValue - 1).displayedIndex do
            number(i)
        end
    end;
for i in display do
    let object := {};
    setItem(object, "id", number(item(flowchartValues, i - 1).ID));
    setItem(object, "color", color(text(item(flowchartValues, i - 1).color)));
    setItem(object, "caption", text(item(flowchartValues, i - 1).value));
    setItem(object, "textColor", if dchoiceValue = first(item(flowchartValues, i - 1).ID) then
        color(text(item(flowchartValues, i - 1).color))
    end);
    object
end

Antwort

null

Content aside

  • vor 3 StundenZuletzt aktiv
  • 5Ansichten
  • 1 Folge bereits