FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF_dll - nouvelles versions
par Yannick Aujourd'hui à 23:30

» Synedit Parameters
par Yannick Aujourd'hui à 23:26

» Un bug avec USER_EVENT ?
par Yannick Aujourd'hui à 23:16

» Concours de Morpions
par Froggy One Aujourd'hui à 19:30

» Bienvenue à Irikte
par papydall Aujourd'hui à 16:59

» Comment changer le graphisme d’un menu
par Yannick Aujourd'hui à 14:53

» LIBRARY COMMAND FUNCTION
par Jean Claude Aujourd'hui à 13:38

» OBJECT_PARENT NE FONCTIONNE PLUS ?! (RESOLU)
par Jack Aujourd'hui à 12:40

» Menu personalisé avec icones et menu contextuel
par Yannick Aujourd'hui à 12:10

» Doublon - Désolé !
par Laurent (Minibug) Aujourd'hui à 11:55

» Mac OS X sierra
par Irikte Aujourd'hui à 10:01

» Recherche de traductions de mots (@Klaus).
par Pedro Alvarez Hier à 20:34

» Problème avec SendStringAsText.
par Pedro Alvarez Hier à 20:32

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 18:19

» Mais qui a le focus ?
par Jack Hier à 16:35

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 PanoBudget

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: PanoBudget   Sam 28 Mai 2016 - 15:58

Un début d' application pour créer son budget avec des rubriques personnalisées.

J' ai cherché sur le net et je n' avais que des feuilles de calcul excel ou open office.
Je voulais un truc simple, sans trop de chichi pour visualiser mon bugdet du mois
et avec des rubriques qui correspondent à mes factures et revenus.



Le remplissage des rubriques se fait par saisi direct et changement de cellule pour valider et calculer les totaux ainsi que le Reste à vivre.

Le Programme créé un dossier propre à lui même pour la sauvegarde des budgets dans "C:\Users\.......\Documents"
Il y sauvegarde aussi les listes si vous ajoutez des rubriques personnalisées.

Le zip est sur mon webdav, il contient :
Src.bas
kgf.dll  ( ce qui le rend un peu lourd 1.2mb Embarassed )
LIB.ilb  (Librairie ImageList des puces pour les TreeView que vous pouvez personnalisés Wink )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Sam 28 Mai 2016 - 16:11

Je n'ai pas encore installé et testé l'application dans sa totalite - trop pris par ailleurs par autre chose. Mais, j'ai eu le privilège de pouvoir manipuler la fenêtre de saisie, lors d'une phase de mise au point d'une des fonctions de KGF.dll, utilisée ici. Et je dois dire que je suis impressionné par la facilité d'utilisation et le côté professionnel de ce logiciel qui ressemble fort à ce que l'on pourrait faire avec un tableau Excel ou similaire.

Bravo pour cette réalisation !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 28 Mai 2016 - 16:35

Merci KLaus.

Il y a surement des imperfections voir des mini bug 
mais je corrige au fur et à mesure que je les découvre.
Laughing


Edit:
Voilà le premier correctif, l' ajout d' une rubrique permettait qu' elle soit sans nom  Suspect.
Les fichiers listes modifiés se sauvegardaient dans le dossier source et pas là où je voulais.
Le zip est à jour.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4953
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: PanoBudget   Sam 28 Mai 2016 - 19:04

Je viens de télécharger la bête... Very Happy

Un premier problème: le programme ne trouve pas KGF.dll seul. No

J'ai donc copier le chemin en dur dans le code et ça marche.

J'ai créé un loyer et un salaire, j'ai un résultat du "reste à vivre" qui est correct.
Mais je ne l'ai pas eu du premier coup. Cela vient du fait que j'ai validé mes saisies des montant par la touche entrée.
Avant que je comprenne qu'il fallait que je clique dans une cellule pour valider la dernière saisie, le montant du reste à vivre, n'était pas à jour.
Il faudrait que tu vois ce problème car ça peut dérouté l'utilisateur.

Ce programme est simple à utiliser, c'est bien foutu... cheers

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 28 Mai 2016 - 22:54

J' utilise les fonctions de kgf et là si j' ai bien lu la doc
la fonction devrait le permettre mais apparemment non.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 28 Mai 2016 - 23:44

