FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Grid_xxxxx - Page 2 Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Grid_xxxxx - Page 2 Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Grid_xxxxx - Page 2 Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Grid_xxxxx - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Grid_xxxxx - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Grid_xxxxx - Page 2 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Grid_xxxxx - Page 2 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Grid_xxxxx - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Grid_xxxxx - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Grid_xxxxx - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Grid_xxxxx - Page 2 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Grid_xxxxx - Page 2 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Grid_xxxxx - Page 2 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Grid_xxxxx - Page 2 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Grid_xxxxx - Page 2 Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-45%
Le deal à ne pas rater :
PC Portable LG Gram 17″ Intel Evo Core i7 32 Go /1 To
1099.99 € 1999.99 €
Voir le deal

 

 Grid_xxxxx

Aller en bas 
+2
jjn4
Yannick
6 participants
Aller à la page : Précédent  1, 2
AuteurMessage
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyDim 3 Sep 2023 - 17:49

Je te propose un truc:
Décris-moi, verbalement, une version simplifié du grid que tu veux créer, avec deux ou 3 actions essentielles à effectuer.
Je vais te poster une maquette pour réaliser cela. A partir de cela, tu pourras l'adapter et poursuivre.
Qu'est-ce que tu en dis ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyDim 3 Sep 2023 - 19:11

Dès que j'arrive à expliquer ce que je veux faire en moins de 500 lignes.
lol!

Je suis arrivée à créer un Grid pour afficher des tables type csv.
Le nombre de colonnes est fonction de la table mais la plupart sont communes à chaque table.

Communes :
ID,REF,TYPE,MARQUE,MODELE
Variables selon la table :
CAPACITE,CADENCE,VOLTAGE,PUISSANCE
Communes :
DATE ENTREE,SOURCE,DATE DIAG,DIAG,DATE ETAT,ETAT

Donc, selon la table qui est chargée, les colonnes varies 
Je veux séparer certaines colonne par des couleurs pour mieux les visualiser
comme tu peux le voir sur mes captures.

Je voudrai que lorsque je rajoute une ligne, elle est le même formatage que la précédente.
Mais là, je pense que vais devoir revoir tout le formatage, ou du moins celui des cellules 
à partir de la ligne 2, à chaque fois et pas seulement la ligne ajouter

J'en suis à rechercher comment ajouter une ligne. Laughing
Ne te bile pas, je vais finir par y arriver, même si je râle et je bougonne.
Je crois que je m'en veux à moi même.

Voilà un lien vers le zip du projet ce sera plus parlant :
https://u.pcloud.link/publink/show?code=XZq3S3VZVyNzyASg1abHDAfm7wuCXYtnhApy
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyLun 4 Sep 2023 - 2:17

J'ai téléchargé le projet et je vais le regarder.

Mais je peur déjà te rassurer sur un point: si tu insères une ligne à un endroit donné, les lignes suivantes se décalent, bien sûr, mais ELLES GARDENT LEUR FORMATTAGE ET TOUS LEURS ATTRIBUTS !

Il n'y a que la ligne insérée dont il faut faire le formattage.
Donc, la meilleure façon de procédern c'est de créer une SUB avec en paramètre le numéro de ligne à formatter, et d'appliquer l'ensemble des formattages pour cette ligne dans cette SUB. Ainsi, tu peux appeler cette SUB dans une boucle au départ pour formatter toutes les lignes, puis, plus tard, à la demande, spécifiquement pour la ligne insérée, queque soit l'endroit.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyLun 4 Sep 2023 - 9:42

J'ai regardé un peu le projet que tu as posté.
Je vois que tu as bien progressé. Tu as tout paramétré, ce qui est parfait.

Pour le lancer, est-ce qu'il faut tout fusionner en un seul fichier, dans l'ordre 01, 02, 03, ... ?

Je vois que tu as configuré des aspects différents pour certaines colones. Est-ce que toutes les lignes (sauf les lignes de titres, bien sûr) ont le même aspect ? Je n'ai pas repéré des graphismes variant d'une ligne à l'autre.

Je n'ai pas l'impression que tu utilises les formules de calcul. Est-ce exact ?

