Seite 1 von 3
Ausblenden
Verfasst: 17.12.2010, 10:54
von solman
Hallo
,
ich möchte in einer Tabelle die POSNR abhängig vom "Inhalt" ausblenden.
Die Hauptpositionen 10, 20, 30 ... 110 usw. sollen sichtbar sein und die Unterpositionen 11, 12, 21, 31,32,33...111 usw. soll unsichtbar sein.
Hier mein Lösungsansatz in formcalc:
Im Formular stehe ich auf dem Feld "POSNR" und diesem Ereignis:
data.BODY.ITEM_DETAIL.DATA_DETAIL.POSNR::initialize:
if Mod($, 10) == 0
then $.presence = "visible"
else $.presence = "invisible"
endif
Leider erhalte ich folgende Fehlermeldung::(
Syntaxfehler bei Token 'Mod' in Zeile 3, Spalte 6...
Wieso kennt formcalc "Mod" nicht?
Syntax = Mod(n1, n2)
Kann mir bitte jemand helfen, vielleicht ist ja auch mein Ansatz falsch?
Viele Dank Viele Grüße
solman
Ausblenden
Verfasst: 17.12.2010, 11:28
von nele_sonntag
Also zunächt einmal ist Dein Syntax für eine IF-Verzweigung nicht korrekt. Die zu erfolgende Prüfung/Bedingung muss immer in Klammern sein.
Code: Alles auswählen
if ( simple expression ) then
list of expressions
elseif ( simple expression ) then
list of expressions
else
list of expressions
endif
Zu finden in der Hilfedatei, wenn man IF eingibt.
LG Mandy
Ausblenden
Verfasst: 17.12.2010, 11:31
von nele_sonntag
Die korrekte Verwendung der MOD-Funktion ist zu finden in der Hilfe unter
Skripterstellung >
FormCalc-Benutzerreferenz >
Arithmetik-Funktionen > Mod
LG Mandy
Ausblenden
Verfasst: 17.12.2010, 11:39
von solman
Vielen Dank
jetzt werden ALLE POSNR ausgeblendet:
if (Mod($.presence, 10) == 0 )then $.presence = "invisible" else $.presence = "visible" endif
Viele Grüße
solman
Ausblenden
Verfasst: 17.12.2010, 11:56
von nele_sonntag
Ja sehr schön, das hat doch schnell geklappt
LG Mandy
Ausblenden
Verfasst: 17.12.2010, 12:01
von solman
Hallo,
leider
werden alle "POSNR" ausgeblendet, damit funktioniert wohl "Mod" nicht wie erwartet. Wenn Mod = 0 zurückgibt soll POSNR (10,20,30 usw) angezeigt und wenn Mod <>0 soll POSNR( 11,22,31,usw.) ausgeblendet werden. Jetzt scheint Mod immer die 0 zurückzugeben?
Viele Grüße
solman
Ausblenden
Verfasst: 17.12.2010, 12:15
von nele_sonntag
Mod gibt immer nur eine Null zurück, wenn die Division aufgeht/gerade ausgeht, wenn sie nicht aufgeht, bspw 13:3, dann wird eine 1 zurückgegeben.
Was mich vorhin schon ein wenig irritiert hat ist Deine Bedingung in den Klammer. Wieso hast Du da presence stehen? In der Hilfe dazu steht: Wenn n1 und/oder n2 keine Zahlenwerte oder Ausdrücke sind, gibt die Funktion den Wert 0 zurück. Da presence nicht unbedingt ein Ausdruck ist, gibt Mod immer 0 zurück.
Normalerweise, wenn man von etwas einen Wert möchte, arbeitet man mit rawValue, bspw. Mod(Zeilenindex.rawValue,10)
Ausblenden
Verfasst: 17.12.2010, 13:11
von solman
Hallo,
Danke, jetzt funktioniert Mod wie gewünscht.
Meine Programmierkünste haben noch viele viele Lücken, daher "presence".
Danke für die schnelle Hilfe.
Ich habe jetzt die gewünschte Form, aber ich erhalte zusätzlich eine Leerzeile.
Wie kann ich diese rausnehmen?
Hast Du dazu eine Idee :) ?
Dann ist mir gerade aufgefallen, das es noch eine Fehlermeldung gibt:
Funktion 'testTotalDigits' in Zeile 1, Spalte 35 ist unbekannt
Habe ich eine Funktion hinterlegt, wie kann ich das herausfinden?
Viele Grüße
solman
Ausblenden
Verfasst: 17.12.2010, 13:45
von nele_sonntag
Vielleicht einfach mal Dein PDF hochladen, sonst ist die Diagnose schwierig.
Ausblenden
Verfasst: 17.12.2010, 14:36
von solman
Hallo,
Leerzeile hat sich aus zu großer Box ergeben, ist jetzt weg.
Die Funktion konnte ich auch finden.
Vielen Dank