IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

projet Multi dossiers


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 82
    Points : 0
    Points
    0
    Par défaut projet Multi dossiers
    bonjour forum

    j'ai réaliser un projet grâce au forum ( merci pour tout les repense) il matche très bien

    fin de projet j'ai constater qu'il manque une chose je veux ronde mon projet Multi dossiers

    pour se la j'ai ajouter une rubrique nommé société que j'ai relier avec tout les autre rubrique
    Nom : analise.png
Affichages : 1286
Taille : 97,8 Ko

    et dans le code du projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CONSTANT
    	INI_DATESYS = "Date système"
    FIN
     
     
    GLOBAL
    	gsFichierIni	est une chaîne = ComplèteRep(fRepExe()) + "New of.Ini"		// Fichier .ini du projet
    	gsNomSociété 	est une chaîne = ""					                                       // Nom de la société en cours
    	gsDate 			est une chaîne = ""			    	                                      // INI_DATESYS ou date sauvegardée dans le .ini
    	gbMotPasse 		est un booléen = Faux			                                	// Booléen permettant de savoir si le MDP a été saisi
    	gnSOCLEUNIK 	est un entier						                                   // ID société en cours
     
     
    // Créer les fichiers s'ils n'existent pas
    HCréationSiInexistant("*")

    et j'ai crée une fenêtre FEN_GestionSociété
    Nom : societer.png
Affichages : 1149
Taille : 20,6 Ko


    le code du fenêtre est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // Vérifier si le fichier contient un enregistrement
    SI HNbEnr(Société) = 0 ALORS
    	// Le fichier est vide : Passer en mode "Création"
    	ExécuteTraitement(Ajouter, trtClic)	
    	RETOUR
    FIN
     
    // Rechercher la société en cours
    HLitRecherchePremier(Société, NomSociété, gsNomSociété)
     
    SI PAS HTrouve() ALORS   
    	// Mode "Visualisation" : Se positionner sur le premier enregistrement
    	HLitPremier(Société, NomSociété)
     
    	// Réinitialiser les variables globales
    	gbMotPasse = Faux	
    	gsNomSociété = ""	
    FIN
     
    // Initialiser les champs avec les valeurs des rubriques
    FichierVersEcran()
     
    // Donner le focus au champ caché pour éviter la modification sans saisie du mot de passe
    EcranPremier(ChampCaché)
    le code du bouton nouveau est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    SI Gr_CoordSociété..Modifié ALORS
    	// Une des coordonnées de la société a été modifiée
    	SI OuiNon("Les coordonnées de la société ont été modifiées.","Voulez-vous sauvegarder ces changements ?") ALORS
    		// Initialiser les rubriques des fichiers avec les valeurs des champs
    		EcranVersFichier()
     
    		// Modifier l'enregistrement
    		HModifie(Société)
    	FIN
     
    	// Remettre la propriété à faux
    	Gr_CoordSociété..Modifié = Faux
    FIN
     
     
    gbMotPasse = Faux
     
    // Cacher les boutons de parcours et de modification
    Gr_Visualisation..Visible = Faux       
     
    // Remettre les champs à vide
    RAZ()              
    Message("Saisissez les valeurs des champs de la nouvelle société.")
     
    // Donner le focus au champ SocieteNom
    RepriseSaisie(SociétéNom)


    je crée normale une autre Société avec mot de passe et une période

    le problème que j'ai jeu veux chaque société a sa base de donne séparer
    le problème quant je crée un client dans une société je le trouve dans laure société
    mémé les numéro des facture chaque société a sa numérotation

  2. #2
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 998
    Points : 2 524
    Points
    2 524
    Par défaut
    Il y a plusieurs écoles et tu auras donc plusieurs suggestions.
    Pour ma part, un répertoire par Société.
    Il y a un avantage pour moi primordial :
    Sauvegarde/Restauration d'une sté !

    PS : et une clef en moins dans tous les fichiers.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    Se que j'ai fais j'ai crée une société et j'ai introduit la clé dans tous les fichier

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Si tu crées un dossier par société, tu vas devoir utiliser Hchangerep().
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 393
    Points
    9 393
    Par défaut
    Il y a essentiellement 2 options comme déjà dit :

    1. Tu as un fichier unique pour chaque fichier de l'analyse, et tu ajoutes un code société dans chaque fichier. Si tu étais un expert, tu pourrais choisir cette solution. Ajouter une rubrique "société" sur un projet déjà bien avancé, ce n'est pas simple. Il faut tout revoir de A à Z.

    2. Ne pas modifier la structure du fichier, mais en tout début de projet, ajouter juste une étape avec hChangeRep(). C'est beaucoup plus raisonnable.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    pour un expert je ne le suis pas je suis un débutant

    je modifier pas mon projet dans le code du projet j’utilise hChangeRep() pour basculer d'un dossier ver un autre

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    s que c possible de vous partager mon projet

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    Je bloque sur se point

  9. #9
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 998
    Points : 2 524
    Points
    2 524
    Par défaut
    Quel point ?

  10. #10
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 805
    Points : 5 253
    Points
    5 253
    Billets dans le blog
    1
    Par défaut
    Eventuellement, tu peux
    -ajouter une rubrique RepertoireDeTravail dans ta table SOCIETE.
    -créer une fenêtre de sélection d'une société (ce sera la première fenêtre de ton projet)
    -avec le répertoire ainsi trouvé, tu fais ton hChangeRep et tu appelles ta prmière fenêtre actuelle.Dans cette fenêtre, tu créeras une option qui te permet de changer de société sans avoir à relancer.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 82
    Points : 0
    Points
    0
    Par défaut
    bonjour forum

    quand je crée une societer et je valide il crée le dossier avec le nom de la sociter et il bascule

    j'ai crée une rebique societer

    Nom : ordre facturation.png
