(Seemingly a sibling of this thread; script columns would work here just fine)
When called from a textual filter, evaluator columns will not have access to file metadata, only to file system metadata (shell properties, I guess).
Let's compare two simple eval columns:
// ecTest1
=size<3.5mb ? "small" : "big"
and
// ecTest2
=IsSet(latitude) ? "is set" : "is not set"
They work as expected:
However, only ecTest1
can be properly used in a textual filter, at least with a Select command.
Button 1:
Select FILTERDEF =Val("eval:ecTest1")=="small"
Button 2a:
Select FILTERDEF =Val("eval:ecTest2")=="is set"
Button 2b:
Select FILTERDEF =Val("eval:ecTest2")=="is not set"
XML
<?xml version="1.0"?>
<evalcolumn align="0" attrrefresh="no" autorefresh="no" customgrouping="no" foldertype="all" keyword="ecTest1" maxstars="5" namerefresh="no" reversesort="no" title="ecTest1" type="0">=size<3.5mb ? "small" : "big"</evalcolumn>
<?xml version="1.0"?>
<evalcolumn align="0" attrrefresh="no" autorefresh="no" customgrouping="no" foldertype="all" keyword="ecTest2" maxstars="5" namerefresh="no" reversesort="no" title="ecTest2" type="0">=IsSet(latitude) ? "is set" : "is not set"</evalcolumn>
<?xml version="1.0"?>
<button backcol="none" display="both" label_pos="right" textcol="none">
<label>ecTest1</label>
<tip>Select FILTERDEF =Val("eval:ecTest1")=="small"</tip>
<icon1>#newcommand</icon1>
<function type="normal">
<instruction>Select FILTERDEF =Val("eval:ecTest1")=="small"</instruction>
</function>
</button>
<?xml version="1.0"?>
<button backcol="none" display="both" label_pos="right" textcol="none">
<label>ecTest2a</label>
<tip>Select FILTERDEF =Val("eval:ecTest2")=="is set"</tip>
<icon1>#newcommand</icon1>
<function type="normal">
<instruction>Select FILTERDEF =Val("eval:ecTest2")=="is set"</instruction>
</function>
</button>
<?xml version="1.0"?>
<button backcol="none" display="both" label_pos="right" textcol="none">
<label>ecTest2b</label>
<tip>Select FILTERDEF =Val("eval:ecTest2")=="is not set"</tip>
<icon1>#newcommand</icon1>
<function type="normal">
<instruction>Select FILTERDEF =Val("eval:ecTest2")=="is not set"</instruction>
</function>
</button>