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

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

WinDev Discussion :

Table sans selection / avec selection


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut Table sans selection / avec selection
    Bonjour,

    Encore un souci, je vais essayer de vous expliquer la problématique et de l'imagé.

    Je prépare une facture, dans une table avec une colonne ID_Article, une désignation, etc....
    A chaque sortie de ligne j'enregistre les données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SI TABLE_DORLIGPI.COL_DORLIGPI_ID[TABLE_DORLIGPI]="" ALORS
    	sArticleEnCours est une chaîne = TABLE_DORLIGPI.COL_NumArticle[TABLE_DORLIGPI] // On note le numéro d'article sur lequel on se trouve
     
    	HTransactionDébut()
    	HLitRecherche(ARTAG_MANP,NumArticle,sArticleEnCours) // Puis on se place sur l'article dans la BDD
    	ARTAG_MANP.QuantitéEnStock=ARTAG_MANP.QuantitéEnStock-TABLE_DORLIGPI.COL_Quantitée
    	HModifie(ARTAG_MANP,hNumEnrEnCours)
    	HTransactionFin()
    FIN
    J'ai pour le moment ajouté les 1ère closes (SI TABLE_DORLIGPI.COL_DORLIGPI_ID[TABLE_DORLIGPI]="" ALORS) car, d'où ma question.
    Je rempli le tableau une 1ere fois, puis je quitte. Je reviens sur la même facture pour y ajouter des lignes, je voudrais bloquer les lignes déjà rempli et les mettre uniquement en Affichage (Sans modif).

    1ere question: Est-ce que la MAJ de ma base se fait au bon endroit?
    2ème question: Est-il possible d'aller positionner automatiquement le curseur à la prochaine ligne dispo?
    Au rechargement de la facture, je rempli la colonne COL_DORLIGPI_ID pour dire que cette ligne est déjà traité !

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    nResNombreLigne est un entier // Nombre de ligne dans le tableau
     
    nResNombreLigne = TableOccurrence(TABLE_DORLIGPI)
    SI TABLE_DORLIGPI.COL_DORLIGPI_ID[TABLE_DORLIGPI]<>"" ALORS
    	TableSelectPlus(TABLE_DORLIGPI,nResNombreLigne+1)
    FIN
    sur l'entrée dans TABLE_DORLIGPI et sur à chaque entrée en saisie mais ca ne fonctionne pas.


    Je précise que j'ai différent type de facture et sur celle là, je ne veux pas autoriser la suppression de ligne. Les prochaines auront l'"option" suppression

    Merci

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

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 211
    Points : 9 218
    Points
    9 218
    Par défaut
    1ère question : peut être... Tu ne nous en dis pas assez.
    2ème question : oui c'est possible. Dans ta table, il faut que tu mettes une colonne cachée genre interrupteur. Lorsque tu charges tes lignes de facture tu mets cet interrupteur à vrai. L'utilisateur ne peut rentrer dans un ligne que si l'interrupteur est à faux. Il faut bien sûr écrire le code.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

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

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 219
    Points : 72
    Points
    72
    Par défaut
    Bonjour

    1ere question : J'ai besoin d'avoir un stock toujours en temps réel. D'où la nécessite en live de mettre à jour mon stock de pièce.

    2ème question :
    Je galère....Mais j'ai trouvé un code, qui, à priori, fonctionne. Je n'ai pas encore testé dans tous les sens. Je pense qu'il existerai quelque chose de plus propre?
    Si vous pouviez me donner votre avis?

    Merci

    Voici mes codes:

    Entrée en saisie d'une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Focus_en_fin_de_table()
    Sortie d'une ligne :
    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
    SI TABLE_DORLIGPI.COL_DORLIGPI_ID[TABLE_DORLIGPI]="" ET TABLE_DORLIGPI.COL_DesignationArticle[TABLE_DORLIGPI]<>"" ALORS
    	sArticleEnCours est une chaîne = TABLE_DORLIGPI.COL_NumArticle[TABLE_DORLIGPI] // On note le numéro d'article sur lequel on se trouve
     
    	HTransactionDébut()
    	HLitRecherche(ARTAG_MANP,NumArticle,sArticleEnCours) // Puis on se place sur l'article dans la BDD
    	ARTAG_MANP.QuantitéEnStock=ARTAG_MANP.QuantitéEnStock-TABLE_DORLIGPI.COL_Quantitée
    	HModifie(ARTAG_MANP,hNumEnrEnCours)
    	DORLIGPI.NumOr=SAI_Ordre_de_réparation
    	//DORLIGPI.NumLigne=DORLIGPI[DORLIGPI]
    	DORLIGPI.NumArticle=TABLE_DORLIGPI.COL_NumArticle
    	DORLIGPI.DesignationArticle=TABLE_DORLIGPI.COL_DesignationArticle
    	DORLIGPI.Quantitée=TABLE_DORLIGPI.COL_Quantitée
    	DORLIGPI.Remise=TABLE_DORLIGPI.COL_Remise
    	DORLIGPI.NumOperateur="66"
    	HAjoute(DORLIGPI)
    	TABLE_DORLIGPI.COL_DORLIGPI_ID=DORLIGPI.IDDORLIGPI
    	HTransactionFin()
    FIN
    La procédure :
    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
    PROCEDURE Focus_en_fin_de_table()
     
    nResNombreLigne est un entier // Nombre de ligne dans le tableau
    nCpteur est un entier = 1
     
     
    nResNombreLigne = TableOccurrence(TABLE_DORLIGPI)
     
    TableSelectPlus(TABLE_DORLIGPI,nResNombreLigne)
    TANTQUE TABLE_DORLIGPI.COL_DORLIGPI_ID[TABLE_DORLIGPI] = "" 
    	TableSupprimeSelect(TABLE_DORLIGPI)
    	nResNombreLigne = TableOccurrence(TABLE_DORLIGPI)
    	TableSelectPlus(TABLE_DORLIGPI,nResNombreLigne)
    FIN
    TableAjouteLigne(TABLE_DORLIGPI)
    nResNombreLigne = TableOccurrence(TABLE_DORLIGPI)
    TableSelectPlus(TABLE_DORLIGPI,nResNombreLigne)

    Tout ça pour me placer en permanence en fin de tableau (Dernière ligne), et empêcher l'utilisateur de modifier les lignes déjà saisies?

    Merci

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

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 211
    Points : 9 218
    Points
    9 218
    Par défaut
    Pour la mise en jour en live de ton stock, comprends. Par contre, je ne le mettrais pas en sortie de ligne mais plutôt en validation de fiche.

    Pour ton code, tu t'embêtes pour pas grand chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    nResNombreLigne = TableOccurrence(TABLE_DORLIGPI)
     
    TableSelectPlus(TABLE_DORLIGPI,nResNombreLigne)
    TANTQUE TABLE_DORLIGPI.COL_DORLIGPI_ID[TABLE_DORLIGPI] = "" 
    	TableSupprimeSelect(TABLE_DORLIGPI)
    //	nResNombreLigne = TableOccurrence(TABLE_DORLIGPI)
    //	TableSelectPlus(TABLE_DORLIGPI,nResNombreLigne)
    FIN
    TableAjouteLigne(TABLE_DORLIGPI)
    nResNombreLigne = TableOccurrence(TABLE_DORLIGPI)
    TableSelectPlus(TABLE_DORLIGPI,nResNombreLigne)
    Essaye comme ça.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/04/2011, 16h35
  2. Réponses: 0
    Dernier message: 15/01/2010, 16h18
  3. Réponses: 4
    Dernier message: 09/11/2007, 18h08
  4. ListBox avec selection avec differentes couleurs
    Par Flow_75 dans le forum C++Builder
    Réponses: 6
    Dernier message: 11/02/2007, 23h25
  5. [ODBC] Probleme sur un SELECTED de SELECT avec PHP
    Par G.D.O dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 27/03/2006, 15h44

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