数据管理功能 > 管理部件结构 > Windchill 选项与变型功能 > 用选项筛选器筛选可配置产品结构 > 在选项筛选期间计算表达式
  
在选项筛选期间计算表达式
当筛选使用关系链接时,请考虑两种表达式:使用关系链接的表达式和使用关系链接子项部件的表达式。如果子项部件上存在表达式,它可始终用于筛选可配置的子项部件。如果该部件为不可配置的部件,且仅当首选项 Allow Assignment of Expressions to Non-Configurable Items 设置为 true 时考虑表达式 (并可使用用户界面对其进行分配)。
如果任何一种表达式 (在两种表达方式均出现的情况下)评估为 FALSE,都会筛选出使用关系链接。
评估布尔型表达式
在筛选期间,系统会评估已分配的表达式,并将其与在“选项筛选器”中做出的选择进行比较。如果为选项选定了某些选择,则选中的选项被分配值 true,而未选中的选择被分配值 false。将在表达式中替代这些值,并将评估此表达式。布尔型表达式的短路求值决定表达式的值,即便未定义表达式的某些变量。考虑下列示例:
例 1
表达式为 RED && LARGE
如果变量 REDLARGE 的值为 FALSE,则整体表达式的值为 FALSE (与其他变量值无关)。
例 2
表达式为 RED||LARGE
如果变量 REDLARGE 的值为 TRUE,则整体表达式的值为 TRUE (与其他变量值无关)。
常规案例
这些示例可扩展至布尔型表达式的常规示例,因其可被分解至嵌套连接/分离/否定。例如,考虑该表达式:
(X || Y) && (Z && W) && (V || W)
如果变量 Z 的值为 FALSE,则整个布尔型表达式评估为 FALSE,不考虑变量 X、Y、W、V 的值。
筛选的其他使用案例
筛选可配置结构时应考虑其他使用案例:
产品结构可将基本表达式和高级表达式分配给不同的模块变型。选项筛选的行为如下所述:
对于基本表达式,筛选器会考虑对项和使用关系链接的选择进行合并。如果至少一个表达式计算为 TRUE,则不会将该模块变型筛除。
对于高级表达式,仅当项上和该项的使用关系链接上的表达式均计算为 TRUE 时,才不会筛除该模块变型。
表达式会分配给已配置产品结构中的使用关系链接和模块变型的具体值。“选项筛选器”首先计算分配给使用关系链接的表达式,之后会计算分配给其具体值的表达式,顺序如下:
如果已分配的表达式计算为 FALSE,则会筛除模块变型及其所有具体值。
如果已分配的表达式计算结果为 TRUE,则“选项筛选器”会对分配给具体值的表达式进行计算。如果计算结果为 FALSE,则会筛除一个具体值。