Page 1 sur 1

[R] ListView, désactiver le Drag and Drop

Posté : dim. 27 mars 2011 11:28
par Strofe
Bonjour

Après pas mal de recherche, je me permets de solliciter votre aide.

Je veux supprimer l'effet Drag and Drop d'un ListView.

Si je clique sur une ligne et que je déplace la souris, le mode drag and drop est présent.
► Afficher le texte
Par avance merci

Christophe

Re: [..] ListView --> Drag and Drop

Posté : dim. 27 mars 2011 12:22
par Tlem
Voici un exemple plus complet que le simple traitement du Drag&Drop (au cas ou ...) :
► Afficher le texte

Re: [..] ListView, désactiver le Drag and Drop

Posté : dim. 27 mars 2011 18:10
par Strofe
Bonsoir

Encore mieux que sur le plan. :D

Merci le prototype est opérationnel.

Je fais un test à l'échelle 1 dès demain matin.

Encore merci

Christohpe

Re: [R] ListView, désactiver le Drag and Drop

Posté : lun. 28 mars 2011 08:43
par Strofe
Bonjour

Impeccable

Pour info voici le code complet. (sans les paramètres pour la base de données SQL)
► Afficher le texte
Encore merci :D

Christophe

Re: [R] ListView, désactiver le Drag and Drop

Posté : lun. 28 mars 2011 10:59
par jchd
En AutoIt avec une GUI standard, les ListViewItems ne sont pas "dropables" sauf code additionnel spécifique (avec WM_NOTIFY et $LVN_BEGINDRAG). Le curseur souris peut faire croire que le drag and drop est utilisable, mais ce n'est qu'un effet visuel.

Par contre, il y a deux choses qui me chiffoneraient assez dans la partie SQL. La première est que les littéraux ne sont pas correctement quotés :

Code : Tout sélectionner

    $sql &= "SELECT CodeArticle, CodeFamille, MotDirecteur, Designation1, Localisation FROM ARTICLE WHERE "
    $sql &= "CodeArticle Like '%" & $CdeArt & "%' AND "
    $sql &= "CodeFamille Like '%" & $CdeFam & "%' AND "
    $sql &= "MotDirecteur Like '%" & $MotDir & "%' AND "
    $sql &= "Designation1 Like '%" & $Des & "%' AND "
    $sql &= "Designation1 Like '%" & $Des1 & "%' AND "
    $sql &= "Localisation Like '%" & $Loc & "%' "
Outre le fait qu'il y a deux critères LIKE (reliés par AND) sur la même colonne Designation1 (fort étrange), outre le fait que tous les critères soient LIKE (ce qui perso me semble peu probable et peu efficace), on doit s'imposer de quoter les littéraux texte avec une fonction du genre :

Code : Tout sélectionner

Func X($s)
    Return ("'" & StringReplace($s, "'", "''", 0, 1) & "'")
EndFunc   ;==>X
qui double toute apostrophe [simple quote] à l'intérieur du littéral texte.
Si par exemple on a une désignation contenant une simple quote (apostrophe pour nous) :

Code : Tout sélectionner

$Des = "Coude 45° de guide d'onde série UGA56"
on doit soumettre cette partie comme ceci :

Code : Tout sélectionner

    $sql &= "Designation1 Like " & X("%" & $Des & "%") & " AND "
sinon la quote de d'onde termine le littéral prématurément.

Par ailleurs, en contexte professionnel, attention à l'injection de code SQL (cf. Google).

Ces deux écueils sont normalement contournés en utilisant des paramètres (?) dans le SQL et en faisant des BIND des valeurs littérales. Ces fonctions ne sont pas toujours disponibles (sans bugs) en ODBC et pour info je n'ai pas implémenté ces possibilités dans l'UDF SQLite (car l'interface avec AutoIt devient lourde et moins efficace en utilisation moyenne).

Re: [R] ListView, désactiver le Drag and Drop

Posté : lun. 28 mars 2011 21:52
par Strofe
Bonsoir

Pour la simple quote ('), je n'y avais pas pensé.... Je regarde dès demain pour intégrer cela. Merci.

Par contre pour les like et and, je suis formel, c'est excellent. (Base de données Sql Server 2K)

Le but et d'avoir une interrogation avec un seul filtre, leus utilisateurs donnent les critères qui les interessent.

Donc s'il n'y a pas de désignation le critère vaut %% qui renvoit tout... Simple astuce....
De plus 2 fois designation à cause du manque de rigueur..

Ex : Vis Inox de 3x20 ----- ou ------ Vis 3x20 Inox ----- grrrrrrr

A+