Logikfehler im Code - bitte um Hilfe
ich hab eine Ansicht kreeirt, in der ich einträge aus einer tabelle 'KB' listen will, wenn sie einem bestimmten einzig dem status (=2) entsprechen und folglich je nachdem welches 'via' gewählt wurde, bestimmten werten aus der tages-berechnung - days(x,y) - wobei y heute ist und x der tag des eintrages des wertes 'via', entsprechen muss ...
erst dachte ich, es funktioniert, aber dann merkte ich, dass es nur dann funktioniert, wenn das 'via' = 2, was das erste vorkommen von 'via' im code ist - es muss daran liegen, denn wenn ich den code so umbaue, dass 'via' = 1 zuerst steht, dann zeigt er die einträge nur bei diesen treffern an ...
ich dachte, in meiner laienhaftigkeit, or könnte zwischen den einzelnen bedingungen stehen, aber da zeigt er vielmehr und darüber hinaus gehend alle einträge aus 'KB' an ... bei and wirkt es wie gesagt so, als ob alle den bedingungen des ersten 'via' im code folgenden irrelevant sind ...
hier mal der code - wäre sehr dankbar für den entscheidenden hinweis ... danke
select KB where Art = 2 and 'Tage' >= 7 and via = 2 and Status = 3 and (select KB where Art = 2 and 'Tage' >= 7 and via = 3 and Status = 3) and (select KB where Art = 2 and 'Tage' >= 1 and via = 4 and Status = 3 and (select KB where Art = 2 and 'Tage' >= 14 and via = 1 and Status = 3))
10 Antworten
-
sorry, status ist natürlich immer 3
-
Hier sieht man ja den Wald vor lauter "and" nicht.... ist es nicht einfacher nach Bedingungen zu filter die NICHT zutreffen? Was soll denn hier selektiert werden?
Art ist immer = 2, Via ist 1,2,3 oder 4, Status ist immer 3 und Tage ist alles von 1- 14 ???
-
hm, ohne in's Detail zu gehen, evtl. so?:
select KB where (Art = 2 and 'Tage' >= 7 and via = 2 and Status = 3) or (Art = 2 and 'Tage' >= 7 and via = 3 and Status = 3) or (Art = 2 and 'Tage' >= 1 and via = 4 and Status = 3) or (Art = 2 and 'Tage' >= 14 and via = 1 and Status = 3)
-
Haha! ja bin sicher, dass das einfacher ginge ...
Es geht um Bestellungen und Kontaktaufnahme mit den entsprechenden Kunden:
Art ist das Produktsegment, in dem Fall gilt unsere Formel nur für eines ...
Status ist der Status der Bestellung, also bestellt oder am Weg, oder, für uns relevant, bereits hier im Shop ('Status = 3)...
via ist der Weg, auf dem wir den Kunden bereits informiert haben, dass die Bestellung eingetroffen ist - Tel, SMS, Mail ...
x ist dieser Tag, an dem ich den Kunden ('via') darüber infomiert habe
y ist heute
Was ich jetzt will ist, dass die Ansicht mir am Morgen, wenn ich Ninox öffne, als erstes die Kunden anzeigt, die nach einer gewissen Zeit eines bestimmten Kontaktweges ihre Bestellung noch immer nicht abgeholt haben - auf dass ich sie nochmal kontaktiere - zB hab ich sie telefonisch erreicht ('via' = 1), dann erscheinen sie 14 Tage danach in der Ansicht als Erinnerung, sie daran zu erinnern - hab ich das aber via SMS getan, zB 7 Tage danach oder hab ich sie gar nicht erreicht ('via'= 4), dann gleich wieder am nächsten Tag ...
Ich will diese lästigen und zeitaufwändigen Prozesse einfach in Ninox auslagern und dafür suche ich den richtigen Code ...
bin nach wie vor nicht sehr tief drin in NInox, ahb zwar schon etwas mit switch case gespielt, aber ich bin sicher, ein erfahrener Programmierer hat da ganz schnnel die passende Lösung
thx
-
@Thorsten
so hab ich es auch schon versucht, aber die Klammern sind nach Eingabe gleich wieder verschwunden
-
@Torsten
taking the h back ;)
-
Mach dir doch ein Auswahlfeld KONTAKTAUFNAHME mit "Anruf", "SMS" und "Mail", ein Datumsfeld und ein Datumsfeld WIEDERVORLAGE.
In den Trigger bei Änderung des KONTAKTAUFNAHME Feldes kommt
switch KONTAKTAUFNAHME do
case 1:
(
Datum := today();
wiedervorlage := today() + 14
)
case 2:
(
Datum := today();
wiedervorlage := today() + 7
)
case 3:
(
Datum := today();
wiedervorlage := today() + 1
)
endJetzt machst Du dir eine Ansicht mit den Wiedervorlagen, sortierst auch danach und fertig... hilft Dir das?
-
klingt gut ... ich versuch es dann und geb bescheid
danke vielmals für die mühe :)
-
works perfectly ... simply thought, simply implemented ... :)
danke für den Anstoß!
schönen Abend
-
Dit freut mir.... Dito
LG
Tobias
Content aside
- vor 3 JahrenZuletzt aktiv
- 10Antworten
- 247Ansichten