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

Modélisation Discussion :

Gérer les achats


Sujet :

Modélisation

  1. #21
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut formulaire fArticles
    Pour faciliter la lecture de la discussion, ce post intègre le contenu des posts : 11 et 15.


    Présentation du formulaire fArticles






    Points fonctionnels

    Ce formulaire est polyvalent en ce sens qu’il sert à la fois d’outil pour gérer la table tArticles, mais aussi de formulaire de recherche multicritères.

    * Le formulaire est présenté à la fois :
    - enregistrement par enregistrement, en mode simple dans la section Détail (les contrôles sont modifiables)
    - en vue d’ensemble, en mode continu dans la section PiedFormulaire (les contrôles sont non modifiables)

    * L’enregistrement actif dans le mode simple apparaît mis en évidence dans le mode continu.

    * Un double-clic sur un contrôle d’une ligne du mode continu, provoque l’activation de cet enregistrement.

    * Dans les listes modifiables, si l’utilisateur introduit un élément non encore prévu dans la liste, l’opportunité lui est offerte de l’ajouter dans la liste.

    * Le contenu de la liste des Sous-Catégories est limitée aux cas compatibles avec le choix d’une catégorie

    La source du formulaire principal fArticles

    La source est en fait une requête qui sélectionne dans tArticles les enregistrements qui satisfont aux critères suivants :
    - le nom de l’article : contient une chaîne de caractères spécifiée ou est vierge ;
    - la destination : une valeur ou est vierge ;
    - la famille : une valeur ou est vierge ;
    - l’unité : une valeur ou est vierge.

    A l’ouverture du formulaire, tous ces critères étant vierges, c’est l’entièreté de la table qui est affichée.
    Dès que l’utilisateur modifie un critère, la source est réactualisée (Me.Requery).

    Voici la requête qui va servir de filtre permanent



    La requête qui va servir de source sera donc :




    La source du formulaire en version continu
    est construite en suivant le même principe.

    Autres particularités techniques

    * Voir les contrôles zdtArticleIdDestination, zdtArticleIdFamille et zdtArticleidUnite.
    Ils ont une fonction technique ---> en rouge et non visibles.
    Ils reçoivent la valeur de l’id correspondant au choix effectué dans les listes correspondantes.

    * Examiner l’événement après MàJ de ces listes
    l’instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me.zdtArticleIdFamille = zdlFamille.Column(0)
    signifie que [Me.zdtArticleIdFamille] prend la valeur de la 1ère colonne de la requête qui sert de source à [zdlFamille] (column(0) car Access, ici, numérote à partir de zéro)

    * La liste des Sous-Catégories est limitée aux cas possibles déterminés par le choix d’une Catégorie.
    A la suite de mises à jour d’articles existants, il pourrait arriver que Catégorie et Sous-Catégorie deviennent incohérentes.
    Exemple, à l’origine on a
    Abricots sirop boite 3/1 Pâtisserie Ovoproduits
    et comme notre ami veut maintenant faire du pain spécial au goût d’abricot, il modifie en
    Abricots sirop boite 3/1 Boulangerie Ovoproduits
    Pour cette mettre cette incohérence en évidence, j’ai prévu un formatage conditionnel pour ces deux champs.
    Ce formatage fait appel à une fonction que voici :

    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
     Public Function CoherenceCategorie_SousCategorie() As Boolean
    On Error GoTo GestionErreur
     
    '      ? coherenceCategorie_SousCategorie
    'en français : le idCategorie du formulaire est-il égal
                  'au idCategorie que je trouve
                  'dans la table tSousCategories avec le idSousCategorie du formulaire ?
                  'si oui, il y a cohérence --> la fonction renvoie TRUE
    CoherenceCategorie_SousCategorie = (Forms!fArticles!zdtArticleIdCategorie = DLookup("idCategorie", "tSousCategories", "idSousCategorie=" & Forms!fArticles!zdtArticleIdSousCategorie))
    Exit Function
    GestionErreur:
    Select Case Err.Number
      Case 94  'nouvel article
        Exit Function
      Case Else
        MsgBox "Erreur inattendue dans CoherenceCategorie " _
                    & Err.Number & "  " & Err.Description, vbCritical
      End Select
    End Function
    * Pour ajout éventuel d’une nouvelle Sous-Catégorie, voici le code

    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
    Private Sub zdlSousCategorie_NotInList(NewData As String, Response As Integer)
        If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des SousCategories ?" _
               & vbLf & "Si oui, la Catégorie doit d'abord être complétée.", _
                            vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
            DoCmd.RunSQL "INSERT INTO tSousCategories ( SousCategorie, idCategorie, OrdreListe ) SELECT """ & NewData & """ AS Expr3, " _
                   & zdtArticleIdCategorie _
                   & "  AS Expr2, DMax(""OrdreListe"",""tSousCategories"")+1 AS Expr1;"
            'En français:
            'insérez dans la table tSousCategorie,
            'pour le champ SousCategoie : la nouvelle valeur proposée ;
            'pour le champ idCategorie : la valeur de [zdtArticleIdCategorie] du formulaire ;
            'pour le champ OrdreListe : incrémenter de 1. ---> ajout à la fin.
            Response = acDataErrAdded
        Else
            Response = acDataErrContinue
            Me.zdlCategorie.Undo
        End If
    End Sub
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  2. #22
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut Faire le point avant l'étape suivante
    Bonjour JeanYves,

    * Peux-tu dire :

    quelles améliorations souhaitées pour fArticles ?
    quelles améliorations souhaitées pour fPrixFournisseurs ?
    le ralentissement dû à la scission Frontale/Dorsale est-il gênant ?

    * Peux-tu poster une xxxData.mdb avec des données de test réalistes avec des prix fournisseurs.


    * Décrire ce que tu souhaites comme formulaire pour établir tes commandes.

    ----------------------
    Pour un début, j’ai écrit une fonction qui donne la liste des prix pour un produit donné.

    Voici le code :

    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
    Public Function BestOffre(Article As String)
    '           ? BestOffre("Jaunes d'œufs")
    Dim rst As Recordset, SQL As String
        'construire le sql de la sélection des offres remises pour ce produit
    SQL = "SELECT  ""Prix : "" & Format([PrixFournisseur],""#,#0.00 €"") & ""   date : "" & [PrixFournisseurDate] & ""   chez : "" & [FournisseurNom] AS Offre "
    SQL = SQL & "FROM tFournisseurs RIGHT JOIN (tArticles LEFT JOIN tPrixFournisseurs ON tArticles.idArticle = tPrixFournisseurs.PrixFournisseurIdArticle) ON tFournisseurs.idFournisseur = tPrixFournisseurs.PrixFournisseurIdFournisseur "
    SQL = SQL & "WHERE (((tPrixFournisseurs.PrixFournisseur) Is Not Null) AND ((tArticles.ArticleNom) = """ & Article & """)) "
    SQL = SQL & "ORDER BY tPrixFournisseurs.PrixFournisseur;"
        ' Ouverture du recordset
    Set rst = CurrentDb.OpenRecordset(SQL)
        'si pas d'offres
    If rst.RecordCount = 0 Then BestOffre = "|*|Pas d'offre": Exit Function
         'concaténer toutes les offres en parcourant le RecordSet
    rst.MoveFirst
    Do Until rst.EOF
       BestOffre = BestOffre & "|*|" & rst("Offre")
       rst.MoveNext
    Loop
    Set rst = Nothing
    End Function
    L’idée, c’est construire le sql de la requête dont voici le graphique :



    Et ensuite, en lisant le RecordSet, produit par cette requête, concaténer toutes les offres présentes pour cet article.
    Dans l’ordre croissant des prix.

    Voir la requête rOffreParArticle, pour un exemple d’utilisation de cette fonction.
    Elle pourrait servir comme point de départ pour construire le formulaire qui te servira à préparer tes commandes.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 10
    Points
    10
    Par défaut
    Bonsoir Claude

    Désolé d'avoir tardé à te répondre, beaucoup de boulot en ce moment

    Pour le formulaire fArticles
    -> Possibilité de supprimer un article
    -> Bouton ajouter
    -> Bouton supprimer le filtre
    -> Classer les sous catégorie par ordre alphanumerique

    Pour le formulaire fPrixFournisseur
    -> Possibilité de supprimer un article chez un fournisseur (notament en cas d'erreur de saisie)

    Ensuite j'ai une erreur lorsque je souhaite saisir un tarif a une date différente:
    Message -> "Vous ne pouvez pas ajouter ou modifier un eregistrement car l'enregistrement associé est requis dans la table tArticle"
    Puis
    Message -> "Impossible d'enregistrer cet enregistrement pour l'instant (...)"
    Pourtant ces enregistrements sont bien présent dans la table tPrixFournisseur et dans la requete rOffrParArticle.
    Au passage super cette requete

    Pour moi je n'ai pas de problème de ralentissement dû à la scission Frontale/Dorsale

    Maintenant pour mes commandes...

    Je pense qu'il me faudrai un formulaire avec un systeme de recherche un peu comme dans le formulaire fArticle.

    Je sélectionne le produit à commander et il faudrai afficher le tarif (le dernier en vigeur si tarif sur facture, soit le tarif "prix fournisseur" si il y a une offre pour le produit), pour chaque fournisseurs proposant le produit.

    Ensuite il me faudrai simplement entrer la quantité à commandé (une fois le fournisseur sélectionné)

    Voila comment je vois ce formulaire...

    Encore Merci pour ton aide formidable

    Bon je joint le fichier xxxData.mdb , ou j'ai entré pas mal de données

  4. #24
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonsoir jeanyves31,

    Merci pour le fichier de test qui est bien étoffé !

    J'examine tes remarques et te reviens dans un jour ou deux.

    Bon travail !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #25
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour jeanyves31,

    Pour le formulaire fArticles
    -> Possibilité de supprimer un article
    -> Bouton ajouter
    -> Bouton supprimer le filtre
    -> Classer les sous catégories par ordre alphanumérique
    Possibilité de supprimer un article :

    Il suffit de sélectionner l’enregistrement

    et enfoncer la touche <Delete>

    Bouton ajouter
    fait

    Bouton supprimer le filtre
    fait

    Classer les sous catégories par ordre alphanumérique :
    fait (voir la requête du contenu de la zone de liste)



    Pour le formulaire fPrixFournisseur
    -> Possibilité de supprimer un article chez un fournisseur (notamment en cas d'erreur de saisie)
    Ensuite j'ai une erreur lorsque je souhaite saisir un tarif a une date différente:
    Message -> "Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table tArticle"
    Possibilité de supprimer un article chez un fournisseur
    voir plus haut

    Ajouter ou modifier un enregistrement
    La requête Source n’était pas correcte. Maintenant OK.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #26
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut fCommandes
    formulaire fCommandes
    ________________________________________
    Attention, une nouvelle table a été ajoutée au modèle.
    Cliquez sur le bouton « Réattacher les tables » du tableau de bord.


    Présentation du formulaire fCommandes



    Points fonctionnels

    Formulaire servant à construire une commande, éventuellement à plusieurs fournisseurs.
    - Différents filtres permettent de limiter la liste des articles affichés.
    - Les enregistrements articles dont les champs Quantité et Fournisseur ont été complétés sont colorés en jaune.
    - Lorsque la commande est complétée, un clic sur le bouton « Imprimer les bons de commande » édite l’état suivant :




    Points techniques : cela fonctionne en trois étapes

    1ère étape construire la tables des données utiles pour la commande

    Le formulaire est basé sur une table, tEncodageCommandes, qui est reconstituée à chaque utilisation du formulaire.
    C’est le clic sur le bouton Encoder Commandes du tableau de bord qui provoque cette reconstitution.
    Voici le code associé au clic de ce bouton :
    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
    Private Sub btEncoderCommandes_Click()
    Dim sql As String
    'alimenter la table tCommandes
    DoCmd.SetWarnings False
         'vidange de la table tEncodageCommandes
      DoCmd.RunSQL "DELETE tEncodageCommandes.EncoComArticle FROM tEncodageCommandes;"
         ' reconstitution
      sql = "INSERT INTO tEncodageCommandes ( EncoComArticle, EncoComUnité, EncoComOffres ) "
      sql = sql & "SELECT tArticles.ArticleNom, tUnites.Unite, bestOffre([ArticleNom]) AS Offres "
      sql = sql & "FROM tUnites INNER JOIN tArticles ON tUnites.idUnite = tArticles.ArticleidUnite "
      sql = sql & "ORDER BY tArticles.ArticleNom;"
    DoCmd.RunSQL (sql)
    DoCmd.SetWarnings True
    DoCmd.OpenForm "fCommandes"
    End Sub
    Voici l’équivalent graphique de la requête ajout de ce code :



    Cette requête utilise la fonction BestOffre que voici

    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
    Public Function BestOffre(Article As String)
    '           ? BestOffre("Jaunes d'œufs")
    Dim rst As Recordset, sql As String
        'contruire le sql de la sélection des offres remises pour ce produit
    sql = "SELECT  Format([PrixFournisseur],""#,#0.00 €"") & "" le "" & [PrixFournisseurDate] & "" : "" & [FournisseurNom] AS Offre "
    sql = sql & "FROM tFournisseurs RIGHT JOIN (tArticles LEFT JOIN tPrixFournisseurs ON tArticles.idArticle = tPrixFournisseurs.PrixFournisseurIdArticle) ON tFournisseurs.idFournisseur = tPrixFournisseurs.PrixFournisseurIdFournisseur "
    sql = sql & "WHERE (((tPrixFournisseurs.PrixFournisseur) Is Not Null) AND ((tArticles.ArticleNom) = """ & Article & """)) "
    sql = sql & "ORDER BY tPrixFournisseurs.PrixFournisseur;"
        ' Ouverture du recordset
    Set rst = CurrentDb.OpenRecordset(sql)
        'si pas d'offres
    If rst.RecordCount = 0 Then BestOffre = "|*|Pas d'offre": Exit Function
         'concaténer toutes les offres en parcourant le RecordSet
    rst.MoveFirst
    Do Until rst.EOF
       BestOffre = BestOffre & "|*|" & rst("Offre")
       rst.MoveNext
    Loop
    Set rst = Nothing
    End Function
    L’idée, c’est construire le sql de la requête dont voici le graphique :



    Et ensuite, en lisant le RecordSet, produit par cette requête, concaténer toutes les offres présentes pour cet article.
    Dans l’ordre croissant des prix.

    2ème étape : Ouvrir le formulaire et aménager sa source.
    C’est la même philosophie que pour les formulaires fArticles et fPrixFournisseurs.
    On se base sur la requête rFiltrefCommandes pour prendre en compte les critères de sélection de l’utilisateur.
    Voici sa représentation graphique.




    La source du formulaire correspond à ceci :



    3ème étape : Ouvrir l’état de cette commande
    La source : la table tEncodageCommandes en sélectionnant les enregistrements pour lesquels une quantité et un fournisseur ont été mentionnés.

    ---------------------------
    Examine à ton aise.
    J'attends tes réactions pour continuer.

    Cordialement.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 10
    Points
    10
    Par défaut
    Bonjour Claude

    Je crois que tu as oublier le fichier...
    Je suis impatient de pouvoir tester....

    @+

  8. #28
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Avec mes excuses.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 10
    Points
    10
    Par défaut
    Bonsoir Claude

    Formidable ton travail!

    Tout a l'air de fonctionner...Merci

    J'ai une petite sugestion à faire...
    En fait je trouve que dans le formulaire fCommandes, les offres des fournisseurs ne sont pas trop lisible...Surtout lorsqu'il y en a plusieurs pour un meme produit;

    Serai t il possible de "regroupper" ces offres dans un sous formulaire? du style date, NomFournisseur, Prix

    Je m'explique: lorsque on sélectionne un produit, on affiche automatiquement dans ce sous formulaire l'historique des offres, si elle existe.

    Bonne soirée, @+

  10. #30
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Salut,

    Tu comptes conserver les offres ?

    Mon idée était de ne conserver que la dernière offre pour chaque "article/fournisseur".

    Donc s'organiser pour récolter les offres (tarifs que tu reçois sans doute) et les prix sur la facture.
    Un nouveau prix pour un "article/fournisseur" chasserait l'info précédente.

    Pourquoi aurais-tu besoin d'un historique des offres.
    Historique des prix facturés, ça je comprends. Mais des prix offerts...

    Quel est ton point de vue ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  11. #31
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    A l'occasion, retire les pièces jointes périmées

    20101211ACHATS.zip

    20101214AchatsData.zip
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  12. #32
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Vois si ceci te convient mieux :

    Pour chaque enregistrement actif, les offres (actuellement max 10) s’affichent dans la section entête.
    Un double-clic sur une offre affichée ---> le champ fournisseur est complété et le curseur se positionne sur la quantité à commander.

    Images attachées Images attachées  
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  13. #33
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 10
    Points
    10
    Par défaut
    Bonjour Claude

    Ta derniere version me convient parfaitement! juste une petite chose si c'est réalisable, ce serai de mettre dans une couleur différente l'offre la plus intéressante, mais bon c'est plus du "confort"....

    Je ne souhaite pas garder l'historique des offres, d'ailleur ca ne servirait pas à grand chose. l'Historique des commandes oui....

    Voila...
    @+

  14. #34
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    C'est toujours la 1ère à gauche !
    Elles sont classées dans l'ordre croissant des prix.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  15. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    A l'occasion, retire les pièces jointes périmées

    20101211ACHATS.zip

    20101214AchatsData.zip
    heu suis nul! comment fait t'on pour retirer les pieces jointes...

  16. #36
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Je ne souhaite pas garder l'historique des offres
    Il faut donc prévoir, dans le formulaire d'encodage des offres, que :
    - si pour cet article, il y a déjà une offre de ce fournisseur, il faut l'évacuer avant d'introduire la nouvelle.

    OK ?

    -------------------------

    l'Historique des commandes oui....
    Ce n'est pas plutôt les factures fournisseurs qui devraient servir de base.
    Parfois, il ne peux livrer ce que tu as commandé et en plus, le prix pourrait être différent de celui stocké dans la tPrixFournisseurs.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  17. #37
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    heu suis nul! comment fait t'on pour retirer les pieces jointes
    Tu cliques sur Tab. de bord dans le bandeau ci-dessus.
    ---> nouvel écran avec sur la gauche une bande bleue Tableau de bord
    Tu cherches la rubrique pièces jointes et tu suis les instructions.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #38
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Il faut donc prévoir, dans le formulaire d'encodage des offres, que :
    - si pour cet article, il y a déjà une offre de ce fournisseur, il faut l'évacuer avant d'introduire la nouvelle.

    OK ?.
    Tout a fait ca

    Citation Envoyé par ClaudeLELOUP Voir le message
    Ce n'est pas plutôt les factures fournisseurs qui devraient servir de base.
    Parfois, il ne peux livrer ce que tu as commandé et en plus, le prix pourrait être différent de celui stocké dans la tPrixFournisseurs.
    Oui biensur c'est la facture qui doit servir... entre les ruptres, les prix qui changent....
    Au faite ponctuellement certain produits peuvent être en "promo". Ce n'est donc pas une "offre", car ce tarif est limité dans le temps. Opération souvent lier à l'achat en grande quantité...
    Peut être que lors de la validation du bon de commande, avec la facture, il serai bien de pouvoir le précisser, via une case à cocher par exemple.

    @+

  19. #39
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Tu cliques sur Tab. de bord dans le bandeau ci-dessus.
    ---> nouvel écran avec sur la gauche une bande bleue Tableau de bord
    Tu cherches la rubrique pièces jointes et tu suis les instructions.
    Ok Merci!

  20. #40
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    N'oublie pas que pour traiter l'information, il faut encoder.
    Tu dois éviter que l'utilisation ne devienne un fardeau !
    A mon avis, quand le papier "commande" est imprimé, tu attends de recevoir la facture, tu vérifies et tu mets le bon à la poubelle (papier à recycler !).

    Tu encodes la facture pour l'historique.
    A cette occasion, on devrait peut-être décider (case à cocher) si le prix facturé doit venir remplacer le prix offert éventuel.

    OK ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

Discussions similaires

  1. Application libre pour gérer les achats
    Par JauB dans le forum Forum général ERP
    Réponses: 0
    Dernier message: 17/10/2008, 13h14
  2. [D5][SQL Server] Conserver des images dans la BDD
    Par FONKOU dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2008, 19h58
  3. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 15h34
  4. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 09h44
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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