J'ai regardé le code de l'objet KGFGrid dans KGF.dll, et j'ai constaté en effet qu'il n'y a pas de fonctins d'insertion ou de suppression de lignes (ou de colonnes). Est-ce que cela serait essentiel depouvoir modifier l'aspect de la table en cours de vie ? On peut imaginer l'insertion de plusieurs manières: décaler les données existantes en insérant une nouvelle ligne vide, décaler également l'aspect visuel (couleurs, hauteurs des lignes, police et style du texte, type de données, etc), décaler également les formules de calcul, les noms des cellules etc ? De quoi as-tu réellement besoin ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyLun 4 Sep 2023 - 20:28

Salut Klaus.

Effectivement, dans la précipitation j'ai mis les fichiers séparés et il faut les assembler.
Je me suis fait un petit assembleur pour cela et la numérotation m'évite de replacer les fichiers dans l'ordre.
Laughing

Pour l'instant, le grid sert de viewer pour des tables *.csv. 
Ces tables peuvent 16 colonnes et pour m'y retrouver plus facilement je regroupe sous la même couleur 
une date et un évènement, exemple : Date DiAG et DIAG.
Je regroupe sous la même couleur les colonnes d'attributs communs à plusieurs tables

Par contre une table "mémoire vive" aura les colonnes "Capacité", "Voltage" et "Cadence" mais pas "Puissance"
Alors qu' un bloc d'alimentation aura "Puissance" et "Voltage".
Donc la quantité de colonnes est variable selon la table et le nombre de lignes selon le nombre d'enregistrements.
Mais je dois pouvoir ajouter des enregistrements avec le même formatage que la ligne précédente.

Je n'utilise pas encore les calculs dans les cellules, peut être plus tard, il faut que j'assimile bien tout çà d'abord.
Mais, si tu veux un vrai plus, tu peux te pencher sur le formatage conditionnel à moins qu'il existe déjà et
que je l'ai loupé.  study Laughing

Je te donne un exemple sur une cellule calculé on pourrait modifier le style du contenu selon le résultat "background,font_color...". Mais il faudrait peut être intégrer une feuille de style dans ce cas là.
En tout si tu as besoin d'un C.. pour te donner des idées plus farfelues les unes que les autres...
...je suis toujours là.
lol!

Des fonctions sympa que j'ai vu c'est le hide sur une ligne ou colonne.
"Insert","Add" et "Delete" sont un trio bien utile 
même si dans le cas de ce projet le "Hide" est mieux.

Bon je te laisse digérer tout çà  Laughing
Revoir la doc pour les couleurs et peut être, faire des sous dossiers dans les fonctions pour éclaircir un peu.
Tu peux peut être regrouper les fonction de créations pur qui sont inévitables
Puis regrouper celles liées au formatage des cellules, lignes et colonnes
Puis enfin celles de style.

Oups un petit truc. si on pouvait diminuer un peu l'épaisseur des traits des cellules... santa

Lien avec le source assemblé par mon petit outil.
https://u.pcloud.link/publink/show?code=XZq3S3VZVyNzyASg1abHDAfm7wuCXYtnhApy
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyMar 5 Sep 2023 - 1:45

Je vais digérer tout cela et reviendrai vers toi avec des propositions de solutions.

Mais dès maintenant, je te suggère un élément précis:
imagine de créer des tables avec TOUTES les colonnes possibles. Et, suivant le contexte, tu cahes (HIDE° certaiines colonnes non utilisées... Est-ce que cela pourrait être envisageable ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyMer 6 Sep 2023 - 22:51

Salut Klaus.

Désolé de ce temps de réponse mais j'ai un emploi du temps bien plein ces jours ci 
et la vague de chaleur m'assomme. Le soir c'est la télé qui me regarde et plus l'inverse Very Happy .

La fonction hide me convient pour ce projet. Je ne veux pas recréer un classeur excel mais juste un visualiseur de table avec style. D' ailleurs, j'en était revenu à créer une feuille de style variable selon la table.
Laughing
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyMar 12 Sep 2023 - 11:20

Salut Klaus.

Je viens de reprendre avec KgfGrid j'avais quelques minutes devant moi.
Je me confronte à un souci d'héritage. Problème de riche me diras tu mais non.

Lorsque je crée le grid je lui donne un nombre de colonnes et de lignes de départ
avec une hauteur de ligne et une largeur des colonnes par défaut avec : 

Code:
Nrow%=1
Ncol%=16
GdColW%=100
GdRowH%=22

ResKgf% = dll_call5("SetGlobalKGFGridDimensions",KgfGrid%,Nrow%,Ncol%,GdColW%,GdRowH%)

Puisque je change ensuite les largeurs des colonnes une par une avec cette petite boucle et la fonction qui va avec :
Code:
    for i%=1 to Ncol%
        wdt% = val(TParam$(i%,2))
        ResKgf% = dll_call4("SetKGFGridColumnRangeWidth",KgfGrid%,i%,i%,Wdt%)
        txt$ = TParam$(i%,1)
        ResKgf% = dll_call6("SetKGFGridCellRangeValue",KgfGrid%,1,1,i%,i%,adr(txt$)) 
    next i%

jusque là tout va bien, la coquille arrive ensuite.
Pour ajouter une ligne au grid, je dois m'y prendre avec la fonction dans le premier encadré de code.
et dans la doc il est mentionné que la valeur 0 signifiait inchangé sauf que :

Code:
Nrow%=2
Ncol%=0
GdColW%=0
GdRowH%=0

ResKgf% = dll_call5("SetGlobalKGFGridDimensions",KgfGrid%,Nrow%,Ncol%,GdColW%,GdRowH%)

La fonction ajoute bien une ligne mais je perds le formatage des colonnes en cour de route.
l'héritage de la largeur des colonnes se fait sur les valeurs par défaut et non de la ligne précédente.
Grid_xxxxx - Page 2 Screen14
Peut être peux tu y faire quelque chose ?...
Sinon on va devoir redéfinir à chaque fois les largeurs des colonnes.
Bon maintenant que j'ai planté ma zone, je sors... Rolling Eyes Laughing
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyMar 12 Sep 2023 - 11:50

Oui, tu as raison. Cette fonction SetGlobalKGFGridDimensions réinitialise globalement tous les paramètres du GRID. Elle est faite pour cela, à appeler au début, une fois pour toutes.

1ère solution:
Je suis en train de coder une fonction d'ajout de lignes (à la fin ou n'importe où dans le tableau). C'est eb cours en viendra prochainement.

2ème solution:
Tu crées le tableau avec un grand nombre de lignes, et tu paramètres toutes les lignes selon leur besoin. Puis, tu déclare invisibles les lignes excédentaires... C'est aussi simple que cela. Car là, tu peux déclarer une ligne invisible de sorte qu'elle redevienne visible et Hop ! tu as ajouté une ligne à la fin (du moins en apparence) !

Evidemment, la deuxième solution ne marche que pour simuler un ajout de ligne en fin de tableau, et c'est ce que tu essaies de faire, si j'ai bien compris. Mais la solution globale (1ère solution) arrive prochainement.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyMar 12 Sep 2023 - 19:27

Avant de dire Youpi j'ai voulu tester cela :
Code:
 ADD_ROW_KGFGRID(16,2,0,0)

  SUB ADD_ROW_KGFGRID(Ncol%,Nrow%,GdColW%,GdRowH%)
     dim_local i%,Wdt%
  
     ResKgf% = dll_call5("SetGlobalKGFGridDimensions",KgfGrid%,Nrow%,Ncol%,GdColW%,GdRowH%)
     for i%=1 to Ncol%
        wdt% = val(TParam$(i%,2))
        ResKgf% = dll_call4("SetKGFGridColumnRangeWidth",KgfGrid%,i%,i%,Wdt%)  
     next i%
   END_SUB

C'est pas beau mais cela fonctionne sans bug si je le réitère plusieurs fois en incrémentant le paramètre Nrow%.

Ceci dit, la fonction sera la bienvenue  Laughing
Le tout est que la ligne soit insérée soit vierge, soit héritière de celle du dessus quand il y en a une.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyMar 12 Sep 2023 - 23:51

La ligne insérée (ou les lignes insérées) seront la copie exacte de la ligne devant laquelle elles seront insérées (sauf les données qui seront effacées). Si l'insertion a lieu en fin de tabbleau, les lignes ajoutées seront la copie exacte de la dernière ligne du tableau, toujours sans les données.

Tout ceci est déjà codé et actuellement en phase de test.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyMer 13 Sep 2023 - 18:14

Petit souci avec l'importation de fichier type csv

J'ai "enregistré sous" *.csv une table d'un fichier "libre office"
J'ai créé une Sub pour formater le Grid et importer le fichier
Avant de faire appel à la procédure, je charge le fichier dans un Dlist pour récupérer le nombre de lignes
Code:
  SUB IMPORT_FILE_IN_KGFGRID(Ncol%,Nrow%,GdColW%,GdRowH%,BdColor$)
    dim_local i%,Wdt%,trt%
     
    ResKgf% = dll_call5("SetGlobalKGFGridDimensions",KgfGrid%,Nrow%,Ncol%,GdColW%,GdRowH%)
    for i%=1 to Ncol%
        wdt% = val(TParam$(i%,2))
        ResKgf% = dll_call4("SetKGFGridColumnRangeWidth",KgfGrid%,i%,i%,Wdt%) 
    next i%
    trt% = ((1*256+1)*256+1)*256+1
    ResKgf% = dll_call6("SetKGFGridCellRangeBorderWidth",KgfGrid%,2,Nrow%,1,Ncol%,trt%)
    ResKgf% = dll_call6("SetKGFGridCellRangeBorderColor",KgfGrid%,2,Nrow%,1,Ncol%,hex(BdColor$))   
    ResKgf% = dll_call6("SetKGFGridCellRangeColor",KgfGrid%,2,Nrow%,1,5,hex("BFD9FF")) 
    ResKgf% = dll_call6("SetKGFGridCellRangeColor",KgfGrid%,2,Nrow%,Ncol%-5,Ncol%-4,hex("E2E2E2"))
    ResKgf% = dll_call6("SetKGFGridCellRangeColor",KgfGrid%,2,Nrow%,Ncol%-3,Ncol%-2,hex("D3FFD0"))
    ResKgf% = dll_call6("SetKGFGridCellRangeColor",KgfGrid%,2,Nrow%,Ncol%-1,Ncol%,hex("D9D0FF"))

    ResKgf% = dll_call6("ImportKGFGridCellRangeDataFromCSV",KgfGrid%,2,Nrow%,1,Ncol%,adr(FicTable$))

  END_SUB

le Grid est bien formaté
l'adresse du fichier est ok
mais le retour de la fonction d'importation du fichier est -1  Sad
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyMer 13 Sep 2023 - 18:35

Peut-être parce que tu as 1 ligne en trop dans le fichier ?
Essaie avec un fichier CSV d'une seule ligne, en mettant les paramètres r0% et r1% à la même valeur.
Vérifie que le nombre de colonnes est correct.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyMer 13 Sep 2023 - 18:53

Je crois que j'ai une petite idée.
le nombre de ligne est récupéré d' un dlist  count(DLTable%)+1 pour la ligne d'entête.
Seulement, "libre office" ne ferme pas la dernière cellule d'une ligne par un ";" 
et je me demande si cela ne vient pas de là.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyMer 13 Sep 2023 - 20:20

Je reviens avec des réponses et donc des munitions pour la doc de cet objet.

Pour en avoir le coeur net et le cerveau aussi j'ai fait faire une sauvegarde de l'objet vide au format csv
vu par kgf et le résultat en est que :

