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
» PANORAMIC V 1
Consommation gaz électricité Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
Consommation gaz électricité Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Consommation gaz électricité Emptypar Marc Hier à 12:14

» @Jack
Consommation gaz électricité Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Consommation gaz électricité Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Consommation gaz électricité Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Consommation gaz électricité Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Consommation gaz électricité Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Consommation gaz électricité Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Consommation gaz électricité Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Consommation gaz électricité Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Consommation gaz électricité Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Consommation gaz électricité Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Consommation gaz électricité Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Consommation gaz électricité Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Réassort du coffret Pokémon 151 Électhor-ex : où l’acheter ?
Voir le deal

 

 Consommation gaz électricité

Aller en bas 
AuteurMessage
leclode




Nombre de messages : 18
Date d'inscription : 01/11/2022

Consommation gaz électricité Empty
MessageSujet: Consommation gaz électricité   Consommation gaz électricité EmptyMer 17 Avr 2024 - 11:07

Bonjour tout le monde.
Grace à l'aide de plusieurs personnes qui m'ont aidées, j'ai pu finir la première partie de mon utilitaire perso. Consommation gaz électricité 1f60a
Je me doute que vu votre niveau, ça va vous paraitre insignifiant. Mais cela prouve que tout le monde peut y arriver avec Panoramic, sans être du métier.

Calcule automatiquement la consommation mensuelle après avoir rempli la case kWh/jour.
Il suffit soit:
cliquer avec la souris dans la case en dessous de kWh/mois
Appuyer deux fois sur entrée après avoir rempli la case kWh/jour.

les jours sont automatiquement remis dans l'ordre croissant avec recalcule quand ils ne se suivent pas.
Impossibilité d'avoir deux dates identiques.
Jour maxi par rapport aux mois, bissextile ou pas.

La consommation mensuelle peut être modifiée. Il suffit de mettre celle donnée par le  fournisseur.
Le calcul ajoutera ou retirera le complément à la consommation journalière pour avoir la bonne  consommation mensuelle.
(Souvent des problèmes avec GRDF. Changement de consommation mensuelle en cours de mois ou en fin)

Les données ne peuvent être que numériques, point, suppression, touches de déplacement gauche, droite et entrée.

fichier mensuel sauvegardé après validation.
Code:
DIM Jour%, Mois%,  An%, Err%, Test%, MaxiJ%, VT, B, L, Tou%, Mini, Maxi, Err, J1%, NbJ%
DIM NomFichier$, An$, Mois$, Ligne$, Vari$, VT$, Jour$, Jour2$, A$, Mini$, Maxi$  
LABEL action, action2, centrer, MaxiJour, Elec, Gaz, valider, Enregistrer  
LABEL Clic, Recalculer, fichier, AppTouche

' ------------------------------------------------------------------------------
'  ALPHA(1/9), SPIN(10/19), BUTTON(20/29), EDIT(30/39), LIST(40/49)    
' ------------------------------------------------------------------------------

'   LIST 40 sert à trier le fichier avec sort_on.
    LIST 40  
    LEFT 40,350
    TOP 40,60
    HEIGHT 40,420
    WIDTH 40,130
    SORT_ON 40
    REM HIDE 40

'   année
    ALPHA 1      
    FONT_SIZE 1,13
    LEFT 1,120
    TOP 1,82
    
    ALPHA 2
    FONT_SIZE 2,13
    LEFT 2,30
    TOP 2,55
    FONT_SIZE 2,10
    FONT_BOLD 2
    CAPTION 2,"Date du relevé ?"
    
    ALPHA 3
    FONT_SIZE 3,11
    LEFT 3,35
    TOP 3,170
    CAPTION 3,"kWh/jour"
    HIDE 3

    ALPHA 9
    FONT_SIZE 9,14
    LEFT 9,30
    TOP 9,10
    CAPTION 9,"CONSOMMATION"

'   consommation jour      
    EDIT 30  
    LEFT 30,35: TOP 30,190
    HEIGHT 30,25
    WIDTH 30,60: HEIGHT 30,30
    TEXT 30,"0"
    FONT_SIZE 30,12
    ON_KEY_DOWN 30,AppTouche
    HIDE 30
        
    ALPHA 4
    FONT_SIZE 4,11
    LEFT 4,135
    TOP 4,170
    CAPTION 4,"kWh/mois"
    HIDE 4
    
'   consommation mois        
    EDIT 31  
    LEFT 31,135: TOP 31,190
    HEIGHT 31,25                                        
    WIDTH 31,60: HEIGHT 31,30
    TEXT 31,""
    FONT_SIZE 31,12
    HIDE 31
    ON_CLICK 31,Clic
    ON_KEY_DOWN 31,AppTouche
    
    An%=(DATE_YEAR)
    Mois%=(DATE_MONTH)
    Jour%=(DATE_DAY)
    
    GOSUB MaxiJour
              
    SPIN 10: LEFT 10,30: TOP 10,80: WIDTH 10,42: HEIGHT 10,30: FONT_SIZE 10,12
    MIN 10,0: MAX 10,32:' jour
    POSITION 10,Jour%
    SET_FOCUS 10
    ON_CHANGE 10,action
    
    SPIN 11: LEFT 11,72: TOP 11,80: WIDTH 11,42: HEIGHT 11,30: FONT_SIZE 11,12
    MIN 11,0: MAX 11,13:' mois
    POSITION 11,Mois%
    ON_CHANGE 11,action2
    
    BUTTON 20
    LEFT 20,30
    TOP 20,130
    FONT_SIZE 20,12
    CAPTION 20,"Electricité"
    ON_CLICK 20,Elec
        
    BUTTON 21
    LEFT 21,110
    TOP 21,130
    FONT_SIZE 21,12
    CAPTION 21,"Gaz"
    ON_CLICK 21,Gaz    
 
    BUTTON 22
    LEFT 22,230
    TOP 22,190
    FONT_SIZE 22,12
    CAPTION 22,"Valider"
    ON_CLICK 22,Valider
    HIDE 22
    
' dimensionner de la fenêtre
    HEIGHT 0,HEIGHT(0) - HEIGHT_CLIENT(0) + 500
    WIDTH 0,WIDTH(0) - WIDTH_CLIENT(0) + 500
    
' centrer la fenêtre sur l'écran
    TOP 0,(SCREEN_Y - HEIGHT(0))/2
    LEFT 0,(SCREEN_X - WIDTH(0))/2
    ON_RESIZE 0,centrer
    
 END
 
' ------------------------------------------------------------------------------
action:
   OFF_CHANGE 10
      GOSUB MaxiJour
          IF TEXT$(10) = "0"
            POSITION 10,MaxiJ%
            Mois%=(Mois% -1)
            POSITION 11,Mois%
            GOSUB MaxiJour
            POSITION 10,MaxiJ%
          END_IF
          IF TEXT$(10) = STR$(MaxiJ%+1)
            POSITION 10,1
            Mois%=(Mois% +1)
            IF Mois%=13 THEN Mois%=1
            POSITION 11,Mois%
            GOSUB Fichier
            GOSUB MaxiJour
          END_IF
   ON_CHANGE 10,action
RETURN
    
' ------------------------------------------------------------------------------    
action2:
   OFF_CHANGE 11
      Mois%=VAL(TEXT$(11))-1
      GOSUB MaxiJour
      NbJ% = MaxiJ%
      Mois%=VAL(TEXT$(11))
      GOSUB MaxiJour
         IF VAL(TEXT$(10)) = NbJ% THEN POSITION 10,MaxiJ%
         IF TEXT$(11) = "13"
            POSITION 11,1
            An%=An% +1
            CAPTION 1,STR$(An%)
            GOSUB Fichier
         ELSE
            IF TEXT$(11) = "0"
               POSITION 11,12
               An%=(An% -1)
               CAPTION 1, An%        
            END_IF
         END_IF
   ON_CHANGE 11,action2
RETURN
  
' ------------------------------------------------------------------------------
centrer:
    OFF_RESIZE 0
    HEIGHT 0,HEIGHT(0) - HEIGHT_CLIENT(0) + 500
    WIDTH 0,WIDTH(0) - WIDTH_CLIENT(0) + 500
    ON_RESIZE 0,centrer
RETURN

' ------------------------------------------------------------------------------
MaxiJour:
'    nombre de jours maxi/mois bissextile ou pas
  IF Mois%=2
     IF (MOD(An%,4)=0) AND ((MOD(An%,100) >0) OR (MOD(An%,400)=0))
        MaxiJ%=29
     ELSE
        MaxiJ%=28
     END_IF
  END_IF
  IF Mois%<>2 AND ((Mois%=4) OR (Mois%=6) OR (Mois%=9) OR (Mois%=11))
     MaxiJ%=30
  ELSE
     IF Mois%<>2 THEN MaxiJ%=31
  END_IF
  CAPTION 1, An%      
RETURN  

' ------------------------------------------------------------------------------
Elec:
HIDE 21
SHOW 3: SHOW 30: SHOW 4: SHOW 31
Vari$="E"
GOSUB fichier
SET_FOCUS 30  
RETURN  

' ------------------------------------------------------------------------------
Gaz:
HIDE 20
SHOW 3: SHOW 30: SHOW 4: SHOW 31
Vari$="G"
GOSUB fichier
SET_FOCUS 30
RETURN  

' ------------------------------------------------------------------------------
Valider:
   IF VAL(TEXT$(30)) = 0
      IF MESSAGE_INFORMATION_OK("Attention kWh doit être > 0") <> 1
      END_IF
      SET_FOCUS 30
      RETURN
   END_IF
   IF VAL(TEXT$(30)) >  VAL(TEXT$(31))
      SET_FOCUS 31
      IF MESSAGE_INFORMATION_OK("Attention Mois doit être > jour sauf le 1") <> 1
      END_IF
      RETURN
   END_IF
   GOSUB Enregistrer
   SHOW 20: SHOW 21
   HIDE 3: HIDE 30: HIDE 4: HIDE 31: HIDE 22
   TEXT 30,"": TEXT 31,""  
RETURN      

' ------------------------------------------------------------------------------
Enregistrer:
   Maxi = VAL(TEXT$(31))
   IF Maxi > Err AND Err>0
      Maxi=Maxi-Err
      Mini= VAL(TEXT$(30))+Maxi
      Mini$= STR$(Mini)
      TEXT 30, Mini$
   ELSE
      IF Maxi< Err AND Err>0
         Mini$= TEXT$(30)
         Mini= Err - Maxi
         Mini= (VAL(Mini$)-Mini)
         TEXT 30, STR$(Mini)
       END_IF
   END_IF
   Jour$= TEXT$(10)
      IF VAL(jour$) < 10 THEN Jour$= "0" + TEXT$(10)
      Ligne$ = Jour$ +"/"+ TEXT$(30) +"/"+ TEXT$(31)
      IF Test%=0  OR Jour$="01"
         FILE_OPEN_APPEND 1, NomFichier$
         FILE_WRITELN 1,Ligne$
         FILE_CLOSE 1
         FILE_LOAD 40, NomFichier$
            IF COUNT(40) > 1
               GOSUB recalculer
            END_IF
         RETURN
      END_IF                
      IF Test%=1
         FILE_LOAD 40, NomFichier$
         Jour2$= LEFT$(TEXT$(10),2)
         IF VAL(Jour2$) < 10 THEN Jour2$="0"+Jour2$
         IF COUNT(40) >= 1
            FOR Err% = 1 TO COUNT(40)
            Jour$= MID$(ITEM_READ$(40,Err%),1,2)
            IF VAL(Jour2$) = VAL(Jour$)
               IF MESSAGE_WARNING_OK("ATTENTION se jour existe déjà dans le fichier !") < 3
               END_IF
               SET_FOCUS 10
               RETURN
            END_IF  
            NEXT Err%
         END_IF
      END_IF      
      IF VAL(Jour$) <> VAL(Jour2$) OR VAL(Jour2$)=1 OR COUNT(40)=0
         FILE_OPEN_APPEND 1, NomFichier$
         FILE_WRITELN 1,Ligne$
         FILE_CLOSE 1
         ' sauvegarder le fichier trier
         FILE_LOAD 40, NomFichier$
         FILE_SAVE 40, NomFichier$
      END_IF
      SET_FOCUS 10
      IF COUNT(40) > 0
         GOSUB recalculer
      END_IF
RETURN  
 
' ------------------------------------------------------------------------------
Clic:
   Jour%= VAL(TEXT$(10))
   IF Jour% = 1
       VT$ = TEXT$(30)
       TEXT 31,VT$
        Err = 0
       SHOW 22
       RETURN
   END_IF
   IF Jour%>1 AND Test% =0
       VT$ = TEXT$(30)
       TEXT 31,VT$
       SHOW 22
       RETURN
   END_IF
   IF Jour%>1 AND Test% = 1
      '  trouver valeur kWh/mois  pour calculer le total
      VT = VAL(TEXT$(30))
      FILE_LOAD 40, NomFichier$
      Err%= COUNT(40)
         IF Err% <>0
            A$=ITEM_READ$(40,Err%)
            B=INSTR_LAST(A$,"/")
            B=B+1
            L= LEN(A$) :L=(L-B)+1
            VT$= MID$(ITEM_READ$(40,Err%),B,L)
            Err=VAL(VT$)+ VT
            TEXT 31,Err
            SHOW 22
            RETURN
         ELSE
            TEXT 31,TEXT$(30)
            SHOW 22
         END_IF
   END_IF
RETURN

' ------------------------------------------------------------------------------
Recalculer:
   FILE_OPEN_WRITE 2, copiFich.txt
   FILE_CLOSE 2
   FILE_LOAD 40, NomFichier$
   Err% = COUNT(40)
      FOR L=1 TO Err%
         A$=ITEM_READ$(40,L)
         jour$=LEFT$(A$,2)
         Mini$= RIGHT_POS$(A$,4)
         B=INSTR(Mini$,"/")
         B=B-1
         Mini$=LEFT$(Mini$,B)
            IF VAL(jour$) = 1 OR L=1
               Maxi= VAL(Mini$)
            ELSE
               Maxi=Maxi+VAL(Mini$)
            END_IF
         Maxi$= STR$(Maxi)
         Ligne$ = Jour$ +"/"+ Mini$ +"/"+ Maxi$
         FILE_OPEN_APPEND 2, copiFich.txt
         FILE_WRITELN 2,Ligne$
         FILE_CLOSE 2
' sauvegarder le fichier trier et recalculer
      NEXT L
   FILE_DELETE NomFichier$
   FILE_RENAME "copiFich.txt",NomFichier$
   FILE_LOAD 40, NomFichier$
RETURN

' ------------------------------------------------------------------------------
fichier:
   An$= CAPTION$(1)
   Mois$= TEXT$(11)
   NomFichier$ = An$+Mois$+Vari$+".txt"
   IF FILE_EXISTS(NomFichier$)=1
      Test%=1
   ELSE
      Test%=0
   END_IF  
   IF Test%=0
      ' créer un fichier texte en écriture
      FILE_OPEN_WRITE 1, NomFichier$
   ELSE
     IF Test%=1
        ' ouvrir un fichier texte en écriture ajout aprés la derniere ligne
        FILE_OPEN_APPEND 1, NomFichier$
     END_IF
   END_IF
   FILE_CLOSE 1
RETURN

' ------------------------------------------------------------------------------
AppTouche:
   IF KEY_DOWN_CODE > 95 AND KEY_DOWN_CODE < 106
      RETURN
   ELSE
      IF KEY_DOWN_CODE = 8 OR KEY_DOWN_CODE = 37 OR KEY_DOWN_CODE = 39 OR KEY_DOWN_CODE = 110 THEN RETURN      
      IF KEY_DOWN_CODE = 13
      Tou%= number_key_down
         If Tou% =30
            set_focus 31
            return
         Else
            Tou% = 31
            show 22
            set_focus 22
            gosub Clic    
            return
         end_if
      end_if
      IF MESSAGE_ERROR_OK("La donnée doit être numérique !")=1
         TEXT 30,""
         TEXT 31,""
      END_IF
   END_IF  
RETURN

J'ai créé le .exe apparemment cela fonctionne.
Bon maintenant me reste à utiliser les données des fichiers. Genre histogramme, moyenne mensuelle, comparaison avec l'année précédente Bref il y a encore pas mal de travail.
Revenir en haut Aller en bas
 
Consommation gaz électricité
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos projets-
Sauter vers: