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 - demandes ou suggestions de modifications ou ajouts
par Klaus Aujourd'hui à 19:48

» KGF_dll - nouvelles versions
par pascal10000 Aujourd'hui à 17:27

» Mah-Jong européen new-look
par Minibug Hier à 22:31

» track_bar circulaire
par Klaus Hier à 13:54

» API Windows
par Klaus Hier à 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 GestCompte

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7, 8, 9  Suivant
AuteurMessage
Klaus

avatar

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

MessageSujet: Re: GestCompte   Mar 29 Mar 2016 - 17:00

Ok, je vais voir ça.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mar 29 Mar 2016 - 22:12

Ne te casse plus la tête, j' ai trouvé la solution dans un post
datant de Mathusalem...

Laughing

Le Webdav est à jour...
...pour l' instant.
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: GestCompte   Mer 30 Mar 2016 - 0:53

Dois-je en conclure que ça marche ? J'en serais ravi - surtout que je suis pas mal pris par un autre truc qui traine depuis un moment, et qui est sur le train de se conclure...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 30 Mar 2016 - 1:14

Cela fonctionne...
(je serai inquiet de voir mon programme me tourner le dos et partir en courant  Laughing ).

Il y a une chose qui pourrait être bien, c' est une fonction ReadNextIsamRecordByKey.
Car c' est ce que je croyais qu' il se fait avec ReadNextIsamRecord puisque je lui donnai tout comme pour 
ReadIsamRecordByKey.
Mais en fait, non et là était mon erreur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: GestCompte   Mer 30 Mar 2016 - 1:39

Citation :
Car c' est ce que je croyais qu' il se fait avec ReadNextIsamRecord puisque je lui donnai tout comme pour
ReadIsamRecordByKey.
Ben... c'est ce que cette fonction est supposée faire ! Normalement, la fonction ReadIsamRecordByKey met à jour la variable contenant la clé, su la clé lue n'est pas identique à celle demandée, ce qui devrait être rare. Mais en tout cas, ça fonctionne comme ça. Donc, il suffit tout simplement de présenter la même variable à ReadNextIsamRecord et le tour est joué. Tant que tu ne changes pas le numéro de la clé, ça devrait marcher. C'est ce que j'utilise dans mon logiciel de fiches de contact pour obtenir une liste des noms de tous les contacts...

Voici l'extrait de la doc:
Citation :
Cette fonction lit l'enregistrement suivant dans un fichier ISAM, en fonction du numéro de la clé passé en paramètre. Si l'enregistrement existe, il est lu et placé dans la variable contenant l'enregistrement. Une erreur est signalé en fin d'index.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

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

MessageSujet: Re: GestCompte   Mer 30 Mar 2016 - 11:58

Bonjour à tous,

J'ai testé ce matin:
Tout à l'air de bien fonctionner.

Concernant la fonction de recherche, qui marche bien, personnellement je n'aurais pas séparé les dépenses des recettes (dans le combo des choix), ce qui permettrait d'avoir la différence (bien sure, du coup, il faut une colonne en plus pour le grid). C'est valable quelque soit le type de recherche choisi par l'utilisateur.
Qu'en penses-tu ?

Pour l'affichage Report n-1 dans le menu solde: j'ai 2 barres de défilement qui me bouche la vue des édit(s) et du bouton "Enregistrer".
Voici la modification que j'ai faite à la sub RECUP_SOLDES_DEPART() pour adapter à Windows 10:

Code:
' ------------------------------------------------------------------------------
' FENETRE DE RECUPERATION DES SOLDES DE DEBUT D EXERCICE
' ------------------------------------------------------------------------------

sub RECUP_SOLDES_DEPART()
   dim_local res%
   if object_exists(F_RecSoldAA%)=1
      show F_RecSoldAA%
   else
      form F_RecSoldAA%
      height F_RecSoldAA%,150
      width F_RecSoldAA%,350
      top F_RecSoldAA%,(screen_y-height(F_RecSoldAA%))/2
      left F_RecSoldAA%,(screen_x-width(F_RecSoldAA%))/2
      caption F_RecSoldAA%,"Report N-1"
      
      alpha alphSRAA%
      parent alphSRAA%,F_RecSoldAA%
      top alphSRAA%,15
      left alphSRAA%,5
      caption alphSRAA%,"Solde Réel N-1 :"
      
      alpha alphSBAA%
      parent alphSBAA%,F_RecSoldAA%
      top alphSBAA%,45
      left alphSBAA%,5
      caption alphSBAA%,"Solde Banque N-1 :"
      
      edit ediSRAA%
      parent ediSRAA%,F_RecSoldAA%
      width ediSRAA%,80
      top ediSRAA%,13
      left ediSRAA%,width(F_RecSoldAA%)-(width(ediSRAA%)+40):' modifié pour W10

      
      edit ediSBAA%
      parent ediSBAA%,F_RecSoldAA%
      width ediSBAA%,80
      top ediSBAA%,43
      left ediSBAA%,width(F_RecSoldAA%)-(width(ediSBAA%)+40):' modifié pour W10
      
      button butSoldAA%
      parent butSoldAA%,F_RecSoldAA%
      top butSoldAA%,height(F_RecSoldAA%)-(height(butSoldAA%)+50):' modifié pour W10
      left butSoldAA%,width(F_RecSoldAA%)-(width(butSoldAA%)+40):' modifié pour W10
      caption butSoldAA%,"Enregistrer"
      cursor_point butSoldAA%
      on_click butSoldAA%,clic
      
   end_if
      FORMAT_NOMBRE(str$(SoldeReelAA))
      text ediSRAA%,right$(string$(10," ")+RetFormat$,10)
      FORMAT_NOMBRE(str$(SoldeBankAA))
      text ediSBAA%,right$(string$(10," ")+RetFormat$,10)
   res% = DLL_call2("WindowTopMost",handle(F_RecSoldAA%),1)
end_sub

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

avatar

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

MessageSujet: re   Mer 30 Mar 2016 - 14:52

@ Klaus,

Apparemment non, puisque je suis obligé de comparé le résultat de la recherche par ReadNextIsamRecord avec
la valeur passée en paramètre...

Code:
' ------------------------------------------------------------------------------
' REMPLISSAGE SUR RECHERCHE
' ------------------------------------------------------------------------------

sub RECHERCHE(it%)
   dim_local m%,res%,key$,sep$,N%,v$,fill$,op$,day$,tr$,lb$,md$,db$,ct$,p$,dc$,mois$,value$,i%
   N%=it%
   if NbrGS%>2
      INIT_GRID_SEARCH()
   end_if
  
   res% = dll_call1("IsamFileIsOpen",Isam_ID%)
   if res%<0
       m%=message_information_ok("Le fichier ISAM est fermé !")
       exit_sub
   end_if

   if ISAM_inbase% >0
      if N%=0 or N%=1 or N%=7
         m%=message_information_ok("Vous devez sélectionner un mode.")
         exit_sub
      end_if
'     DEPENSES
      if N%= 2
'        date
         sep$=" "
         value$=trim$(text$(ediSearch%))
         SearchKeyValue%=2
         key$=left$(Value$+string$(10," "),10)
      end_if
      if N%= 3
'        tiers
         sep$=" "
         value$=trim$(text$(CombTiersSearch%))
         SearchKeyValue%=3
         key$=left$(Value$+string$(20," "),20)
      end_if
      if N%= 4
'        mode de paieament
         sep$=" "
         value$=trim$(text$(combMdSearch%))
         SearchKeyValue%=4
         key$=left$(Value$+string$(4," "),4)
      end_if
      if N%= 5
'        montant
         sep$="*"
         value$=trim$(text$(ediSearch%))
         FORMAT_NOMBRE(value$)
         Value$ = RetFormat$
         SearchKeyValue%=5
         key$=right$(string$(10,sep$)+Value$,10)
      end_if
      if N%= 6
'        pointage
         sep$=" "
         if checked(CheckSearch%)=1 : value$="X" : else : value$="" : end_if
         SearchKeyValue%=8
         key$=left$(Value$+string$(3," "),3)
      end_if
'     RECETTES
      if N%= 8
'        date
         sep$=" "
         value$=trim$(text$(ediSearch%))
         SearchKeyValue%=2
         key$=left$(Value$+string$(10," "),10)
      end_if
      if N%= 9
'        tiers
         sep$=" "
         value$=trim$(text$(CombTiersSearch%))
         SearchKeyValue%=3
         key$=left$(Value$+string$(20," "),20)
      end_if
      if N%= 10
'        mode de paiement
         sep$=" "
         value$=trim$(text$(combMdSearch%))
         SearchKeyValue%=4
         key$=left$(Value$+string$(4," "),4)
      end_if
      if N%= 11
'        montant
         sep$="*"
         value$=trim$(text$(ediSearch%))
         FORMAT_NOMBRE(value$)
         Value$ = RetFormat$
         SearchKeyValue%=6
         key$=right$(string$(10,sep$)+Value$,10)
      end_if
      if N%= 12
'        pointage
         sep$=" "
         if checked(CheckSearch%)=1 : value$="X" : else : value$="" : end_if
         SearchKeyValue%=8
         key$=left$(Value$+string$(3," "),3)
      end_if

'     RECHERCHE
      ISAM_record$ = string$(ISAM_RecLen%," ")
      res% = dll_call4("ReadIsamRecordByKey",Isam_ID%,adr(ISAM_record$),SearchKeyValue%,adr(key$))
      if res%>0
         RecupValeursChampsEnrgt()
         if N%<7 and val(ValChpDebit$)>0
            AddLineInGridSearch()
         else
            if N%>7 and Val(ValChpCredit$)> 0
               AddLineInGridSearch()
            end_if
         end_if
      end_if
      while res% >0
         ISAM_record$ = string$(ISAM_RecLen%," ")
         res% = dll_call4("ReadNextIsamRecord",Isam_ID%,adr(ISAM_record$),SearchKeyValue%,adr(key$))
         if res% >0
            if Value$ = trim$(key$)
               RecupValeursChampsEnrgt()
               if N%<7 and val(ValChpDebit$)>0
                  AddLineInGridSearch()
               else
                  if N%>7 and Val(ValChpCredit$)> 0
                     AddLineInGridSearch()
                  end_if
               end_if
            end_if
         end_if
      end_while
'     masquage des objets
      hide CombTiersSearch%
      hide ediSearch%
      hide combMdSearch%
      hide CheckSearch%
'     initialisation des objets
      text CombTypSearch%,""
      text CombTiersSearch%,""
      text ediSearch%,""
      text combMdSearch%,""
      mark_off CheckSearch%
      caption alphcaptvalSearch%,""
   end_if
end_sub

' ------------------------------------------------------------------------------

sub RecupValeursChampsEnrgt()
   dim_local res%,v$,fill$
'  opération
   v$=string$(5," ")  : fill$ ="*"
   res% = dll_call5("ExtractIsamField",Isam_ID%,1,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpID$ = trim$(v$)
'  date
   v$=string$(10," ")  : fill$ =" "
   res% = dll_call5("ExtractIsamField",Isam_ID%,2,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpDate$ = trim$(v$)
'  tiers
   v$=string$(20," ")  : fill$ =" "
   res% = dll_call5("ExtractIsamField",Isam_ID%,3,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpTiers$ = trim$(v$)
'  Libellé
   v$=string$(255," ")  : fill$ =" "
   res% = dll_call5("ExtractIsamField",Isam_ID%,4,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpLib$ = trim$(v$)
'  mode
   v$=string$(4," ")  : fill$ =" "
   res% = dll_call5("ExtractIsamField",Isam_ID%,5,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpMode$ = trim$(v$)
'  debit
   v$=string$(10," ")  : fill$ ="*"
   res% = dll_call5("ExtractIsamField",Isam_ID%,6,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpDebit$ = trim$(v$)
'  credit
   v$=string$(10," ")  : fill$ ="*"
   res% = dll_call5("ExtractIsamField",Isam_ID%,7,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpCredit$ = trim$(v$)
'  pointage
   v$=string$(3," ")  : fill$ =" "
   res% = dll_call5("ExtractIsamField",Isam_ID%,8,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpPointe$ = trim$(v$)
'  doc
   v$=string$(3," ")  : fill$ =" "
   res% = dll_call5("ExtractIsamField",Isam_ID%,9,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpDoc$ = trim$(v$)
'  mois
   v$=string$(3," ")  : fill$ ="*"
   res% = dll_call5("ExtractIsamField",Isam_ID%,10,adr(ISAM_record$),adr(v$),adr(fill$))
   ValChpMois$=trim$(v$)
end_sub

' ------------------------------------------------------------------------------

sub AddLineInGridSearch()
   Grid_write gridSearch%,NbrGS%,1,right$(string$(5,"0")+ValChpID$,5)
   Grid_write gridSearch%,NbrGS%,2,ValChpDate$
   Grid_write gridSearch%,NbrGS%,3,ValChpTiers$
   Grid_write gridSearch%,NbrGS%,4,ValChpLib$
   Grid_write gridSearch%,NbrGS%,5,ValChpMode$
   Grid_write gridSearch%,NbrGS%,6,right$(string$(10," ")+ValChpDebit$,10)
   Grid_write gridSearch%,NbrGS%,7,right$(string$(10," ")+ValChpCredit$,10)
   Grid_write gridSearch%,NbrGS%,8,ValChpPointe$
   Grid_write gridSearch%,NbrGS%,9,ValChpDoc$
   NbrGS% = NbrGS%+1
   Grid_row_insert gridSearch%,NbrGS%
end_sub

@ Jean Claude,

Les ascenseurs m' arrivent parfois entre le source executé dans Panoramic-Editor et la version Executable aussi.
Quelques pixels en plus de marge et cela disparait.
Ceci dit, je prends ta petite modif.

Pour la séparation des débits et crédits, j' ai mis comme cela pour pouvoir compléter les recherches par d'autres clés plus tard
et bien pouvoir visualiser ce que les enregistrements sont.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: GestCompte   Mer 30 Mar 2016 - 16:29

Citation :
Apparemment non, puisque je suis obligé de comparé le résultat de la recherche par ReadNextIsamRecord avec
la valeur passée en paramètre...
C'est plutôt normal non ? La fonction ReadNextIsamRecord lit l'enregistrement suivant, dans l'ordre de la même clé. Et il paraît normal que tu trouves un changement de clé, en général...

Suppose la suite des enregistrements suivants, avec deux champs: nom et prénom. Le nom est la clé. Voici les enregistrements:
Bordeaux, Jean
Chevallier, Marie
Dupund, Jacques
Dupond, Pierre
Fontaine, Alain

Tu fais une lecture avec la clé "Chevalier". Tu récupères donc "Chevalier, Marie".
Maintenant un appel à ReadNextIsamRecord te donne "Dupund, Jacques". Normal, non ? Mais changement de clé...
Ensuite, un appel à ReadNextIsamRecord te donne "Dupond, Pierre". Pas de changement de clé...
Le prochain appel à ReadNextIsamRecord  te donne "Fontaine, Alain". Changement de clé...

Tu vois le principe ? Essaie de faire un petit code de quelques lignes:
- ouvrir le fichier ISAM concerné
- faire une lecture par clé d'un enregistrement quelconque
- faire une boucle de ReadNextIsamRecord jusqu'à une erreur (res%<0), et affiche chaque fois la clé résultante, l'enregistrement et res%

Ensuite, on pourra faire un diagnostic plus précis de ce qui ne va pas, ou de ce que tu as mal compris.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 30 Mar 2016 - 17:34

Dans mon cas, je fais une recherche des enregistrement sur une date ( par exemple )
étant donné que je passe les même paramètres à ReadIsamRecordByKey et ReadIsamNextRecord,
je m' attends à ce que le premier me donne le premier enregistrement et l' autre le suivant avec la valeur de cette clé.
Là si je suis à l' enregistrement 12, next me lit le 13 et ne s' occupe pas de la valeur passée en paramètres
Si j' ai 14 enregistrements, le 1 et le 10 ont la même date, je fais une recherche sur la clé "date" avec la date en valeur

ReadIsamRecordByKey, me lit le 1

ReadIsamNextRecord, me lit le 2 et pas le 10 
alors que je lui donne la même clé avec la même valeur à chercher.
et c' est le fait de passer ces même paramètres qui m' a induit dans l' erreur.
je m' attendais à ce qu' il se positionne directement au 10.

De toute façon, il n' y a rien de grave, 
c' est juste qu' il faut s' en rappeler quand on utilise cette fonction c' est tout.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: GestCompte   Mer 30 Mar 2016 - 17:53

Franchement, Ygeronimi, ce n'est pas clair, ton histoire. Tu peux faire ce que j'ai suggéré ci-dessus ? Fais un petit code pour remplir un mémo avec les enregistrements lus séquentiellement (par NEXT), et tu verras bien ce qu'il te retourne.

Comment as-u codé la date ? Si tu veux avoir une lecture séquentielle selon la date, tu ne peux pas la mémoriser dans le format retourné par date$. Il faut la mémoriser dans un format aaaammjj ou aaaa/mm/jj, mais avec l'année codée sur 4 chiifres, me mois sur 2 chiffres et le jour sur 2 chiffres, avec des "0" devant les mois ou jours à un seul chiffre. Si tu ne fais pas cela, la lecture séquentielle fonctionnera techniquement, mais donnera des résultats auxquels tu ne t'attends pas, intuitivement.
Exemple:
si tu codes la date sellon le format date$, alors la date 1/04/2016 est avant lle 28/03/2016 etc. Sache que la comparaison se fait selon la chaîne de caractères, à partir de la gauche, caractère par caractère. Et c'est pourquoi l'année doit être au début, sur 4 caractères numériques, puis le mois sur 2 caractères, sous forme de "01", "02"..."12", et enfin le jour sous forme "01", "02"..."31". Toute autre représentation d'une date produira des résultats inattendus lors de la lecture séquentielle.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 30 Mar 2016 - 18:40

En fait, mon Pb viendrait plus de Res% que de la fonction elle même.
le truc est que :

res% = 0 si fin d' index
Res% > 0 N° enregistrement lu et donc toujours >0 même si key$ lu<>key$ passée

donc une boucle while res%>0 continue même si key$ lu<>key$ passée
Res% devrait être <0 si key$ lu<>key$ passée
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: GestCompte   Mer 30 Mar 2016 - 19:03

Citation :
donc une boucle while res%>0 continue même si key$ lu<>key$ passée
Non, Ygeronimi. Tu n'as pas compris le fonctionnement de cette fonction. La doc dit bien ce que ça fait: la lecture se produit séquentiellement selon la clé indiquée, jusqu'à la fin du fichier. Si tu veux faire ce qu'on appelle des "ruptures" en termes d'informatique de gestion, alors il te revient de coder toi-même ta condition de rupture. Comme par exemple le changement de valeur de la clé, mais ça peut être n'importe quoi d'autre.

La fonction de lecture séquentielle n'est pas supposée "interpréter" les données. Elle te donne simplement l'enregistrement suivant, tel qu'il est pointé par les indexes.

Mais qu'est-ce qui t'empêche de coder une SUB contenant cette fonction, et dans laquelle tu fais ton test, et tu positionnes une variable globale quelconque pour indiquer ta condition de fin ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 30 Mar 2016 - 19:22

Dans un sens, tant mieux, cela nous permet de rester maître sur la machine.
Même si elle ne fait pas ce que je veux...
Laughing

Je viens de me rendre compte que ce qui me paraissait être un défaut
pourrait bien me servir pour remplir mes grids au départ.
Je viens de m' apercevoir que mes enregistrements étaient triés par ID et que la logique voudrait
que visuellement ce soit par date.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: GestCompte   Mer 30 Mar 2016 - 19:36

Eh bien, pas de problème si la date est également définie comme une clé... alors, pour remplir ton tableau, tu lis selon la clé "date" et non selon la clé "ID".


Dernière édition par Klaus le Mer 30 Mar 2016 - 19:55, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 30 Mar 2016 - 19:44

Effectivement.
Bon, aller, Pause Ordi, je vais ouvrir des huîtres.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Sam 2 Avr 2016 - 11:44

Mise à jour de GestCompte.zip sur mon webdav.

Le programme utilise maintenant l' objet StringGrig de KGF.dll.

Embarassed oups... correction d' un bug. mise à jour 02/04/2016 à 11h35
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Sam 2 Avr 2016 - 15:25

Mise à jour du zip.

Possibilité de modifier les montant d' une opération sur N et N-1

Nouvelle mise à jour à 15h52 ( correctif )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Dim 3 Avr 2016 - 16:06

Mise à jour du zip.

Les opérations sont triées par date dès leur création.

Mise à jour du zip 15h57 correction d' un bug.
Twisted Evil
Mise à jour du zip 16h10 correction d' une anomalie... 
tongue
Mise à jour du zip 16h36 correction d' une faute de frappe...
drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Lun 4 Avr 2016 - 20:51

Je viens de mettre une dernière mise à jour de GestCompte.
rien de neuf mais une sécurité dans le code grâce à la dernière version de KGF.

Ce programme est améliorable dans ses fonctionnalités.
Libre à vous de l' améliorer.
Perso, je le mets en suspens, je me lance dans un programme qui pourrait m' être utile
dans mon nouveau Job.

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

avatar

Nombre de messages : 199
Age : 69
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Hé ben   Mar 19 Avr 2016 - 19:13

Bonjour ygeronimi

J'ai vu que tu utilisais des DLLs pour développer.
N'y a-t-il pas possibilité de réaliser avec uniquement des instructions PANORAMIC ?
Déjà que j'ai bien du mal comme ça.
Je vais pas passer aux DLLs.
D'ailleurs, c'est quoi des DLLs.
On les trouve où ?
On les téléchargent, et puis après, on les met dans quel dossier du PC ?

Comme je n'y connais rien, je ne peux pas tester ton fichier et c'est pourtant ça que je voudrais faire (comme avec un tableur)
mais je ne sais pas si GRID convient.

Bonne soirée aux PANORAMICIEN(NE)S
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Mar 19 Avr 2016 - 19:26

GestCompte est faisable en Panoramic pur.
Les objets que j' utilise de la dll de klaus, c' est pour un aspect plus "pro".
Certains fonctions sont bien pratique aussi car elles me dispensent de quelques dizaines de lignes de code.
Laughing

Pour ce qui est d' une dll, c' est un fichier contenant des fonctions.
Mais là, je ne suis pas le plus pédagogue pour t' expliquer clairement la chose et, 
pour débuter, il vaut mieux que tu te familiarises avec le langage Panoramic avant d' utiliser des dlls.

Pour obtenir KGF.dll, c' est tout simple, il suffit d' aller sur le site Klaus et de la télécharger.

Pour savoir où la mettre, c' est un peu comme tu le sens. 
Pour ma part, j' ai créé un dossier dans "C:\" du nom de la dll ce qui me donne "C:\KGF\KGF.dll" comme adresse de celle-ci.

Je vais essayer de faire une version Tout Panoramic, mais je ne promets rien.
J' attendais les évolutions du StringGrid pour me lancer avec KGF.dll.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: GestCompte   Mar 19 Avr 2016 - 20:36

Les fichiers dll ont une extension qui se termine par  .dll.
DLL est l'acronyme de Dynamic Link Library, ce qu'on pourrait traduire par Bibliothèque de liens dynamiques. En règle générale un fichier DLL contient du code ou des ressources qui sont rendus disponibles à d'autres applications, il a tendance à faciliter la vie du développeur.
Lorsqu'une application sollicite un fichier DLL il est d'abord recherché dans le répertoire utilisé par cette application, puis dans les répertoires inclus dans la variable d'environnement de chemin de windows.

Votre système d’exploitation Windows est fourni avec une multitude de fichiers DLL.
Ils sont dans C:\Windows\System32
Afficher ce dossier pour avoir une idée sur  les quelques milliers de fichiers DLL.

Personnellement, j’ai crée un dossier sur le bureau nommé DLL où j’ai mis les DLL (autres que celles du système) telle que l’incontournable KGF.DLL de Klaus.
Et pour que le programme Panoramic (ou autre) sache où chercher la DLL, il suffit d’ajouter le chemin de la DLL à la variable d’environnement Path.
Pour cela j’ai posté la marche à suivre pour le faire,   c’est ici
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

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

MessageSujet: re   Mer 20 Avr 2016 - 0:47

Merci Papydall pour Ouf ca passe.


Voilà un début de gest-compte sans dll :
Code:
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Main
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

hide 0
variables()
constantes()
labels()
init()
gui()
show 0
end

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' DECLARATIONS
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub variables()
  dim no%
  dim EtatLog%
  dim EtatAppli%
  dim An1$
  dim ActiveListe$
end_sub

sub constantes()
  dim_local i%
'  dossier courant
  dim path$      : path$      = dir_current$
  if right$(path$,1)="\" : path$=left$(path$,len(path$)-1) : end_if
  path$=path$+"\"
'  dossiers annexes
  dim DirInf$    : DirInf$    = path$+"inf\"
  dim DirFil$    : DirFil$    = path$+"files\"
  dim DirImg$    : DirImg$    = path$+"img\"
'  fichiers
  dim ListImput$ : ListImput$ = DirInf$+"ListImput.inf"
  dim ListLib$  : ListLib$  = DirInf$+"ListLib.inf"
  dim ListMdp$  : ListMdp$  = DirInf$+"ListMdp.inf"
  dim CptParam$  : CptParam$  = DirInf$+"Param.inf"
'  objets panoramic
'  form principale
  dim mm%      : no%=no%+1 : mm%=no%
  dim sm%(50)  : for i%=1 to 50 : no%=no%+1 : sm%(i%)=no%    : next i%
  dim pan%(5)  : for i%=0 to 5  : no%=no%+1 : pan%(i%)=no%  : next i%
  dim Table%(2) : for i%=1 to 2  : no%=no%+1 : Table%(i%)=no% : next i%
  dim feuil%(12): for i%=1 to 12 : no%=no%+1 : feuil%(i%)=no% : next i%
  dim Gril%(12) : for i%=1 to 12 : no%=no%+1 : Gril%(i%)=no%  : next i%
  dim MemoEtat% : no%=no%+1 : MemoEtat%=no%
'  form a propos
  dim Fen_APP%  : no%=no%+1 : Fen_APP%=no%
  dim AlphAPP%  : no%=no%+1 : AlphAPP%=no%
'  form compte
  dim Fen_CPTE%    : no%=no%+1 : Fen_CPTE%=no%
  dim ContCpte%(4) : for i%=1 to 4 : no%=no%+1 : ContCpte%(i%)=no% : next i%
  dim butValidCpte%: no%=no%+1 : butValidCpte%=no%
'  form opération
  dim Fen_OPE%  : no%=no%+1 : Fen_OPE%=no%
'  form listes
  dim Fen_LIST% : no%=no%+1 : Fen_LIST%=no%
  dim listListe%: no%=no%+1 : listListe%=no%
  dim butListe% : no%=no%+1 : butListe%=no%
end_sub

sub labels()
  label clic,change,dclic,close0,closeFormAnnexe,fin
end_sub

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' INITIALISATIONS
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub init()
  if dir_exists(DirInf$)=0 then dir_make DirInf$
  if dir_exists(DirFil$)=0 then dir_make DirFil$
  if dir_exists(DirImg$)=0 then dir_make DirImg$

  DefineEtatLog()

end_sub

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' INTERFACE UTILISATEUR
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub gui()
  dim_local h%,w%,i%,month$,sep%

  month$="Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre,"

  height 0,700
  width 0,1200
  top 0,(screen_y-height(0))/2
  left 0,(screen_x-width(0))/2
  caption 0,"Gest-Compte Facile"

  main_menu mm%
  sub_menu sm%(1) : parent sm%(1),mm% : caption sm%(1),"Fichiers"
  sub_menu sm%(2) : parent sm%(2),mm% : caption sm%(2),"Listes"
  sub_menu sm%(3) : parent sm%(3),mm% : caption sm%(3),"Affichage"
  sub_menu sm%(4) : parent sm%(4),mm% : caption sm%(4),"Opérations"
  sub_menu sm%(5) : parent sm%(5),mm% : caption sm%(5),"Compte"        : on_click sm%(5),clic
  sub_menu sm%(6) : parent sm%(6),mm% : caption sm%(6),"A Propos..."    : on_click sm%(6),clic
  sub_menu sm%(7) : parent sm%(7),mm% : caption sm%(7),"Aide"

  sub_menu sm%(10) : parent sm%(10),sm%(1) : caption sm%(10),"Ouvrir"
  sub_menu sm%(11) : parent sm%(11),sm%(1) : caption sm%(11),"Fermer"
  sub_menu sm%(12) : parent sm%(12),sm%(1) : caption sm%(12),"-"
  sub_menu sm%(13) : parent sm%(13),sm%(1) : caption sm%(13),"Exporter"
  sub_menu sm%(14) : parent sm%(14),sm%(1) : caption sm%(14),"-"
  sub_menu sm%(15) : parent sm%(15),sm%(1) : caption sm%(15),"Imprimer"
  sub_menu sm%(16) : parent sm%(16),sm%(1) : caption sm%(16),"-"
  sub_menu sm%(17) : parent sm%(17),sm%(1) : caption sm%(17),"Quitter"

  sub_menu sm%(18) : parent sm%(18),sm%(2) : caption sm%(18),"Imputations"      : on_click sm%(18),clic
  sub_menu sm%(19) : parent sm%(19),sm%(2) : caption sm%(19),"Libellés"        : on_click sm%(19),clic
  sub_menu sm%(20) : parent sm%(20),sm%(2) : caption sm%(20),"Modes de paiement": on_click sm%(20),clic

  sub_menu sm%(26) : parent sm%(26),sm%(3) : caption sm%(26),"Comptes"  : on_click sm%(26),clic
  sub_menu sm%(27) : parent sm%(27),sm%(3) : caption sm%(27),"Etat"      : on_click sm%(27),clic
  sub_menu sm%(28) : parent sm%(28),sm%(3) : caption sm%(28),"Graphique" : on_click sm%(28),clic

  sub_menu sm%(21) : parent sm%(21),sm%(4) : caption sm%(21),"Crédit"    : on_click sm%(21),clic
  sub_menu sm%(22) : parent sm%(22),sm%(4) : caption sm%(22),"Débit"    : on_click sm%(22),clic

  sub_menu sm%(23) : parent sm%(23),sm%(10) : caption sm%(23),"N"
  sub_menu sm%(24) : parent sm%(24),sm%(10) : caption sm%(24),"N-1"
  sub_menu sm%(25) : parent sm%(25),sm%(10) : caption sm%(25),"Archive"
 
  ActiveMenu()

'  panel de mesure de l' espace de travail
  panel pan%(0) : full_space pan%(0) : h%=height(pan%(0)) : w%=width(pan%(0)) : hide pan%(0)

'  panel de la toolbar
  panel pan%(1)
  height pan%(1),26
  width pan%(1),w%
  top pan%(1),0
  left pan%(1),0
  color pan%(1),254,211,110

'  panel de visualisation du classeur
  panel pan%(2)
  height pan%(2),h%-52
  width pan%(2),w%
  top pan%(2),26
  left pan%(2),0
  color pan%(2),254,234,185
  hide pan%(2)

'  classeur mensuel
  Container_Tab Table%(1)
  parent Table%(1),pan%(2)
  height Table%(1),height(pan%(2))
  width Table%(1),width(pan%(2))
  top Table%(1),0
  left Table%(1),0

  for i%=1 to 12
      sep%= instr(month$,",")
      Tab feuil%(i%)
      parent feuil%(i%),Table%(1)
      caption feuil%(i%),left$(month$,sep%-1)
      month$=right$(month$,len(month$)-sep%)
     
      Grid Gril%(i%)
      parent Gril%(i%),feuil%(i%)
      height Gril%(i%),height(Table%(1))-28
      width Gril%(i%),width(Table%(1))-10
      top Gril%(i%),0
      left Gril%(i%),0
     
      grid_row_fixed Gril%(i%),1
      grid_column_fixed Gril%(i%),0
      grid_row Gril%(i%),50
      grid_column Gril%(i%),9
     
      grid_one_column_width Gril%(i%),1,50
      grid_write Gril%(i%),1,1,"N°"
      grid_one_column_width Gril%(i%),2,100
      grid_write Gril%(i%),1,2,"Date"
      grid_one_column_width Gril%(i%),3,150
      grid_write Gril%(i%),1,3,"Imputation"
      grid_one_column_width Gril%(i%),4,480
      grid_write Gril%(i%),1,4,"Libellé"
      grid_one_column_width Gril%(i%),5,80
      grid_write Gril%(i%),1,5,"Mode"
      grid_one_column_width Gril%(i%),6,100
      grid_write Gril%(i%),1,6,"Débits"
      grid_one_column_width Gril%(i%),7,100
      grid_write Gril%(i%),1,7,"Crédits"
      grid_one_column_width Gril%(i%),8,40
      grid_write Gril%(i%),1,8,"P"
      grid_one_column_width Gril%(i%),9,40
      grid_write Gril%(i%),1,9,"Doc"
  next i%

'  panel de visualisation des états
  panel pan%(3)
  height pan%(3),h%-52
  width pan%(3),w%
  top pan%(3),26
  left pan%(3),0
  color pan%(3),254,234,185
  hide pan%(3)
 
  memo MemoEtat%
  parent MemoEtat%,pan%(3)
  full_space MemoEtat%
  bar_both MemoEtat%

'  panel de visualisation des graphiques
  panel pan%(4)
  height pan%(4),h%-52
  width pan%(4),w%
  top pan%(4),26
  left pan%(4),0
  color pan%(4),254,234,185
  hide pan%(4)

'  panel de la statutbar
  panel pan%(5)
  height pan%(5),26
  width pan%(5),w%
  top pan%(5),h%-26
  left pan%(5),0
  color pan%(5),254,211,110
end_sub

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub FormLISTE(type%)
  if object_exists(Fen_LIST%)=1
      show Fen_LIST%
  else
      form Fen_LIST%
      height Fen_LIST%,350
      width Fen_LIST%,250
      top Fen_LIST%,(screen_y-height(Fen_LIST%))/2
      left Fen_LIST%,(screen_x-width(Fen_LIST%))/2
      on_close Fen_LIST%,closeFormAnnexe
     
      list listListe%
      parent listListe%,Fen_LIST%
      height listListe%,height(Fen_LIST%)-68
      width listListe%,width(Fen_LIST%)-8
      top listListe%,0
      left listListe%,0
     
      button butListe%
      parent butListe%,Fen_LIST%
      height butListe%,24
      width butListe%,24
      top butListe%,height(Fen_LIST%)-60
      left butListe%,width(Fen_LIST%)-40
      caption butListe%,"+"
      cursor_point butListe%
      on_click butListe%,clic
     
  end_if
 
  to_foreground Fen_LIST%
  inactive 0
      if type%=1
        caption Fen_LIST%,"Imputations"
        ActiveListe$=ListImput$
      else
        if type%=2
            caption Fen_LIST%,"Libellés"
            ActiveListe$=ListLib$
        else
            caption Fen_LIST%,"Modes de paiement"
            ActiveListe$=ListMdp$
        end_if
      end_if
      clear listListe%
      if file_exists(ActiveListe$)=1 : file_load listListe%,ActiveListe$ : end_if
end_sub

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub FormOPE(type%)
  if object_exists(Fen_OPE%)=1
      show Fen_OPE%
  else
      form Fen_OPE%
      height Fen_OPE%,350
      width Fen_OPE%,500
      top Fen_OPE%,(screen_y-height(Fen_OPE%))/2
      left Fen_OPE%,(screen_x-width(Fen_OPE%))/2
      on_close Fen_OPE%,closeFormAnnexe
  end_if
  to_foreground Fen_OPE%
  inactive 0
      if type%=1
        caption Fen_OPE%,"Opération [Crédit]"
      else
        caption Fen_OPE%,"Opération [Débit]"
      end_if
end_sub

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub FormCPTE()
  if object_exists(Fen_CPTE%)=1
      show Fen_CPTE%
  else
      form Fen_CPTE%
      height Fen_CPTE%,500
      width Fen_CPTE%,750
      top Fen_CPTE%,(screen_y-height(Fen_CPTE%))/2
      left Fen_CPTE%,(screen_x-width(Fen_CPTE%))/2
      caption Fen_CPTE%,"Compte"
      on_close Fen_CPTE%,closeFormAnnexe
     
      container ContCpte%(1)
      parent ContCpte%(1),Fen_CPTE%
      height ContCpte%(1),(height(Fen_CPTE%)-60)/2
      width ContCpte%(1),(width(Fen_CPTE%)-20)/2
      top ContCpte%(1),10
      left ContCpte%(1),5
      caption ContCpte%(1)," Banque "
     
      container ContCpte%(2)
      parent ContCpte%(2),Fen_CPTE%
      height ContCpte%(2),(height(Fen_CPTE%)-60)/2
      width ContCpte%(2),(width(Fen_CPTE%)-20)/2
      top ContCpte%(2),10
      left ContCpte%(2),(10+width(ContCpte%(1)))
      caption ContCpte%(2)," Titulaire "
     
      container ContCpte%(3)
      parent ContCpte%(3),Fen_CPTE%
      height ContCpte%(3),(height(Fen_CPTE%)-60)/2
      width ContCpte%(3),width(Fen_CPTE%)-250
      top ContCpte%(3),(15+height(ContCpte%(1)))
      left ContCpte%(3),5
      caption ContCpte%(3)," Compte "
     
      button butValidCpte%
      parent butValidCpte%,Fen_CPTE%
      top butValidCpte%,height(Fen_CPTE%)-70
      left butValidCpte%,width(Fen_CPTE%)-(width(butValidCpte%)+20)
      caption butValidCpte%,"Enregistrer"
      cursor_point butValidCpte%
      on_click butValidCpte%,clic
     
  end_if
  to_foreground Fen_CPTE%
  inactive 0
end_sub

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub FormAPP()
  if object_exists(Fen_APP%)=1
      show Fen_APP%
  else
      form Fen_APP%
      height Fen_APP%,200
      width Fen_APP%,350
      top Fen_APP%,(screen_y-height(Fen_APP%))/2
      left Fen_APP%,(screen_x-width(Fen_APP%))/2
      caption Fen_APP%,"A Propos..."
      on_close Fen_APP%,closeFormAnnexe
     
      alpha AlphAPP%
      parent AlphAPP%,Fen_APP%
      top AlphAPP%,10
      left AlphAPP%,10
      caption AlphAPP%,"Gest-Comptes Facile"+chr$(13)+chr$(13)+"Créé par ygeronimi - 19/04/2016"
     
  end_if
  to_foreground Fen_APP%
  inactive 0
end_sub


' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' MENUS
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

clic:
  if number_click = sm%(5)
      FormCPTE()
      return
  end_if
  if number_click = sm%(6)
      FormAPP()
      return
  end_if
  if number_click = sm%(18)
      FormLISTE(1)
      return
  end_if
  if number_click = sm%(19)
      FormLISTE(2)
      return
  end_if
  if number_click = sm%(20)
      FormLISTE(3)
      return
  end_if
  if number_click = sm%(21)
      FormOPE(1)
      return
  end_if
  if number_click = sm%(22)
      FormOPE(0)
      return
  end_if
  if number_click = sm%(26)
      AffichagePanel(2)
      return
  end_if
  if number_click = sm%(27)
      AffichagePanel(3)
      return
  end_if
  if number_click = sm%(28)
      AffichagePanel(4)
      return
  end_if
 
  if object_exists(Fen_LIST%)=1
      if number_click = butListe%
        AddToListe()
        return
      end_if
  end_if
 
  if object_exists(Fen_CPTE%)=1
      if number_click = butValidCpte%
        SaveInfoCompte()
        ActivePrincipale()
        DefineEtatLog()
        ActiveMenu()
        hide Fen_CPTE%
        return
      end_if
  end_if
return

change:
return

dclic:
return

close0:
return

closeFormAnnexe:
  ActivePrincipale()
return

fin:
return

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' FONCTIONS
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub ActiveMenu()
  dim_local i%
  if EtatLog%=0
      inactive sm%(3)
      inactive sm%(4)
      for i%=10 to 16
        inactive sm%(i%)
      next i%
  else
      if EtatLog%=1
        inactive sm%(3)
        inactive sm%(4)
        inactive sm%(24)
        inactive sm%(25)
        for i%=11 to 16
            inactive sm%(i%)
        next i%
      else
        inactive sm%(3)
        inactive sm%(4)
        for i%=11 to 16
            inactive sm%(i%)
        next i%
      end_if
  end_if
end_sub

sub AffichagePanel(N%)
  dim_local i%
  for i%=2 to 4
      hide pan%(i%)
      mark_off sm%(i%+24)
  next i%
  show pan%(N%)
  Mark_on sm%(N%+24)
end_sub

sub ActivePrincipale()
  Active 0
end_sub

sub AddToListe()
  if message_input("Ajouter","Nom : ","")=1
      if message_text$<>""
        item_add listListe%,message_text$
        sort_on listListe%
        file_save listListe%,ActiveListe$
      end_if
  end_if
end_sub

sub DefineEtatLog()
  dim_local annee%
  annee%=val(right$(date$,4))
  if file_exists(CptParam$)=0
      EtatLog%=0
  else
      An1$=DirFil$+str$(annee%-1)+"\"
      if dir_exists(An1$)=0
        EtatLog%=1
      else
        EtatLog%=2
      end_if
  end_if
end_sub

sub SaveInfoCompte()
end_sub

on est à plus de 500 lignes et rien n' est encore fait... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: GestCompte   Mer 20 Avr 2016 - 8:43

Bonjour à tous,

@Ygeronimi,

j'ignore si tu souhaites aller au bout de cette version en pur Panoramic. Si c'est le cas, il faut que tu vois l'éternel problème des dimensions (bord et bandeau) pour W10.



Voici une procédure à appeler en début de programme qui te retourne bord% et bandeau%, à toi d'en faire ce que tu veux.

Code:

Retourne_Dimension_Bandeau_Et_Bord() :' retourne bandeau%,bord%

message "Hauteur du bandeau (bandeau%) = "+str$(bandeau%)+" | largeur d'un bord (bord%) = "+str$(bord%)
END
rem ============================================================================
SUB Retourne_Dimension_Bandeau_Et_Bord()
    ' controle de la position de la procédure dans le programme
    IF NUMBER_OBJECTS>0
      message "La SUB 'Retourne_Dimension_Bandeau_Et_Bord' doit être placée avant la création du premier objet !"
      terminate
    END_IF
    ' création des VARIABLES GLOBALES
    IF VARIABLE("bandeau%")=0 then DIM bandeau%
    IF VARIABLE("bord%")=0 then DIM bord%
    ' Calcul de bandeau% et bord%
    dim_local w0%,h0%,w1%,h1%,w2%,h2%
    w0%=WIDTH(0) : h0%=HEIGHT(0)
    picture 1 : full_space 1 : w1%=WIDTH(1) : h1%=HEIGHT(1)
    w2%=w0%-w1% : h2%=h0%-h1% : bandeau%=h2%-(w2%/2) : bord%=w2%/2
    ' Suppression du Picture devenu inutile
    delete 1
END_SUB


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

avatar

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

MessageSujet: re   Mer 20 Avr 2016 - 10:13

Je suis sous W10 et je n' ai pas ce souci.
scratch


ceci dit, j' ai fait çà un peu vite et je vais prendre ce problème en considération.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: GestCompte   

Revenir en haut Aller en bas
 
GestCompte
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 3 sur 9Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7, 8, 9  Suivant

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