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

Angular Discussion :

Manipuler plusieurs webServices


Sujet :

Angular

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut Manipuler plusieurs webServices
    Bonjour,

    J'ai une dernière question à vous poser concernant une petite problématique.

    Voici une page HTML



    J'appelle un WebService, qui récupère le solde dans un tableau HTML temporaire. J'aimerai retirer le tableau HTML et ajouter la valeur du solde dans le input quantité du formulaire.

    Mon problème est que j'utilise un autre webService pour envoyer les données du formulaire. Et donc, je ne sais pas comment je pourrais récupérer le solde et l'inclure dans le champ quantité?

    Voici un petit shéma des deux méthodes:



    Pour info, la méthode getSolde() récupère parfaitement le solde et la méthode submit() envoie bien les données. Je veux juste améliorer l'esthétique et afficher le solde dans le champ quantité.

    Voici une idée du code actuel:

    Code TYPESCRIPT : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    export class InternalTransfertWatchComponent implements OnInit, OnDestroy {
      private unsubscribe$ = new Subject<void>();
     
      details?: AdvTitres[] = [];
     
     
      svm: string | null = null;
      qte: number;
      type: string = '';
      dest: string = '';
     
     
      constructor(   
        private service: InternalTransfertWatchService,
        private activatedRoute: ActivatedRoute,
        private location: Location,
      ) { }
     
      ngOnInit(): void {
        this.svm = this.activatedRoute.snapshot.paramMap.get('svm');
     
        if (!this.svm) {
          this.goBack();
          return;
        }
        this.getSolde();
      }
     
      ngOnDestroy(): void {
        this.unsubscribe$.next();
        this.unsubscribe$.complete();
      }
     
      private getSolde(): void {
        this.service.getSolde(this.svm!).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe(res => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
            this.details = res.TRANS;
          }
        });
      }
     
      /* Form */ 
      submit(): void {
        this.service.getInternalTransfertStock(parseInt(this.svm!), this.qte, this.type, this.dest).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe(res => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
            this.goBack();
          }
        });
      }
     
     
      goBack(): void {
        this.location.back();
      }
     
     
    }

    internal-transfert-watch.component.html

    Code ANGULAR : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <div class="container" *ngIf="details">
        <table class="table table-hover table-striped spaceLeft">
            <tbody>
     
                <tr>
                    <th>SVM</th>
                    <td>{{details[0].TITRE.SVM}}</td>
                    <th>Solde</th>
                    <td>{{details[0].SOLDE}}</td>
                    <!-- <td>{{details|json}}</td> -->
                </tr>
            </tbody>
        </table>
    </div>
     
    <div class="card" style="width: 100%;">
        <div class="card-body">
            <form #formulaire="ngForm" (ngSubmit)="formulaire.form.valid && submit()">
     
                <div class="row row-cols-3 pt-3">
                    <div class="col text-end">
                        <label for="qte" class="form-label">Quantité a transférer</label>
                    </div>
                    <div class="col-4">
                        <input id="qte" name="qte" type="text" class="form-control" style="min-width: 380px" maxlength="25" [(ngModel)]="qte" />
                    </div>
                </div>
     
                <div class="row row-cols-3 pt-3">
                    <div class="col text-end">
                        <label for="type" class="form-label">Changement Bénéficiaire Économique</label>
                    </div>
                    <div class="col-4">
                        <select [(ngModel)]="type" name="type" class="form-select">
                            <option value="O">O</option>
                            <option value="">N</option>
                        </select>
                    </div>
                </div>
     
     
                <div class="row row-cols-3 pt-3">
                    <div class="col text-end">
                        <label for="dest" class="form-label">Compte du destinataire</label>
                    </div>
                    <div class="col-4">
                        <input id="dest" name="dest" type="text" class="form-control" style="min-width: 380px" maxlength="25" [(ngModel)]="dest" />
                    </div>
                </div>
     
                <div class="row row-cols-3 pt-3">
                    <div class="col"></div>
                    <div class="col text-start">
                        <button type="submit" class="btn btn-primary" style="background-color: #239CD3;" [disabled]="formulaire.form.invalid">Confirmer</button>
                    </div>
                </div>
     
            </form>
        </div>
    </div>


    internal-transfert-watch.response.ts

    Code TYPESCRIPT : 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
     
    export interface InternalTransfertWatchResponse extends ApiResponse {
        TRANS: AdvTitres[];
      }
     
      export interface AdvTitres {
     
          TITRE: {
              LABEL: string,
              STOCK: string,
              ISIN: string,
              SVM: number,
          },
          SOLDE: number,
          COUPON: number,
          QTE_VENTE: number,
          QTE_BLOQ: number,
          QTE_TRF: number,
     
      }


    Je vous remercie pour votre aide.

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    private getSolde(): void {
        this.service.getSolde(this.svm!).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe(res => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
            this.details = res.TRANS;
     
            this.qtte = res.??????????????;  // solde
          }
        });
      }
    qtte correspond au ngModel qtte dans le template

  3. #3
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    Bonjour krakatoa,

    Merci pour ton aide. J'ai compris qu'il fallait un moment créer une variable pour stocker la valeur du SOLDE.

    Dans ton code, tu mets plusieurs points d'interrogations???

    Code TYPESCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
     this.qtte = res.??????????????;  // solde

    Je présume que je dois refaire une requête pour récupérer les datas du solde. Mais je ne comprends pas en fait, comment je récupère le solde dans this.qtte?

    Parce que là, je récupère toutes les variables....

    Code TYPESCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     qtte: AdvTitres[];
     ...
     private getSolde(): void {
        this.service.getSolde(this.svm!).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe(res => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
            this.details = res.TRANS;
            this.qtte = res.TRANS;  // solde
            console.log("Bonjour")
            console.log(this.qte)
          }
        });
      }




    Ensuite, dans le formulaire, j'ai le message [OBJECT, OBJECT]




    Code ANGULAR : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="qte" name="qte" type="text" class="form-control" style="min-width: 380px" maxlength="25" [(ngModel)]="qtte" />

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.qtte = res[0]["solde"];
    est ce que tu peux oublier TRANS

  5. #5
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    Oui désolé...

    J'ai essayé d'ajouter la ligne

    Code ANGULAR : Sélectionner tout - Visualiser dans une fenêtre à part
    this.qtte = res[0]["solde"];

    En console log, j'obtiens le message suivant:

    core.mjs:6484 ERROR TypeError: Cannot read properties of undefined (reading 'solde')

    J'ai essayé en minuscule et en majuscule...



    Code ANGULAR : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private getSolde(): void {
        this.service.getSolde(this.svm!).pipe(
          takeUntil(this.unsubscribe$)
        ).subscribe(res => {
          if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
            this.details = res.TRANS;
            console.log("Test 1")
            this.qtte = res[0]["solde"];
          }
        });
      }

    Si tu as une autre solution, je suis vraiment intéressé.

    Merci d'avance

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    en majuscule solde
    regarde bien les données

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Manipulation de webService
    Par nabil148911 dans le forum Services Web
    Réponses: 7
    Dernier message: 05/12/2008, 09h30
  2. ActionScript 2 Manipuler plusieurs clips créés avec une boucle for
    Par adinx dans le forum ActionScript 1 & ActionScript 2
    Réponses: 7
    Dernier message: 09/04/2008, 15h01
  3. [HF] Manipuler plusieurs fichiers liés
    Par lemerite dans le forum WinDev
    Réponses: 5
    Dernier message: 21/11/2007, 15h26
  4. Comment manipuler plusieurs fichiers Excel
    Par Olivier0 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 16/08/2007, 08h38
  5. [vba - excel] manipuler plusieurs fichers excels à la suite
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/09/2006, 16h11

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