Affichages : 952
Taille : 64,4 Ko

    dans le code projet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CONSTANT
    	INI_DATESYS = "Date système"
    FIN
     
     
    GLOBAL
    	gsFichierIni	est une chaîne = ComplèteRep(fRepExe()) + "Ordre de facturation.INI"		// Fichier .ini du projet
    	gsNomSociété 	est une chaîne = ""					// Nom de la société en cours
    	gsDate 			est une chaîne = ""			    	// INI_DATESYS ou date sauvegardée dans le .ini
    	gbMotPasse 		est un booléen = Faux				// Booléen permettant de savoir si le MDP a été saisi
    dans le code menue fenêtre principale
    j'ai mis un codez pour qui trouve si une associer existe oui ou non dans fichier .ini


    fin d'initialisation fen_menue*

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Rechercher la dernière société dans le fichier .ini si elle existe sinon la créer
    SélectionnerSociété(gsFichierIni)
     
    // Initialiser les champs
    FichierVersEcran()
     
    // Initialiser les champs date
    InitialiserDate()
    fermeture fen_menue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // Traitement automatique des erreurs :   afficher l'erreur puis reprendre la saisie
    SI gsNomSociété = "" ALORS RETOUR
    // Sauvegarder la société dans le fichier .Ini
    INIEcrit("Ordre de facturation", "SOCIETE", gsNomSociété, gsFichierIni)
     
    // Sauvegarder la date dans le fichier .ini
    SI gsDate = DateDuJour() ALORS
    	// Mémoriser l'utilisation de la date système à la prochaine ouverture
    	INIEcrit(gsNomSociété, "gsDate", INI_DATESYS, gsFichierIni)
    SINON
    	SI gsDate <> INILit(gsNomSociété, "gsDate", "", gsFichierIni)
    		SI OuiNon("La date a été modifiée, voulez-vous la sauvegarder ?") ALORS
    			INIEcrit(gsNomSociété, "gsDate", gsDate, gsFichierIni)
    		FIN
    	FIN
    FIN
    et deux procédure locale

    InitialiserDate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    PROCEDURE InitialiserDate()
    // Procédure qui permet d'initialiser les champs date à partir du fichier .ini
    // ENTREE : sFichierIni : Nom du fichier .ini
     
    // Lire la date dans le .INI
    SI INILit(gsNomSociété, "gsDate ", INI_DATESYS, gsNomSociété) = INI_DATESYS ALORS
    	// Par défaut : initialiser à la date système
    	gsDate = DateDuJour()
    SINON
    	// Prendre la date du .INI
        gsDate = INILit(gsNomSociété, "gsDate", DateDuJour(), gsFichierIni)
    FIN
     
    // Vérifier que la date est bien dans la période
    SI DateVersEntier(gsDate) < DateVersEntier(DateDébut) OU DateVersEntier(gsDate) > DateVersEntier(DateFin) ALORS
    	// La date n'est pas dans la période : Changer la date
    	Erreur("La date est hors période,","Elle sera mise à jour à la borne la plus proche.")
     
    	SI gsDate < DateDébut ALORS 
    		gsDate = DateDébut
    	SINON 
    		gsDate = DateFin
    	FIN
    FIN
    SélectionnerSociété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    PROCEDURE SélectionnerSociété(sFichierIni)
    // Procédure qui permet de sélectionner une société s'il en existe ou d'en créer une dans le cas contraire
    // On ne peut pas continuer dans l'application sans société
    // ENTREE : sFichierIni : Fichier .ini contenant le nom de la dernière société appelée
     
    // Rechercher la dernière société dans le .ini
    gsNomSociété = INILit("Ordre de facturation", "SOCIETE", "", sFichierIni)
     
    // Recherche la société dans le fichier
    HLitRecherchePremier(Société, NomSociété, gsNomSociété)
     
    SI PAS HTrouve() ALORS
    	Info("Vous devez créer une première société pour utiliser l'application .")
     
    	// La société n'existe pas : ouvrir la fenêtre de sélection
    	Ouvre(FEN_GestionSociété)
     
    	// Si aucune société n'à été choisie,
    	SI gsNomSociété = "" ALORS 
    		// Fermer : on ne peut pas travailler sans société
    		Ferme()
    	FIN
    SINON
    	// La société existe : l'ouvrir
    	SI Société.MotPasse <> "" ALORS
    		// Saisir le mot de passe de la société
    		SI PAS Ouvre(FEN_MotDePasse, "Ouverture") ALORS
    			// Le mot de passe est incorrect : ouvrir la fenêtre de sélection d'une société 
    			Ouvre(FEN_GestionSociété)
     
    			// Fermer l'application si aucune société n'a été sélectionnée
    			SI gsNomSociété = "<aucune>" ALORS Ferme()
    		FIN  
    	FIN
    FIN      
     
    // Indiquer que le mot de passe est correct
    gbMotPasse = Vrai

    et une FEN_GestionSociété
    Nom : societer.png
