如何防止用户在 FileMaker Pro 中使用千位分隔符?

How do I prevent users to use thousands separator in FileMaker Pro?

在FileMaker Pro中,当使用数字字段时,用户可以选择是否使用千位分隔符。例如,如果我有一个包含商品价格字段的数据库,用户可以输入 1,0001000.

我正在使用我的数据库生成需要上传的 XML 文件。问题是,我的 XML 方案规定只允许 1000 而不是 1,000 的值。因此,我想自动删除逗号,或者(在这种情况下我的偏好)在尝试输入带有千位分隔符的值时提醒用户。

我尝试的是以下内容。

对于该字段,我正在设置验证选项。例如:

不幸的是,none 这些工作。由于该字段被定义为一个数字(我想保持这样,因为我也在根据这个数字执行计算),Position 函数和 Substitute 函数显然忽略了千位分隔符!

编辑: 请注意,我通过连接字符串生成 XML,例如:

"<Products><Product><Name>" & Name & "</Name><Price>" & Price & "</Price></Product></Product>"

原因是我导出的内容取决于我数据库中的值。因此,我没有使用[文件][导出记录...]功能。

你的问题让我很困惑。据我所知,FileMaker 不存储千位分隔符,而是仅将其作为显示选项提供。 这也是那些函数找不到它的原因。 您确定要导出原始数据而不是 "formatted as layout" 变体吗?

I am using my database to generate an XML file that needs to be uploaded. The thing is, that my XML scheme dictates that only a value of 1000 is allowed and not 1,000.

如果这只是导出时的问题,为什么不在导出时处理呢?

  • 如果您使用 XSLT 导出为 XML,您可以将说明添加到 您的样式表从所有数字字段中删除逗号;
  • 或者,您可以从字段所在的布局中导出 格式化为显示时不带逗号和 select Apply current's layout data formatting to exported data 选项 正在导出。

已添加:

Perhaps I should have clarified. I am not using the export function to generate the XML as there is some logic involved in how the XML should be formatted (dependent on the data that I want to export). What I do instead is that I make a string where I combine XML-tags and actual values from the database.

恕我直言,您没有利用内置的 XML/XSLT 导出选项是错误的。任何可以想象到的逻辑都可以通过这种方式实现,而不会给您的解决方案增加创建有效 XML 的脆弱任务的负担。

无论如何,如果您在计算中使用该字段,您可以将所有对它的引用替换为:

GetAsNumber (YourField )

获取未格式化的纯数字值。

自动输入计算将起作用,但您需要取消选中框 "Do not replace existing value of field"(默认选中)。

我建议使用计算 GetAsNumber(self) 作为自动输入计算。如果它只应包含整数,请将其包装在对 Int()

的调用中