chaque cellule est séparé par une virgule (les miennes l'étaient par des "point virgule")
chaque contenu est pris entre deux doubles quote "...." ( pas les miens ) 
les cellules vides sont notées  "0" (perso ;; ) pas d'espace ou autre entre les points virgule

ceci doit donc expliquer cela et je m'en vais reformater mon fichier csv   Rolling Eyes
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyMer 13 Sep 2023 - 22:35

Bon, bien que neni rien à faire il y a un truc qui coince.
J'ai revu mon fichier, rien n'y fait.
Je vais modifier mon approche mais ce sera pour demain.
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyJeu 14 Sep 2023 - 0:51

Oui, j'ai fait exprès:
1. séparer les cellules par des virgules car s'est un fichier CSV (Comma Separated Values) !
2. J'ai entouré chaque contenu d'une cellule par des guillemets, car le texte dans une cellule êut contenir une virgule !

Tout ceci correspond exactement à la définition d'un fichier CSV.

Vérifie cependant :
- si le nombre de colonnres correspond
- si les lignes ne sont PAS terminées par un ";"
- si le nombre de lignes est correct (de 2 à nrowù correspond à nrow%-1 lignes !)

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyJeu 14 Sep 2023 - 20:45

J'ai modifié le fichier csv pour qu'il corresponde aux paramètres de Kgf Grid
séparation par ","
Texte entre ""
Nombre de colonnes ok
Nombre de lignes corrigé car l'enregistrement au format csv chez libre office rajoute une ligne vierge.

Rien à faire.
Aurais tu un fichier test qui fonctionne ?


Ps l'enregistrement du grid vide au format csv m' enregistre un "1" en cellule r2,c1.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyVen 15 Sep 2023 - 0:27

Voici l'exemple de la doc, avec l'ajout d'un bouton "Save -> CSV".
Il sauvegarde les lignes 5 à 9 avec les colonnes 2 à 5, dans un fichier CSV.

Code:
Citation :
Code:
' test_KGFGrid.bas

label UserEvent, PrintClipboard, PrintPDF, PrintPartialClipboard, PrintPartialPDF, SaveToCSV
dim res%, KG%, f1$, Types$(6), v$, f, img$, pdf$, csv$
  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"
  
picture 1 : top 1,200 : left 1,420 : width 1,150 : height 1,150 : stretch_on 1  
memo 2 : top 2,10 : left 2,10 : width 2,400 : bar_both 2
button 3 : top 3,10  : left 3,430 : width 3,150 : caption 3,"Print -> Clipboard"        : on_click 3,PrintClipboard
button 4 : top 4,40  : left 4,430 : width 4,150 : caption 4,"Print -> PDF"              : on_click 4,PrintPDF
button 5 : top 5,70  : left 5,430 : width 5,150 : caption 5,"Print partiel-> Clipboard" : on_click 5,PrintPartialClipboard
button 6 : top 6,100 : left 6,430 : width 6,150 : caption 6,"Print partiel-> PDF"       : on_click 6,PrintPartialPDF
button 7 : top 7,130 : left 7,430 : width 7,150 : caption 7,"Save -> CSV"               : on_click 7,SaveToCSV
dll_on "KGF.dll"

KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),13,1)                  : ' ok
res% = dll_call2("SetGlobalKGFGridColors",KG%,hex("FFFF"))         : ' ok
res% = dll_call5("LocateKGFGrid",KG%,10,100,400,300)               : ' ok
res% = dll_call5("SetGlobalKGFGridDimensions",KG%,15,20,50,25)     : ' ok
res% = dll_call4("SetKGFGridRowRangeHeight",KG%,2,4,45)            : ' ok
res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,7,10,20)         : ' ok
res% = dll_call6("SetKGFGridCellRangeType",KG%,2,4,2,5,2)          : ' ok
res% = dll_call6("SetKGFGridCellRangeType",KG%,5,7,2,5,1)          : ' ok
res% = dll_call6("SetKGFGridCellRangeType",KG%,8,9,2,5,3)          : ' ok
res% = dll_call6("SetKGFGridCellRangeType",KG%,9,9,6,6,3)          : ' ok
res% = dll_call6("SetKGFGridCellRangeType",KG%,5,8,6,6,4)          : ' ok
res% = dll_call6("SetKGFGridCellRangeType",KG%,2,4,6,6,5)          : ' ok
res% = dll_call6("SetKGFGridCellRangeType",KG%,3,3,1,1,6)          : ' ok
res% = dll_call6("SetKGFGridCellRangeJustification",KG%,2,4,2,5,5) : ' ok
res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,4,2,5,hex("FF8080")) : ' ok
res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,2,2,4,hex("8080FF")) : ' ok
res% = dll_call6("SetKGFGridCellRangeColor",KG%,3,3,2,2,hex("8080FF")) : ' ok
res% = dll_call6("SetKGFGridCellRangeColor",KG%,3,3,4,4,hex("8080FF")) : ' ok
res% = dll_call6("SetKGFGridCellRangeColor",KG%,4,4,2,4,hex("8080FF")) : ' ok

res% = dll_call6("SetKGFGridCellRangeJustification",KG%,2,2,2,2,1) : ' ok
res% = dll_call6("SetKGFGridCellRangeJustification",KG%,3,3,2,2,2) : ' ok
res% = dll_call6("SetKGFGridCellRangeJustification",KG%,4,4,2,2,3) : ' ok
res% = dll_call6("SetKGFGridCellRangeJustification",KG%,2,2,3,3,4) : ' ok
res% = dll_call6("SetKGFGridCellRangeJustification",KG%,4,4,3,3,6) : ' ok
res% = dll_call6("SetKGFGridCellRangeJustification",KG%,2,2,4,4,7) : ' ok
res% = dll_call6("SetKGFGridCellRangeJustification",KG%,3,3,4,4,8) : ' ok
res% = dll_call6("SetKGFGridCellRangeJustification",KG%,4,4,4,4,9) : ' ok
f1$ = "%d €"                                                                
res% = dll_call6("SetKGFGridCellRangeFormat",KG%,2,4,2,5,adr(f1$)) : ' ok

