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
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Mes aventures avec ISAM et Panoramic Emptypar papydall Hier à 16:57

» PANORAMIC V 1
Mes aventures avec ISAM et Panoramic Emptypar papydall Hier à 3:22

» select intégrés [résolu]
Mes aventures avec ISAM et Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Mes aventures avec ISAM et Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Mes aventures avec ISAM et Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Mes aventures avec ISAM et Panoramic Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Mes aventures avec ISAM et Panoramic Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Mes aventures avec ISAM et Panoramic Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Mes aventures avec ISAM et Panoramic Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Mes aventures avec ISAM et Panoramic Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Mes aventures avec ISAM et Panoramic Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Mes aventures avec ISAM et Panoramic Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Mes aventures avec ISAM et Panoramic Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Mes aventures avec ISAM et Panoramic Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Mes aventures avec ISAM et Panoramic Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

 

 Mes aventures avec ISAM et Panoramic

Aller en bas 
2 participants
AuteurMessage
Yannick




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

Mes aventures avec ISAM et Panoramic Empty
MessageSujet: Mes aventures avec ISAM et Panoramic   Mes aventures avec ISAM et Panoramic EmptyMer 12 Aoû 2015 - 18:22

Comme je voulais révolutionner l' appli pour le mag sur la base d' une base de données ISAM,
il m' a fallu faire une appli pour créer les fichiers database à utiliser avec PLM l' appli.
Le dossier est sur mon webdav mais voilà ce que cela donne en code :

Code:
Hide 0
Variables()
Labels()
Init()
Gui()
Show 0

Recherche_des_articles()
Creation_des_fichiers()
Creation_des_fiches()
Message "Base Créée !"
Quitter()

End

' +++ DECLARATION DES VARIABLES +++

SUB Variables()
   dim_local i%
'  adresses de dossiers

   dim Path$    : Path$    = dir_current$
   if right$(path$,1)="" : path$ = left$(path$,len(path$)-1) : end_if
   path$ = path$+""
  
   dim dir_Art$ : dir_Art$ = "C:\Users\Yannick\PLM_le_site\Articles"
   dim dir_dll$ : dir_dll$ = "C:\KGF"
'  adresses dll
   dim kgf$ : kgf$ = dir_dll$+"KGF.dll"
'  database
   dim support$
   dim ISAM_vers$
   dim ISAM_IdentSize%
   dim ISAM_id%
   dim ISAM_nam$
   dim ISAM_exist%
   dim ISAM_RecLen%
   dim ISAM_Record$
   dim ISAM_NbRec%
   dim inbase%
   dim keyinbase%
'  événements
   dim num_clic%
   dim num_dclic%
   dim num_change%
'  objets
   dim no%
   dim frame%     : no%=no%+1 : frame% =no%
   dim alph1%     : no%=no%+1 : alph1% =no%
   dim Pbar%      : no%=no%+1 : Pbar%  =no%
   dim liste%     : no%=no%+1 : liste% =no%
END_SUB

' +++ DECLARATION DES LABELS +++

SUB Labels()
   Label Clic
   Label DClic
   Label Change
END_SUB

' +++ INITIALISATIONS +++

SUB Init()
   dim_local version%,kgf_vers$,res%,i%,url$,fic$
  
'  activation de la dll
   if dir_exists(dir_dll$)=1
      dll_on kgf$
      kgf_vers$=string$(25," ")
      version% = DLL_call1("KGFdllVersion",adr(kgf_vers$))
      ' message trim$(kgf_vers$)
   else
      i% = Message_information_yes_no("Le dossier ''C:\KGF'' n' a pas été trouvé."+chr$(13)+"Voulez vous le télécharger maintenant ?...")
      if i%<>1
         dir_make dir_dll$
'        fonction à définir
      else
         res% = dll_call1("KillProcessByHandle",handle(0))
      end_if
   end_if
  
'  initialisation de l' environnement isam
   res% = dll_call0("InitIsam")
   ISAM_vers$ = string$(25," ")
   res% = dll_call1("GetIsamVersion",adr(ISAM_vers$))
   ' message trim$(ISAM_vers$)
END_SUB

' +++ INTERFACE UTILISATEUR +++

SUB Gui()

   height 0,100
   width 0,600
   top 0,(screen_y-height(0))/2
   left 0,(screen_x-width(0))/2
   font_name 0,"arial"
   font_size 0,8
   caption 0,""
  
   Panel frame%
   full_space frame%

   alpha alph1%
   parent alph1%,frame%
   top alph1%,15
   left alph1%,15
   font_color alph1%,0,0,200
  
   Progress_bar Pbar%
   hide Pbar%
   parent Pbar%,frame%
   width Pbar%,width(frame%)-30
   top Pbar%,30
   left Pbar%,15
  
   dlist liste%
  
END_SUB

' +++ MENUS +++

Clic:
   num_clic% = number_click
