2009-06-09 90 views
1

我正在制作一个绑定到Access数据库的InfoPath表单。我有一组单选按钮,其中用户选择与表单相对应的软件名称,但我将它作为数字(1,2或3)存储在我的数据库中。换一种说法,我希望他们能够看到之前输入的软件名称,但无法更改。下面是我想到的两个选项:以infopath形式创建一个单选按钮“只读”?

  1. 创建一些规则,确实可以防止用户更改这些数据

    这似乎是我想要做的自然的方法。

  2. 每个号码添加一个文本字段的功能映射到相应的软件

    由于表格是联系在一起的数据库时,InfoPath希望所有字段被捆绑到一个数据库值,这将需要创建另一个数据库条目。我也无法找到可用于处理此映射的InfoPath函数。

  3. 将无线电框的变量更改为文本值,并在新视图中创建一个可以为只读的文本框。

    我真的不希望这样做,因为它会使其他程序使用这个数据库值变得更加混乱,并且看起来很浪费,但如果没有其他工作,这似乎是可行的。

是否有某种规则/方法可用于使此单选按钮控件只读?

回答

3

您可以使用条件格式来禁用任何控件(包括单选按钮)。 要设置控制始终被禁止执行以下操作:

  1. 鼠标右键点击你的控制和选择条件格式...
  2. 点击添加...
  3. 在最左边的下拉列表选择表达式
  4. 类型true()在文本字段中(这告诉InfoPath始终应用此格式)
  5. 检查禁用此控件复选框。
  6. Click OK and OK

注意:您需要为每个单选按钮执行此操作。另外,为了将来的参考:如果你只是想显示一个函数的结果(比如在你的第二个解决方案中),你不需要使用文本框。您可以使用表达式框。表达式框不一定与数据源中的字段链接,因此数据库中不需要额外的列。

+1

读这个很晚,但为什么你需要在每个单选按钮上做这个,而不是它们是子控件的选项组?如果父项选项组被禁用,则其所有子控件也被禁用。 – 2009-11-17 22:25:49