Affichages : 954
Taille : 20,6 Ko

    declaration globale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // Vérifier si le fichier contient un enregistrement
    SI HNbEnr(Société) = 0 ALORS
    	// Le fichier est vide : Passer en mode "Création"
    	ExécuteTraitement(Ajouter, trtClic)	
    	RETOUR
    FIN
     
    // Rechercher la société en cours
    HLitRecherchePremier(Société, NomSociété, gsNomSociété)
     
    SI PAS HTrouve() ALORS   
    	// Mode "Visualisation" : Se positionner sur le premier enregistrement
    	HLitPremier(Société, NomSociété)
     
    	// Réinitialiser les variables globales
    	gbMotPasse = Faux	
    	gsNomSociété = ""	
    FIN
     
    // Initialiser les champs avec les valeurs des rubriques
    FichierVersEcran()
     
    // Donner le focus au champ caché pour éviter la modification sans saisie du mot de passe
    EcranPremier(ChampCaché)
    bouton valider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    SI SociétéNom = "" ALORS
    	Info("Vous devez saisir le nom de la société")
    	RepriseSaisie(SociétéNom)
    FIN
     
    // Initialiser les rubriques avec les valeurs des champs
    EcranVersFichier()
     
    SI Gr_Visualisation..Visible = Faux ALORS               
    	// Ajouter la nouvelle société dans le fichier
    	AjouterSociété()
     
    	// Réinitialiser le variable
    	gbMotPasse = Vrai
     
    	// Initialiser la variable globale avec le nom de la société
    	gsNomSociété = SociétéNom 
    SINON    
    	// Mode "Modification"                            
    	// Tester la présence d'un mot de passe si c'est nécessaire
    	SI gsNomSociété <> SociétéNom ALORS
    		SI PAS TesterMotPasse() ALORS RETOUR
     
    		// Initialiser la variable globale avec le nom de la société
    		gsNomSociété = SociétéNom 
    	FIN
     
    	SI Gr_CoordSociété..Modifié ALORS
    		// Une des coordonnées de la société a été modifiée
    		SI OuiNon("Les coordonnées de la société ont été modifiées.","Voulez-vous sauvegarder ces changements ?") ALORS
    			// Modifier l'enregistrement
    			HModifie(Société)
     
    		FIN
    	FIN
    FIN
     
    Ferme()
    et une procédure ajout société
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    // Traitement automatique des erreurs : afficher l'erreur, RENVOYER 
    //
    PROCEDURE AjouterSociété()
    // Procédure qui permet d'ajouter la nouvelle société et de créer les différents comptes et journaux associés
     
    // Saisir le nouveau mot de passe
    Société.MotPasse = Ouvre(FEN_MotDePasse)
     
    // Repeindre la fenêtre
    FenRepeint()
     
    // Initialiser la période en fonction de la date courante
    Société.DateDébut = Gauche(DateDuJour(),4)+"0101"
    Société.DateFin = Gauche(DateDuJour(),4)+"1231"
     
    // Initialiser le numéro de période pour la sauvegarde
    Société.Sauvegarde = 1
     
    // Ajouter la société
    HAjoute(Société)
     
     
    // Se positionner sur l'enregistrement
    HLit(Société, hNumEnrEnCours)
     
    Sablier(Vrai)
     
     
    Sablier(Faux)

  12. #12
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut projet Multi dossiers
    Bonjour tout le monde

    La solution réside dans l'utilisation des fonctions HChangeRep() et HChangeNom() comme l'ont bien précisé les experts

    Pour vous familiariser avec les fonctions ci-dessus, je vous propose ce petit exercice soit en partant de vos fichiers logiques :
    CLIENT et ORDREDEFACTURATION , vous créez les fichiers physiques ci-dessous

    Créez une fenêtre dans votre projet avec les champs suivant :

    champ SAI_Code avec libellé Code dossier : ....... à saisir U01 soit code de l'entreprise créé dans le fichier Société
    champ SAI_Année avec libellé Année : .... à saisir 2017 soit l'année de l'exercice courant
    Bouton Exécuter

    Code du bouton Exécuter :
    dans la formulation de ce code, ne pas utilisez les valeurs "U01" et "2017", mais plutôt le nom des champs SAI_Code et SAI_Année

    1/ testez l'existence du répertoire et du sous-répertoire, s'ils n'existent pas alors il faut les créer
    2/ pour chacun des 2 fichiers logiques , utilisez dans l'ordre les fonctions HChangeRep(), HChangeNom() et HCréationSiInexistant()

    Résultat : arborescence des fichiers physiques créés

    U01\U01Clients.Fic
    U01\2017\U01Ordres_Facturation2017.Fic

  13. #13
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    Remarques :

    la première fenêtre de votre projet : menu principal soit FEN_Menu ???
    au lancement de l'application :

    - cette fenêtre s'ouvre et c'est normal
    - lancement de la procédure SélectionnerSociété(sFichierini), voir contenu dans messages précédents avec

    a- ouverture automatique éventuelle du dernier dossier ouvert (séance précédente)
    b- sinon ouverture fenêtre FEN_GestionSociété et clic bouton OK, après contrôle initialisation variable gsNomSociété

    et retour au menu principal, c'est à ce niveau qu'il faut ouvrir la base de données du dossier, chose qui ne se fait pas pour l'instant !!


    Dans code : PROCEDURE SélectionnerSociété(sFichierIni)
    voir le contenu dans messages précédents

    à la fin, écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pOuvrir_BDD()     // procédure globale à créer

    code : clic bouton (loupe) sélection société (fenêtre FEN_Menu)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //-------- Début du code ------------------------
    // Ouvrir la fenêtre de sélection d'une société
    Ouvre(FEN_GestionSociété)
     
    SI gsNomSociété = "<aucune>" ALORS 
    	// Aucune société n'a été sélectionnée 
    	// Initialiser la variable globale avec la dernière société
    	gsNomSociété = NomSoc
    FIN
     
    SI gsNomSociété = "" ALORS Ferme()
     
    // Afficher la société et ses périodes
    FichierVersEcran()
    Il est à noter, on sélectionne une autre société et on n'ouvre pas sa base de données !


    La fenêtre FEN_GestionSociété :
    // voir fenêtre dans messages précédents

    Le clic sur le bouton OK sert à :

    - confirmer la création éventuelle d'une société (dossier) et à l'ouvrir
    - modifier les cellules y compris le nom de la société et confirmer la modification
    - sélectionner éventuellement un autre dossier et l'ouvrir (en remplacement de celui en cours d'utilisation)

    Dans le cas de modification du nom de la société du dossier en cours d'utilisation :
    - dans le fichier Société la modification va s'enregistrer
    - reste la modification du nom du répertoire dossier courant à faire une fois le dossier fermé
    ou avec un peu de réflexion trouver une solution soit fermer la base BDD et la ré-ouvrir


    En résumé :

    1/ dans le code du projet :

    laissez uniquement la déclaration des variables et supprimez ce qui concerne analyse (fichiers et répertoire)
    supprimez, je veux dire désactivez c'est-à-dire mettre devant chaque ligne les caractères //

    rajouter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
          // ouvrir uniquement les fichiers qui concernent tous les dossiers exemple : Société
          // éventuellement INSPECTEUR, TVA, TYPE_FACTURE c'est à vous de voir
          // pour chacun des fichiers retenus écrire :
     
          // fichier Société
          HChangeRep(Société,FRepExe())
          HCréationSiInexistant(Société)
     
          // fichier TYPE_FACTURE
          HChangeRep(TYPE_FACTURE,FRepExe())
          HCréationSiInexistant(TYPE_FACTURE)
     
          etc...

    2/ dans le code du bouton Ok FEN_GestionSociété : ne pas ouvrir de fichiers

    3/ Dans code : PROCEDURE SélectionnerSociété(sFichierIni)
    voir le contenu dans messages précédents
    // à la fin du code, écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            pOuvrir_BDD()   // procédure globale à créer
    4/ Dans code : clic bouton (loupe) sélection société (fenêtre FEN_Menu)

    // Après la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           SI gsNomSociété = "" ALORS Ferme()
    // écrire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            SI NomSoc <>  gsNomSociété Alors   // remarque NomSoc c'est le nom du champ société situé au niveau de la fenêtre FEN_Menu
                pFermer_BDD()    // procédure globale à créer 
                pOuvrir_BDD()      // procédure  globale à créer
            FIN
     
            FichierVersEcran()

    5/ pour le fichier .INI, un seul fichier (nom) suffit pour le projet c'est-à-dire celui qui est attribué à la variable gsFichierIni

    6/ la clé IDSociété est nécessaire uniquement dans le fichier Société. Dans les autres fichiers, je pense qu'elle n'est pas utile.
    A laisser pour l'instant avant de la supprimer éventuellement par la suite.

    7/ pour la fenêtre sélection d'un dossier soit Lister les fichiers d'archives, je ne vois pas son utilité.


    8/ PROCEDURE pFermer_BDD() // procédure globale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // fermer uniquement les fichiers uniques par dossier
    // c'est-à-dire  ne pas fermer les fichiers qui ont été ouvert dans le code du projet
     
    HFerme(CLIENT)
    HFerme(ORDREDEFACTURATION)
    HFerme(ligneCde)
    HFerme(LigneCde1)
    ---
    ---

    9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    PROCEDURE pOuvrir_BDD()     // procédure globale
     
    // Ouvrir les fichiers uniques par dossier c'est-à-dire ceux qui ont été fermé dans la procédure pFermer_BDD
     
        sRepDossier est une chaine=FRepExe()+"\"+gsNomSociété
        Si fRépertoireExiste(sRepDossier)=Faux Alors
             fRepCrée(sRepDossier)
        Fin
     
       HChangeRep(CLIENT,sRepDossier)
       HChangeRep(ORDREDEFACTURATION,sRepDossier)
       HChangeRep(ligneCde,sRepDossier)
       HChangeRep(LigneCde1,sRepDossier)
     
       ...
       .... 
      HCréationSiInexistant(CLIENT) 
      HCréationSiInexistant(ORDREDEFACTURATION)
      HCréationSiInexistant(ligneCde)
      HCréationSiInexistant(LigneCde1)
      ---
      --- 
    //-------- fin du code ------------------------
    Ces problèmes arrivent souvent lorsqu'on n'a pas suffisamment d'expérience et on essaie de personnaliser un modèle de projet.

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/04/2008, 14h42
  2. Réponses: 7
    Dernier message: 03/04/2007, 01h10
  3. [Continuum] projet multi-modules +authentification serveur
    Par rseM2 dans le forum Intégration Continue
    Réponses: 13
    Dernier message: 15/02/2007, 17h28
  4. BUILD ERROR sur création d'un projet multi-modules
    Par elitost dans le forum Maven
    Réponses: 1
    Dernier message: 28/08/2006, 15h23
  5. Projet Multi Langue
    Par MAGNUM_HEAD dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 19/07/2006, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo