[Résolu][Base] Gestion des congés

Discussions sur les projets et applications développés en liaison avec une suite bureautique libre.

Modérateur : Vilains modOOs

Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Re,

Avec ce nouvel ordre "Select" il n'y a pas d'enregistrement retourné, donc on sort de la boucle "while(ligne 65) wend (ligne 472)" pour arriver à la sauvegarde, où il n'y a rien à sauvegarder, car aucun document Writer ouvert :mrgreen: .

Une solution serait d'afficher une Listbox affichant tous les agents, et permettre la multiple sélection, puis agencer la macro en conséquence, sans oublier de donner la possibilité de tout éditer.

Pour le chapitre de la date dans le nom des documents, pour t'en convaincre, crée des fichiers dans les deux formats.

A+ :wink:
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Re

Ok là je comprends mieux le pourquoi de l'erreur sur la sauvegarde

Donc si je comprends bien la démarche
On crée un appel à une liste box dans la macro et on affecte le résultat à la requête (mais est ce possible en multiselection)
Pour la solution de tout afficher je pensais faire simple (la macro actuel sans transformation pour tous, et un nouveau module avec la macro transformée pour la sélection multiple et sur le formulaire 2 boutons un Tout éditer , un choisir agent à éditer )

J'ai plu qu'à chercher dans les listeBox

Pour la date je vais faire des essais effectivement sur plusieurs jours pour voir en triant le résultat

@+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Bonjour Sanseau,

Je t'ai fait la macro avec sélection d'agent.
Utilise les boutons sur le menu pour tester.
Qu'en penses-tu?

A+
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Salut DLE

:bravo: :bravo: :bravo: :bravo: :bravo:

Franchement tu es trop fort pour moi :super:
Je ne sais pas quel est ton cursus mais ça m'épate
J'ai passer tout le WE à chercher désespérément comment faire une listeBox ou une Boite de dialogue, les exemples que j'ai vu avaient l'air de tous se référer à des formulaires où étaient les champs à prendre en compte (champs nom ou une listebox dans le formulaire)
Mais comme nous le formulaire n'est basé sur aucune table je ne voyais pas comment faire
Pareil pour les boites de dialogue où la seule possibilité que je voyais étais de remplir les entrées de la liste à la main (donc rentrée les noms un par un c'était pas cool mais bon faute de grive)
Est toi dans cet espace temps non seulement tu refais toute la macro pour l'état en l'adaptant , mais en plus une macro pour sélectionner les agents et une boite de dialogue

Donc si j'ai bien compris le processus: la macro select agent fait appel à la boite de dialogue dans la partie "Initialisation" et on lui indique de charger dans "LB_Agent" les renseignement obtenue grâce à la requête sur la table agent
Tu stocks le choix fait dans la variable "qui"
Cette variable "qui" est reprise dans la requête de la macro État_individuel
Pour le nombre limite 100 je pense que c'est largement suffisant (à l'heure actuel 80 agents et vu la conjoncture je penses pas que cela va évoluer vers le plus) mais si j'ai bien compris je n'aurais qu'a modifié

Code : Tout sélectionner

Dim RefAgent(100) 	As 	String
et

Code : Tout sélectionner

Private Qui(100) As	Integer	
Pour augmenter la limite

Je n'ai pas le temps de tester ce soir, donc je verrai demain si tout fonctionne correctement (mais à priori je ne devrais en rencontré)

Encore un fois je te remercies fortement car sans toi je n'aurais pu aller aussi loin en si peux de temps (même pas sur du tout avec plusieurs année de recherche)

