Somme dans une vue et sélection d'une période

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Somme dans une vue et sélection d'une période

Messagepar Christine » 05 Déc 2003 à 08:29

Bonjour...J'ai une vue qui comporte dans une première colonne une catégorie, dans une deuxième colonne une date d'achat et dans une troisième colonne un montant total d'achat.J'ai créé un masque dans lequel l'utilisateur choisit la catégorie (champ de liste déroulante). Dans un bouton, j'ai mis une formule qui permet de calculer le total des achats pour la catégorie choisie.J'aimerais que l'utilisateur puisse entrer des dates début et fin pour sa requête. Je ne vois pas du tout comment faire. Qui aurait une idée (en formule si possible, je ne connais pas le LotusScript) ? Merci d'avance... Je suis perdue !Voici le code entré dans le bouton :h := @DbLookup( "" : "" ; "" ; "Achats";@Text(Categorie);5 ) ;Total :=@Sum(h);@Prompt( [OK] ; "Total par catégorie" ; "Total des achats pour la catégorie \" " + Categorie + " \" : " + @Text( Total ))
Cordialement,
Christine.
Avatar de l’utilisateur
Christine
Maître-posteur
Maître-posteur
 
Message(s) : 464
Inscrit(e) le : 17 Déc 2004 à 10:36
Localisation : Bourgogne

Re: Somme dans une vue et sélection d'une période

Messagepar polbusse » 05 Déc 2003 à 09:38

Pour ce genre de choses, un agent de recherche LotusScript marche très bien.voici la méthode a suivre : - créer un masque avec les champ date_debut et date_fin - ajouter un bouton @Command([ToolsRunMacro];"AgtRecherche") - créer un agent "AgtRecherche" - créer un champ "Resultat" de type texteRicheCalculé - affecter le code suivant à l'agent (ce code n'affiche q'un message bidon pour l'instant)Dim session As New NotesSessionDim db as NotesdatabaseDim Mask As NotesDocumentDim Result As NotesRichTextItemOn Error Goto Erreur Set Mask = session.DocumentContextSet db = session.CurrentDatabase If Not Mask.getfirstitem("Resultat") Is Nothing Then Call Mask.removeitem("Resultat")Set Result = Mask.Createrichtextitem("Resultat") 'Set view = db.GetView("VwRechercheByDate")'Call view.refresh()Result.AppendText("<table><tr><td> affichage bidon</td></tr></table>")Exit SubErreur :dim mess as stringmess= "AgtRecherche-initialize : L'erreur n°" & Str(Err) & "est survenue : " & Error$ & ", ligne " & ErlResult.AppendText(mess)
polbusse
 

Re: Somme dans une vue et sélection d'une période

Messagepar Christine » 05 Déc 2003 à 10:21

Merci beaucoup pour ton aide.J'ai essayé ce que tu suggères, mais je bloque... Désolé, je n'ai jamais utilisé de LS.- Quand je crée l'agent, dans la zone "Quels documents doit-il traiter", que dois-je sélectionner ? Pour l'instant, j'ai mis tous les docs.- Où dois-je saisir le code LS ? D'habitude en formule, je n'ai qu'un évènement "Action" à gauche de la fenêtre de programmation. Quand je passe en LS, il y en a 4 : (Options), (Declarations), Inizialize et Terminate.Au secours !!!
Cordialement,
Christine.
Avatar de l’utilisateur
Christine
Maître-posteur
Maître-posteur
 
Message(s) : 464
Inscrit(e) le : 17 Déc 2004 à 10:36
Localisation : Bourgogne

Re: Somme dans une vue et sélection d'une période

Messagepar polbusse » 05 Déc 2003 à 11:36

Pas de panique.La cible c : Aucune.(mais tous les docs doit marcher aussi).les options c pour les bibliotheques : rien a mettreles déclarations c pour les var globales : rien a mettrel'initiliaze c la procédure principale : mettre tout le code dedanset terminate je n'ai jamis su à quoi ce servait.
polbusse
 

Re: Somme dans une vue et sélection d'une période

Messagepar Christine » 05 Déc 2003 à 11:48

OK, y n'y a plus d'erreur de compilation.Je teste donc...Lorsque je clique sur le bouton, il ne se passe rien... hormis le curseur de la souris qui se transforme en sablier. Le message n'apparait pas.Petite précision : l'appli ne tourne qu'en client notes.Peux-tu m'aider à avancer un peu ?
Cordialement,
Christine.
Avatar de l’utilisateur
Christine
Maître-posteur
Maître-posteur
 
Message(s) : 464
Inscrit(e) le : 17 Déc 2004 à 10:36
Localisation : Bourgogne

Re: Somme dans une vue et sélection d'une période

Messagepar polbusse » 05 Déc 2003 à 13:46

aaaaaaaaaaaaaaaaaaarrgh...J'aurais du le préciser avant c pour client web. sinon ca peu fonctionner sous client notes en l'ouvrant via une url.ca conviendrait ??
polbusse
 

Re: Somme dans une vue et sélection d'une période

Messagepar Christine » 05 Déc 2003 à 13:49

Je crois que je vais te faire désespérer...Via l'url, ça ne va pas être possible...
Cordialement,
Christine.
Avatar de l’utilisateur
Christine
Maître-posteur
Maître-posteur
 
Message(s) : 464
Inscrit(e) le : 17 Déc 2004 à 10:36
Localisation : Bourgogne

Re: Somme dans une vue et sélection d'une période

Messagepar polbusse » 05 Déc 2003 à 13:50

et pourquoi ?? si ce n'est pas indiscret..
polbusse
 

Re: Somme dans une vue et sélection d'une période

Messagepar Christine » 05 Déc 2003 à 14:26

Les utilisateurs n'ont pas d'accès Internet.
Cordialement,
Christine.
Avatar de l’utilisateur
Christine
Maître-posteur
Maître-posteur
 
Message(s) : 464
Inscrit(e) le : 17 Déc 2004 à 10:36
Localisation : Bourgogne

Re: Somme dans une vue et sélection d'une période

Messagepar PhilippeG » 05 Déc 2003 à 17:11

Bonjour, voila un peu de code à mettre dans un bouton dans ton documentJ'ai supposé : - que la vue qui contient les catégorie s'appele "Achats"- Les champs qui contiennent les dates de bornage s'appelent date_debut et date_fin- les documents de la vue achats ont un champ date_achatdis moi si tu rencontres un problème car je n'ai pas testé (je n'ai pas de base avec les bons noms de champs et de vue)bon week endSub Click(Source As Button) Dim session As New notesSession Dim db As NotesDataBase Dim view As NotesView Dim doc As NotesDocument Dim uiws As New NotesUiWorkSpace Dim uidoc As notesUiDocument Dim DateTimeDebut As NotesDateTime Dim DateTimeFin As NotesDateTime Dim DateTimeAchat As NotesDateTime Dim DateDebut As String Dim DateFin As String Dim DateAchat As String Dim total As Integer Set db= session.CurrentDataBase Set view = db.getView("Achats") Set doc = view.GetFirstdocument Set uidoc = uiws.currentdocument DateDebut = uidoc.FieldGetText("Date_Debut") DateFin = uidoc.FieldGetText("Date_Fin") DateAchat = Cstr(doc.date_achat(0)) Set DateTimeDebut = New NotesDateTime(DateDebut) Set DateTimeFin = New NotesDateTime(DateFin) total = 0 Do While Not (doc Is Nothing) Set DateTimeAchat = New NotesDateTime(DateAchat) If DateTimeAchat.TimeDifference(DateTimeDebut) > 0 Then 'La date achat est antérieur à la date spécifiée Else If DateTimeAchat.TimeDifference(DateTimeFin) < 0 Then 'La date achat est postérieure à la date spécifiée Else total = total + doc.total(0) End If End If Set doc = view.GetNextDocument(doc) Loop Messagebox "Le total des achats entre le " + dateDebut + "et le " + dateFin + " est de " + Cstr(Total) End Sub
PhilippeG
 


Retour vers Développement

cron