Une petite correction et l' ajout d' une prévisualisation d' un état pour impression ou enregistrement.
L' enregistrement de l' état est actif pas encore l' impression.

Rappel
Pour qu' une entrée soit validé dans le grid, il faut cliquer sur une autre cellule.
la touche entrée ne lance pas le calcul automatique.  Sad

Le zip est à jour.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 30 Mai 2016 - 15:26

Mise à jour.

Formatage automatique des entrées numériques.
Impression de l' état de prévisualisation.
Petites corrections de petits bugs

Le zip est à jour.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
RMont



Nombre de messages : 164
Age : 75
Localisation : charente maritime
Date d'inscription : 29/12/2008

MessageSujet: Re: PanoBudget   Mer 1 Juin 2016 - 13:31


bonjour a tous
message pour ygeronimi
j'ai un probème avec panobudget.
voila comment je procède .je détaille au maximum pour comprendre.
-telechargement du code .passage a l'antivirus
- je fais un dossier panobudget . je decompresse avec 7 zip
_je rajoute error_french pour comprehension des messages d'erreur
je lance par l'eclair
- immediatement j'ai une erreur en ligne 139
----> message :102 impossible de creer le répertoire line:139
- apres avoir consulter l'aide,je m'aperçois que dans l'exemple donné :dir_make "abcd"il y a ""(j'ai perdu le nom)
-je modifie la ligne 139 en rajoutant dir_make "dir_file$".
-avant de relancer,je passe par stop en haut
-je relance
maintenant j'ai la fenêtre de panobudget avec ses 3 menus.
donc pour voir ,je clique sur nouveau;je vois bien 'selectionner vos rubriques'
-ensuite clic sur recettes/pension.
j'ai vu.
je ferme par quitter.
avant de relancer je passe par stop en haut.
je relance et là de nouveau j'ai :102 impossible de créer le répertoire line 139.
j'ai vérifier ,j"ai bien un dossier dir_file$ qui a été créer

question :que se passe-t-il ?
.je me reconnecte vers 18h
a+

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Mer 1 Juin 2016 - 13:41

Oups...
tu dis:
Citation :
-je modifie la ligne 139 en rajoutant dir_make "dir_file$".
or, ça ne va pas du tout. Ou alors, tu fais:
Code:
dir_make dir_file$
ou alors, l'autre solution:
Code:
dir_make "Mon_Dossier"

La commande DIR_MAKE attend en paramètre une chaîne de caractères contenant le nom du dossier à créer. Cela peut être le nom d'une variable contenant le chemin et le nom du dossier. Dans ce cas, il ne faut surtout pas mettre de guillemets. Ou alors, tu utilises un texte fixe, et alors ce sera une constante entre guillemets. Mais tu ne peux pas mélanger les deux.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 1 Juin 2016 - 15:10

@ Rmont,

Place ceci :

message user$

juste avant la ligne 139.
Ceci expliquera peut-être cela.  Wink
Et, si c' est ce que je crois, il me faudra trouver un autre moyen
pour récupérer le nom de l' utilisateur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Mer 1 Juin 2016 - 15:26

Tu as une fonction dans KGF.dll, et elle est malheureusement non documentée. Mais je vais y remédier. En attendant, essaie de cette fonction:
Code:
res% = dll_call2("GetWindowsFoldersPath",iddossier%,adr(chemin$))
Tu lui passes un identifiant du dossier dont tu veux récupérer le chemin, et l'adresse d'une chaîne de caractères suffisamment longue pour contenir le chemin complet. Voici les codes possibles (utiliser les valeurs numériques, comme 26 pour le dossier Application Data):
Code:
CSIDL_DESKTOP                 =  0; // = Dossier Virtuel représentant le Bureau
CSIDL_INTERNET                =  1; // = Dossier Virtuel Internet
CSIDL_PROGRAMS                =  2; // = Dossier Programmes du Menu Démarrer
CSIDL_CONTROLS                =  3; // = Dossier Virtuel contenant les icônes des applications du Panneau de Contrôle
CSIDL_PRINTERS                =  4; // = Dossier Virtuel contenant les Imprimantes Installées
CSIDL_PERSONAL                =  5; // = Dossier Mes Documents
CSIDL_FAVORITES               =  6; // = Dossier Favoris
CSIDL_STARTUP                 =  7; // = Dossier Démarrage dans le dossier Programmes du Menu Démarrer
CSIDL_RECENT                  =  8; // = Dossier Récent
CSIDL_SENDTO                  =  9; // = Dossier SendTo
CSIDL_BITBUCKET               = 10; // = Dossier Virtuel contenant les fichiers de la Corbeille
CSIDL_STARTMENU               = 11; // = Dossier Menu Démarrer
CSIDL_MYDOCUMENTS             = 12; // = Dossier Virtuel contenant les fichiers du dossier Mes Documents
CSIDL_MYMUSIC                 = 13; // = Dossier Mes Musiques
CSIDL_MYVIDEO                 = 14; // = Dossier Mes Vidéos
CSIDL_DESKTOPDIRECTORY        = 16; // = Dossier physique contenant les objets du Bureau
CSIDL_DRIVES                  = 17; // = Dossier Virtuel My Computer
CSIDL_NETWORK                 = 18; // = Dossier Virtuel Voisinage réseau
CSIDL_NETHOOD                 = 19; // = Dossier physique Nethood
CSIDL_FONTS                   = 20; // = Dossier Fonts
CSIDL_TEMPLATES               = 21; // = Dossier ShellNew
CSIDL_COMMON_STARTMENU        = 22; // = Dossier Menu Démarrer pour All Users
CSIDL_COMMON_PROGRAMS         = 23; // = Dossier Programmes dans le menu Démarrer pour All Users
CSIDL_COMMON_STARTUP          = 24; // = Dossier Démarrage dans le dossier Programmes du Menu Démarrer pour All Users
CSIDL_COMMON_DESKTOPDIRECTORY = 25; // = Dossier Physiques du Bureau pour All Users
CSIDL_APPDATA                 = 26; // = Dossier Application Data
CSIDL_PRINTHOOD               = 27; // = Dossier PrintHood
CSIDL_LOCAL_APPDATA           = 28; // = Dossier Application Data dans Local Settings pour le Current User
CSIDL_ALTSTARTUP              = 29; // = NT Only
CSIDL_COMMON_ALTSTARTUP       = 30; // = NT Only
CSIDL_COMMON_FAVORITES        = 31; // = Dossier Favoris pour All Users
CSIDL_INTERNET_CACHE          = 32; // = Dossier Temporary Internet Files
CSIDL_COOKIES                 = 33; // = Dossier Cookies
CSIDL_HISTORY                 = 34; // = Dossier Historiques
CSIDL_COMMON_APPDATA          = 35; // = Dossier Physique Application Data pour All users
CSIDL_WINDOWS                 = 36; // = Répertoire windows
CSIDL_SYSTEM                  = 37; // = Répertoire System 32 de Windows
CSIDL_PROGRAM_FILES           = 38; // = Dossier Program Files
CSIDL_MYPICTURES              = 39; // = Dossier physique de My Pictures pour Current Users
CSIDL_PROFILE                 = 40; // = Dossier Physique du Current Users
CSIDL_SYSTEMX86               = 41; // = x86 system directory on RISC systems
CSIDL_PROGRAM_FILESX86        = 42; // = x86 Program Files folder on RISC systems
CSIDL_PROGRAM_FILES_COMMON    = 43; // = Dossier Common files de Program Files
CSIDL_PROGRAM_FILES_COMMONX86 = 44; // = x86 Program Files Common folder on RISC systems
CSIDL_COMMON_TEMPLATES        = 45; // = Dossier Physique ShellNew pour AllUsers
CSIDL_COMMON_DOCUMENTS        = 46; // = Dossier Physique Documents pour AllUsers
CSIDL_COMMON_ADMINTOOLS       = 47; // = Dossier Physique pour l'administrative tools
CSIDL_ADMINTOOLS              = 48; // = Dossier Start MenuPrograms Administrative Tools
CSIDL_CONNECTIONS             = 49; // = Dossier Virtuel contenant les connections réseaux et dial-up
CSIDL_COMMON_MUSIC            = 53; // = Dossier physique My Music pour AllUsers
CSIDL_COMMON_PICTURES         = 54; // = Dossier physique My Pictures pour AllUsers
CSIDL_COMMON_VIDEO            = 55; // = Dossier physique My Video pour AllUsers
CSIDL_RESOURCES               = 56; // = Dossier physique Ressources de Windows
CSIDL_RESOURCES_LOCALIZED     = 57; // = Dossier physique Ressources Localisées de Windows
CSIDL_COMMON_OEM_LINKS        = 58; // =
CSIDL_CDBURN_AREA             = 59; // = Dossier CD Burning de Windows
CSIDL_COMPUTERSNEARME         = 60; // = Dossier Virtuel Work Group NetWork
Alors, tu choisis un code (comme 26) et tu extrais le nom de l'utilisateur du chemin retourné.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 1 Juin 2016 - 16:03

cheers
Ta fonction est génial, je n' ai plus besoin du nom de l' utilisateur
puisque je peux récupérer directement le chemin de "Mes Documents" par le code "5".

La seule condition est que cela fonctionne sur toutes les versions de Windows Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Mer 1 Juin 2016 - 16:08

Je pense que oui. J'utilise simplement un API Windows, sans bidouillage de ma part.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 1 Juin 2016 - 16:25

@ Rmont, 

Remplace la sub init() par celle là :

Code:
sub init()
  dim_local i%,res%
'  activation de la dll
  if file_exists(kgf$)=1
      dll_on kgf$
  end_if
'  initialisation du dossier de stockage
  Dir_File$ = string$(255," ")
  res% = dll_call2("GetWindowsFoldersPath",5,adr(Dir_File$))
  Dir_File$ = trim$(Dir_File$)+"\PanoBudget_Files\"
  if dir_exists(Dir_File$)= 0
      dir_make Dir_File$
  end_if
'  adressage des fichiers
  RubDepFile$  = Dir_File$+"ListeDep.inf"
  RubRecFile$  = Dir_File$+"ListeRec.inf"
  EcheanceFile$= Dir_File$+"Echeancier.inf"
'  définition des couleurs pour les StringGrid
'  définition des couleurs de colonne
  DefineKgfColor(255,255,255)
  CouleurColNorm% = Ret_KgfColor%
  DefineKgfColor(253,213,187)
  CouleurColCred% = Ret_KgfColor%
  DefineKgfColor(217,248,174)
  CouleurColDeb% = Ret_KgfColor%
'  définition des couleurs de police
  DefineKgfColor(0,0,0)
  CouleurPol1% = Ret_KgfColor%
  DefineKgfColor(0,0,170)
  CouleurPol2% = Ret_KgfColor%
'  définition de la couleur d' une ligne de rubrique
  DefineKgfColor(230,230,230)
  CouleurLineRub% = Ret_KgfColor%
'  définition de la police des grid
  PolGrid$ = "Courier New"
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
RMont



Nombre de messages : 164
Age : 75
Localisation : charente maritime
Date d'inscription : 29/12/2008

MessageSujet: Re: PanoBudget   Mer 1 Juin 2016 - 19:45


@ klaus et ygeronimi
ce matin ,j'ai bien fait d'expliquer ce que je faisais. j'ai donc mal compris l'exemple du manuel.
merci klaus.
pour ygeronimi
j'ai commencé par inclure en ligne 138 la cde "message user$"
la reponse est : la commande s'est bien terminée .ok
clic sur ok
réponse :102 impossible de creer le repertoire en ligne 140.

je suis passé ensuite a la nouvelle sub init que j'ai incluse a la place de l'autre.
1er message d'erreur "variable inconnue en ligne 143 pour moi"
echeanceFile$=Dir_File$+"Echeancier.inf"
j'ai rajouter dim echeancier dans sub_contantes.

je lance et cela fonctionne tres bien
il ne me reste plus qu'a faire des essais
merci a vous

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 4 Juin 2016 - 21:46

En attendant que Klaus résolve les problèmes liés à StringGrid,
je vous est mis une version avec un grid panoramic.
Certes, on perd les couleurs dans le grid, mais il n' y a plus de bugs.
( si vous en trouvez, ce sera une sûrement un oubli de ma part )

Bref le zip est sur mon webdav : "PanoBudget_Sans_KGF_StringGrid.zip"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Sam 4 Juin 2016 - 23:16

J'y travaille... le bug concerne la fonction LoadGridFromFile, et j'ai localisé l'endroit. La correction est un peu plus coriace à mettre en place, mais ça viendra.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 5 Juin 2016 - 16:30

C 'est une version palliative mais pas finale...
Laughing

Edit:

Petite correction, cette version ne prenait plus les échéanciers en compte.
C' est corrigé.

J' ai aussi corrigé l' affichage de l' edit d' entrée dans le grid.
il ne s' affiche plus du tout lorsque l' on double clic sur une cellule correspondant à une catégorie
mais seulement en face des rubriques.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Lun 6 Juin 2016 - 9:45

Est-ce que tu pourrais faire un petit test pour moi ?

Dans ta sub OpenBudgetFile(), il faudrait remplacer
Code:
     res% = dll_call3("LoadGridFromFile",SG%,1,adr(f$))
par
Code:
     res% = dll_call6("GridFunction",SG%,23,0,0,0,0) : ' effacer les données du grid
     res% = dll_call3("LoadGridFromFile",SG%,1,adr(f$)) : ' restaurer les données seulement
et réesayer. Qu'est-ce que ça donne chez toi ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 6 Juin 2016 - 13:28

Je perds :

les couleurs (polices+cellules)
la police de caractère
l' alignement des nombres à droite.

Mais je n' ai plus de message violent
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Lun 6 Juin 2016 - 19:18

Merci, Ygeronimi. Je vois mieux maintenant. Ca me permet d'aller plus loin.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 6 Juin 2016 - 19:54

@ Klaus,

Tel quel, je pourrais essayer de couper ma procédure ImportRubriqueFromTempFiles() en deux
puisque elle s' occupe aussi de la coloration du StringGrid lors d' une création et rendre cette partie 
indépendante pour l' appeler lors de l' ouverture d' une sauvegarde.

En produisant la version avec un grid Panoramic, je me suis aperçu de certaines parties
redondantes dans le code et j' ai un peu élagué celui ci. Laughing
Lorsque je reviendrai sur la version avec le stringGrid de kgf, je me baserai sur ce source 
qui est un peu plus optimisé. Wink

Tout de suite, je préfère la patience et te laisser le temps de trouver la solution.
En gardant le code d' origine, cela me permet de faire des tests en situation et de t' aider
dans la mesure de mes connaissances.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Lun 6 Juin 2016 - 20:19

J'ai cherché un peu, et je ne trouve pas les appels à GridFunction pour définir les zones de couleur. Nulle part dans le code que j'ai. Peux-tu me poster les lignes à intégrer dans la sub CreateNewStringGrid() ? Probablement juste après les lignes
Code:
'  formatage texte de la ligne 1 (ligne des entêtes)
  res% = DLL_call6("GridFunction",SG%,9,0*65536+1,4362,adr(PolGrid$),CouleurPol2%)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Yannick

avatar

Nombre de messages : 7870
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 6 Juin 2016 - 20:34

CreateNewStringGrid() ne s' occupe pas de cela.
Le formatage police, couleur de police, couleur de cellule, alignement se fait dans la procédure :
ImportRubriqueFromTempFiles()
Cette procédure définie ligne par ligne pour les colonnes 1 et 2 puis 3 et 4
le formatage des cellules en fonction de ce qu' elle contiennent.
Cette procédure est appelée uniquement lors de la création d' un nouveau budget.
Dans le cas d' une ouverture d' une sauvegarde, c' est le contenu de la sauvegarde qui s' applique.

