petite question

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dreamind
Messages : 28
Inscription : dim. 16/janv./2005 23:34
Localisation : Toulouse/FRANCE

petite question

Message par dreamind »

Bonjour à tous !!!

Je cherche à faire un logiciels de gestion de stock de pièces et je me pose quelques questions.

Je voudrais que les pièces soit affichées dans une listicon dans l'ordre alphabétique et je me posais la question de savoir ce qui était le mieux pour faire cette gestion.

Je viens du dark basic et j'aurais fais ça avec un tableau en insérant les lignes aux bon endroit pour garder l'ordre alphabétique directement dans le tableau mais je ne sais pas si en pure on peut faire ça.

En fait je veux faire un truc tout simple qui affiche les noms des pièces et le stock et je voudrai juste savoir qu'elle marche vous suivriez.
pour le moment j'ai fais ça :

Code : Tout sélectionner

;----------------------------------
;             GESTOK
;  Gestion de stock maintenance SNP
;         FUNDARO WILLIAM
;            AOUT 2005
;----------------------------------
;
;========== déclaration des constantes

Enumeration  ;énumération des fenetres
  #Window_0
  #window_recherche
  #window_alarme
EndEnumeration

Enumeration  ;énumération des gadgets
  #titre_log
  #menu
  #menu_ajout
  #menu_supp
  #menu_nom
  #menu_ref
  #menu_about
  #liste_produit
  #titre
  #bouton_quitter
  #alarme
EndEnumeration

;******* déclaration des variables


;******* déclaration des procedures

Procedure fenetre_principale()
  If OpenWindow(#Window_0, 216, 0, 800, 600,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "Gestion de stock --- Maintenance SNP")
If CreateMenu(#menu, WindowID(#Window_0))
    MenuTitle("Produits")
      MenuItem( #menu_ajout, "Ajouter une référence")
      MenuItem( #menu_supp, "Supprimer une référence")
     
    MenuTitle("Recherche")
      MenuItem( #menu_nom, "Par nom")
      MenuItem( #menu_ref, "Par référence")
 
      
    MenuTitle("?")
      MenuItem(#menu_about, "About")

  EndIf

    If CreateGadgetList(WindowID(#Window_0))
    
      TextGadget(#titre_log,300,10,200,40,"GESTOK",#PB_Text_Center)
      If LoadFont(0,"Arial",25,#PB_Font_Bold)
        SetGadgetFont(#titre_log,FontID())
      EndIf
     
      ListIconGadget(#liste_produit,20,70, 760, 455, "Nom",200, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines)
        AddGadgetColumn(#liste_produit,1,"Référence",175)
        AddGadgetColumn(#liste_produit,2,"Emploie",181)
        AddGadgetColumn(#liste_produit,3,"Emplacement",100)
        AddGadgetColumn(#liste_produit,4,"Stock",50)
        AddGadgetColumn(#liste_produit,5,"Alarme",50)
      ButtonGadget(#alarme,50,540,100,30,"Alarme")  
      ButtonGadget(#bouton_quitter,650,540,100,30,"QUITTER")
    EndIf
  EndIf
EndProcedure

;*************************************************

;***********   PROGRAMME

fenetre_principale()

Repeat
Event = WaitWindowEvent()

If Event = #PB_EventGadget
  Select EventGadgetID()
    Case #bouton_quitter
      event = #PB_Event_CloseWindow
  EndSelect
EndIf

Until event = #PB_Event_CloseWindow
Merci pour vos réponses.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Les ListIconGadget on 2 styles systèmes qui sont
LVS_SORTASCENDING
Item indexes are sorted based on item text in ascending order.

LVS_SORTDESCENDING
Item indexes are sorted based on item text in descending order.

Ce n'est pas indiqué dans la doc mais on peut les mettre comme un parametre d' otption (c'est valable pour tous les styles des Listicongadget (ça ne marche pas pour les styles étendus)

Avec ces styles, c'est le système qui va trier la liste

Code : Tout sélectionner

ListIconGadget(#liste_produit, 20, 70, 760, 455, "Nom", 200, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_GridLines | #LVS_SORTASCENDING)
Sinon on peut trier une listIconGadget par exemple en cliquant sur les bouton d'entête (qui permet un tri en fonction du parametre choisi) mais c'est à toi d'écrire les routines et c'est un peu plus difficile et nécessite l'utilisation d'une Callback

j'ai posté un code ici avec une fontion de tri
http://purebasic.hmt-forum.com/viewtopi ... =exploreur

Sinon tu peux utiliser une liste chainée qui soit la copie de la LIsticon et trier la liste chaînée avec les commandes SortStructuredList() ou SortList()
dreamind
Messages : 28
Inscription : dim. 16/janv./2005 23:34
Localisation : Toulouse/FRANCE

Message par dreamind »

Merci beaucoup pour ta réponse tu as très bien expliqué je vais voir ce que j'arrive à faire.

Encore merci :D
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

PUB
Il existe aussi la librairie prête à l'emploi PureLVSORT, qui permet notemment de trier les colonnes d'un ListIconGadget à la demande ou après un clic de l'utilisateur sur un en-tête.
http://forums.purebasic.com/english/vie ... highlight=
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

gnozal a écrit :PUB
Il existe aussi la librairie prête à l'emploi PureLVSORT, qui permet notemment de trier les colonnes d'un ListIconGadget à la demande ou après un clic de l'utilisateur sur un en-tête.
http://forums.purebasic.com/english/vie ... highlight=
T'as raison gnozal

faut se faire de la PUB :D
dreamind
Messages : 28
Inscription : dim. 16/janv./2005 23:34
Localisation : Toulouse/FRANCE

Message par dreamind »

Avec tout vos conseils voilà ce que j'ai fait.


http://ffdw.free.fr/gestok.exe


C'est pas encore professionnel mais bon c'est mon premier soft en purebasic.

Encore merci à tous.

:D
Répondre