Que vois tu à rajouter à notre (ta base) pour qu'elle soit excellente
As tu des critiques ou avis à formuler , des améliorations à apporter ( je dois terminer le formulaire menu général avec les boutons qui vont avec )??
Je penses juste que je grefferai aux macro d'édition des états soit une macro d'impression directe (à la fin de leur création ) soit une ouverture automatique des dits états ou une boite de dialogue (un peu dans le style de celle qui prévient que l'état est à disposition) mais qui pose la question soit d'ouvrir l'état soit de l'imprimer
Quand penses tu ???

Pour te remercier de l'aide que tu m'as apporté je souhaiterais te faire parvenir une surprise pour noël (une bonne bouteille ou autre chose selon tes gouts) . Donc si tu pouvais me faire parvenir par MP ton adresse je pourrais t'envoyer un colis

De nouveau Merci à toi
:bravo: :bravo: :bravo: (pour moi tu devrais etre au rang de gourou) :super:
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
Dans quelle étagère
MOOdérateur
MOOdérateur
Messages : 312
Inscription : 04 oct. 2008 17:28

Re: Base Gestion des congés

Message par Dans quelle étagère »

Bonjour,
Je confirme l'excellent travail collaboratif mené sur ce projet. :bravo:
Alors, une bouteille à tous ceux qui sont intervenus dans ce fil pour le faire avancer ? :wink:
OpenOffice.org 3.1.1 sous Windows XP SP3
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Bonjour

Pour la proposition de "Dans quelle étagère" j'en parle à mon banquire mais je suis ok sur le principe
Peut etre qu'une réunion dinatoire serait à envisager avec Pierre-Yves Samyn, jeanmimi, Yves14, DLE

Pour DLE j'ai testé ce matin aucun problême, tout est fonctionnel

J'attends un retour sur les différentes améliorations que l'on pourrait faire (de ta part mais aussi de la part de la communauté ) et après on pourra peut être voir avec les grands pontes du forum et autre pour proposer notre base en exemple
de nouveau une salve
:bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo:

@+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Bonsoir Sanseau,

Merci, merci j'en suis confus. :oops:

Actuellement je suis en cours de création d'un pied de page, où il y serait inscrit le n° en page/le nbre de page total par Agent. Pour l'instant je galère avec la routine de recherche.

Des améliorations il y en a, tout dépend de l'imagination du moment comme :
Une récap globale tous agents confondus.
Et plus corsé un planning, là il y des modifs de structure de base à faire entre autres.

Qu'en penses-tu ?

A+
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Bonsoir DLE

Pour le recap global j'en ai fait une trame avec SRB et en ébauche de rapport où je reprends uniquement les soldes en triant les agent par secteur et par ordre alphabétique tu peux les voir dans rapport
Pour le pied de page j'espère bien que les agents tiendront sur une seule page (une page par agent) car pour les test nous avons mis la dose (d'après ce que j'ai vu sur les anciens fichiers excel en dehors de HS qui a 12 entrées les autres congés sont en dessous de 10 voir moins)

En ce moment je termine les formulaires avec des boutons pour naviguer sur les différents enregistrement, passer d'un formulaire à un autre, Supprimer l'enregistrement, etc
D'ailleurs à ce sujet je trouve que les formulaires ont un comportement visuel bizarre quand je me sers de la molette+Ctrl pour zoomer dézoomer, certain contrôle change de place , disparaissent sous les ControlGrid
Je sais pas si c'est du à leur point d'ancrage ou un petit bug (à mon avis OOo à des problème pour gérer les affichage windows car pour moi depuis le début et uniquement avec base mes fenêtres de formulaires s'ouvrent un peu n'importe ou j'ai du plancher sur une macro reziszWindows mais c'est pas top j'en parle dans un vieux post)
Pour le planning là je suis preneur, pouvoir sortir un planning indiquant la situation de tout les agents ce serait le top
Pour l'instant je me le cogne à la main
Mais quand tu parles de modif dans la structure ça me fait un peu peur (car je planche aussi sur l'idée de Yves14 et jeanmimi de faire qu'une seule table congés avec un champ "nature du congés" qui servirait à trier)

@+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Bonsoir

J'ai fait des arrangements visuels sur les formulaires (couleur, boutons, macros associées aux boutons)
Je cherches à faire une macro liés à la macro fermeture du formulaire pour sauvegarder ledit formulaire avant sa fermeture et aussi imbriqué dedans l'ouverture ou le retour vers le formulaire Menu (on click , ça sauvegarde, ça ferme le formulaire, ça ouvre le Menu)
Idem sur le formulaire Menu j'ai mis un bouton Quitter j'aimerai lui associer un macro fermeture de la base, avec une sauvegarde automatique et un compactage
Dans la macro Edition Etat j'aimerais à la fin du traitement l'ouverture automatique du fichier ou une impression automatique de celui ci

@


Le modérateur a écrit :Pour la énième fois, merci de ne pas poster plusieurs messages à la suite !
Le bouton "Editer" à la droite du message permet d'y remédier.

En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.
Dernière modification par Sanseau le 09 déc. 2008 16:05, modifié 1 fois.
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Bonsoir Sanseau,

Ca commence à prendre bonne forme tout ce projet.
Je cherches à faire une macro liés à la macro fermeture du formulaire pour sauvegarder ledit formulaire avant sa fermeture et aussi imbriqué dedans l'ouverture ou le retour vers le formulaire Menu (on click , ça sauvegarde, ça ferme le formulaire, ça ouvre le Menu)
Comprends pas? le menu est toujours affiché après retour d'un des formulaires, et je vois pas la nécessité d'enregistrer ce formulaire, il n'a pas été mis à jour. Je viens de créer un nouvel agent et lui affecter des congés, tout s'enchaine bien, et je n'ai pas besoin d'enregistrer les formulaires.
Idem sur le formulaire Menu j'ai mis un bouton Quitter j'aimerai lui associer un macro fermeture de la base, avec une sauvegarde automatique et un compactage
J'ai associé à ce bouton la macro "shutdown" dans le module "Fermeture". Il y a compactage et fermeture de la base. Après il faut quitter la base, il est impossible de fermer la base (l'application) par programme d'une manière propre.
Dans la macro Edition Etat j'aimerais à la fin du traitement l'ouverture automatique du fichier ou une impression automatique de celui ci
Dans les macros "Etat_Individuel" et "EtatCongePortrait", l'édition apparait en fin de traitement, et la boite dialogue "imprimer" est affichée.
Pour les boutons "Editions.."du menu, le document est affiché avec la boite de dialogue "imprimer".
Pour cela, j'ai du faire des modifs dans les macros "Etat_Individuel" et "EtatCongePortrait" repérables par le commentaire : *** maj 28/11/2008 ***' .
Le module "Select_Imprime" contient les nouvelles macros utilisées pour l'édition, "Selection_impression", "RecuprerInfoBouton", "Dialog_imprimer" .

Enfin dans le bouton du menu "Imprimer Etat Congés Agent(s) sélectionné(s)" il faut valoriser le champ "Complément d'information" de l'onglet "Général" du paramètre "Contrôle" à "individuel", et pour l'autre bouton "Imprimer Etat Congés
Ensemble du personnel" mettre le même champ à "tous" sans les double quotes bien sur.

J'allais oublié, insérer dans le nom du fichier d'édition pour tout le personnel le mot Global avant la date. C'est pour différencier par au fichier individuel.

J'ai abandonné l'insertion d'un pied de page dans les éditions, car je n'arrive pas à gérer le numéro de page.

A+ :wink:
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Bonsoir DLE

Je suis désolé pour toi mais tu as du faire un erreur dans les fichiers
Le fichier est une ancienne version et je ne vois aucun changement dans les macros (pas de *** maj 28/11/2008 ***') ou alors il faut que je changes mes lunettes
Quand je parlais d'enregistrer le formulaire je parlais d'un des formulaires de saisies de congés (pas du formulaire menu) au cas ou après avoir saisie un nouveau congés on oublie de valider la saisie (c'est pour être sur qu'il n'y aura pas d'erreur)
Pour le retour au menu effectivement y a pas besoin (c'est parce que d'habitude j'ouvre les formulaires sans passer par le menu alors forcement je me retrouve dans le "navigateur" de la base
Pour le bouton quitter on attendra une prochaine version d'OOo pour pouvoir quitter proprement la base, pour le moment un bon "shutdown compact" suffira

Dans ce passage j'ai pas tout saisie (peut être à cause de l'absence de la bonne version)
Enfin dans le bouton du menu "Imprimer Etat Congés Agent(s) sélectionné(s)" il faut valoriser le champ "Complément d'information" de l'onglet "Général" du paramètre "Contrôle" à "individuel", et pour l'autre bouton "Imprimer Etat Congés
Ensemble du personnel" mettre le même champ à "tous" sans les double quotes bien sur.
Il faut valoriser ??? Qu'est ce que je dois mettre
le champ "Complément d'information de l'onglet ????? où je le trouve (Tu parles des propriété du bouton??)

Pour les modifs d'enregistrement des fichiers entre Global et individuel c'est bien raisonné
Quand aux pieds de page c'est pas grave (je n'en voyais pas trop la nécessité vu que les feuilles sont à remettre aux agents concernés donc le numéro de la page importe peu) par contre ce que l'on peut rajouter dans l'entête ou le pied de page c'est la date d'édition genre JJ/MM/AAAA HH:MM et un "Annule et remplace le précédent Etat"

Pour l'autre Projet j'ai réussi à trouver la requête qui m'a permit de calculer le reliquat (à part le 1er mois) me reste plus que le problème du pilote de donnée

J'attends avec impatience la bonne version
Tu n'as pas fait de commentaire sur la présentation des formulaires (Bon je sais les gouts et les couleurs)
@+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Salut Sanseau,

Désolé, mais je garde beaucoup de version et il arrive plus souvent qu'à son tour que je me mélange les pinceaux. Donc cette fois je joins la bonne version.
Il faut valoriser ??? Qu'est ce que je dois mettre
le champ "Complément d'information de l'onglet ????? où je le trouve (Tu parles des propriété du bouton??)
Click droit sur un bouton, sélectionner "Contrôle", dans l'onglet "Général", en bas de la fenêtre il y a le champ "Complément d'information" et là tu mets "Individuel" pour le bouton état congés individuel et "tous" pour l'autre bouton cernant l'ensemble des agents.

Je n'ai pas encore pris le temps de regarder tous les formulaires, mais ceux que j'ai vu (création d'agent, congés annuels et congés maladie) sont bien conçus et clairs.
A+
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

RE DLE

Merci
C'est la bonne version
Et comme d'habitude c'est :super: :bravo: :bravo:

Merci
@+
Le 29/11/2008
J'essaie de faire une macro (en prenant exemple sur ce que tu as fait) pour avoir dans les formulaires (CL pour l'essaie) une colonne Reste dans le controle grid (je ne veux pas passer par requête car on ne pourrait plus saisir dedans)

Pour l'instant j'arrive bien à me positionner dans la colonne Reste mais je bute sur la syntaxe pour insérer les valeurs
j'ai une erreur à la ligne "laCellule = laGrille.getCellByPosition(colonne ,ligne) ", je suppose que la syntaxe n'est pas faite pour un controle grid mais je ne trouves pas la bonne syntaxe même avec xray (mais est ce possible)

Code : Tout sélectionner

Sub CalculReste
Dim leDoc as object
Dim cpt_TJP as Double	' compteur Total jours pris
Dim cpt_NJD	As	Double	' compteur Nombre Jours Dus	
Dim cpt_TJA As Double	' compteur Total jours Annuel
Dim	cpt_RJ As	Double	' compteur Reliquat jours
Dim cpt_Reste	As	Double	' compteur des congés légaux restant calcul progressif


' -----------------------------
'connexion Base de données
' -----------------------------
ConnecterSource

' --------------------------------------------
' Traitement TableAgent 
' --------------------------------------------
instrSQL = "Select * from TableAgent "
maRequete = maConnexion.createStatement()
maRequete.SetPropertyValue("ResultSetType", 1004)   '(1003 FORWARD, 1004 SCROLL_INSENSITIVE, 1005 SCROLL_SENSITIVE)
r_Agent = maRequete.executeQuery(instrSQL)
r_Agent.last
w_Agent = r_Agent.getRow()								' Recup nbre. d'agent 
r_Agent.relative(-9999) 
while r_Agent.next

idAgent = r_Agent.Columns.getByName("RefAgent").String
cpt_RJ = r_Agent.columns.getByName("RelicatJours").double
valeur  = r_Agent.columns.getByName("NbrJoursDusAnnuel").double
cpt_TJA = valeur + cpt_RJ

' --------------------------------------------
' Traitement TableCongeLegaux
' --------------------------------------------
instrSQL = "Select * from TableCongeLegaux where" & chr(34) &  "IdRefAgentCL" & chr(34)& "="  & idAgent

maRequete = maConnexion.createStatement()
maRequete.SetPropertyValue("ResultSetType", 1004)   '(1003 FORWARD, 1004 SCROLL_INSENSITIVE, 1005 SCROLL_SENSITIVE)
r_Table = maRequete.executeQuery(instrSQL)

r_Table.last
w_I = r_Table.getRow()
leDoc = thiscomponent.drawPage.forms.getByName("MainForm").getByName("SubForm")

laGrille = leDoc.getByname("MainForm_Grid")

r_Table.relative(-9999)
ligne = 0
colonne = laGrille.getByName("Reste")
'xray colonne
while r_Table.next
	laCellule = laGrille.getCellByPosition(colonne ,ligne) 
	cpt_NJD =   r_Table.Columns.getByName("NbrJoursDus").double
	cpt_NJP = r_Table.Columns.getByName("NbrJoursPris").double
	cpt_T_NJD = cpt_T_NJD + cpt_NJD
	cpt_T_NJP = cpt_T_NJP + cpt_NJP
		if r_Table.isFirst then 
			cpt_Reste = cpt_TJA + cpt_NJD - cpt_NJP
			laCellule = laGrille.getCellByPosition(colonne ,ligne)
			laCellule.string = cpt_Reste
			else
			cpt_Reste = cpt_Reste + cpt_NJD - cpt_NJP 
				laCellule = laGrille.getCellByPosition(colonne ,ligne)
				laCellule.string = cpt_Reste
		end if		
ligne = ligne + 1
Wend
cpt_TJP = 0
cpt_NJD = 0
cpt_RJ = 0
cpt_TJA = 0
cpt_Reste = 0
Wend
' ----------------------------
' Deconnexion Base de Données
' ----------------------------
DeconnecterSource
'
End Sub
@+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Bonsoir Sanseau,

Je suis arrivé à faire la macro.
J'ai ajouté la colonne "Reste" à la TableCongésLégaux.
Dans le formulaire "congés Légaux" il y a un champ masqué à gauche de la fenêtre de sélection de l'agent, pour récupérer le champs RefAgent, j'ai pas trouvé mieux. Avec le navigateur de formulaire tu le verras rapidement.

J'abandonne le pied de page, je ne maitrise pas le remplacement du nom de l'agent à chaque changement d'agent. C'est peut-être impossible à faire?

Il y a quelques courriels, je t'avais proposé de faire un planning. Mais avant de commencer, si cela t'intéresse toujours, il faudrait que les dates "Du" et "Au" soient dans des colonnes différentes et non pas dans une seule. Cela oblige à entrer des valeurs dans les deux colonnes, même pour une seule journée , mais évite une usine à gaz pour traiter une seule colonne. Qu'en penses-tu?

A+ :wink:
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Hello DLE

T'es un champion de la macro :bravo: :bravo: :bravo:
Je regarde ça ce soir (ou demain) et j'adapterai la macro pour les autres formulaires
Le tout étant d'y arriver le champ masquer ne devrait pas être un soucis

Laisse tomber les pieds de pages (à part si le challenge te tente) car comme je te l'ai dis les états sont à remettre à chaque agent donc pas besoin d'avoir le nombre ou le numéro de la page de l'agent

Pour le planning je t'avais répondu que cela m'intéresse beaucoup, quitte à rajouter dans les tables les champs "DU", "DatesDébut", "Au", "DatesFin". Cela ne devrait pas alourdir trop la base et pour les macros on pourras toujours les adapter en rajoutant ces champs (ainsi que dans les états) du moins j'espère que cela ne va pas faire le bazar et que cela ne sera pas trop compliqué à faire
Donc je suis partant mais comme d'habitude je ne te serais pas d'un grand secours pour t'aider car je ne vois même pas comment tu comptes faire pour créer les plannings ( en faisant une trame dans un fichier calc et des macros comme )

Encore un grand merci pour ton travail
Mon offre tient toujours pour une surprise de fin d'année
Je viens de regarder la macro
Peux tu m'expliquer quelque truc?
Dans la sequence

Code : Tout sélectionner

with unFormulaire
		.first
		signet_depart = .bookmark
		.last
		signet_fin = .bookmark
		.first
je suppose que le premier ".first" c'est pour le premier enregistrement de congés
par contre "signet_depart = .bookmark" je ne vois pas ça signification
d'ailleurs je ne comprend pas la séquence
De plus je ne comprends pas pourquoi tu utilises ".double" au départ pour récupérer les valeur de la table agent
et ensuite des ".text" pour les autres valeurs dans les colonnes
Dernières interrogations
A quoi sert cette ligne

Code : Tout sélectionner

col_NJD = laGrille.getByName("NbrJoursDus")
Car on ne retrouve pas d'appel à "col_NJD" plus loin
Et ou as tu trouvé ".BoundField"?
@+
@+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Salut DLE

Pour te permettre de tester et surtout de te prendre la tête (mais tu aime les challenges), j'ai retravaillé la base pour le projet de planning
Donc j'ai modifié les tables (Suppression de "Dates" ajout de "Du", DateDebut","Au","DateFin" pour toutes les tables)
j'ai modifié les formulaires (Idem)
J'ai modifié le fichier EtatPortrait (Idem)
J'ai modifié la macro "EditionPorteait" global

Comme ça tu peux te faire la main pour le planning

Concernant la macro "calcul_Reste" , j'ai quelque problèmes
Sur le formulaire CL quand tu modifie un congé le calcul ne se fait pas automatiquement, d'ailleurs je me suis aperçu que le champ solde aussi (pour prendre en compte les modifications il faut fermer le formulaire et le rouvrir) Si je me sers du picto "Actualiser" dans la barre du bas la colonne "Reste" s'actualise bien mais pas le champ solde ?? (qui est basé sur une requête)
Sur le formulaire CE j'ai tenté d'adapter la macro calcul_reste
Donc j'ai suivi la procédure, j'ai créé le champ IdAgent , j'ai copié la macro et l'ai adapté avec les noms des champs, vérifié les noms des formulaires et sous formulaires, mais je n'ai aucun affichage dans la colonne Reste du formulaire ????? (je suis pas doué en macro)
Alors si tu pouvais regarder et me dire où j'ai merdé comme ça je pourrais corrigé et faire les autres formulaires

Bon Courage pour le planning (petite question comment compte tu t'y prendre??)

@+
Ci-joint la base modifié et l'état
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Bonsoir Sanseau,

Voici ma proposition de planning. Qu'en penses-tu?

Je vais regarder le problème d'enchainement des évènements maintenant, ainsi tu as tout le temps pour valider le planning.

A+ :wink:


Quelques réponses au mail du 3/12:
De plus je ne comprends pas pourquoi tu utilises ".double" au départ pour récupérer les valeur de la table agent
et ensuite des ".text" pour les autres valeurs dans les colonnes
C'est du au format des colonnes du formulaire, la colonne "Joursdus" par exemple est un champs formaté, donc du texte.
A quoi sert cette ligne

Code: Tout sélectionner
col_NJD = laGrille.getByName("NbrJoursDus")


Car on ne retrouve pas d'appel à "col_NJD" plus loin
A supprimer, c'était pour valider le format via Xray, pour le problème ci-dessus.
Et ou as tu trouvé ".BoundField"?
Dans la Bible et sur les forums ici et/ou US, je sais plus exactement.

Pour les bookmark c'est la seule façon que j'ai trouvé pour éviter d'avoir le message d'erreur indiquant qu'il n'y avait de bookmark de début et de fin à l'exécution. Je vais recherché plus précisement le cas.
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Bonsoir DLE

En attendant ta réponse j'ai continué de chercher le pourquoi du comment de la macro que j'ai adapté pour le formulaire CE et j'ai continué la même démarche pour les autres formulaires
Un truc que je ne m'explique pas c'est pourquoi dans ta macro de Calcul_Reste CL à cette ligne

Code : Tout sélectionner

while not (unFormulaire.isAfterLast)
		laCellule = colonne.value 
tu mets "value" est que ça fonctionne alors qu'avec les autres ça fonctionne pas (CE HS EM M)
Mois j'ai été obligé de mettre

Code : Tout sélectionner

	while not (unFormulaire.isAfterLast)
		laCellule = colonne.text
Pour ne pas avoir de message d'erreur et ça fonctionne ???
Edit du 10/12/2008
J'ai trouvé l'explication dans la grille la colonne est au format "champ numérique" alors que dans les autres grilles elles étaient en "champ formaté"
Sauf pour HS où j'ai encore un message d'erreur "variable d'objet non définie"
à la ligne

Code : Tout sélectionner

	if unFormulaire.isFirst then 		
			cpt_ResteHS = cpt_TH + cpt_NHD - cpt_NHP
			colonne.BoundField.updateDouble(cpt_ResteHS)< ===Ici
Donc ????
Un autre soucis (plus mineur mais embêtant surtout pour plus tard) où placer judicieusement l'appel de cette macro calcul ? Car en la plaçant dans les propriétés du contrôle de table (MainForm_Grid) dans "avant actualisation" à chaque fermeture j'ai l'impression qu'il actualise
agent par agent avant de fermer (donc avec 5 agents c'est pas très long mais avec 40 ça risque de durée)
Où placer cet appel ? sur le formulaire principal ? ailleurs ? dans un autre évènement ?

Je regarde ton travail demain et je l'intègrerai avec le reste pour le mettre en ligne (tu pourras tester les macros et voir pourquoi les problèmes de fonctionnement et les différences)

Merci
@+
Pu.... j'en reviens pas
Trop balèze la macro (même avec l'aide du bouquin) c'est très fort
:bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo:
Tout y est les années , les mois, le bissextile, les fériés (au fait il en manque 1 le 01/01/)
les codes couleurs
Franchement :super:
Ce n'est plus ma base c'est ta base :wink:
Ci joint une modif visuelle du planning
Voir si tu peux en tenir compte
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Bonjour Sanseau,

Je pense avoir fait toutes les corrections pour le planning.
Merci de le valider.
Après ton retour d'informations, je mettrai les commentaires et essaierai d'améliorer le code, dans la mesure de mes moyens.

A+ :)
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Bonjour DLE

Je teste le planning avec différent cas de figure pour l'instant tout va bien au niveau des dates et congés
Par contre la procédure de fusion et du traçage de trait en épaisseur 2.5 pour le passage d'une filière à une autre ne se fait pas
Pour être sur que la Maladie prime sur tout le reste je vais déplacer la séquence et la mettre en dernier
je vais revoir la macro enregistrer car je préfèrerais la placer en fin de création du planning et imposer le nom du fichier en reprenant l'année entrer en référence style "Planning_2008.ods" puis une autre macro en fin de Mise à jour qui enregistre le fichier en gardant le nom mais en rajoutant la date du jour style "Planning_2008_20_11_2008.ods"

J'ai pensé à prendre en compte l'impression sur imprimante noir et blanc (ça existe encore)
Donc pour ça je vais revoir les couleurs pour jouer sur les teintes de manière à faire des dégrader de gris mais aussi il faudrait selon le contexte insérer dans les cellules du texte (Exemple pour une période de congés légaux mettre CA ou CL pour les congés exceptionnels CE pour la maladie mettre AT ou AM etc ) en jouant la aussi sur la couleur de la police (Noir si gris clair, Blanc si gris foncé)
Mais pour le moment je ne sais pas comment intégrer ce texte (soit directement dans la macro, soit avec du formatage conditionnel du style "si style = congés légaux mettre CA" mais j'ai pas trouvé dans les options de la création de style ou dans le formatage conditionnel comment mettre du texte dans une cellule)

Voila c'est tout pour le moment
:bravo: :bravo: pour le boulot
Je continue à tester et te tiens au courant

@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Hello,

Bizarre, bizarre, je viens de faire un essai et la fusion des cellules "Filières" et trait de séparation sont corrects, comme le prouve cette copie-d'écran.

http://user.services.openoffice.org/fr/ ... ew&id=3756

a+
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

RE DLE

Effectivement Bizarre

Car pour le moment je n'ai touché à rien dans la macro
Pour être sur de la version du fichier et de la macro je joins le bout de code

Code : Tout sélectionner

' fusion des cellules d'une même filière, ligne séparatrice du filière en 2,5pt.
'
c_depart = f_planning.getCellRangeByName("firstline").cellAddress.column
l_depart = f_planning.getCellRangeByName("firstline").cellAddress.row
l_arrive =  l_depart + 1

while f_planning.getCellByPosition(c_depart ,l_depart).string <> "" 
	if f_planning.getCellByPosition(c_depart ,l_depart).String <> f_planning.getCellByPosition(c_depart ,l_arrive).String then
		f_planning.getCellRangeByPosition(c_depart,l_depart, c_depart, l_arrive - 1).Merge(true)
		f_planning.getCellByPosition(c_depart,l_depart, c_depart, l_depart).cellstyle= "Filière"
		l_depart = l_arrive
		laligne = f_planning.getCellRangeByPosition(c_depart,l_arrive - 1 , c_depart + 367, l_arrive - 1 )
		call bordure(laligne,true,false,false,false,oui)

	else
		l_arrive= l_arrive + 1
	end if
wend

avance.value = 30
A vérifié si une modif de ta part na pas été oublié ou sauvegardé car sur la version que j'ai "v6" je ne vois pas de style "Filière"
je l'ai trouvé donc ça vient pas de là
et le reste du code qui sert de tri au cas ou

Code : Tout sélectionner

Sub TrierAgent(lazone)
Dim configTri(1) As	New com.sun.star.table.TableSortField
Dim descrTri	As	Variant 

configTri(0).field = 0  'Filière
configTri(0).IsAscending= true
configTri(0).field = 1 'Agent
configTri(0).isAscending=true

descrTri = laZone.createSortDescriptor
setPropVal(descrTri, "SortFields" , configTri())
setPropVal(descrTri, "IsSortColumns" , false)
setPropVal(descrTri, "CopyOutputData" , false)
setPropVal(descrTri, "IsUserListEnabled" , false)
setPropVal(descrTri, "BindFormatsToContent" , false)
setPropVal(descrTri, "ContainsHeader" , false)
laZone.Sort(descrTri())
end Sub

Sub setPropVal(descr As Variant, nomProp As String, valProp As Variant) 
Const Titre = "Tableau des propriétés"
Dim w_X As Long
for w_X = 0 to Ubound(descr)
	if descr(w_X).Name = nomProp then
		descr(w_X).value = valProp
		Exit Sub
	end if
next 
MsgBox("Propriété inconnue : " & nomProp, 16, Titre) 
End Sub
@+
Edit du 12/12 19h10
Modification pour les macros d'enregistrement faites
J'ai remis la feuille de présentation et déplacé le bouton de création de calendrier dessus pour qu'il soit visible dés le lancement du fichier
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Re,

Je ne comprends pas, j'ai bien tous les styles, le code est identique. Je te renvoies une nouvelle version avec le code un peu plus clair. J'ai inséré aussi les routines pour enregistrer, là à toi de choisir.
Il ne reste plus qu'à voir le problème de déclenchement des macros de calcul "reste" et "solde" dans les formulaires, n'est-ce pas?

A+
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Re,

Désolé ça fonctionne toujours pas

Pour le style "Filière" j'avais mis un édit sur le post d'avant je l'ai trouvé mais ça fusionne toujours pas chez moi

Pour ce qui reste à faire
Effectivement amélioré les actualisations des formulaires pour les macros Calcul et les Requêtes Soldes car la mise à jours des champs ne se fais pas automatiquement dès changement ou ajout
Une petite Macro à rajouter dans le menu général pour lancer le planning (un petit bouton)
Et pour la base ça devrait le faire

Pour le Planning y a encore du boulot
Comme je te l' ai dit je regarde pour modifier les couleurs pour une impression en noir et blanc (donc pas de couleur trop foncé faut joué sur les nuances pour avoir lors de l'impression différent niveau de gris)
Et pour être sur de ne pas confondre je voudrais rajouter du texte dans les cellules genre CA pour les congés légaux, AM pour la maladie et qu'en fonction de la nuance de couleur de fond la couleur de police soit noire ou blanche

Il manque tout les traits intermédiaires (soulignement des noms, intérieur des mois horizontal et vertical, trait d'encadrement du bas pour fermer le contour du planning qui lui doit varié en fonction du nombre d'agent)

De quoi s'occuper d'ici la fin de l'année
ça tombe bien je suis bientôt en congés et j'ai pas le budget pour partir

@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Re,

Je ne comprends pas , mais au fait tu n'as pas la version 3.0 d'OpenOffice, pour voir :!:

Bonne soirée
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

RE

Si j'ai la 2.4.1 et la 3.0 aussi avec windows xp sp3 et mandriva 2008
Je n'ai pas testé sous tout les environnement et version (la j'ai testé qu'avec windows et 3.0)

Une piste sur les versions (un bogue)

@+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Moi aussi je suis en 3.0 avec windows XP SP3. Remet en ligne le modèle, pour voir si j'ai le problème!

A+
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Re

Voili voila
la version 7
Au fait j'ai vu des nouvelles séquence "agentAbsent" et j'ai bien aimé "sos"

Je mets aussi la version 6 tu verra les modif que j'avais fait
Edit du 12/12 23:05
Version 8 mix de la version 6 et 7
Changement des styles , Mise en page A3, zone d'impression définie sur 4 pages en largeur, suppression de la macro Enregistrement dans creation et petit modif de sauvegarde dans Proc_Planning
@+
Edit du 13/12 13:10
j'ai fait un essai sur Mandriva 2008 et OOo 2.4.1 et je me suis retrouvé face à une erreur inconnue après avoir accepté les macros et une fermeture d'OOo
Donc impossible d'ouvrir le fichier même en refusant les macros ça fait pareil
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1514
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Base Gestion des congés

Message par DLE »

Bonjour sanseau,

Ci-joint le version V8 (ça va carburer!) avec les modifs suivantes :
1) il y a une erreur de frappe dans les styles, il faut rectifier HeurepSup en HeureSup, j'ai des gros doigts.
2) J'ai inséré un texte dans les cellules correspondantes aux différentes absences d'un agent. Je ne peux ni centrer, ni fusionner les cellules d'une absence, car lorsqu'il y a chevauchement avec des congés maladie (par exemple) , le texte n'apparait pas, et il n'y a pas de chevauchement. J'ai laissé en commentaire le code qui permet la fusion et le centrage, tu peux le vérifier de visu, le tout est dans la macro "AbsenceAgent", le cas se produit sur l'agent SANGO.

Je joins aussi une copie écran, qui confirme que dans mon environnement j'ai bien la fusion et la ligne séparatrice des filières.
j'ai fait un essai sur Mandriva 2008 et OOo 2.4.1 et je me suis retrouvé face à une erreur inconnue après avoir accepté les macros et une fermeture d'OOo
Donc impossible d'ouvrir le fichier même en refusant les macros ça fait pareil
J'ai eu aussi la même erreur dans un environnement XP et OOO 2.4 sur un autre Pc, mais j'ai pas cherché plus loin, car il n'y a pas de JRE sur ce poste, c'est à faire.

A+
MacOS Sequoia 15.6 (iMac-M4) : AOO 4.1.15 , LibreOffice 25.2.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallel Desktop = Windows 11 & MacOS : AOO, Libreoffice.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Base Gestion des congés

Message par Sanseau »

Hello DLE

J'espere que tu n'as pas passé le Week-end sur le planning

J'ai téléchargé ta v8, et j'ai toujours le même problème sur les fusions des filières et le trait du bas de tableau
Je comprends pas d'où cela peut venir il faudrait que d'autres personne test sur leur config et nous informent
à toute fin utile mon JRE est le 1.6.0.11

Si je comprends bien la séquence absenceAgent gère tout les types de congé et cela fait moins de répétition de ligne dans la macro
Mais est ce que justement cela ne te pose pas se problème de chevauchement car avec la version 6 tu traitais type de congés par type de congés et le dernier écrasait les précédents
Donc ne vaudrait il pas refaire le système de traitement des type de congés comme la v6 en plaçant la maladie en dernier
Pour le cas Sango je ne peux pas te dire chez moi je n'ai pas mis de date donc rien ne s'affiche sur le planning pour lui

Je vais reprendre la v6 en la retravaillant d'après la v8 et je testerais différent cas

Bonne fin de soirée
@+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10