You can put this into the Code pane of the field Properties panel of any field you want to blank out 0’s:
formulafill ?(«»=0,zeroblank(«»),«»)
This will blank out any manually entered 0 along with any other existing displayed zeros in that field but not help with entries made in other ways. This can be covered when using procedure entries by adding this code after the entry code as in this example:
myField=0
runfieldcode myField
This will force the field code to execute the same as if entered manually. You could also make a hotkey to run zeroblanking code any time on all the numeric fields in any database even without the above entry into the Properties Code pane.
definehotkeys "Global", "OPTION-CONTROL-0", |||local myNumericFields
fieldtypes "",myNumericFields
arrayfilter myNumericFields, myNumericFields, cr(),
?(arraylast(import()," ") contains "NUMERIC",
arrayfirst(import()," "),"")
myNumericFields=arraystrip(myNumericFields,cr())
looparray myNumericFields,cr(),element,index
field (element)
formulafill ?(«»=0,zeroblank(«»),«»)
endloop|||
I have chosen the option-control-0 hotkey but you can substitute any combination you want. You can simplify the code to only act on the database and fields you want with code like this run from the desired database:
definehotkeys "database", "OPTION-CONTROL-0",
|||let myNumericFields="Price,Quantity,Total"
looparray myNumericFields,",",element,index
field (element)
formulafill ?(«»=0,zeroblank(«»),«»)
endloop|||
Note: What would be cool is if there was a pattern designator that indicated zeroblank. Maybe using a special character like § (option-6) so that pattern(myPriceField,“§$#.##”) would indicate that the Price field entry would be blank if it was zero and this pattern could be entered into the Output Pattern of the numeric field Properties.