return

DClic:
   num_dclic% = number_double_click
return

Change:
   num_change% = number_change
return

' +++ FONCTIONS ET PROCEDURES +++

SUB Recherche_des_articles()
   dim_local i%,a$,fic$

   caption 0,"PLM Appli - Data Créator  [ Recherche des articles ]"
   caption alph1%,"0 Articles trouvés..."

   dir_change dir_Art$
   a$=file_find_first$
   a$=file_find_next$
   while a$<>"_"
      if upper$(file_extract_extension$(a$))=".PDF"
         fic$=file_extract_name$(a$)
         if left$(fic$,3)="art"
            item_add liste%,fic$
            i%=i%+1
            caption alph1%,str$(i%)+" Articles trouvés..."
         end_if
      end_if
      a$=file_find_next$
      wait 200
   end_while
   file_find_close
   dir_change Path$
END_SUB

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

SUB Creation_des_fichiers()
   dim_local i%,def$,res%,defkey$,court$

   caption 0,"PLM Appli - Data Créator  [ Création de la base données ]"
   caption alph1%,"Création des fichiers "+chr$(13)+"- PLM_appli.IX"+chr$(13)+"- PLM_appli.DAT"

'  création de l' identifiant isam
   ISAM_IdentSize% = dll_call0("GetIsamIdentifierSize")
   support$ = string$(ISAM_IdentSize%," ")
   ISAM_id% = dll_call1("CreateIsamIdentifier",adr(support$))

'  vérif de l' existence de la base ou pas
   ISAM_nam$ ="PLM_appli"
   ISAM_exist% = dll_call1("IsamFileExists",adr(ISAM_nam$))

   if ISAM_exist% =0
      file_delete Path$+"Fic\PLM_appli.IX"
      file_delete Path$+"Fic\PLM_appli.DAT"
   end_if

'  création des champs
   def$ ="6,6,4,20,20,60,110"
   res% = dll_call2("SetIsamFields",Isam_ID%,adr(def$))

'  création des cles
'  par ID / numero d article
   defkey$ ="1,1,1"
   res% = dll_call2("SetIsamKeyFields",Isam_ID%,adr(defkey$))
   res% = dll_call0("GetIsamOk")
   if res%<0 : MessageErreur(res%) : end_if
'  Par Mag
   defkey$ ="2,0,2"
   res% = dll_call2("SetIsamKeyFields",Isam_ID%,adr(defkey$))
   res% = dll_call0("GetIsamOk")
   if res%<0 : MessageErreur(res%) : end_if
'  Par Sujet
   defkey$ ="3,0,3"
   res% = dll_call2("SetIsamKeyFields",Isam_ID%,adr(defkey$))
   res% = dll_call0("GetIsamOk")
   if res%<0 : MessageErreur(res%) : end_if
'  Par Auteur
   defkey$ ="4,0,4"
   res% = dll_call2("SetIsamKeyFields",Isam_ID%,adr(defkey$))
   res% = dll_call0("GetIsamOk")
   if res%<0 : MessageErreur(res%) : end_if

'  Création des fichiers ISAM
   dir_change Path$+"\Fic"
   res% = dll_call2("CreateIsamFile",Isam_ID%,adr(ISAM_nam$))
'   message str$(res%)

'  recup de la longueur d' un enregistrement
   ISAM_RecLen% = dll_call1("GetIsamRecordLength",Isam_ID%)
   ISAM_record$ = string$(ISAM_RecLen%," ")

'  recup du nombre d' enregistrements dans la base
   inbase% = dll_call1("GetIsamRecordCount",Isam_ID%)

'  recup du nombre de clés
   keyinbase% = dll_call1("GetIsamKeyCount",Isam_ID%)

END_SUB

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

SUB Creation_des_fiches()
   dim_local i%,a$,id$,mag$,rub$,aut$,art$,res%,url$,sf$,err%

   show Pbar%
   min Pbar%,0
   max Pbar%,count(liste%)
   position Pbar%,0
   caption 0,"PLM Appli - Data Créator  [ Création des fiches ]"

   res% = dll_call1("IsamFileIsOpen",Isam_ID%)
   if res%<0
       message "Le fichier ISAM est fermé !"
       exit_sub
   end_if

   for i% = 1 to count(liste%)
      position Pbar%,Position(Pbar%)+1
      caption alph1%,"Création de la fiche : "+str$(inbase%+1)+" / "+str$(count(liste%))
      display
      a$=item_read$(liste%,i%)
      id$=left$(a$,6)
      mag$=mid$(a$,7,4)
      rub$=mid$(a$,11,20) : remplace_caractere(rub$,"_"," ") : rub$=retour$ : rub$=trim$(rub$)
      aut$=mid$(a$,31,20) : remplace_caractere(aut$,"_"," ") : aut$=retour$ : aut$=trim$(aut$)
      art$=mid$(a$,51,60) : remplace_caractere(art$,"_"," ") : art$=retour$ : art$=trim$(art$)
      url$=a$
      ISAM_record$ = string$(ISAM_RecLen%," ")
      sf$ =" "
      res% = dll_call6("FillIsamField",Isam_ID%,1,1,adr(ISAM_Record$),adr(id$),adr(sf$))
      res% = dll_call6("FillIsamField",Isam_ID%,2,0,adr(ISAM_Record$),adr(mag$),adr(sf$))
      res% = dll_call6("FillIsamField",Isam_ID%,3,0,adr(ISAM_Record$),adr(rub$),adr(sf$))
      res% = dll_call6("FillIsamField",Isam_ID%,4,0,adr(ISAM_Record$),adr(aut$),adr(sf$))
      res% = dll_call6("FillIsamField",Isam_ID%,5,0,adr(ISAM_Record$),adr(art$),adr(sf$))
      res% = dll_call6("FillIsamField",Isam_ID%,6,0,adr(ISAM_Record$),adr(url$),adr(sf$))
      pause 100
      res% = dll_call2("AddIsamRecord",Isam_ID%,adr(ISAM_Record$))
      if res%<0
          err% = dll_call0("GetIsamError")
          message "Erreur en création "+str$(res%)+": "+str$(err%)
          exit_sub
      else
          inbase% = dll_call1("GetIsamRecordCount",Isam_ID%)
      end_if
   next i%
END_SUB

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

SUB Quitter()
  dim_local fin%
  fin% = dll_call1("CloseIsamFile",Isam_ID%)
  wait 100
  fin% = dll_call0("FreeIsam")
  wait 100
  fin% = dll_call1("KillProcessByHandle",handle(0))
END_SUB

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

SUB MessageErreur(e%)
  dim_local a$,i%
  i%=e%*-1
  select i%
  case 1 : a$="[1] La chaîne de définition es incohérente"
  case 2 : a$="[2] Le numéro de la clé est non numérique"
  case 3 : a$="[3] Le nombre de clés est invalide (<1 ou >(nombre de clés)+1))"
  case 4 : a$="[4] Le flag ''pas de doublons'' est non numérique"
  case 5 : a$="[5] Un numéro de champ est non numérique"
  case 6 : a$="[6] Un numéro de champ est invalide (<1 ou >(nombre de champ))"
  case 7 : a$="[7] Clé > 30 caractères"
  end_select
  message str$(res%)+chr$(13)+a$
END_SUB

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

SUB remplace_caractere(texte$,char_indesirable$,char_subsitution$)
    dim_local l% : l% = len(texte$)
    dim_local chaine$(l%),i%
    if variable ("retour$") = 0 then dim retour$
    retour$ = ""
    for i% = 1 to l%
       chaine$(i%)= mid$(texte$,i%,1)
       if chaine$(i%) = char_indesirable$  then  chaine$(i%) = char_subsitution$
    next i%
    for i% = 1 to l%
       retour$ = retour$+chaine$(i%)
    next i%
END_SUB

La suite, c' est "PLM l' appli" dans le prochain post...soyez patient. Laughing
Revenir en haut Aller en bas
Yannick




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

Mes aventures avec ISAM et Panoramic Empty
MessageSujet: re   Mes aventures avec ISAM et Panoramic EmptyMar 18 Aoû 2015 - 3:57

J' ai revu, encore une fois Rolling Eyes , mon outils.
j' ai mis sur mon webdav le dossier "PLM DataBase.zip".
Revenir en haut Aller en bas
Yannick




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

Mes aventures avec ISAM et Panoramic Empty
MessageSujet: re   Mes aventures avec ISAM et Panoramic EmptyMar 18 Aoû 2015 - 23:00

J' ai actualisé le zip sur mon webdav "Projet PLM DataBase.zip".
Est ce qu' un utilisateur d' une autre version de windows que la 10
pourrait me dire si le curseur change sur la toolbar ?
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Mes aventures avec ISAM et Panoramic Empty
MessageSujet: Re: Mes aventures avec ISAM et Panoramic   Mes aventures avec ISAM et Panoramic EmptyMar 18 Aoû 2015 - 23:47

ici la connexion est trop lente... j'évite les téléchargement jusqu'à mon retour sur Paris ... Désolé
Revenir en haut Aller en bas
Contenu sponsorisé





Mes aventures avec ISAM et Panoramic Empty
MessageSujet: Re: Mes aventures avec ISAM et Panoramic   Mes aventures avec ISAM et Panoramic Empty

Revenir en haut Aller en bas
 
Mes aventures avec ISAM et Panoramic
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» ISAM toujours ISAM
» Défi avec panoramic.
» Petit souci avec ISAM
» Base de données de type ISAM par Excel sous PANORAMIC
» Mes astuces avec Panoramic

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: