2016-07-25 32 views
1

Ich versuche, eine 1 anzuzeigen, wenn beide Spalten in einer Zeile aufgefüllt sind, und andernfalls eine 0 anzuzeigen. Da ein Formelfeld nicht auf sich selbst beziehen kann, habe ich zwei Formelfelder genannt notnull und notnull outputNullprüfungsformel gibt keine Ausgabe zurück

Notnull wie folgt aussieht:

If NOT(isnull({Column1})) and NOT(isnull({Column2})) 
then {@notnull output} = '1' 
Else {@notnull output} = '0' 

Als ich dies in meinen Entwurf setzen, werden alle Felder sind leer. Ich möchte, dass die Ausgabe in etwa wie die folgende Tabelle aussieht. Wie kann ich das beheben?

Column1 Column2 notnull output 
foo      0 
bar   baz   1 
      qux   0 
quux      0 
gorge      0 
foo   baz   1 
gorge  foo   1 
+0

Ist das Ihre gesamte Formel? Sie erhalten keine Fehler? – CoSpringsGuy

+0

Keine Fehler, nur leer wird in jeder Zeile für "notnull output" zurückgegeben. "notnull output" ist ein Eintragsformelfeld – Sean

+1

Crystal verwendet kein doppeltes Gleichheitszeichen zum Vergleich, daher müssen Sie für die Zuweisung ': =' anstelle von '=' verwenden. Aus diesem Grund wird Ihre Ausgabe leer angezeigt. – 4444

Antwort

1

notnull entfernen und neu zu schreiben notnull output wie folgt aussehen:

IF ISNULL({Column1}) OR ISNULL({Column2}) 
THEN '0' 
ELSE '1' 

Obwohl es stimmt, man nicht eine Formel in sich setzen können, brauchen Sie nicht zu! Setzen Sie einfach die gewünschten Rückgabewerte in die Then/Else-Klausel und notnull output zeigt sie selbst an. Dies funktioniert mit jedem Rückgabetyp. Booleans, Zeichen, Zeichenketten, Daten, etc.