Suite

Configurer une requête de définition avec une variable


J'écris un script censé obtenir une valeur pour un champ de l'utilisateur et utiliser cette valeur pour une requête de définition.

Si je l'écris sans variable, cela fonctionne :

my_Layer.definitionQuery = "IncidentName = 'Hospital Road, Kurri Kurri'"

Si je ceci, cela ne fonctionne pas :

AA = 'Hospital Rd, Kurri Kurri' my_Layer.definitionQuery = "IncidentName = AA"

La requête de définition est définie sur la chaîne AA, et non sur l'ensemble de valeurs que je lui ai attribué.


Vous venez de faire de AA une chaîne littérale en la citant. Vous n'avez pas correctement configuré les guillemets pour que les guillemets simples soient littéraux dans votre variable AA, et vous n'avez pas non plus concaténé la valeur de la variable à la chaîne ou ajouté à la chaîne à l'aide de la syntaxe .format. Il y a plusieurs façons de le faire correctement. Par exemple, cela pourrait être fait de cette façon :

AA = "'Hospital Rd, Kurri Kurri'" my_Layer.definitionQuery = "IncidentName = {}".format(AA)

Alternativement, cela pourrait être fait de cette manière, ce qui permettrait à l'utilisateur de saisir plus facilement une valeur qui n'a pas besoin d'être correctement citée :

AA = "Hospital Rd, Kurri Kurri" my_Layer.definitionQuery = "IncidentName = '{}'".format(AA)