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
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 14 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 14 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 14 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 14 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 14 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 14 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 14 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 14 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 14 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 14 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 14 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 14 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 14 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 14 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 14 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 KGF_dll - nouvelles versions

Aller en bas 
+8
JL35
Marc
papydall
Jicehel
Yannick
pascal10000
Minibug
Klaus
12 participants
Aller à la page : Précédent  1 ... 8 ... 13, 14, 15 ... 27 ... 40  Suivant
AuteurMessage
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyVen 18 Mar 2016 - 13:59

Klaus, j' ai un souci.

Le message sur lequel je me suis excité cette nuit venait après avoir voulu modifier un enregistrement ISAM
à la ré-ouverture de la base.

J' ai repris cette fonction en procédant ainsi :

res% = dll_call1("IsamFileIsOpen",Isam_ID%) 
pour vérifier que la base est ouverte

ISAM_record$ = string$(ISAM_RecLen%," ")
ISAM_NbRec%  = dll_call4("ReadIsamRecordByKey",Isam_ID%,adr(ISAM_record$),1,adr(key$)) 
pour récupérer le numéro d' enregistrement et l' enregistrement

s$   = trim$(grid_read$(Gi%,Ri%,7))
sf$  = " "
res% = dll_call6("FillIsamField",Isam_ID%,8,0,adr(ISAM_Record$),adr(s$),adr(sf$))
pour modifier le champ 8

res% = dll_call3("UpdateIsamRecord",Isam_ID%,adr(ISAM_Record$),ISAM_NbRec%)
pour enregistrer la modif de l' enregistrement

sauf que, NbRec% se trouve avec une valeur de 0 ce qui me fait planter la mise à jour de l' enregistrement.
Pour ne pas compliquer les choses, ma base n' a qu' un seul enregistrement.
Ai je loupé quelque chose dans la bible ?...
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyVen 18 Mar 2016 - 14:45

Très intéressant le HistogrammeOptions, je vais regarder ça de près, mais ça me plait bien.

Dans la doc, le décalage a disparu dans la liste alphabétique, donc ça va.
Juste pour chercher la petite bête, dans la doc de HistogrammeOptions:
KGF_dll - nouvelles versions - Page 14 Histo10
- le type 7 doit être LINE (comme dans ton exemple ci-dessus), et non XLINE
... quoique... il y a (pour moi) une ambigüité entre LINE et XLINE
- le 'du histogramme' des lignes suivantes n'est pas très joli... traduction automatique ? je verrais mieux 'de l'histogramme'
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyVen 18 Mar 2016 - 18:49

@Ygeronimi:
Citation :
ISAM_record$ = string$(ISAM_RecLen%," ")
ISAM_NbRec%  = dll_call4("ReadIsamRecordByKey",Isam_ID%,adr(ISAM_record$),1,adr(key$))
pour récupérer le numéro d' enregistrement et l' enregistrement
Quel est le contenu de la variable key$ ? Elle doit contenir la clé de l'enregistrement ciblé.
As-tu essayé ReadNextIsamRecord, juste après l'ouverture ? Puisque tu n'as qu'un seul enregistrement, tu devrais tomber dessus.

@JL35:
Merci ! Je prends notre de tes remarques sur la doc et je vais effectuer les corrections nécessaires.
PS:
Non, ce n'est pas un traducteur automatique. Cette doc a poussé entièrement dans mon jardin, et je n'ai apparemment pas arraché toutes les mauvaises herbes !

EDIT

La doc est corrigée. Merci à JL35 !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyVen 18 Mar 2016 - 20:35

Merci à toi surtout de bien cultiver ton jardin, avec tout ce que tu y fais pousser ! moi je fais la partie facile... (la critique est aisée, mais l'art est difficile)
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyVen 18 Mar 2016 - 21:58

KGF.dll V6.15 du 18/03/2016

Nouveautés:
- HistogrammeOptions: ajout code 5: soumettre un autre fichier de paramètres

Modules modifiés:
KGF.dll
KGF.dll


La doc et les sources sont à jour.

Ce nouveau code permet de soumettre un nouveau fichier de paramètres, contenant des définitions modifiées ou totalement différentes. Ce programme de démo ci-après génère 3 fichiers de paramètres: x_2_series.txt, x_2_series.txt et x_3_series.txt. L'histogramm s'affiche au démarrage avec x_1_series.txt, donc avec une seule série. Un bouton "Données" permet de choisir un autre fichier de paramètres (utilisez un des 3 fichiers générés, ou un fichier créé par vos soins), pour voir le résultat:
Code:
label changetype, copierimage, sauverbmp, sauverjpg, changerdonnees
dim res%, histo$, hnd%, fic$

width 0,900 : height 0,800
panel 1 : top 1,10 : left 1,10 : width 1,640 : height 1,450 : color 1,127,127,255
picture 2 : top 2,480 : left 2,10 : width 2,300 : height 2,200 : stretch_on 2
  color 2,255,127,127

combo 10 : top 10,10 : left 10,700 : on_click 10,changetype
  item_add 10,"BAR"
  item_add 10,"PIE"
  item_add 10,"SCATTER"
  item_add 10,"AREA"
  item_add 10,"HILOW"
  item_add 10,"MARK"
  item_add 10,"SPLINE"
  item_add 10,"XLINE"
  item_add 10,"PARETO"
  text 10,"LINE"
button 11 : top 11,40 : left 11,700 : caption 11,"Copier" : on_click 11,copierimage
button 12 : top 12,70 : left 12,700 : caption 12,"BMP" : on_click 12,sauverbmp
button 13 : top 13,100 : left 13,700 : caption 13,"JPG" : on_click 13,sauverjpg
button 14 : top 14,130 : left 14,700 : caption 14,"Données" : on_click 14,changerdonnees

open_dialog 99 : filter 99,"Fichiers TXT|*.txt"

histo$ = "x_3_series.txt"
CreerSerie(histo$,3)
histo$ = "x_2_series.txt"
CreerSerie(histo$,2)
histo$ = "x_1_series.txt"
CreerSerie(histo$,1)

dll_on "KGF.dll"
hnd% = dll_call6("HistogrammeEX",adr(histo$),1,1,1,1,handle(1)) : ' créer le histogramme

end

changetype:
  res% = dll_call2("HistogrammeOptions",1,item_index(10)-1)   : ' changer le format du histogramme
  return

copierimage:
  res% = dll_call2("HistogrammeOptions",2,0)   : ' copier l'image du histogramme
  clipboard_paste 2
  return
  
sauverbmp:
  fic$ = "Histogramme.bmp"
  res% = dll_call2("HistogrammeOptions",3,adr(fic$))   : ' copier dans un fichier BMP
  return

sauverjpg:
  fic$ = "Histogramme.jpg"
  res% = dll_call2("HistogrammeOptions",4,adr(fic$))   : ' copier dans un fichier JMP
  return
  
changerdonnees:
  fic$ = file_name$(99)
  if fic$="_" then return
  res% = dll_call2("HistogrammeOptions",5,adr(fic$))   : ' copier dans un fichier JMP
  return

sub CreerSerie(fic$,ns%)
  file_open_write 1,fic$
  file_writeln 1,"#Type=LINE"
  file_writeln 1,"#Bord droit=17"
  file_writeln 1,"#Bord bas=38"
  file_writeln 1,"#Largeur fenêtre=620"
  file_writeln 1,"#Hauteur fenêtre=430"
  file_writeln 1,"#Style=3D"
  file_writeln 1,"#Grille=H"
  file_writeln 1,"#Légendes"
  file_writeln 1,"#Largeur=4"
  file_writeln 1,"#Séries="+str$(ns%)
  file_writeln 1,"#Valeurs=4"
  file_writeln 1,"#Données=1"
  file_writeln 1,"100"
  file_writeln 1,"300"
  file_writeln 1,"200"
  file_writeln 1,"150"
  if ns%>1
    file_writeln 1,"#Données=2"
    file_writeln 1,"300"
    file_writeln 1,"200"
    file_writeln 1,"300"
    file_writeln 1,"200"
  end_if
  if ns%>2
    file_writeln 1,"#Données=3"
    file_writeln 1,"300"
    file_writeln 1,"200"
    file_writeln 1,"500"
    file_writeln 1,"350"
  end_if
  file_writeln 1,"#Minimum Y=0"
  file_writeln 1,"#Maximum Y=1000"
  file_writeln 1,"#Ecart Y=100"
  file_writeln 1,"#Légende Y=0"
  file_writeln 1,"#Titres"
  file_writeln 1,"Haut=Evolution des consommations"
  file_writeln 1,"Gauche=Conso. en kWh"
  file_writeln 1,"Bas=Relevés"
  file_writeln 1,"Droite=Divers"
  file_writeln 1,"#Légendes séries"
                file_writeln 1,"Gaz"
  if ns%>1 then file_writeln 1,"Electricité hc"
  if ns%>2 then file_writeln 1,"Electricité hp"
  file_writeln 1,"#Légendes valeurs"
  file_writeln 1,"1"
  file_writeln 1,"2"
  file_writeln 1,"3"
  file_writeln 1,"4"
  file_writeln 1,"#Fin"
  file_close 1
end_sub


Dernière édition par Klaus le Sam 19 Mar 2016 - 1:25, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyVen 18 Mar 2016 - 22:28

Bravo Klaus, encore un défi relevé.

Bon, il ne me reste plus qu' à me mettre à jour et trouver un autre défi... Laughing

Pour mon programme, j' ai tout repris depuis le début.
C' est frustrant mais quand on ne voit ce qui cloche... Wink
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptySam 19 Mar 2016 - 2:00

KGF.dll V6.16 du 19/03/2016

Nouveautés:
- HistogrammeOptions: ajout code 6: imprimer l'histogramme avec sélection d'imprimante, en mode paysage

Modules modifiés:
KGF.dll
KGF.dll


La doc et les sources sont à jour.

Et voici le programme de démo avec un bouton "Imprimer":
Code:
label changetype, copierimage, sauverbmp, sauverjpg, changerdonnees, imprimer
dim res%, histo$, hnd%, fic$

width 0,900 : height 0,800
panel 1 : top 1,10 : left 1,10 : width 1,640 : height 1,450 : color 1,127,127,255
picture 2 : top 2,480 : left 2,10 : width 2,300 : height 2,200 : stretch_on 2
  color 2,255,127,127

combo 10 : top 10,10 : left 10,700 : on_click 10,changetype
  item_add 10,"BAR"
  item_add 10,"PIE"
  item_add 10,"SCATTER"
  item_add 10,"AREA"
  item_add 10,"HILOW"
  item_add 10,"MARK"
  item_add 10,"SPLINE"
  item_add 10,"XLINE"
  item_add 10,"PARETO"
  text 10,"LINE"
button 11 : top 11,40 : left 11,700 : caption 11,"Copier" : on_click 11,copierimage
button 12 : top 12,70 : left 12,700 : caption 12,"BMP" : on_click 12,sauverbmp
button 13 : top 13,100 : left 13,700 : caption 13,"JPG" : on_click 13,sauverjpg
button 14 : top 14,130 : left 14,700 : caption 14,"Données" : on_click 14,changerdonnees
button 15 : top 15,160 : left 15,700 : caption 15,"Imprimer" : on_click 15,imprimer

open_dialog 99 : filter 99,"Fichiers TXT|*.txt"

histo$ = "x_3_series.txt"
CreerSerie(histo$,3)
histo$ = "x_2_series.txt"
CreerSerie(histo$,2)
histo$ = "x_1_series.txt"
CreerSerie(histo$,1)

dll_on "KGF.dll"
hnd% = dll_call6("HistogrammeEX",adr(histo$),1,1,1,1,handle(1)) : ' créer le histogramme

end

changetype:
  res% = dll_call2("HistogrammeOptions",1,item_index(10)-1)   : ' changer le format du histogramme
  return

copierimage:
  res% = dll_call2("HistogrammeOptions",2,0)   : ' copier l'image du histogramme
  clipboard_paste 2
  return
  
sauverbmp:
  fic$ = "Histogramme.bmp"
  res% = dll_call2("HistogrammeOptions",3,adr(fic$))   : ' copier dans un fichier BMP
  return

sauverjpg:
  fic$ = "Histogramme.jpg"
  res% = dll_call2("HistogrammeOptions",4,adr(fic$))   : ' copier dans un fichier JMP
  return
  
changerdonnees:
  fic$ = file_name$(99)
  if fic$="_" then return
  res% = dll_call2("HistogrammeOptions",5,adr(fic$))   : ' copier dans un fichier JMP
  return

imprimer:
  res% = dll_call2("HistogrammeOptions",6,0)           : ' imprimer
  return

sub CreerSerie(fic$,ns%)
  file_open_write 1,fic$
  file_writeln 1,"#Type=LINE"
  file_writeln 1,"#Bord droit=17"
  file_writeln 1,"#Bord bas=38"
  file_writeln 1,"#Largeur fenêtre=620"
  file_writeln 1,"#Hauteur fenêtre=430"
  file_writeln 1,"#Style=3D"
  file_writeln 1,"#Grille=H"
  file_writeln 1,"#Légendes"
  file_writeln 1,"#Largeur=4"
  file_writeln 1,"#Séries="+str$(ns%)
  file_writeln 1,"#Valeurs=4"
  file_writeln 1,"#Données=1"
  file_writeln 1,"100"
  file_writeln 1,"300"
  file_writeln 1,"200"
  file_writeln 1,"150"
  if ns%>1
    file_writeln 1,"#Données=2"
    file_writeln 1,"300"
    file_writeln 1,"200"
    file_writeln 1,"300"
    file_writeln 1,"200"
  end_if
  if ns%>2
    file_writeln 1,"#Données=3"
    file_writeln 1,"300"
    file_writeln 1,"200"
    file_writeln 1,"500"
    file_writeln 1,"350"
  end_if
  file_writeln 1,"#Minimum Y=0"
  file_writeln 1,"#Maximum Y=1000"
  file_writeln 1,"#Ecart Y=100"
  file_writeln 1,"#Légende Y=0"
  file_writeln 1,"#Titres"
  file_writeln 1,"Haut=Evolution des consommations"
  file_writeln 1,"Gauche=Conso. en kWh"
  file_writeln 1,"Bas=Relevés"
  file_writeln 1,"Droite=Divers"
  file_writeln 1,"#Légendes séries"
                file_writeln 1,"Gaz"
  if ns%>1 then file_writeln 1,"Electricité hc"
  if ns%>2 then file_writeln 1,"Electricité hp"
  file_writeln 1,"#Légendes valeurs"
  file_writeln 1,"1"
  file_writeln 1,"2"
  file_writeln 1,"3"
  file_writeln 1,"4"
  file_writeln 1,"#Fin"
  file_close 1
end_sub

EDIT

Pour l'impression, il faut préciser les points suivants:
- le nouveau code 6 de HistogrammeOptions offre une possibilité simple et rapide de "tirer" une copie du graphe sur une feuille de papier
- le dialogue de sélection d'imprimante est ouvert avant impression
- l'impression ne se fait que si une imprimante a été sélectionnée
- l'image du graphe est imprimée sur toute la page, en mode paysage
- si une impression plus sophistiquée est nécessaire (choix de l'emplacement et de la taille sur papier, ajout de textes et autres éléments, ...), il faut utiliser les fonctions de gestion d'impression de KGF.dll, et imprimer le graphe à partir d'un fichier BMP ou JPG (créés par HistogrammeFonction codes 3 ou 4)
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyDim 20 Mar 2016 - 17:09

Klaus, verrais tu quelque chose de pas catho dans cette sub :

Code:
' ------------------------------------------------------------------------------
' MODIFICATION D' UN ENREGISTREMENT
' ------------------------------------------------------------------------------

sub REFRESH_ENRGT_ISAM(cle$,Chp%,NewVal$)
   dim_local res%,m%,s$,sf$,enrgt%,key$,align%,i%
   s$   = NewVal$
   if chp%=6 or chp%=7
      align% = 1
      sf$    = "*"
      s$     = right$(string$(10,"*")+s$,10)
   else
      align% = 0
      sf$    = " "
      if chp%=8 or chp%=9
         s$   = left$(s$+string$(3," "),3)
      else
         if chp%=5
            s$   = left$(s$+string$(4," "),4)
         else
            s$   = left$(s$+string$(255," "),255)
         end_if
      end_if
   end_if
' -> vérification de l' ouverture de la base
   res% = dll_call1("IsamFileIsOpen",Isam_ID%)
   if res%<0
      m%=message_warning_ok("Le fichier ISAM est fermé !")
      exit_sub
   end_if
' -> récupération du numéro d' enregistrement et de lui même
   ISAM_record$ = string$(ISAM_RecLen%," ")
   key$ = cle$
   enrgt%  = dll_call4("ReadIsamRecordByKey",Isam_ID%,adr(ISAM_record$),1,adr(key$))
' -> rafraichissement du champ
   res% = dll_call6("FillIsamField",Isam_ID%,chp%,align%,adr(ISAM_Record$),adr(s$),adr(sf$))
' -> enregistrement dans la base
   res% = dll_call3("UpdateIsamRecord",Isam_ID%,adr(ISAM_Record$),enrgt%)
end_sub

lors de la création, le champ 1 est le numéro d' enregistrement.
la clé 1 est :1,1,1
Donc clé 1 sur champ 1 sans doublons

enrgt%  = dll_call4("ReadIsamRecordByKey",Isam_ID%,adr(ISAM_record$),1,adr(key$))
doit me chercher la valeur de key$ dans les champs 1 et si key$="1" il doit me donner  enrgt%=1
or il me donne 0

Bon, je fais un zip sur mon webdav (GestCompte.zip) et si tu as 5 minutes... Laughing


Dernière édition par ygeronimi le Lun 21 Mar 2016 - 12:25, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyDim 20 Mar 2016 - 18:38

Je vais regarder ça sur ton WebDav, car le code que tu viens de publier est un bizarre mélange - probablement une erreur de manipulation lors du copier/coller. Je verrai ça ce soir ou demain, directement sur le WebDav.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyLun 21 Mar 2016 - 12:24

Embarassed Effectivement, j' ai collé deux fois la même sub et l' une dans l' autre.
Je vais corriger.
Revenir en haut Aller en bas
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyLun 21 Mar 2016 - 19:57

Ca y est ! j' ai la bonne formule !

...en tout cas, une qui fonctionne :
Code:
' ------------------------------------------------------------------------------
' MODIFICATION D' UN ENREGISTREMENT
'(intervient lors d' un clic sur une cellule du grid est appelée par :
' POINTAGE_ENRGT(grd%,lng%) ligne 375 de cette page)
' ------------------------------------------------------------------------------

sub REFRESH_ENRGT_ISAM(cle$,Chp%,NewVal$)
  dim_local res%,m%,s$,sf$,enrgt%,key$,align%,i%
  s$  = NewVal$
  if chp%=6 or chp%=7
      align% = 1
      sf$    = "*"
      s$    = right$(string$(10,"*")+s$,10)
  else
      align% = 0
      sf$    = " "
      if chp%=8 or chp%=9
        s$  = left$(s$+string$(3," "),3)
      else
        if chp%=5
            s$  = left$(s$+string$(4," "),4)
        else
            s$  = left$(s$+string$(255," "),255)
        end_if
      end_if
  end_if

' -> vérification de l' ouverture de la base
  res% = dll_call1("IsamFileIsOpen",Isam_ID%)
  if res%<0
      m%=message_warning_ok("Le fichier ISAM est fermé !")
      exit_sub
  end_if
' -> récupération du numéro d' enregistrement et de lui même
  ISAM_record$ = string$(ISAM_RecLen%," ")
  key$ = right$(string$(5,"*")+cle$,5)
  enrgt% = dll_call4("ReadIsamRecordByKey",Isam_ID%,adr(ISAM_record$),1,adr(key$))

'  TEST
'  res% = dll_call0("GetIsamOk")
'  if res% = 0
'      message "Enregistrement n°: "+str$(enrgt%)+chr$(13)+"Valeur du champ : "+trim$(key$)
'  end_if

' -> rafraichissement du champ
  res% = dll_call6("FillIsamField",Isam_ID%,chp%,align%,adr(ISAM_Record$),adr(s$),adr(sf$))
' -> enregistrement dans la base
  res% = dll_call3("UpdateIsamRecord",Isam_ID%,adr(ISAM_Record$),enrgt%)
end_sub
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyLun 21 Mar 2016 - 20:51

Bravo ! Je pense que c'est ce que je supposais: c'est le contenu de la variable représentant la clé qui posait problème, n'est-ce pas ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 3:17

En fait il fallait que je formate cle$

cle$ = right$(string$(5,"*")+cle$,5)  => "****1"
au lieu de cle$ => "1"

Maintenant j' ai d' autres souci d' initialisation de mes grids

00001
00002
00003
00002
00003
00002
00003
scratch

Et j' ai toujours une erreur E/S 32.
pour l' histogramme

- je crée un fichier script en ouverture avec mes soldes
- j' enregistre une opération
- je recréé un fichier script
- je le recharge dans l' histogramme par la fonction 5
et là, bingo ! Erreur E/S 32.

Un autre souci, un de plus  Twisted Evil

voilà mon script :
script histogramme:

et voilà le résultat :
KGF_dll - nouvelles versions - Page 14 Histog10

Il me manque quelques éléments, non ?... geek
Revenir en haut Aller en bas
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 3:37

Peut être un début d' explication pour l' erreur E/S 32.

Cela pourrait venir du fait que je ré-écrive sur un fichier qui n' a pas été libéré.
A savoir qui ne le libère pas ?
Panoramic ou KGF ?

Libérez le fichier ! Libérez le fichier !...
...bon, aller, je vais prendre mes p'tite pilules rose et mon entonnoir...
rendeer geek jocolor Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 10:37

Au premier regard, je ne vois rien d'anormal. Je vais essayer chez moi.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 11:30

J'ai trouvé ! Tu as encodé ton fichier en UTF-8, et les caractères accentués prennent en fait deux octets, ce qui décale tout. Utilise Notepad++, choisis l'encodage ANSI et remplace tous les caractères devenus illisibles par le caractère accentué correct. Chez moi, ça donne ceci:
Spoiler:
En apparence, c'est identique, mais seulement en apparence.

Je vais faire une version de KGF.dll qui signale le numéro de ligne en erreur...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 11:49

KGF.dll V6.17 du 21/03/2016

Nouveautés:
- Histogramme et HistogrammeEX: affichage d'un diagnostic d'erreur en anomalie de paramétrage

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sont à jour.

En cas d'erreur, le programme affiche maintenant:
- le nom (et chemin si présent) du fichier de paramétrage
- le numéro de la dernière ligne lue
- le contenu de la dernière ligne lue
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 11:52

Perso, je n' ai rien encodé, c' est Panoramic par "Open_file_write" 
qui créé le fichier script et encode en UTF-8. 
Laughing

Maintenant, il me faut trouver le moyen de créer un fichier script en ANSI ?
scratch
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 12:00

Regarde mon programme de démo:
Code:
label changetype, copierimage, sauverbmp, sauverjpg, changerdonnees, imprimer
dim res%, histo$, hnd%, fic$

width 0,900 : height 0,800
panel 1 : top 1,10 : left 1,10 : width 1,640 : height 1,450 : color 1,127,127,255
picture 2 : top 2,480 : left 2,10 : width 2,300 : height 2,200 : stretch_on 2
  color 2,255,127,127

combo 10 : top 10,10 : left 10,700 : on_click 10,changetype
  item_add 10,"BAR"
  item_add 10,"PIE"
  item_add 10,"SCATTER"
  item_add 10,"AREA"
  item_add 10,"HILOW"
  item_add 10,"MARK"
  item_add 10,"SPLINE"
  item_add 10,"XLINE"
  item_add 10,"PARETO"
  text 10,"LINE"
button 11 : top 11,40 : left 11,700 : caption 11,"Copier" : on_click 11,copierimage
button 12 : top 12,70 : left 12,700 : caption 12,"BMP" : on_click 12,sauverbmp
button 13 : top 13,100 : left 13,700 : caption 13,"JPG" : on_click 13,sauverjpg
button 14 : top 14,130 : left 14,700 : caption 14,"Données" : on_click 14,changerdonnees
button 15 : top 15,160 : left 15,700 : caption 15,"Imprimer" : on_click 15,imprimer

open_dialog 99 : filter 99,"Fichiers TXT|*.txt"

histo$ = "x_3_series.txt"
CreerSerie(histo$,3)
histo$ = "x_2_series.txt"
CreerSerie(histo$,2)
histo$ = "x_1_series.txt"
CreerSerie(histo$,1)

dll_on "KGF.dll"
hnd% = dll_call6("HistogrammeEX",adr(histo$),1,1,1,1,handle(1)) : ' créer le histogramme

end

changetype:
  res% = dll_call2("HistogrammeOptions",1,item_index(10)-1)  : ' changer le format du histogramme
  return

copierimage:
  res% = dll_call2("HistogrammeOptions",2,0)  : ' copier l'image du histogramme
  clipboard_paste 2
  return
 
sauverbmp:
  fic$ = "Histogramme.bmp"
  res% = dll_call2("HistogrammeOptions",3,adr(fic$))  : ' copier dans un fichier BMP
  return

sauverjpg:
  fic$ = "Histogramme.jpg"
  res% = dll_call2("HistogrammeOptions",4,adr(fic$))  : ' copier dans un fichier JMP
  return
 
changerdonnees:
  fic$ = file_name$(99)
  if fic$="_" then return
  res% = dll_call2("HistogrammeOptions",5,adr(fic$))  : ' copier dans un fichier JMP
  return

imprimer:
  res% = dll_call2("HistogrammeOptions",6,0)          : ' imprimer
  return

sub CreerSerie(fic$,ns%)
  file_open_write 1,fic$
  file_writeln 1,"#Type=LINE"
  file_writeln 1,"#Bord droit=17"
  file_writeln 1,"#Bord bas=38"
  file_writeln 1,"#Largeur fenêtre=620"
  file_writeln 1,"#Hauteur fenêtre=430"
  file_writeln 1,"#Style=3D"
  file_writeln 1,"#Grille=H"
  file_writeln 1,"#Légendes"
  file_writeln 1,"#Largeur=4"
  file_writeln 1,"#Séries="+str$(ns%)
  file_writeln 1,"#Valeurs=4"
  file_writeln 1,"#Données=1"
  file_writeln 1,"100"
  file_writeln 1,"300"
  file_writeln 1,"200"
  file_writeln 1,"150"
  if ns%>1
    file_writeln 1,"#Données=2"
    file_writeln 1,"300"
    file_writeln 1,"200"
    file_writeln 1,"300"
    file_writeln 1,"200"
  end_if
  if ns%>2
    file_writeln 1,"#Données=3"
    file_writeln 1,"300"
    file_writeln 1,"200"
    file_writeln 1,"500"
    file_writeln 1,"350"
  end_if
  file_writeln 1,"#Minimum Y=0"
  file_writeln 1,"#Maximum Y=1000"
  file_writeln 1,"#Ecart Y=100"
  file_writeln 1,"#Légende Y=0"
  file_writeln 1,"#Titres"
  file_writeln 1,"Haut=Evolution des consommations"
  file_writeln 1,"Gauche=Conso. en kWh"
  file_writeln 1,"Bas=Relevés"
  file_writeln 1,"Droite=Divers"
  file_writeln 1,"#Légendes séries"
                file_writeln 1,"Gaz"
  if ns%>1 then file_writeln 1,"Electricité hc"
  if ns%>2 then file_writeln 1,"Electricité hp"
  file_writeln 1,"#Légendes valeurs"
  file_writeln 1,"1"
  file_writeln 1,"2"
  file_writeln 1,"3"
  file_writeln 1,"4"
  file_writeln 1,"#Fin"
  file_close 1
end_sub
Il crée un fichier dans le bon format. Panoramic ne sait travailler qu'en ANSI, pas en UTF8. Donc, tout est ANSI...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 12:05

Ce doit être une transformation du forum.
Chez moi, le fichier script est en ANSI.

Je vais refaire le zip de mon webdav avec les dernières avancées.


edit : tu as un fichier kgf.chm (18/12/2015) qui traine dans le dossier racine DLL et un KGF.dll (19/03/2016) dans le dossier doc_chm.
Wink

edit 2 : le zip sur mon webdav est à jour.
Revenir en haut Aller en bas
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 12:24

Je pense que c' est  file_open_write N.... file_close N qui créé l' erreur E/S 32.
Revenir en haut Aller en bas
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 15:28

Je viens de faire un nouveau test et là,
je suis quasiment sûr que cela vient de la dll.

Mon programme créé un histogramme avec les valeurs connus
si je fais une opération (enregistrement d' une dépense ou d' une recette )
je recréé un fichier script avec les nouvelles valeurs
je le passe via la fonction 5 à l' histogramme.

j' ai juste désactivé l' histogramme pour voir si, sans lui, le fichier s' enregistrait.
Ben oui ! il le fait.

Donc, l' histogramme ne libère pas le fichier script après la création du graphique.
ce qui provoque avec file_open_write N une erreur E/S 32.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 15:50

J'ai répondu sur le fil de discussion "A l'aide".
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 16:04

KGF.dll V6.18 du 22/03/2016

Nouveautés:
- Histogramme et HistogrammeEX: fermeture systématique du fichier avant de terminer

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sont à jour.

Mais attention: vérifier systématiquement le code retour de ces fonctions !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 14 EmptyMar 22 Mar 2016 - 19:07

Bon, ben voilà un couac de moins...
...mais il m' en reste d' autres à résoudre.
Laughing
Revenir en haut Aller en bas
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 14 sur 40Aller à la page : Précédent  1 ... 8 ... 13, 14, 15 ... 27 ... 40  Suivant
 Sujets similaires
-
» Nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: