Opération FindControl dans Unified Service Desk
Cette rubrique décrit les deux approches pouvant être utilisées pour identifier un contrôle d’interface utilisateur.
Identification basée sur l’arborescence d’interface utilisateur
Cette approche capture l’arborescente de contrôle complète. Elle utilise toutes les propriétés de contrôle pour accéder au contrôle final.
Voici un exemple de format de liaison :
<UIElement Name="UISystemandSecurityHyperlink">
<UIObject MatchCount="1">
<AndCondition>
<PropertyCondition Name="Name">CPCategoryPanel</PropertyCondition>
<PropertyCondition Name="ControlType">Pane</PropertyCondition>
</AndCondition>
<UIObject>
<AndCondition>
<PropertyCondition Name="Name">System and Security</PropertyCondition>
<PropertyCondition Name="ControlType">Hyperlink</PropertyCondition>
</AndCondition>
</UIObject>
</UIObject>
<UIElement>
Les balises sont expliquées comme suit :
<UIElement>
: il s’agit du nœud racine, qui possède l’attributName
:Name
: capture le nom convivial qui sera utilisé dans l’adaptateur DDA.StartFromDesktop
: indique si la recherche est effectuée à partir du bureau ou du parent actuel.ParentUIElement
: spécifie l’UIElement
qui doit être utilisé comme contrôle parent. Pour les boutons, « volet » doit être spécifié commeParentUIElement
. Cela est utile lorsque vous créez une liaison manuellement.MatchCount
: spécifie le nombre de correspondances. Si plusieurs contrôles ont les mêmes propriétés, ils seront identifiés en fonction de cet index.
<UIObject>
: ce nœud capture l’arborescence complète pour identifier le contrôle :<PropertyCondition Name="Name">CPCategoryPanel</PropertyCondition>
: capture la condition de propriété pour laquelle le contrôle est recherché. Elle sera regroupée dansAndCondition/OrCondition/NotCondition
. S’il n’existe qu’une seulePropertyCondition
, elle doit être présentée dans le nœud racine sans regroupement.Name
représente le nom de la propriété de contrôle.AndCondition
,OrCondition
etNotCondition
: conditions de regroupement pour la condition de propriété.<AndCondition Id="SearchCondition">
: capture la condition de propriété avec laquelle le contrôle peut être identifié.Id
représente l’ID de la liste de conditions. PlusieursAndCondition
peuvent être utilisées lorsque le regroupement est fourni ultérieurement.<OrCondition Id="SearchCondition">
: capture la condition de propriété avec laquelle le contrôle peut être identifié.Id
représente l’ID de la liste de conditions. PlusieursOrCondition
peuvent être utilisées lorsque le regroupement est fourni ultérieurement.<NotCondition Id="SearchCondition">
: capture la condition de propriété avec laquelle le contrôle peut être identifié.Id
représente l’ID de la liste de conditions. PlusieursNotCondition
peuvent être utilisées lorsque le regroupement est fourni ultérieurement.AndCondition
,NotCondition
etOrCondition
: peuvent être imbriquées, mais doivent être regroupées correctement. Les liaisons XML supérieures ne doivent avoir qu’une seule condition, et elles peuvent être regroupées en interne.
Identification basée sur le décalage
Cette approche est très facile à utiliser et crée également les liaisons.
Note
Cette approche est inutilisable lorsque l’arborescence de contrôle change constamment d’emplacement, car elle utilise le numéro de position dans l’arborescence d’interface utilisateur pour identifier les contrôles. Si la position de l’arborescence d’interface utilisateur est modifiée de manière dynamique, cette approche est inutilisable.
L’attribut MatchCount
sera utilisé comme niveau de décalage. Les conditions seront fournies si nécessaire.
Voici un exemple de format de liaison.
<UIElement name="textBoxTabPage1">
<UIObject MatchCount="2">
<UIObject MatchCount="1">
<UIObject MatchCount="2">
</UIObject>
</UIObject>
</UIObject>
</UIElement>