Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Exemple d'une nouvelle version d'un GRID | |
| | |
Auteur | Message |
---|
lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: KGFGRID Lun 28 Jan 2019 - 17:35 | |
| Pour KLAUS
Je viens de recopier le programme, ainsi que le KGF.DLL, mais en cliquant je n'ai toujours rien d'affiché.
Désolé de te mettre encore à contribution.
Merci
Lepetitmarocain | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Exemple d'une nouvelle version d'un GRID Lun 28 Jan 2019 - 17:48 | |
| Bizarre. Le lance le programme: Je clique sur la ligne "Raccords cuivre", colonne "Qté": Je valide le message par un clic sur OK: Où est le problème ? EDIT A tout hasard, voici la version de Panoramic que j'utilise: | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Exemple d'une nouvelle version d'un GRID Mar 29 Jan 2019 - 0:32 | |
| Est-ce que quelqu'un pourrait essayer le code posté ci-dessus, puis cliquer dans une ces cellules remplies de données ? Le problème de petitmarocain m'intrigue... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Exemple d'une nouvelle version d'un GRID Mar 29 Jan 2019 - 7:32 | |
| Bonjour Klaus Je viens de télécharger la dernière version de KGF et de copier ton exemple de la page précédente et tout fonctionne bien. Pour le code le voici de nouveau : - Code:
-
' test_KGFGrid_facture.bas
label UserEvent dim res%, KG%, KGtot%, f1$, Types$(6), v$, f, img$ Types$(0) = "Inconnu (traité comme Integer)" Types$(1) = "Chaîne" Types$(2) = "Entier" Types$(3) = "Flottant" Types$(4) = "Booléen" Types$(5) = "Image" Types$(6) = "Mémo" full_space 0 memo 100 : top 100,100 : left 100,700 : width 100,300 : height 100,420 : bar_both 100 dll_on "KGF.dll"
KG% = dll_call2("CreateKGFGrid",handle(0),13) ' res% = dll_call5("LocateKGFGrid",KG%,10,100,652,377) : ' si l'on rend la ligne 15 visible res% = dll_call5("LocateKGFGrid",KG%,10,100,652,352) : ' si la ligne 15 est invisible KGtot% = dll_call2("CreateKGFGrid",handle(0),13) res% = dll_call5("LocateKGFGrid",KGtot%,10,490,652,27) ' colonnes: ' Libellé, quantité, Prix unitaire HT, total HT, taux TVA, total TTC res% = dll_call5("SetGlobalKGFGridDimensions",KG%,15,7,50,25) res% = dll_call4("SetKGFGridColumnRangeVisible",KG%,7,7,0) : ' servira pour les liens vers une autre table res% = dll_call4("SetKGFGridRowRangeVisible",KG%,15,15,0) res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,14,1,6,hex("FFFFFF")) res% = dll_call5("SetGlobalKGFGridDimensions",KGtot%,1,7,50,25) res% = dll_call4("SetKGFGridColumnRangeVisible",KGtot%,7,7,0) : ' servira pour les liens vers une autre table res% = dll_call6("SetKGFGridCellRangeColor",KGtot%,1,11,1,6,hex("C0C0FF")) v$ = "Arial" res% = dll_call6("SetKGFGridCellRangeFontName",KG%,1,15,1,6,adr(v$)) res% = dll_call6("SetKGFGridCellRangeFontSize",KG%,1,15,1,6,12) res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,15,1,6,2) res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,15,2,6,7) res% = dll_call6("SetKGFGridCellRangeFontName",KGtot%,1,1,1,6,adr(v$)) res% = dll_call6("SetKGFGridCellRangeFontSize",KGtot%,1,1,1,6,12) res% = dll_call6("SetKGFGridCellRangeJustification",KGtot%,1,1,1,6,2) res% = dll_call6("SetKGFGridCellRangeJustification",KGtot%,1,1,2,6,7)
res% = dll_call6("SetKGFGridCellRangeType",KG%,1,1,1,6,1) : ' ligne des titres de colonnes res% = dll_call6("SetKGFGridCellRangeBorderStyle",KG%,1,1,1,6,1) res% = dll_call6("SetKGFGridCellRangeFontBold",KG%,1,1,1,6,1) res% = dll_call6("SetKGFGridCellRangeActive",KG%,1,1,1,6,0) res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,1,1,200) : ' libellé res% = dll_call4("SetKGFGridColumnRangeWidth",KGtot%,1,1,200) v$ = "Libellé" res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,1,1,adr(v$)) res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,2,2,80) : ' quantité res% = dll_call4("SetKGFGridColumnRangeWidth",KGtot%,2,2,80) v$ = "Qté" res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,2,2,adr(v$)) res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,3,3,100) : ' prix unitaire res% = dll_call4("SetKGFGridColumnRangeWidth",KGtot%,3,3,100) v$ = "Prix U." res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,3,3,adr(v$)) res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,4,4,100) : ' total HT res% = dll_call4("SetKGFGridColumnRangeWidth",KGtot%,4,4,100) v$ = "Total HT" res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,4,4,adr(v$)) res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,5,5,70) : ' taux TVA res% = dll_call4("SetKGFGridColumnRangeWidth",KGtot%,5,5,70) v$ = "Tx TVA" res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,5,5,adr(v$)) res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,6,6,100) : ' total TTC res% = dll_call4("SetKGFGridColumnRangeWidth",KGtot%,6,6,100) v$ = "Total TTC" res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,6,6,adr(v$))
res% = dll_call6("SetKGFGridCellRangeType",KG%,2,15,1,1,1) : ' colonne des libéllées res% = dll_call6("SetKGFGridCellRangeType",KG%,2,15,2,7,3) : ' colonnes de valeurs res% = dll_call6("SetKGFGridCellRangeBorderColor",KG%,2,15,2,2,hex("FF0000")) : ' colonne des quantités: bordures bleues res% = dll_call6("SetKGFGridCellRangeBorderWidth",KG%,2,15,2,2,hex("FF03FF03")) : ' largeurs des bordures colonne des quantités res% = dll_call6("SetKGFGridCellRangeZeroAsSpace",KG%,2,15,2,7,1) : ' ne pas afficher les valeurs zéro res% = dll_call6("SetKGFGridCellRangeType",KGtot%,1,1,1,1,1) : ' colonne des libéllées res% = dll_call6("SetKGFGridCellRangeType",KGtot%,1,1,2,7,3) : ' colonnes de valeurs
res% = dll_call6("SetKGFGridCellRangeActive",KG%,15,15,1,6,0) : ' ligne des totaux res% = dll_call6("SetKGFGridCellRangeActive",KGtot%,1,11,1,6,0) : ' ligne des totaux v$ = "Total" res% = dll_call6("SetKGFGridCellRangeValue",KG%,15,15,1,1,adr(v$)) res% = dll_call6("SetKGFGridCellRangeActive",KGtot%,1,11,1,6,0) : ' ligne des totaux res% = dll_call6("SetKGFGridCellRangeValue",KGtot%,1,1,1,1,adr(v$))
f1$ = "$RyC2^$RyC3^*;" : ' calcul du HT par ligne res% = dll_call6("SetKGFGridCellRangeFormula",KG%,2,14,4,4,adr(f1$)) res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,14,4,4,hex("C0C0FF"))
f1$ = "$RyC4^$RyC5^V100^+*V100^/;" : ' calcul du TTC par ligne res% = dll_call6("SetKGFGridCellRangeFormula",KG%,2,14,6,6,adr(f1$)) res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,14,6,6,hex("C0C0FF"))
f1$ = "cR2C2|cR14C2|RScR1C2^V"+str$(KGtot%)+"^@;" : ' calcul du nombre d'unités res% = dll_call6("SetKGFGridCellRangeFormula",KG%,15,15,2,2,adr(f1$))
f1$ = "cR2C4|cR14C4|RScR1C4^V"+str$(KGtot%)+"^@;" : ' calcul du total HT res% = dll_call6("SetKGFGridCellRangeFormula",KG%,15,15,4,4,adr(f1$))
f1$ = "cR2C6|cR14C6|RScR1C6^V"+str$(KGtot%)+"^@;" : ' calcul du total TTC res% = dll_call6("SetKGFGridCellRangeFormula",KG%,15,15,6,6,adr(f1$))
v$ = "Robinets de lavabo" res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,2,1,1,adr(v$)) : ' chargement 1er produit f = 3 res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,2,2,2,adr(f)) f = 17.5 res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,2,3,3,adr(f)) f = 20 res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,2,5,5,adr(f)) v$ = "Parquet chêne" res% = dll_call6("SetKGFGridCellRangeValue",KG%,3,3,1,1,adr(v$)) : ' chargement 2ème produit f = 2.5 res% = dll_call6("SetKGFGridCellRangeValue",KG%,3,3,2,2,adr(f)) f = 50 res% = dll_call6("SetKGFGridCellRangeValue",KG%,3,3,3,3,adr(f)) f = 20 res% = dll_call6("SetKGFGridCellRangeValue",KG%,3,3,5,5,adr(f))
v$ = "Raccords cuivre" res% = dll_call6("SetKGFGridCellRangeValue",KG%,4,4,1,1,adr(v$)) : ' chargement 3ème produit f = 12 res% = dll_call6("SetKGFGridCellRangeValue",KG%,4,4,2,2,adr(f)) f = 2.5 res% = dll_call6("SetKGFGridCellRangeValue",KG%,4,4,3,3,adr(f)) f = 10 res% = dll_call6("SetKGFGridCellRangeValue",KG%,4,4,5,5,adr(f))
on_user_event UserEvent
end
UserEvent: UserEvent() return sub UserEvent() dim_local lig%, col%, id%, type%, res$, f if bin_and(user_event_wparam,hex("FF000000"))<>hex("0C000000") then exit_sub if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then exit_sub id% = bin_and(user_event_wparam,hex("0000FFFF")) col% = user_event_lparam/65536 lig% = bin_and(user_event_lparam,hex("0000FFFF")) ' delete 1 ' picture 1 : top 1,100 : left 1,420 : width 1,150 : height 1,150 : stretch_on 1 ' clear 2 type% = dll_call3("GetKGFGridCellType",KG%,lig%,col%) : ' ok select type% case 0: ' Inconnu res% = dll_call4("GetKGFGridCellValue",KG%,lig%,col%,0) : ' ok res$ = str$(res%) case 1: ' Chaîne res$ = string$(255," ") res% = dll_call4("GetKGFGridCellValue",KG%,lig%,col%,adr(res$)) : ' ok res$ = trim$(res$) case 2: ' Entier res% = dll_call4("GetKGFGridCellValue",KG%,lig%,col%,0) : ' ok res$ = str$(res%) case 3: ' flottant res% = dll_call4("GetKGFGridCellValue",KG%,lig%,col%,adr(f)) : ' ok res$ = str$(f) case 4: ' Booleen res% = dll_call4("GetKGFGridCellValue",KG%,lig%,col%,0) : ' ok res$ = str$(res%) case 5: ' Image ' res% = dll_call4("GetKGFGridCellValue",KG%,lig%,col%,0) : ' ok ' clipboard_paste 1 case 6: ' Mémo ' res% = dll_call4("GetKGFGridCellValue",KG%,lig%,col%,handle(2)) : ' ok end_select message "clic dans KGFGrid ID="+str$(id%)+" en ligne "+str$(lig%)+" colonne "+str$(col%)+chr$(13)+chr$(10)+"Type="+Types$(type%)+" valeur="+res$ if type%=4 res% = dll_call6("SetKGFGridCellRangeValue",KG%,lig%,lig%,col%,col%,1-res%) : ' ok end_if res% = dll_call4("GetKGFGridCellAtributes",KG%,lig%,col%,handle(100)) end_sub
Et pour kgf voici le lien que j'ai utilisé pour le téléchargement direct : https://klauspanoramic.000webhostapp.com/KGF.zipATTENTION pour lepetitmarocain : Lorsque tu récupère le fichier KGF.DLL vérifie bien qu'il ne soit pas bloqué en lecture ou écriture. C'est un problème déjà rencontré par le passé ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Exemple d'une nouvelle version d'un GRID Mar 29 Jan 2019 - 8:46 | |
| Merci, Minibug ! Tu me rassures ! | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: KGFGRID Mar 29 Jan 2019 - 15:55 | |
| Bonjour KLAUS Tu as raison, ma version n’était pas la bonne. J' ai réussi à faire un essai qui est concluant. Toutefois Je me fais jeter avec des virus dans le compilateur que je viens de récupérer. J' attends donc le nouveau lien pour avoir le dernier compilateur, sauf si tu as un lien valable Merci beaucoup. Lepetitmarocain | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Exemple d'une nouvelle version d'un GRID Mar 29 Jan 2019 - 15:58 | |
| Non, je n'ai pas de nouveau lien. Jack a désactivé tous les liens de téléchargement tant que ce problème n'est pas résolu.
Cependant, le programme Panoramic_Editor est parfaitement sûr. J'ai simplement ajouté ce programme dans la liste blanche de mon antivirus, et le problème est réglé. | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: KGFGRID Dim 3 Fév 2019 - 10:37 | |
| Bonjour à tous
Message destiné à KLAUS.
Bonjour
J'ai réussi à avoir un nouvel éditeur en faisant ce que tu m'as dit pour l'Anti Virus.
J' ai des questions même le Dimanche
Dans tous tes tests de KGFGRID le chargement de lignes se fait en DUR dans le programme.
J' ai réussi à lire un fichier pour garnir le KGFGRID.
Est il possible de saisir directement dans le KGFGRID, comme dans le GRID normal.
Comment faire ensuite pour lire le KGFGRID ligne par ligne pour mettre à jour un fichier.
Beaucoup de questions, mais les réponses je pense serviront à pas mal de monde
Merci par Avance
Lepetitmarocain | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Exemple d'une nouvelle version d'un GRID Dim 3 Fév 2019 - 11:19 | |
| Voici quelques éléments de réponse: - Citation :
- Est il possible de saisir directement dans le KGFGRID, comme dans le GRID normal.
Non. Par contre, tu peux utiliser les coordonnées de la cellule cliquée (retournées dans le USER_EVENT) pour faire apparaître une petite fenêtre de dialogue de saisie. Tu crées la fenêtre en début de programme et tu la caches tout de suite. Puis, lors d'un clic, tu montres cette fenêtre après avoir chargé le contenu de la cellule cliquée dans le champ de saisie que tu auras créé dans cette fenêtre, et tu prends soin de faire "inactive 0" pour obliger la saisie. Cette fenêtre devra évidemment porter, en-dehors de la zone de saisie, deux boutons: Validation et Abandon. Dans les deux cas, tu caches la fenêtre de saisie et tu refais "active 0". Et, pour Validation, tu places le contenu du champ de saisie dans la cellule qui a été cliquée. Tu peux aussi utiliser les commandes MESSAGE_INPUT() et MESSAGE_TEXT$ de Pan oramic, ce qui évite de créer expressément une fenêtre de saisie. Ces commandes sont là pour ça. Cela paraît complexe, mais c'est une solution efficace et qui s'adapte à beaucoup de situations, pas seulement au KGFGrid. - Citation :
- Comment faire ensuite pour lire le KGFGRID ligne par ligne pour mettre à jour un fichier.
Tu ne peux pas lire, en une seule commande, une ligne entière de KGFGrid. Cela n'a pas de sens, par la nature même de KGFGrid. En effet, chaque cellule d'un KGFGrid peut être d'un type différent (texte, valeur entière, valeur flottante, case à cocher, image, mémo, ...). Comment lire une ligne en une seule opération ? Il faut que tu lises les cellules d'une ligne dans une boucle, cellule après cellule, et que tu prennes les actions adaptées en fonction de la nature de la cellule. Voilà ce que je peux te dire sur le principe. Maintenant, si tu as des problèmes techniques pour mettre cela en oeuvre, n'hésite pas... | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: KGFGRID Lun 4 Fév 2019 - 17:19 | |
| Bonjour KLAUS
Merci pour tes précieux conseils, qui me serviront à finaliser mon programme.
Bonne soirée
Lepetitmarocain | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Exemple d'une nouvelle version d'un GRID Lun 4 Fév 2019 - 17:28 | |
| De rien - ça me fait plaisir !
D'ailleurs, télécharge le fichier KGF.chm (à partir de ma signature !) - j'ai mis une nouvelle version en ligne cette nuit, avec la doc complète de l'objet KGFGrid. Cela pourrait t'être utile. | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: KGF.CHM Ven 8 Fév 2019 - 15:34 | |
| Bonjour KLAUS.
Peux tu me dire comment fonctionne HelpNdoc pour ouvrir KGFCHM?
Merci pour ton aide
Lepetitmarocain | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Exemple d'une nouvelle version d'un GRID Ven 8 Fév 2019 - 16:04 | |
| Si tu cliques sur le lien de téléchargement de KGF.chm dans ma signature, tu obtiens un fichier KGFchm.zip.
Ceci est un fichier archive compressé, et il contient un seul fichier: KGF.chm.
Il faut le décompresser, par exemple avec un clic droit sur le fichier KHGchm.zip, puis choisir la ligne ZIP. Dans le menu contextuel qui s'ouvre, tu choisis "Extraire ici". Tu obtiens ainsi le fichier KGF.chm.
Il suffit alors de double-cliquer sur KGF.chm et le système d'aide de Winfows s'ouvre, avec la page d'accueil de ce fichier. Choisie "Index" dans la liste proposée à gauche, puis tu pourras naviguer à ta guise.
La doc de KGFGrid se trouve dans la rubrique "Objets" (assez en haut dans la page Index), et la description de KGFGrid est tout en bas de cette page Objets - c'est le dernier objet que j'ai ajouté.
Num besoin de HelpNDoc - c'est l'outil avec lequel se fichier est produit, mais pas l'outil de lecture.
Ne te laisse pas dérouter par la masse de pages de documentation. En effet, KGF.dll est TRES vaste (plus de 1000 fonctions présentes et documentées) et grandit régulièrement... | |
| | | Contenu sponsorisé
| Sujet: Re: Exemple d'une nouvelle version d'un GRID | |
| |
| | | | Exemple d'une nouvelle version d'un GRID | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |