Erro em FormGroup - resolvido

  formGroupValorPraticado = new FormGroup({
    descontoAplicado: new FormControl(0),
    descontoEfetivo: new FormControl(0),
    encargoFinanceiro: new FormControl(0),
    precoPraticado: new FormControl(0),
    mkpAplicadoPedido: new FormControl(0),
    margem: new FormControl(0),
    idMarkup: new FormControl(),
    nomeMarkup: new FormControl(),
    aliquotaProduto: new FormControl(0),
    comissaoIdeal: new FormControl(0),
    valorComissao: new FormControl(0),
    precoTabela: new FormControl(0),
    acrescimoProcesso: new FormControl(0),
    acrescimoDistancia: new FormControl(0),
    valorDescontoEfetivo: new FormControl(0),
    precoTabelaPorcentagem: new FormControl(0),
    acrescimoProcessoPorcentagem: new FormControl(0),
    acrescimoDistanciaPorcentagem: new FormControl(0),
    valoresTabela: new FormControl(0)
  });

Mas quando chamo o servidor e ele retorna e vai preencher as informações.

this.formGroupValorPraticado.controls.precoTabelaPorcentagem.setValue(
          entidade.precoTabelaPorcentagem
        );
        this.formGroupValorPraticado.controls.acrescimoProcessoPorcentagem.setValue(
          entidade.acrescimoProcessoPorcentagem
        );
        this.formGroupValorPraticado.controls.acrescimoDistanciaPorcentagem.setValue(
          entidade.acrescimoDistanciaPorcentagem
        );
        this.formGroupValorPraticado.controls.valoresTabela.setValue(
          entidade.valoresTabela
        );

Ele dá erro

que é esta linha

this.formGroupValorPraticado.controls.precoTabelaPorcentagem.setValue(
entidade.precoTabelaPorcentagem
);

Só que analisando os atributos novos não estão aqui

O que pode ser ?

Tente fazer assim para ver se funciona:

this.formGroupValorPraticado.controls['precoTabelaPorcentagem'].setValue(
  entidade.precoTabelaPorcentagem
);
1 curtida

Se a sugestão do Lucas não funcionar, adiciona mais contexto pra gente, tipo a versão do Angular que vc está usando.

Também, tenta criar um projetinho do zero e levar parte do código problemático para lá e ver se o erro se repete.

Eu testei aqui, usando Angular 11, com o código abaixo e funcionou de boa:

import { Component } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';

@Component({ selector: 'app-root', template: '<!--  -->' })
export class AppComponent {
  formGroupValorPraticado = new FormGroup({
    descontoAplicado: new FormControl(0),
    descontoEfetivo: new FormControl(0),
    encargoFinanceiro: new FormControl(0),
    precoPraticado: new FormControl(0),
    mkpAplicadoPedido: new FormControl(0),
    margem: new FormControl(0),
    idMarkup: new FormControl(),
    nomeMarkup: new FormControl(),
    aliquotaProduto: new FormControl(0),
    comissaoIdeal: new FormControl(0),
    valorComissao: new FormControl(0),
    precoTabela: new FormControl(0),
    acrescimoProcesso: new FormControl(0),
    acrescimoDistancia: new FormControl(0),
    valorDescontoEfetivo: new FormControl(0),
    precoTabelaPorcentagem: new FormControl(0),
    acrescimoProcessoPorcentagem: new FormControl(0),
    acrescimoDistanciaPorcentagem: new FormControl(0),
    valoresTabela: new FormControl(0),
  });

  constructor() {
    const entidade = {
      precoTabelaPorcentagem: '',
      acrescimoProcessoPorcentagem: '',
      acrescimoDistanciaPorcentagem: '',
      valoresTabela: '',
    };

    this.formGroupValorPraticado.controls.precoTabelaPorcentagem.setValue(
      entidade.precoTabelaPorcentagem
    );

    this.formGroupValorPraticado.controls.acrescimoProcessoPorcentagem.setValue(
      entidade.acrescimoProcessoPorcentagem
    );

    this.formGroupValorPraticado.controls.acrescimoDistanciaPorcentagem.setValue(
      entidade.acrescimoDistanciaPorcentagem
    );

    this.formGroupValorPraticado.controls.valoresTabela.setValue(
      entidade.valoresTabela
    );
  }
}

Mas adiciona mais contexto pra gente, mostra um código mais completo.

1 curtida

Após analisar o código, antes tem um método

private async novoFormGroupValorPraticado(): Promise<any> {
    this.formGroupValorPraticado = new FormGroup({
      descontoAplicado: new FormControl(0),
      encargoFinanceiro: new FormControl(0),
      precoPraticado: new FormControl(0),
      mkpAplicadoPedido: new FormControl(0),
      descontoEfetivo: new FormControl(0),
      margem: new FormControl(0),
      idMarkup: new FormControl(),
      nomeMarkup: new FormControl(),
      aliquotaProduto: new FormControl(0),
      comissaoIdeal: new FormControl(0),
      valorComissao: new FormControl(0),
      precoTabela: new FormControl(0),
      acrescimoProcesso: new FormControl(0),
      acrescimoDistancia: new FormControl(0),
      valorDescontoEfetivo: new FormControl(0),
      precoTabelaPorcentagem: new FormControl(0),
      acrescimoProcessoPorcentagem: new FormControl(0),
      acrescimoDistanciaPorcentagem: new FormControl(0),
      valoresTabela: new FormControl(0),
    });
  }

Adicionei os que estavam faltando e funcionou.

Obrigado @Lucas_Camara e @wldomiciano

1 curtida