0

NINOX Spukt hilfe....

Bin mit meinem Latein am Ende. Bei einem Nutzer mit einer neuen Rolle, bleibt ein fx feld nicht sichtbar. Bei jedem anderen Nutzer aber!!! Diese haben zwar andere Rollen, was aber keinen Einfluss haben sollte. Einstellungen zur Sichtbarkeit hab ich alle entfernt.

Wenn ich es sehen möchte bei dem Nutzer, so muss ich ein Formelfeld mit irgendwas erstellen und speichern, dann den richtigen Inhalt reinkopieren und speichern . Jetzt ist es bei dem Nutzer sichtbar. (der zweite Mac steht bei mir, damit ich den Nutzer richtig einrichten kann, also sehe ich es in live ) Man kann alles bedienen, auch zeigt es alles richtig an. Jetzt kommt die Zauberei:

Sobald ich den Tab oben ändere..... ist es bei dem Nutzer wieder verschwunden. (Abmelden und neu Anmelden hilft auch nicht)

Dasselbe Fx.. Gleicher Inhalt, nur andere Filterung, haben auch alle anderen Benutzer. Ich als Admin kann es auch sehen.

Könnt Ihr helfen? Verstehe es einfach nicht mehr 😡

Geändert ist nur Zeile 135. Aber auch die Versionen der anderen Rollen zeigen dasselbe Verhalten. (nur halt keinen Inhalt, da die Rolle nicht stimmt)

Feld nur anzeigen, wenn .... ist leer gemacht!

Da ist eigentlich noch das Script drinnen. (Es regelt die Sichtbarkeit für die 2 zum Nutzer gehörenden Records fürs Dashboard):

let me := this;
let bb := Nr;
let cc := (select Planung where Nr = bb).number(Nr);
let dd := max((select Planung where benutzer = me.userEmail()).number(Nr));
let ff := min((select Planung where benutzer = me.userEmail()).number(Nr));
cc < dd and userRole() = "Radebeul"

 

function Style() do
    "
.nxp-timeline-table {position: auto;}
.nxp-timeline-table-head {position: auto;}
.nxp-timeline-table-body {position: auto;}
.nxp-timeline-row {display:flex;position:relative;height:30px}
.nxp-timeline-cell {width:300px;height:100%;padding:4px;flex:0 0 auto;border-right:solid 1px black;border-bottom:solid 1px black;text-align:center;line-height:32px;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 1px black}
    .nxp-timeline-cell1 {width:250px;height:100%;padding:4px;flex:0 0 auto;border-right:solid 1px black;border-bottom:solid 1px black;text-align:center;line-height:32px;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 1px black}
