Calcul dans un fichier
Stagiaire WDF
Inscrit:
28/01/2006 12:29
Post(s): 15
Bonsoir à tous...

Je suis également débutant...

Mon souhait: Dans un fichier (table):
1 rubrique date
1 rubrique format numérique
Je voudrais qu'à chaque lancement de mon prg, que la rubrique numérique affiche en nombre de jours la différence entre la date du jour et la date entrée dans le champs date lors de sa saisie...

Quel code et ou l'entrer ?

Merci de votre patience envers une personne étant tré loin du niveau de ce forum...

Contribution le : 25/03/2006 22:01
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
DSI WDF
Inscrit:
12/09/2004 11:07
De aude
Post(s): 279
Bonsoir et bienvenue,
Il faut utiliser la fonction "DateDifférence()"(voir Aide WD).
Vous lancer votre code soit dans l'initialisation de la fenetre ou en déclaration globale du projet.
Vous récupérer la derniere date de la table avec la fonction "HLitDernier()".
En espérant avoir aidé!
Bon courage.

Contribution le : 26/03/2006 17:06
_________________
...
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Anonyme
Merci pour la réponse, mais je patauge encore,

Je connai un peu la fonction "Datedifference()", mais je ne trouve pas le bon code pour faire fair le calcul dans la base.

J'avais préalablement utilisé cette fonction entre deux champs d'une fenêtre, mais le calcul ne se faisait (le champs devant afficher le résultat en nombre de jours) qu'à chaque fois que je sortais du champ de saisie de la date. Ce qui n'était pas satisfaisant,je cherche donc a automatiser la mise a jour des résultats sans y arriver.

Je désire juste qu'une rubrique affiche en nombre de jours la différence entre la date du jour oul'on utlise le prog et la date entrée préalablement dans une rubrique et que ce calcul se fasse au lancement du programme.

J'espère avoir été plus clair, mais c'est difficile d'écrire ce que l'on recherhce

Contribution le : 27/03/2006 18:49
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Stagiaire WDF
Inscrit:
13/04/2005 13:54
Post(s): 32
Bonjour,
Vous pouvez rechercher une solution avec l'utilisation d'un trigger après lecture. Ce trigger pouvant alimenter une variable globale.
Voir l'aide sur les triggers.

Bon développement.

Contribution le : 28/03/2006 08:26
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Ici mon champs de saisie de date se nomme 'txtDateSaisie'
Le code sera saisie à la sortie du champs en question
//Ici on récupère le nom des champs manipuler
sDateSaisie est une chaîne = txtDateSaisie..Nom
sDateDiff est une chaîne = lblNbJours..Nom

//On récupèere la date du jour sous forme d'entier
nDateJour est un entier = DateVersEntier(DateSys())

//On vérifie si la date saisie est une date valide
SI PAS DateValide({sDateSaisie,indChamp}) ALORS RETOUR

//On récupère la date saisie sous forme d'entier
nDateSaisie est un entier = DateVersEntier({sDateSaisie,indChamp}..Valeur)

//On calcul le nombre de jour entre les deux dates
{sDateDiff,indChamp} = NumériqueVersChaîne(nDateJour - nDateSaisie)


Note :
{sDateDiff,indChamp}
Cette syntaxe permet de faire de l'indirection sur les champs
sDateDiff contient le nom champs manipulé
indChamp cette constante permet d'optimiser en indiquent qu'il s'agit d'un champs.
les {} permettent de faire de l'indirection.

Contribution le : 28/03/2006 11:09
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Anonyme
Merci Dc Charly

Celà marche dans une fenêtre, mais ça revient un peu au départ de mon problème, comment faire pour que ce calcul se fasse sur la table entière à l'ouverture du programme ?

J'ai testé dans la fenêtre, cela marche effectivement mais chaque fois que l'on quitte le champs date, ce qui n'est pas rentable, je ne peux pas tous les jours ouvrir chaque fenêtre de saisie, aller dans chaque champs date et les valider chacun a son tour,

Merci encore pour vous pencher sur ma demande qui vous parait basic mais qui est pour moi insoluble

Contribution le : 28/03/2006 20:30
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Si il s'agit de l'affichage dans une fenêtre de type fiche il va y avoir deux cas :
Création
Dans ce cas le code fourni ira très bien et aucune modif nécéssaire sauf si ce n'est que de mettre le code dans une procedure que l'on pourra appeler proAfficheDateDiff()
Par conséquent le code à la sortie du champ deviendra:
proAfficheDateDiff()


Modification
Dans ce cas il faut faire le calcul une fois les champs renseignés et y insérer ce type de code:
Si ModeFen <> "Création" alors
 proAfficheDateDiff()
Fin

Ainsi le code sera effectué à l'ouverture de la fenêtre

Si maintenant tu veux effectuer ce calcul à partir d'une table il te faudra mettre ce code dans le bloc :
'Affichage d'une ligne'

Contribution le : 29/03/2006 11:45
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Stagiaire WDF
Inscrit:
28/01/2006 12:29
Post(s): 15
Merci pour ton code DcCharly,

Je l'ai placé dans l'affichage d'une ligne de Table, car je souhaite que les calculs se rafraichissent régulièrement en ouverture