res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,2,2,4,17)        : ' ok
res% = dll_call6("SetKGFGridCellRangeValue",KG%,3,3,2,4,0-23)      : ' ok
res% = dll_call6("SetKGFGridCellRangeValue",KG%,4,4,2,4,123)       : ' ok
res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,4,5,5,0-12)      : ' ok
v$ = "Salut"
res% = dll_call6("SetKGFGridCellRangeValue",KG%,5,5,2,4,adr(v$))   : ' ok
v$ = "les"
res% = dll_call6("SetKGFGridCellRangeValue",KG%,6,6,2,4,adr(v$))   : ' ok
v$ = "copains"
res% = dll_call6("SetKGFGridCellRangeValue",KG%,7,7,2,4,adr(v$))   : ' ok
f = pi
res% = dll_call6("SetKGFGridCellRangeValue",KG%,8,8,2,4,adr(f))    : ' ok

img$ = "Android.bmp"
 res% = dll_call1("LoadAnyImageFile",adr(img$))
res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,2,6,6,0)         : ' ok
img$ = "marche_1_1_1_2.jpg"
res% = dll_call6("SetKGFGridCellRangeValue",KG%,3,3,6,6,adr(img$)) : ' ok
img$ = "crane.bmp"
res% = dll_call6("SetKGFGridCellRangeValue",KG%,4,4,6,6,adr(img$)) : ' ok

font_names_load 2
res% = dll_call6("SetKGFGridCellRangeValue",KG%,3,3,1,1,handle(2)) : ' ok
clear 2

res% = dll_call6("SetKGFGridCellRangeFontBold",KG%,5,5,2,4,1)      : ' ok
res% = dll_call6("SetKGFGridCellRangeFontItalic",KG%,5,5,2,4,1)    : ' ok

v$ = "Arial Black"
res% = dll_call6("SetKGFGridCellRangeFontName",KG%,6,6,2,4,adr(v$)) : ' ok
res% = dll_call6("SetKGFGridCellRangeFontSize",KG%,6,6,2,4,12)     : ' ok

res% = dll_call6("SetKGFGridCellRangeFontColor",KG%,7,7,2,4,hex("FF0000"))  : ' ok


v$ = "Prix"
res% = dll_call4("SetKGFGridCellName",KG%,9,2,adr(v$))             : ' ok
v$ = "Total"
res% = dll_call4("SetKGFGridCellName",KG%,9,3,adr(v$))             : ' ok
v$ = "Resultat"
res% = dll_call4("SetKGFGridCellName",KG%,9,4,adr(v$))             : ' ok
v$ = "Premier"
res% = dll_call4("SetKGFGridCellName",KG%,2,2,adr(v$))             : ' ok
v$ = "Dernier"
res% = dll_call4("SetKGFGridCellName",KG%,4,4,adr(v$))             : ' ok
v$ = "Suite"
res% = dll_call4("SetKGFGridCellName",KG%,9,5,adr(v$))             : ' ok

f1$ = "V10^CPrix^*;"
res% = dll_call6("SetKGFGridCellRangeFormula",KG%,9,9,3,3,adr(f1$))  : ' ok
f1$ = "V2^V2^V2^V4^RS;"
res% = dll_call6("SetKGFGridCellRangeFormula",KG%,9,9,4,4,adr(f1$))  : ' ok
f1$ = "cPremier|cDernier|RS;"
res% = dll_call6("SetKGFGridCellRangeFormula",KG%,9,9,5,5,adr(f1$))  : ' ok
f1$ = "CTotal^V2^*;"
res% = dll_call6("SetKGFGridCellRangeFormula",KG%,9,9,6,6,adr(f1$))  : ' ok

f = 23.45
res% = dll_call6("SetKGFGridCellRangeValue",KG%,9,9,2,2,adr(f))    : ' ok

if 1=2
message "Les lignes 2 et 3 vont disparaître..."
res% = dll_call4("SetKGFGridRowRangeVisible",KG%,2,3,0)            : ' ok
message "Les lignes 2 et 3 on disparu, et vont réapparaître..."
res% = dll_call4("SetKGFGridRowRangeVisible",KG%,2,3,1)            : ' ok

