Afficher data à partir de la saisie
Publié : mer. 25/mai/2016 12:23
Bonjour
Je souhaiterais afficher la liste des clients sur une grille au fur et à mesure que l'utilisateur saisit le mot clé caractère par caractère.
Exemple : Dès que l'utilisateur commence à saisir le texte : (en commençant par la lettre P par exemple) alors toute la liste des clients commençant par P sera affichée, ensuite dès que l'utilisateur ajoute le caractère suivant (la lettre A par exemple), c'est la liste commençant par PA qui sera affichée ect jusqu'à ce que l'utilisateur sélectionne sur la grille le client qui l'intéresse, je ne connais pas l'évènement qui fera ça. J'ai essayé ceci:
D'abord l'utilisateur ne veut pas appuyer sur tache (ENTREE) après avoir saisi le mot clé, il préfère que la liste des clients sera affichée au fur et à mesure qu'il tape les caractères du mot clé (à chaque nouveau caractère saisi, une liste sera affichée), voici ce qui se passe avec mon code:
Quand l'utilisateur tape la 1ère lettre, la liste des clients est affichée et le contenu est correct, mais l'utilisateur ne pourra plus ajouter d'autres lettres??
Qu dois je faire ?
Merci de votre aide
Je souhaiterais afficher la liste des clients sur une grille au fur et à mesure que l'utilisateur saisit le mot clé caractère par caractère.
Exemple : Dès que l'utilisateur commence à saisir le texte : (en commençant par la lettre P par exemple) alors toute la liste des clients commençant par P sera affichée, ensuite dès que l'utilisateur ajoute le caractère suivant (la lettre A par exemple), c'est la liste commençant par PA qui sera affichée ect jusqu'à ce que l'utilisateur sélectionne sur la grille le client qui l'intéresse, je ne connais pas l'évènement qui fera ça. J'ai essayé ceci:
Code : Tout sélectionner
Enumeration
#WinSelCF
#SelCF_Grid
#Winstock
;Livraisons-------------------------------------------------------
#fbl_Titre
#fbl_FrameDoc
#fbl_new
#fbl_TxtNumDoc
#fbl_NumDoc
#fbl_selNumDoc
#fbl_TxtDate
#fbl_Date
#fbl_selDate
#fbl_TxtBc
#fbl_Bc
#fbl_TxtDocSource
#fbl_DocSource
#fbl_TxtCF
#fbl_Cf
#fbl_selCf
#fbl_FrameMaj
#fbl_TxtFam
#fbl_Fam
#fbl_selFam
#fbl_TxtRef
#fbl_Ref
#fbl_selRef
#fbl_TxtProd
#fbl_Prod
#fbl_selProd
#fbl_TxtUm
#fbl_Um
#fbl_selUm
#fbl_TxtQte
#fbl_Qte
#fbl_TxtPu
#fbl_Pu
#fbl_TxtMnt
#fbl_Mnt
#fbl_Valider
#fbl_Supprimer
#fbl_Imprimer
#fbl_AnnulerDoc
#fbl_grid
#fbl_FrameTotal
#fbl_TxtHT
#fbl_HT
#fbl_TxtFrais
#fbl_Frais
#fbl_TxtRemise
#fbl_Remise
#fbl_TxtTTC
#fbl_TTC
#fbl_FrameVer
#fbl_TxtModep
#fbl_Modep
#fbl_CheckEsp
#fbl_CheckCheq
#fbl_CheckVir
#fbl_Checkaterme
#fbl_FrameChauf
#fbl_FrameCamion
#fbl_Framemat
#fbl_Chauf
#fbl_Camion
#fbl_Mat
#fbl_selChauf
#fbl_selCamion
#fbl_selmat
#fbl_FrameStock
#fbl_StockDisp
#fbl_Pmp
#fbl_EnregistrerDoc
endEnumeration
Procedure AfficherGridSelCF()
OpenWindow(#WinSelCF, 0,0, 500, 200, "Sélectionnez un client-fournisseur",#PB_Window_SystemMenu |#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#WinSelCF))
wrow=20
ListIconGadget(#SelCF_Grid, 10, wrow, 480, 180, "Code", 40, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
AddGadgetColumn(#SelCF_Grid,1, "Client - fournisseur", 200)
AddGadgetColumn(#SelCF_Grid,2, "Adresse", 100)
AddGadgetColumn(#SelCF_Grid,3, "Rc", 100)
AddGadgetColumn(#SelCF_Grid,4, "MF", 100)
AddGadgetColumn(#SelCF_Grid,5, "ART",100)
AddGadgetColumn(#SelCF_Grid,6, "NIS",100)
EndIf
;Remplir le grid en fonction des caractères saisis
input$=UCase(input$)
wtaille=Len(input$)
sql="select * from fcf order by cf"
CheckDatabaseQuery(idcf,sql)
While NextDatabaseRow(idcf)
codecf$=GetDatabaseString(idcf,0)
cf$=UCase(GetDatabaseString(idcf,1))
ad$=UCase(GetDatabaseString(idcf,2))
rc$=UCase(GetDatabaseString(idcf,4))
mf$=UCase(GetDatabaseString(idcf,5))
art$=UCase(GetDatabaseString(idcf,6))
nis$=UCase(GetDatabaseString(idcf,7))
If (Left(cf$,wtaille) = input$)
AddGadgetItem(#SelCf_grid,-1,codecf$+Chr(10)+cf$+Chr(10)+ad$+Chr(10)+rc$+Chr(10)+mf$+Chr(10)+art$+Chr(10)+nis$)
EndIf
Wend
wquitSelCF=0
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #SelCf_grid
wrow=GetGadgetState(#SelCf_grid)
If wrow>=0 And wrow<CountGadgetItems(#SelCf_grid)
codecf$=GetGadgetItemText(#SelCf_grid,wrow,0)
cf$=GetGadgetItemText(#SelCf_grid,wrow,1)
ad$=GetGadgetItemText(#SelCf_grid,wrow,2)
rc$=GetGadgetItemText(#SelCf_grid,wrow,3)
mf$=GetGadgetItemText(#SelCf_grid,wrow,4)
art$=GetGadgetItemText(#SelCf_grid,wrow,5)
nis$=GetGadgetItemText(#SelCf_grid,wrow,6)
SetGadgetText(#fbl_cf,cf$)
wquitSelCF=1
endif
EndSelect
EndIf
Until wquitSelCF=1
CloseWindow(#winSelCF)
EndProcedure
Procedure Run_stock()
quitWinstock=0
wMask$=FormatDate("%dd/%mm/%yyyy", Date())
date$=wMask$
ExamineDesktops()
Wlargeur=DesktopWidth(0)
Whauteur=DesktopHeight(0)
OpenWindow(#Winstock, 0,0,0,0, "Logiciel de gestion commerciale - stocks", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_Maximize)
WLar=Wlargeur-50:WHaut=Whauteur-100
If CreateGadgetList(WindowID(#Winstock))
PanelGadget(#Panel, 10,10, WLar, WHaut)
AddGadgetItem (#Panel, -1, " LIVRAISON ");***************************************************
TextGadget(#fbl_Titre, 20, 20, 560, 30, "BON DE LIVRAISON")
wrow=50
Frame3DGadget(#fbl_FrameDoc, 10, wrow, 940,80, "",#PB_Frame3D_Flat)
wrow=wrow+20
TextGadget(#fbl_TxtNumDoc, 20, wrow, 60, 20, "N° BL:")
StringGadget(#fbl_NumDoc, 80, wrow, 60, 20, "")
TextGadget(#fbl_TxtDate,160, wrow, 60, 20, "Date:")
StringGadget(#fbl_Date,190, wrow, 90, 20, date$)
DateGadget(#fbl_SelDate,190, wrow+25, 90, 20,"%dd/%mm/%yyyy")
TextGadget(#fbl_TxtCF, 650, wrow, 110, 20, "CLIENT:")
StringGadget(#fbl_CF, 740, wrow, 200, 20, "",#PB_String_UpperCase)
wrow=wrow+60
Frame3DGadget(#fbl_FrameMaj, 10, wrow, 940,110, "",#PB_Frame3D_Flat)
wrow=wrow+20
TextGadget(#fbl_Txtfam,20, wrow, 80, 20, "Famille:")
StringGadget(#fbl_fam,80, wrow, 150, 20, "")
ComboBoxGadget(#fbl_selFam,80, wrow+25, 150, 100)
TextGadget(#fbl_Txtref,290, wrow, 80, 20, "Référence:")
StringGadget(#fbl_ref,350, wrow, 80, 20, "")
ComboBoxGadget(#fbl_selref,350, wrow+25, 80, 100)
TextGadget(#fbl_TxtProd,470, wrow, 120, 20, "Désignation:")
StringGadget(#fbl_prod,540, wrow, 400, 20, "")
ComboBoxGadget(#fbl_selProd,540, wrow+25, 400, 100)
wrow=wrow+60
TextGadget(#fbl_TxtUm,20, wrow, 50, 20, "UM:")
StringGadget(#fbl_Um,80, wrow,70, 20,"")
ComboBoxGadget(#fbl_selUm,160, wrow, 70, 100)
TextGadget(#fbl_TxtQte,300, wrow, 60, 20, "Quantité:")
StringGadget(#fbl_Qte,350, wrow, 80, 20,"")
TextGadget(#fbl_TxtPu,470, wrow,100, 20,"Prix unitaire:")
StringGadget(#fbl_pu,540, wrow, 100,20,"")
TextGadget(#fbl_TxtMnt,770, wrow,70, 20,"Montant:")
StringGadget(#fbl_Mnt,840, wrow, 100, 20,"")
wrow=wrow+40
ButtonGadget(#fbl_Imprimer, 10, wrow, 100, 30, "Imprimer")
ButtonGadget(#fbl_AnnulerDoc, 250, wrow, 120, 30, "Annuler la livraison")
ButtonGadget(#fbl_supprimer, 400, wrow, 160, 30, "Supprimer la ligne sélectionnée")
ButtonGadget(#fbl_New, 600, wrow, 120, 30, "Nouvelle livraison")
ButtonGadget(#fbl_Valider, 850, wrow, 100, 30, "Valider")
wrow=wrow+35
ListIconGadget(#fbl_Grid, 10, wrow, 940, 150, "Code", 40, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
AddGadgetColumn(#fbl_Grid,1, " Désignation du produit", 300)
AddGadgetColumn(#fbl_Grid,2, " U.M.", 90)
AddGadgetColumn(#fbl_Grid,3, " Quantité", 80)
AddGadgetColumn(#fbl_Grid,4, " Prix unitaire", 100)
AddGadgetColumn(#fbl_Grid,5, " Montant", 100)
wrow=wrow+160: wlig=wrow
Frame3DGadget(#fbl_FrameVer,10, wrow, 500, 60, "")
wrow=wrow+15
TextGadget(#fbl_TxtModep,20, wrow, 140, 20, "Mode de payement:")
StringGadget(#fbl_Modep,140, wrow, 300, 20,"", #PB_String_UpperCase)
wrow=wrow+20
OptionGadget(#fbl_CheckEsp,20, wrow, 100, 20,"ESPECE")
OptionGadget(#fbl_CheckCheq,120, wrow, 100, 20,"CHEQUE")
OptionGadget(#fbl_CheckVir,220, wrow, 140, 20,"VIREMENT BANCAIRE")
OptionGadget(#fbl_CheckAterme,390, wrow, 100, 20,"A TERME")
wrow=wrow+30
Frame3DGadget(#fbl_FrameChauf,10, wrow, 170, 65, "Chauffeur")
Frame3DGadget(#fbl_FrameCamion,190, wrow, 160, 65, "Camion")
Frame3DGadget(#fbl_FrameMat,360, wrow, 150, 65, "Matricule")
wrow=wrow+15
StringGadget(#fbl_chauf,20, wrow, 150, 20,"", #PB_String_UpperCase)
StringGadget(#fbl_Camion,200, wrow,140, 20,"", #PB_String_UpperCase)
StringGadget(#fbl_Mat,370, wrow,130, 20,"", #PB_String_UpperCase)
wrow=wrow+22
ComboBoxGadget(#fbl_selchauf,20, wrow, 150,30)
ComboBoxGadget(#fbl_selcamion,200, wrow, 140,30)
ComboBoxGadget(#fbl_selmat,370, wrow, 130,30)
wrow=wlig
Frame3DGadget(#fbl_FrameStock,515, wrow, 100, 130, "Stock disponible")
TextGadget(#fbl_StockDisp,520, wrow+20,80, 20, "",#PB_Text_Center)
TextGadget(#fbl_Pmp,520, wrow+70,80, 20, "",#PB_Text_Center)
wrow=wlig
Frame3DGadget(#fbl_FrameTotal,620, wrow, 310, 130, "")
TextGadget(#fbl_TxtHT,640, wrow+20, 140, 20, "TOTAL HT :")
StringGadget(#fbl_Ht,750, wrow+20, 120, 20,"",#PB_String_ReadOnly | #PB_Text_Right)
wrow=wrow+25
TextGadget(#fbl_TxtFrais,640, wrow+20, 140, 20, "FRAIS ET TAXES :")
StringGadget(#fbl_Frais,750, wrow+20, 120, 20,"",#PB_Text_Right)
wrow=wrow+25
TextGadget(#fbl_TxtRemise,640, wrow+20, 140, 20, "REMISE :")
StringGadget(#fbl_Remise,750, wrow+20, 120, 20,"",#PB_Text_Right)
wrow=wrow+25
TextGadget(#fbl_TxtTTC,640, wrow+20, 140, 20, "TOTAL TTC :")
StringGadget(#fbl_TTC,750, wrow+20, 120, 20,"",#PB_String_ReadOnly | #PB_Text_Right)
ButtonGadget(#fbl_EnregistrerDoc, 620, wrow+60, 310, 30, "ENREGISTRER LE BON DE LIVRAISON")
AddGadgetItem (#Panel, -1, " FERMER");***************************************************
EndIf
quitWinstock=0
Repeat
EventId=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
quitWinstock=1
EndIf
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #fbl_seldate
wdate=GetGadgetState(#fbl_seldate)
date$=FormatDate("%dd/%mm/%yyyy", wDate)
SetGadgetText(#fbl_date,date$)
Case #fbl_selnumdoc
n=GetGadgetState(#fbl_selnumdoc)
If n>=0
numdoc$=GetGadgetText(#fbl_selnumdoc)
If numdoc$<>""
SetGadgetText(#fbl_numdoc,numdoc$)
fbl_afficherDoc()
EndIf
EndIf
;ça se psse ici..............................
Case #fbl_cf
input$=GetGadgetText(#fbl_cf)
If Len(input$)>0
doc$="BL"
AfficherGridSelCF()
EndIf
;:----------------------------------------------------------------------------------------------------------
Case #jstock_reorganiser
jstock_reorganiser()
Case #jstock_afficher
jstock_afficher()
Case #jstock_imprimer
Print_jstockPmp()
;:----------------------------------------------------------------------------------------------------------
Case #panel
wpanel=GetGadgetState(#panel)
If wpanel=7
quitwinstock=1
EndIf
EndSelect
EndIf
Until quitwinstock=1
CloseWindow(#Winstock)
EndProcedure
D'abord l'utilisateur ne veut pas appuyer sur tache (ENTREE) après avoir saisi le mot clé, il préfère que la liste des clients sera affichée au fur et à mesure qu'il tape les caractères du mot clé (à chaque nouveau caractère saisi, une liste sera affichée), voici ce qui se passe avec mon code:
Quand l'utilisateur tape la 1ère lettre, la liste des clients est affichée et le contenu est correct, mais l'utilisateur ne pourra plus ajouter d'autres lettres??
Qu dois je faire ?
Merci de votre aide