在FileMaker Pro中,当使用数字字段时,用户可以选择是否使用千位分隔符。例如,如果我有一个包含商品价格字段的数据库,则用户可以输入1,000
或1000
。
我正在使用数据库生成需要上传的XML文件。事实是,我的XML方案规定仅允许1000
的值,而不允许1,000
的值。因此,我想自动删除逗号,或者(尝试使用千位分隔符输入值时)(在这种情况下为我的首选)提醒用户。
我尝试的是以下内容。
对于该字段,我正在设置验证选项。例如:
Position ( Self ; ","; 1 ; 1 ) = 0
Self = Substitue ( Self, ",", "")
不幸的是,这些都不起作用。由于该字段被定义为一个数字(并且我想像这样保持它,因为我也基于该数字执行计算),所以Position
函数和Substitute
函数显然忽略了千位分隔符!
编辑: 请注意,我是通过串联字符串来生成XML的,例如:
"<Products><Product><Name>" & Name & "</Name><Price>" & Price & "</Price></Product></Product>"
原因是我导出的内容取决于数据库中的值。因此,我没有使用[File] [Export records ...]函数。
答案 0 :(得分:1)
我正在使用数据库生成需要上传的XML文件。事实是,我的XML方案规定只允许值为1000,而不是1000。
如果这只是导出时的问题,为什么在导出时不处理呢?
Apply current's layout data formatting to exported data
选项
导出。也许我应该澄清一下。我不使用导出功能来生成XML,因为XML的格式应涉及一些逻辑(取决于我要导出的数据)。相反,我要做的是创建一个字符串,在其中结合XML标记和数据库中的实际值。
恕我直言,您由于没有利用内置的XML / XSLT导出选项而犯了一个错误。任何可以想象得到的逻辑都可以通过这种方式实现,而不必为创建有效XML的脆弱任务增加解决方案的负担。
无论如何,如果您在计算中使用该字段,则可以将所有对该字段的引用替换为:
GetAsNumber (YourField )
获取无格式,仅数字的值。
答案 1 :(得分:1)
自动输入计算将起作用,但是您需要取消选中“不替换字段的现有值”框(默认情况下处于选中状态)。
我建议使用计算GetAsNumber(self)
作为自动输入计算。如果仅包含整数,则将其包装在对Int()
答案 2 :(得分:0)
您的问题使我感到困惑。据我所知,FileMaker不会存储千位分隔符,而是仅将其提供为显示选项。 这就是为什么这些函数找不到它的原因。 您确定要导出原始数据,而不是“格式化为布局”变体吗?