message "Les colonnes 4 et 5 vont disparaître..."
res% = dll_call4("SetKGFGridColumnRangeVisible",KG%,4,5,0)         : ' ok
message "Les colonnes 4 et 5 on disparu, et vont réapparaître..."
res% = dll_call4("SetKGFGridColumnRangeVisible",KG%,4,5,1)         : ' ok

f1$ = "KGFGrid_backup.txt"
res% = dll_call2("SaveKGFGridToFile",KG%,adr(f1$))                 : ' ok
if res%<0
  message "Erreur en sauvegarde du KGFGrid"
else
  message "Le KGFGrid est sauvegardé dans "+f1$
end_if

message "On va supprimer le KGFGrid..."
KG% = dll_call1("DeleteKGFGrid",KG%)
message "Supprimé "+str$(KG%)
KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),13,1)                  : ' ok
f1$ = "KGFGrid_backup.txt"
res% = dll_call2("LoadKGFGridFromFile",KG%,adr(f1$))
message "Recréé à partir de la sauvegarde"
end_if

on_user_event UserEvent

end

UserEvent:
  UserEvent()
  return
  
PrintClipboard:
  PrintClipBoard()
  return
  
PrintPDF:
  PrintPDF()
  return
  
PrintPartialClipboard:
  PrintPartialClipBoard()
  return
  
PrintPartialPDF:
  PrintPartialPDF()
  return
  
SaveToCSV:
  SaveToCSV()
  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
end_sub

sub   PrintClipBoard()
  pdf$ = ""
  res% = dll_call3("PrintKGFGrid",KG%,0,adr(pdf$))
  message "La grille est copiée dans le presse-papier"
end_sub

sub  PrintPDF()
  pdf$ = "test_LGFGrid.pdf"
  res% = dll_call3("PrintKGFGrid",KG%,1,adr(pdf$))
  message "La grille est copiée dans "+pdf$
end_sub

sub   PrintPartialClipBoard()
  res% = dll_call6("PrintPartialKGFGrid",KG%,0,3,7,2,4)
  message "La grille est copiée dans le presse-papier"
end_sub

sub  PrintPartialPDF()
  pdf$ = "test_LGFGrid.pdf"
  res% = dll_call6("PrintPartialKGFGrid",KG%,adr(pdf$),3,7,2,4)
  message "La grille est copiée dans "+pdf$
end_sub

sub SaveToCSV()
  csv$ = "test_KGFGrid.csv"
  res% = dll_call6("ExportKGFGridCellRangeDataAsCSV",KG%,5,9,2,5,adr(csv$))
  message "Les données exportées sont dans "+csv$
end_sub

Fichier CSV résultant:
Code:
"Salut","Salut","Salut",""
"les","les","les",""
"copains","copains","copains",""
"3.14159265358979","3.14159265358979","3.14159265358979","0"
"23.45","0","0","0"

Les 3 images utilisées:
"Android.bmp": Grid_xxxxx - Page 2 Androi10
"marche_1_1_1_2.jpg": Grid_xxxxx - Page 2 Marche10
"crane.bmp": Grid_xxxxx - Page 2 Crane_10

Et voici la capture d'écran:
Grid_xxxxx - Page 2 Aa110
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Grid_xxxxx - Page 2 Empty
MessageSujet: re   Grid_xxxxx - Page 2 EmptyLun 18 Sep 2023 - 19:57

J'ai beau tout retourner dans tous les sens, les fonctions de sauvegarde et ouverture dans un fichier type kgf fonctionnent, la sauvegarde sous csv préformaté aussi mais pas l'import d'un fichier csv. 
Sad
Revenir en haut Aller en bas
lepetitmarocain




Nombre de messages : 335
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

Grid_xxxxx - Page 2 Empty
MessageSujet: Re: Grid_xxxxx   Grid_xxxxx - Page 2 EmptyJeu 19 Oct 2023 - 15:26

Bonjour à tous.

@Klaus

Serait t'il possible lorsque l'on saisit dans un KGFGRID de pouvoir mettre un libellé au lieu de la colonne et

la ligne, et ce pour chaque cellule

Par exemple Saisir la Date jj/mm/aaaa

Merci beaucoup

Bon après midi
Revenir en haut Aller en bas
 
Grid_xxxxx
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: