\define name() {{!!surname}}
\define hs() If the value of the field gender is true then show: "he".
If gender is false then show: "she". If gender value is empty show: it
\end
\define Hs() If the value of the field gender is true then show: "He".
If gender is false then show: "She". If gender value is empty show: It
\end
\define hs'() If the value of the field gender is true then show: "his".
If gender is false then show: "her". If gender value is empty show: it's
\end
\define Hs'() If the value of the field gender is true then show: "His".
If gender is false then show: "Her". If gender value is empty show: It's
\end
\define gender() If the value of the field gender is true then show: "boy".
If gender is false then show: "girl". If gender value is empty show: boy/girl
\end
<<name>>
<$checkbox field="gender" checked="true" unchecked="false"><<gender>></$checkbox>
<<hs>>
<<Hs>>
<<hs'>>
<<Hs'>>Of course this solves only one of your questions but maybe it helps as a starting point.
\define he-she-it(gendervalue:"_false_")
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>!prefix[_false_]]" value=<<value>> emptyValue="it" >
<<result>>
</$set>
</$vars>
\end
<$checkbox field="gender" checked="he" unchecked="she"><<he-she-it {{!!gender}}>></$checkbox>Try this:
\define he-she-it(gendervalue:"_false_")
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>!prefix[_false_]]" value=<<value>> emptyValue="it">
Code:
---
\define He-She-check(gendervalue:"_false_")
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>!prefix[_false_]]" value="He-She" emptyValue="no-value">
<$macrocall $name=<<result>> gendervalue=$gendervalue$ />
</$set>
</$vars>
\end
\define He-She(gendervalue)
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>prefix[he]]" value="He" emptyValue="She">
result: <<result>>
</$set>
</$vars>
\end
\define no-value(gendervalue)
gender is not defined
\end
<$checkbox field="gender" checked="he" unchecked="she"> male</$checkbox>
output: <$macrocall $name="He-She-check" gendervalue={{!!gender}}/>
---
In the check-macro we test, if the value is not empty in the same way as before.
According to the test result we assign the name of the next macro we want to call.
If we have a value, we go to the He-She macro and check, if the value is "he". Then we generate a maching output "He" or "She".
O.k. for your brain?
All the best!
Thomas
\define He-She-check(gendervalue:"_false_")
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>!prefix[_false_]]" value="He-She" emptyValue="no-value">
<$macrocall $name=<<result>> gendervalue=$gendervalue$ />
</$set>
</$vars>
\end
\define he-she(gendervalue)
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>prefix[he]]" value="he" emptyValue="she">
result: <<result>>
</$set>
</$vars>
\end
\define He-She(gendervalue)
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>prefix[he]]" value="He" emptyValue="She">
result: <<result>>
</$set>
</$vars>
\end
\define no-value(gendervalue)
gender is not defined
\end
\define him-her(gendervalue)
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>prefix[he]]" value="him" emptyValue="her">
result: <<result>>
</$set>
</$vars>
\end
\define Him-Her(gendervalue)
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>prefix[he]]" value="Him" emptyValue="Her">
result: <<result>>
</$set>
</$vars>
\end
\define his-her(gendervalue)
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>prefix[he]]" value="his" emptyValue="her">
result: <<result>>
</$set>
</$vars>
\end
\define His-Her(gendervalue)
<$vars value="""$gendervalue$""">
<$set name="result" filter="[<value>prefix[he]]" value="His" emptyValue="Her">
result: <<result>>
</$set>
</$vars>
\end
\define g() <$macrocall $name="he-she-check" gendervalue={{!!gender}}/>
\define G() <$macrocall $name="He-She-check" gendervalue={{!!gender}}/>
\define g2() <$macrocall $name="him-her-check" gendervalue={{!!gender}}/>
\define G2() <$macrocall $name="Him-Her-check" gendervalue={{!!gender}}/>
\define g'() <$macrocall $name="his-her-check" gendervalue={{!!gender}}/>
\define G'() <$macrocall $name="His-Her-check" gendervalue={{!!gender}}/>
<$checkbox field="gender" checked="he" unchecked="she"> male</$checkbox>
output: <$macrocall $name="He-She-check" gendervalue={{!!gender}}/>
<<g>>
<<G>>
<<g2>>
<<G2>>
<<g'>>
<<G'>>\define if(value:"_false_",test,true,else,error)
<$vars value="""$value$""" test="""$test$""">
<$set name="result" filter="[<value>!prefix[_false_]]" value="compare" emptyValue="if-error">
<$macrocall $name=<<result>> value=<<value>> test=<<test>> true="""$true$""" else="""$else$""" error="""$error$""" />
</$set>
</$vars>
\end
\define compare(value,test,true,else,error)
<$vars value="""$value$""" test="""$test$""" true="""$true$""" else="""$else$""">
<$set name="result" filter="[<value>prefix<test>]" value=<<true>> emptyValue=<<else>>>
<<result>>
</$set>
</$vars>
\end
\define if-error(value,test,true,else,error:"undefined")
//$error$//
\end
\define male() <$macrocall $name="if" value={{!!gender}} test="he" true="male" else="female" error="choose gender"/>
\define g() <$macrocall $name="if" value={{!!gender}} test="he" true="he" else="she"/>
\define G() <$macrocall $name="if" value={{!!gender}} test="he" true="He" else="She"/>
\define g2() <$macrocall $name="if" value={{!!gender}} test="he" true="him" else="her"/>
\define G2() <$macrocall $name="if" value={{!!gender}} test="he" true="Him" else="Her"/>
\define g'() <$macrocall $name="if" value={{!!gender}} test="he" true="his" else="her"/>
\define G'() <$macrocall $name="if" value={{!!gender}} test="he" true="His" else="Her" error="gender not defined"/>
<$checkbox field="gender" checked="he" unchecked="she"> <<male>></$checkbox>
<$checkbox field="gender" checked=""> undefined </$checkbox>
!! Gender Test Results
g is ''<<g>>''
G is ''<<G>>''
g2 is ''<<g2>>''
G2 is ''<<G2>>''
g' is ''<<g'>>''
G' is ''<<G'>>''