Mais ça me retourne une erreur au test qui signale un mauvais format de date.. je ne vois pas à quel niveau cette erreur se trouve

Contribution le : 30/03/2006 18:13
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Les champs qui contiennent les dates doivent être de type date et non en type Chaine, de plus la valeur retournée doit être au format AAAAMMJJ.

Si toute fois les dates sont au format chaîne alors il faut modifier le procédure proAfficheDateDiff()
PROCEDURE proAfficheDateDiff()
sChampResultat est une chaine = lblNbJours..nom
sDateSaisie est une chaîne = txtDateSaisie..Nom
sDateDiff est une chaîne = lblNbJours..Nom

nDateJour est un entier = DateVersEntier(DateSys())

SI PAS DateValide(ChaîneVersDate({sDateSaisie,indChamp})) ALORS RETOUR
nDateSaisie est un entier = DateVersEntier(ChaîneVersDate({sDateSaisie,indChamp}))
sDateDiff = NumériqueVersChaîne(nDateJour - nDateSaisie)
{sChampResultat,indChamp} = sDateDiff

Contribution le : 31/03/2006 14:28
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Stagiaire WDF
Inscrit:
28/01/2006 12:29
Post(s): 15
Super génial Dc Charly,

Testé ça marche impeccable, on peut dire que quand ton code est malade il te faut voir un Dc...

Ca m'enlève une bonne épine du pied, ma table commençant a sérieusement se remplir, ce calcul devenait indispensable...

Encore merci pour votre dévouement à tous...

Contribution le : 01/04/2006 09:14
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Stagiaire WDF
Inscrit:
28/01/2006 12:29
Post(s): 15
Juste un petit bémol

J'ai placé cette procédure dans le bloc "affichage d'un ligne de Table, cela marche trés bien dans la table, les champs se mettent à jour immédiatement, mais par contre quand j'ouvre la fenêtre fiche relative a une ligne de la table, le champ en question (datediff) n'est pas à jour.
L'état qui doit afficher les entrées dont la "datediff" dépasse une certaine valeur, ne lesprends pas en compte,

En fait on dirait que la table ne se met pas à jour alors que la fenêtre table affiche la bonne valeur ...

J'espère avoir été compréhensible...

Contribution le : 01/04/2006 09:33
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Selon le calcul fourni celui ci n'est en aucune facon enregistré physiquement dans le fichier.

il faut donc appliquer le meme mode de calcul au niveau de la fiche en tenat compte du mode de fonctionnement de la fiche création ou modification.

Contribution le : 01/04/2006 16:35
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Stagiaire WDF
Inscrit:
28/01/2006 12:29
Post(s): 15
Re..

J'ai tenté depuis ce matin diverses solutions mais rien ne marche.
La table se trouve dans une fenêtre avec parcour, une fiche s'ouvre pour nouveau ou modifier, j'ai placé le code également dans la fiche, cela fonctionne, la fiche affichant la bonne valeur de sdatediff.
Mais le problème est que le fichier ne se met a jour que de la valeur traitée par la fiche. Alors que je voudrai que toute les valeurs se mettent à jour dans le fichier.

J'ai tenté avec ecranversfichier dans la fenêtre de la table, cela ne marche pas.

Je me noie peut etre dans un verre d'eau, mais je tourne en rond depuis ce matin...

Contribution le : 01/04/2006 17:03
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Stagiaire WDF
Inscrit:
28/01/2006 12:29
Post(s): 15
En fait n'y aurait il pas une solution plus simple de faire effectuer ce calcul au lancement du programme, ce calcul se faisant directement dans le fichier sur le disque dur pour toutes les entrées?
A ce moment là la table, l'état etc afficheraient les bonnes valeurs à leur ouverture ...

Contribution le : 01/04/2006 18:12
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

A moins que vous aillez un besoin explicite de cette valeur dans le fichier, vous pouvez créer une procédure en 'One shoot' pour mettre à jour cette valeur dans le fichier.
POUR TOUT <Fichier>
  //Ici la fonction
  HModifie(<Fichier>)
FIN


Cette procédure n'à lieu d'être exécutée qu'une seule fois puisque les nouvelles valeurs seront misent à jour via la fiche.

Contribution le : 03/04/2006 02:00
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
Anonyme
Désolé mais ça ne marche pas...

Les données dans le fichier ne se mettent pas à jour, j'ai besoin de ces données à jour dans le fichier car un état s'y réfère pour sortir les données dépassant une certaine valeur.

Je ne suis pas encore en état de tout comprendre, je débute et ne peux m'y consacrer autant que je voudrais.

Contribution le : 03/04/2006 18:26
Créer un fichier PDF de la contribution Imprimer


Re: Calcul dans un fichier
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
si j'ai bien compris ton principal problème est de sortir un état qui n'imprime que les enregistrements dont la différence entre la date du jour et celle dans ta rubrique fichier est supérieur à une valeur donnée

Alors pourquoi ne pas mettre la condition dans le filtre de ton état tout simplement.

si datedifference()>x alors renvoyer vrai sinon renvoyer faux

Contribution le : 02/05/2006 22:38
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2