[...] Output post recherche (requête SQL)

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Spleen
Niveau 1
Niveau 1
Messages : 2
Enregistré le : dim. 30 mai 2010 14:17
Status : Hors ligne

[...] Output post recherche (requête SQL)

#1

Message par Spleen »

Bonjour à tous,

Je débute tout juste sur AutoIT, et j’ai eu la bonne idée de commencer par développer un GUI, chose qui n’a vraiment pas l’air simple au premier abord, surtout pour quelqu’un qui ne développe pas..

Je vous explique mon problème, en espérant que l’un de vous pourra m’aider. J’ai une base de données fichier (créé par des requêtes SQL sous AutoIT) dans lequelle se trouve des références (ID) et des descriptions pour chaque produit. Voici la requête de création de table :

Code : Tout sélectionner

Create table Produit (Product_ID VARCHAR PRIMARY KEY,Product_Name VARCHAR);
Dans mon GUI, j’ai créé un menu « rechercher » qui m’ouvre une inputbox dans laquelle l’utilisateur rentre une référence ou morceau de référence. Le but est que la requête récupère tous les produits ayant cette référence et m’affiche, sous une forme quelconque (j’ai tout de même besoin ensuite de pouvoir sélectionner un des résultats pour le visionner en détails: avec une photo, une description détaillée, un lien vers un fiche de sécurité PDF etc…) la référence et la description de chaque produit trouvé.
Je vous met le bout de code que j’ai déjà fait, au cas où ce serait plus compréhensible pour vous que ma longue explication :D

Code : Tout sélectionner

#include <sqlite.au3>
#include <sqlite.dll.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GDIPlus.au3>
#include <file.au3>
#Include <GuiListBox.au3>

Opt('MustDeclareVars', 1)

Global $msg, $FileName = "Base.DBX", $Image, $Graphic, $GUI

Menu()

        
Func Menu()
    Local $FileMenu, $FileItem1, $FileItem2
    Local $Search, $Select
    Global $ListBox
    
    ;Création du GUI
    $GUI = GUICreate("Districhem", @Desktopwidth-30, @DesktopHeight-30, -1, -1, $WS_SYSMENU, -1)
    GUISetBkColor(0xFFFFFF)
    
    ;Insertion du logo
    _GDIPlus_StartUp()
    $Image   = _GDIPlus_ImageLoadFromFile("Logo.png")
    $Graphic = _GDIPlus_GraphicsCreateFromHWND($GUI)
    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
    
    ;Création du Menu du GUI
    $FileMenu = GUICtrlCreateMenu("Fichier")
    $FileItem1 = GUICtrlCreateMenuItem("Rechercher", $FileMenu)
    $FileItem2 = GUICtrlCreateMenuItem("Quitter", $FileMenu)

    ;Evénement du GUI
    GUISetState()
    While 1
        $msg = GUIGetMsg()
        
        ;Fonction de Recherche
        If $msg = $FileItem1 Then
            If not FileExists($Filename) Then
                Msgbox(1,"Erreur...","Problème de connexion à la base de données, le programme va être fermé")
                Exit
            EndIf               
            $Search = InputBox("Rechercher...","Entrer le produit que vous recherchez:","")
            $ListBox = GUICtrlCreateList("", @DesktopWidth/3 , @DesktopHeight/3, 500 ,200)
                _SQLite_Startup()
                _SQLite_Open($Filename)
                
                $Select = _SQLite_Exec(-1,"SELECT Product_ID,Product_Name FROM Produit Where Product_ID like '%" & $Search & "%';","_cb")
                
                _SQLite_Close()
                _SQLite_Shutdown()
        EndIf   
            
        If $msg = $GUI_EVENT_CLOSE Or $msg = $FileItem2 Then ExitLoop
    WEnd
EndFunc

Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($GUI, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($Graphic, $Image, @DesktopHeight/2, 1)
    _WinAPI_RedrawWindow($GUI, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
EndFunc


Func _cb($aRow)
    For $element In $aRow
        _GUICtrlListBox_AddString($ListBox, $element & @TAB)
    Next
    
EndFunc
Ma GUICtrlList ne semble pas bien adapté à mes besoins et en plus elle ne me retourne pas le résultat de la façon dont je voudrais (si j’ai 2 résultats à ma requête, elle m’affiche les 2 références produit sur les 2 premières lignes puis les descriptions des 2 produits sur les 2 lignes suivantes…)
J’ai testé pas mal d’autre chose mais à chaque fois, ça ne fonctionne pas… En gros je suis perdu alors si quelqu’un pense pouvoir me filer un coup de main, je suis grand preneur et je vous remercie par avance de m’avoir lu !

Edit: Je vous rajoute en pièce jointe l'au3 ainsi que la DB "version allégée". Si vous souhaitez explorer la DB, je vous conseille SQLite Database Browser
Fichiers joints
Soft.zip
(3.95 Kio) Téléchargé 149 fois
Spleen
Niveau 1
Niveau 1
Messages : 2
Enregistré le : dim. 30 mai 2010 14:17
Status : Hors ligne

Re: [...] Output post recherche (requête SQL)

#2

Message par Spleen »

Personne ne connait de solution à ça? :(
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [...] Output post recherche (requête SQL)

#3

Message par SagePourpre »

Voilà !
► Afficher le texte
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre