ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

sauvegarder l'environnement de données pour le replaquer sur une autre form   



L'auteur

eric leissler
France France
Membre Simple
# 0000002784
enregistré le 06/03/2010
http://www.aumeric.fr
68 ans
LEISSLER Eric
85290 MORTAGNE SUR SEVRE
de la société AUMERIC LOGICIELS
Fiche personnelle


Note des membres
pas de note

Contributions > 01 - PRG : Programmation

sauvegarder l'environnement de données pour le replaquer sur une autre form
# 0000000259
ajouté le 10/11/2005 16:37:17 et modifié le 29/03/2006
consulté 9438 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0

Description

Bonjour à toutes et a tous

Bon comme je suis têtu et que j'avais besoin de ce code,  je l'ai fait.

Le principe est que j'ai un formulaire de requête  multicritères Mes utilisateurs font leur marché en choisissant tel ou tel champs dans les tables. Ensuite, ils chosissent l'ensemble des critères et  exécute la requête  qu'ils peuvent garder en dbf ou bombarder sur excel ou open office.

Selon les cas j'ai des environnements de données différents en fonction.

Par exemples soit je part des employés pour afficher le contrat en cours  ou alors je part des arrets maladie pour aller sur les personnes concernées.

Je prépare donc mon environnement de données, j'exécute le form et Je clic sur le bouton dont le code est ci-dessous.  Ce code génère un  fichier dont vous donnerez le nom (getfile())

 

Dans mon formulaire de requête proprementdit l'utilisateur choisit sont environnement de données dont les paramètres sont dans une petite table.

Si l'environnement de donnée de la requête  employés vers contrats en cours s'apelle perscontrat.prg  dans mon formulaire de requête, après le clic pour choisir  l'environement de donnée le code est  perscontrat(thisform)

Donc le nom du prg généré par le code, plus thisform en paramêtre

Un exemple d'environnement de données est joint de le fichier mht

Ca  peut être améliorable.

Voila  Bonne journée à tous

Atoutfoxement

Aumeric

Code source :
ligne="parameter monenv"
ligne=ligne+(chr(13))+"*!* AUMERIC - 10/11/2005------"
ligne=ligne+(chr(13))+"*!* retrait des objets cursor et relation "

ligne=ligne+(chr(13))+"thisform.dataenvironment.closetables"
for i=1 to 255
  obj="thisform.dataenvironment.cursor"+alltrim(str(i))
  if vartype(&obj)=="O"
    ligne=ligne+(chr(13))+"monenv.dataenvironment.removeobject('cursor"+alltrim(str(i))+"')"
  endif
  obj="thisform.dataenvironment.relation"+alltrim(str(i))
  if vartype(&obj)=="O"
    ligne=ligne+(chr(13))+"monenv.dataenvironment.removeobject('relation"+alltrim(str(i))+"')"
  endif
next
ligne=ligne+(chr(13))+"*!* ajout des objets cursor "

for i=1 to 255
    obj="thisform.dataenvironment.cursor"+alltrim(str(i))
  obj_database=obj+".database"
  obj_alias=obj+".alias"
  obj_cursorsource=obj+".cursorsource"
  if vartype(&obj)=="O"
    ligne=ligne+(chr(13))+"monenv.dataenvironment.addobject('cursor"+alltrim(str(i))+"','cursor')"
    ligne=ligne+(chr(13))+obj+".cursorsource='"+&obj_cursorsource+"'"
    ligne=ligne+(chr(13))+obj+".alias='"+&obj_alias+"'"
    ligne=ligne+(chr(13))+obj+".database='"+&obj_database+"'"
  endif
next


ligne=ligne+(chr(13))+"*!* ajout des objets relation "

for i=1 to 255
  obj="thisform.dataenvironment.relation"+alltrim(str(i))
  obj_childalias=obj+".childalias"
  obj_childorder=obj+".childorder"
  obj_parentalias=obj+".parentalias"
  obj_relationalexpr=obj+".relationalexpr"
  if vartype(&obj)=="O"
    ligne=ligne+(chr(13))+"thisform.dataenvironment.addobject('relation"+alltrim(str(i))+"','relation')"
    ligne=ligne+(chr(13))+obj+".childalias='"+&obj_childalias+"'"
    ligne=ligne+(chr(13))+obj+".childorder='"+&obj_childorder+"'"
    ligne=ligne+(chr(13))+obj+".parentalias='"+&obj_parentalias+"'"
    ligne=ligne+(chr(13))+obj+".relationalexpr='"+&obj_relationalexpr+"'"
  endif

next



    ligne=ligne+(chr(13))+"thisform.dataenvironment.opentables"


    ligne=strtran(ligne,"thisform","monenv")


   gnFichierErreur = FCREATE(getfile())  && Si non, le créer
IF gnFichierErreur < 0     && Recherche les erreurs à l'ouverture du fichier
   WAIT "Impossible d'ouvrir ou de créer le fichier de sortie" WINDOW NOWAIT
ELSE  && S'il n'y a pas d'erreur, écrire dans le fichier
   =FWRITE(gnFichierErreur , ligne)
ENDIF
=FCLOSE(gnFichierErreur )     && Ferme le fichier




Fichier MHT :
Mettre en plein écran


Commentaires
Aucun commentaire enregistré ...

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3