Page 1 sur 1

petite question

Publié : mer. 27/juil./2005 23:51
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.

Publié : jeu. 28/juil./2005 4:53
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()

Publié : jeu. 28/juil./2005 8:28
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

Publié : jeu. 28/juil./2005 8:40
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=

Publié : sam. 30/juil./2005 17:44
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

Publié : mar. 30/août/2005 20:06
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