Fórum
Ver pergunta

Duplicar linha num orçamento de produção   

13 visualizações
0
0

Bom dia,

Estou a ter algumas dificuldades a perceber como posso fazer para duplicar uma linha de um orçamento de produção através de extensibilidade.

Eu já consigo inserir a linha duplicada no orçamento mas gravo e ao verificar o orçamento novamente a linha não se encontra lá.

Estou a utilizar o método Insere() mas penso que esse método apenas insere na coleção… Como nos orçamento não existe o Adicionalinha como posso fazer?

O código que tenho é o seguinte:

GprBEOrcamentoLinha gprBEOrcamentoLinha = new GprBEOrcamentoLinha();
for (int i = 1; i <= this.Orcamento.Linhas.NumItens; i++)
{
if(this.Orcamento.Linhas.GetEdita(i).Sequencia == frmLinhasOrcArtigo.seqselecionada)
{
gprBEOrcamentoLinha.Artigo = this.Orcamento.Linhas.GetEdita(i).Artigo;
gprBEOrcamentoLinha.Orcamento = this.Orcamento.Linhas.GetEdita(i).Orcamento;
gprBEOrcamentoLinha.IdPai = this.Orcamento.Linhas.GetEdita(i).IdPai;
gprBEOrcamentoLinha.Quantidade = this.Orcamento.Linhas.GetEdita(i).Quantidade;
gprBEOrcamentoLinha.PCUnit = this.Orcamento.Linhas.GetEdita(i).PCUnit;
gprBEOrcamentoLinha.TipoLinha = this.Orcamento.Linhas.GetEdita(i).TipoLinha;
gprBEOrcamentoLinha.Unidade = this.Orcamento.Linhas.GetEdita(i).Unidade;
gprBEOrcamentoLinha.Descricao = this.Orcamento.Linhas.GetEdita(i).Descricao;

gprBEOrcamentoLinha.Sequencia = this.Orcamento.Linhas.GetEdita(i).Sequencia + 1;

gprBEOrcamentoLinha.CamposUtil[“CDU_BC_CorteMesa”].Valor = this.Orcamento.Linhas.GetEdita(i).CamposUtil[“CDU_BC_CorteMesa”].Valor;
gprBEOrcamentoLinha.CamposUtil[“CDU_BC_CorteRolo”].Valor = this.Orcamento.Linhas.GetEdita(i).CamposUtil[“CDU_BC_CorteRolo”].Valor;
gprBEOrcamentoLinha.CamposUtil[“CDU_BC_QtdPecas”].Valor = this.Orcamento.Linhas.GetEdita(i).CamposUtil[“CDU_BC_QtdPecas”].Valor;
gprBEOrcamentoLinha.CamposUtil[“CDU_BC_Observacoes”].Valor = this.Orcamento.Linhas.GetEdita(i).CamposUtil[“CDU_BC_Observacoes”].Valor;
gprBEOrcamentoLinha.CamposUtil[“CDU_BC_QtdConfeccao”].Valor = this.Orcamento.Linhas.GetEdita(i).CamposUtil[“CDU_BC_QtdConfeccao”].Valor;
gprBEOrcamentoLinha.CamposUtil[“CDU_BC_Qtdtingimento”].Valor = this.Orcamento.Linhas.GetEdita(i).CamposUtil[“CDU_BC_Qtdtingimento”].Valor;
this.Orcamento.Linhas.Insere(gprBEOrcamentoLinha);

 

}
}

V10
Marcado como spam
Criado há 3 semanas brunooliveira
b
brunooliveira Iniciante
1 respostas
0
Resposta privada

Olá.

gprBEOrcamentoLinha.EmMododEdicao = false;

Julgo que deve ser essa propriedade que te falta indicar.

Marcado como spam
Criado há 1 dia ricardorodrigues
    Comentários
    É preciso adicionar alguma referência em especifico? É que diz me que essa propriedade não existe...
    Há 1 dia
    brunooliveira
      Hummm...não...julgava que essa propriedade existisse tal como, por exemplo, nos documentos de venda. Antes de gravar, consegues validar a linha com um "CalculaTotais" ou algo similar?
      Há 1 dia
      ricardorodrigues
        Não será this.Orcamento.EmModoEdicao = false ? Este código que mostrei está no evento TeclaPressionada, poderá ser por isso?
        Há 1 dia
        brunooliveira
          Poderá ser. Experimenta colocar a true antes de gravar. Já agora, éssa propriedade ("EmModoEdicao") faz parte do "Orcamento" (objecto) e nada tem a ver com o evento que acede ao objeto em si (só para clarificar).
          Há 18 horas
          ricardorodrigues