.nxp-timeline-cell-tooltip {display:none;opacity:0;position:relative;z-index:999;min-width:200px;background-color:white;border-style:solid;border-width: 1px;border-color:black;border-radius:3px;padding:8px;color:black;background:#f7f8fc;bottom:-40px;left:1px}
.nxp-timeline-cell:hover .nxp-timeline-cell-tooltip {display:block;opacity:1;-webkit-animation:fadeIn .3s;animation:fadeIn .3s}
.nxp-timeline-name {width:100px;text-align:left;background:#DFDFDF;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 1px black}
.nxp-timeline-name:hover {color: white;
  ;border-radius:4px;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 2px black}
.nxp-timeline-day {background:#DFDFDF}
.nxp-timeline-week {background:#DFDFDF;width:280px}
.nxp-timeline-bar {position:absolute;top:4px;height:32px;border-radius:4px;background-color:red;opacity:1;cursor:pointer;color:black;box-sizing:border-box;border:solid 2px black}
.nxp-timeline-bar-title {overflow:hidden;text-align:center;line-height:28px;height:100%}
.nxp-timeline-bar:hover {border-color:#00000022}
.nxp-timeline-bar-cap-left {border-top-left-radius:0;border-bottom-left-radius:0}
.nxp-timeline-bar-cap-right {border-top-right-radius:0;border-bottom-right-radius:0}
.nxp-timeline-bar-tooltip {display:none;opacity:0;position:absolute;z-index:200;min-width:300px;background-color:white;border-radius:5px;border-style:solid;border-width: 1px;border-color:black;padding:8px;color:black;background:#f7f8fc;bottom:-150px;left:10px}
.nxp-timeline-bar:hover .nxp-timeline-bar-tooltip {display:block;opacity:1;-webkit-animation:fadeIn .3s;animation:fadeIn .3s}
@-webkit-keyframes fadeIn {from {opacity:0} to {opacity:1}}
@keyframes fadeIn {from {opacity:0} to {opacity:1}}
    footer {
  text-align: center;
  padding: 3px;
    font-size: 15pt;
  color: white;
    text-decoration: underline wavy black

}


"
end;
let fil := text(Filialauswahl);
let aa := text(Jahr);
let bb := KW;
let me := this;
let date0 := date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 7;
let date1 := date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 2;
let days := days(date0, date1) + 1;
let rows := ((select Team where not me.Touranzeige or chosen(me.Touranzeige, number(Nr))) order by Teamauswahl);
function tooltip(me : 'Aufträge') do
    me.---
{ 'KV-Nr.' + " " + Name }<br>{ Planzeit } - { Ort + "  -  " + 'Straße' }<hr>{ 'Informationen zum Kunden (werden mit ausgedruckt)' +
if 'Liefertermin von' = 'Liefertermin bis' then
    if Dauer != 1 then " - " + text(Dauer) end
else
    if 'Dauer erster Tag' != 1 then
        " - " + text('Dauer erster Tag')
    end
end +
if 'Liefertermin von' != 'Liefertermin bis' then
    "<br>" +
    if 'Dauer letzter Tag' != 1 then
        " - " + text('Dauer letzter Tag')
    end
end }
    ---
end;
function DayHeads() do
    join(for p from date0 to date1 + 1 step 1000 * 60 * 60 * 24 do
        let date := date(p);
        ---
<div class="nxp-timeline-cell1 nxp-timeline-day"><b>{ format(date, "DD.MM.YYYY") }</b></div>
        ---
    end, "")
end;
function DayNames() do
    join(for p from date0 to date1 + 1 step 1000 * 60 * 60 * 24 do
        let date := date(p);
        ---
<div class="nxp-timeline-cell1 nxp-timeline-day">{ format(date, "dddd") }</div>
        ---
    end, "")
end;
function Cell(row : Team,date : date) do
    ---
<div class="nxp-timeline-cell1" style="background:{ if date = today() then color(row.Farbe)  else if weekday(date) > 6 then color(row.Farbe) else color(row.Farbe) end  end }">{ if 0 then "<div class='nxp-timeline-cell-tooltip'>" + "" + "</div>"  else ""  end }</div>
    ---
end;
function Bar(item : 'Aufträge',y : number) do
    let day0 := days(date0, max(date0, item.'Liefertermin von')) + 1;
    let day1 := days(date0, min(date1, item.'Liefertermin bis')) + 1;
    let capLeft := item.'Liefertermin von' < date0;
    let capRight := item.'Liefertermin bis' > date1;
    let class := if capLeft then
            " nxp-timeline-bar-cap-left"
        else
            ""
        end +
        if capRight then
            " nxp-timeline-bar-cap-right"
        else
            ""
        end;
    let color := if item.'Buchungs-Status' = 2 then
            color("#DFDFDF")
        else
            "white"
        end;
    let border := color("white");
    let title := if item.'Buchungs-Status' != 2 then
            item.Vertragspartner.'Firmen zusatz' + " - " + item.Name + " - " + item.Planzeit +
            " - " +
            item.Ort
        else
            "!!vorgemerkt!! " + " " + item.Name + " - " + item.Planzeit + " - " + item.Ort
        end;
    let firstHalf := if item.'Dauer erster Tag' = 2 or item.Dauer = 3 then
            15
        else
            0
        end;
    let lastHalf := if item.'Dauer letzter Tag' = 2 or item.Dauer = 2 then
            15
        else
            0
        end;
    let left := (day0 - 1) * 250 + 100 + number(not capLeft) * 4 + firstHalf;
    let width := (day1 - day0 + 1) * 250 - (number(not capLeft) + number(not capRight)) * 4 -
        firstHalf -
        lastHalf;
    let top := y * 36 + 4;
    ---
<div class="nxp-timeline-bar{ class }" data-nid="{ item.Nr }" style="left:{ left }px;top:{ top }px;width:{ width }px;background-color:{ color };border-color: { border }" onclick="ui.popupRecord('{ item.Nr }')" >

            <div class="nxp-timeline-bar-tooltip">{ tooltip(item) }</div><div class="nxp-timeline-bar-title">{ title }</div></div>
    ---
end;
function Row(row : Team) do
    let yMax := 0;
    let items := (row.'Aufträge'['Anzeige Radebeul vorgemerkt' = true or Vertragspartner.'Rolle Benutzer' = fil]['Liefertermin von' <= date1 and 'Liefertermin bis' >= date0] order by 'Liefertermin von');
    let yPositions := "";
    let bars := join(for item in items do
            let items2 := items['Liefertermin von' <= item.'Liefertermin von' and
                        'Liefertermin bis' >= item.'Liefertermin von' and
                    Nr != item.Nr];
            let y := 0;
            for item2 in items2 do
                let y2 := number(extractx(yPositions, number(item2.Nr) + "=([0-9]+)", "$1"));
                y := max(y, y2 + 1)
            end;
            yPositions := yPositions + " " + number(item.Nr) + "=" + y;
            "let y := count(items['Erster Tag' < item.'Erster Tag' and 'Letzter Tag' >= item.'Erster Tag'])";
            yMax := max(y, yMax);
            Bar(item, y)
        end, "");
    ---
<div class="nxp-timeline-row" style="height:{ (yMax + 1) * 36 + 6 }px">
    <div class="nxp-timeline-cell1 nxp-timeline-name"  onclick="ui.popupRecord('{ row.Nr }')"style="background-color:{ color(row.Farbe) }">>{ row.Teamauswahl }</div>{ for day from 0 to days do Cell(row, date(date(number(aa), 1, 4) - weekday(date(number(aa), 1, 4)) + number(bb) * 7 - 7 + 1)) end }{ bars }
</div>
    ---
end;
function Rows() do
    join(for row in rows do
        Row(row)
    end, "")
end;
let anz := round(sum((select Lieferscheine where 'Ausgelagert am' = null).CBM)) + " m³";
let kwanzeige := "KW " + week(today());
function Widget() do
    html(---
<div>
    <style type="text/css">{ Style() }</style>
    <div class="nxp-timeline">
        <div class="nxp-timeline-table">
            <div class="nxp-timeline-table-head">

                <div class="nxp-timeline-row"><div class="nxp-timeline-cell nxp-timeline-name">Tag</div>{ DayHeads() } </div>
                <div class="nxp-timeline-row"><div class="nxp-timeline-cell nxp-timeline-name"></div>{ DayNames() } </div>
            </div>
            <div class="nxp-timeline-table-body">{ Rows() }
            </div>
        </div>
    </div>
<footer>
  <p>{ kwanzeige }&nbspLagermenge: { anz }<br>

</footer>
</div>
    ---)
end;
Widget()

 

 

 

2 Antworten

null
    • Michi.1
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Der Zauber im Video,  brauch aber die neue Rolle samt Nutzer. 

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

    Es sind diese 3 identischen Formelfelder .... Keines will bei diesem Nutzer, mit dieser neuen Rolle.

Content aside

  • Status Answered
  • vor 2 MonatenZuletzt aktiv
  • 2Antworten
  • 47Ansichten
  • 1 Folge bereits