Code:
sub ImportRubriqueFromTempFiles()
   dim_local i%,a$,res%,txt$,y%,format$
  
   if count(DlDeb%)>0
      for i%= 1 to count(DlDeb%)
         a$=item_read$(DlDeb%,i%)
         res% = DLL_call6("GridFunction",SG%,9,1*65536+(i%+1),10,adr(PolGrid$),CouleurPol1%)
         if left$(a$,1)="#"
            a$=upper$(right$(a$,len(a$)-1))
            res% = DLL_call6("GridFunction",SG%,2,1,i%+1,CouleurLineRub%,CouleurPol1%)
            res% = DLL_call6("GridFunction",SG%,2,2,i%+1,CouleurLineRub%,CouleurPol1%)
         else
            a$=string$(5," ")+a$
            res% = DLL_call6("GridFunction",SG%,9,2*65536+(i%+1),8202,adr(PolGrid$),CouleurPol1%)
            res% = DLL_call6("GridFunction",SG%,2,2,i%+1,CouleurColDeb%,CouleurPol1%)
         end_if
         txt$=a$
         res% = DLL_call4("WriteGridCell",SG%,1,i%+1,adr(txt$))
      next i%
   end_if
   txt$ = "Total des dépenses :  "
   res% = DLL_call6("GridFunction",SG%,9,1*65536+NbreRows%,8202,adr(PolGrid$),CouleurPol2%)
   res% = DLL_call4("WriteGridCell",SG%,1,NbreRows%,adr(txt$))
   txt$ = "0.00"
   res% = DLL_call6("GridFunction",SG%,9,2*65536+NbreRows%,8202,adr(PolGrid$),CouleurPol1%)
   res% = DLL_call6("GridFunction",SG%,2,2,NbreRows%,CouleurColDeb%,CouleurPol1%)
   res% = DLL_call4("WriteGridCell",SG%,2,NbreRows%,adr(txt$))
  
   if count(DlRec%)>0
      for i%= 1 to count(DlRec%)
         a$=item_read$(DlRec%,i%)
         res% = DLL_call6("GridFunction",SG%,9,3*65536+(i%+1),10,adr(PolGrid$),CouleurPol1%)
         if left$(a$,1)="#"
            a$=upper$(right$(a$,len(a$)-1))
            res% = DLL_call6("GridFunction",SG%,2,3,i%+1,CouleurLineRub%,CouleurPol1%)
            res% = DLL_call6("GridFunction",SG%,2,4,i%+1,CouleurLineRub%,CouleurPol1%)
         else
            a$=string$(5," ")+a$
            res% = DLL_call6("GridFunction",SG%,9,4*65536+(i%+1),8202,adr(PolGrid$),CouleurPol1%)
            res% = DLL_call6("GridFunction",SG%,2,4,i%+1,CouleurColCred%,CouleurPol1%)
         end_if
         txt$=a$
         res% = DLL_call4("WriteGridCell",SG%,3,i%+1,adr(txt$))
      next i%
   end_if
   txt$ = "Total des recettes :  "
   res% = DLL_call6("GridFunction",SG%,9,3*65536+NbreRows%,8202,adr(PolGrid$),CouleurPol2%)
   res% = DLL_call4("WriteGridCell",SG%,3,NbreRows%,adr(txt$))
   txt$ = "0.00"
   res% = DLL_call6("GridFunction",SG%,9,4*65536+NbreRows%,8202,adr(PolGrid$),CouleurPol1%)
   res% = DLL_call6("GridFunction",SG%,2,4,NbreRows%,CouleurColCred%,CouleurPol1%)
   res% = DLL_call4("WriteGridCell",SG%,4,NbreRows%,adr(txt$))
  
   ResteAV = 0
   MajAffichResteAV()
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: PanoBudget   Lun 6 Juin 2016 - 20:44

Ok. Je prends la procédure qui n'existe pas dans la version du source que j'ai.

Je comprends bien que tu veux récupérer le formattage dans le fichier de sauvegarde, et en réalité, la finalité de cette fonction est bien celle-là. Mais pour le moment, le bug que je poursuis, se situe à ce niveau-là. C'est pour cette raison que dans la fonction LoadGridFromFile, j'ai changé le paramètre de 0 à 1 pour ne prendre que les données. Ca ne plante plus, ce qui me conforte dans l'identification du bug.

Je vais donc, pour la mise au point, intégrer le paramétrage du tableau au niveau de sa création, à partir du code que tu viens de poster. Juste pour avoir l'aspect réel. Puis, étape par étape, je vais basculer sur les paramètres provenant du fichier de sauvegarde, afin d'isoler le bug.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html En ligne
Contenu sponsorisé




MessageSujet: Re: PanoBudget   

Revenir en haut Aller en bas
 
PanoBudget
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: