♥ 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:
Marcado como spam |
Resposta privada Olá.
Julgo que deve ser essa propriedade que te falta indicar. Marcado como spam Comentários É preciso adicionar alguma referência em especifico? É que diz me que essa propriedade não existe... 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? Não será this.Orcamento.EmModoEdicao = false ? Este código que mostrei está no evento TeclaPressionada, poderá ser por isso? 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). Não funcionou... Existe algum projeto de produção que possa utilizar como base? Não estou a ver...
Vê lá se tens o método "Clone" no "gprBEOrcamentoLinha" e parte daí. Existe mas não faz nada... Não estou a perceber se afinal é possível ou não duplicar a linha do orçamento por extensibilidade. Olá. Tens que atribuir a linhaX.Clone() a uma nova linha…isso devolve um objeto, não é um método.
GprBEOrcamentoLinha gprBEOrcamentoLinha;
for (int i = 1; i <= this.Orcamento.Linhas.NumItens; i++)
{
if(this.Orcamento.Linhas.GetEdita(i).Sequencia == frmLinhasOrcArtigo.seqselecionada)
{
gprBEOrcamentoLinha = this.Orcamento.Linhas.GetEdita(i).CLONE();
gprBEOrcamentoLinha.XPTO = 'XPTYYY';
(...)
this.Orcamento.Linhas.Insere(gprBEOrcamentoLinha);
}
} Olá. Testei também assim e não funcionou... Não me parece que seja possível duplicar linhas através dos motores, a minha questão é se será possível através de inserção manual na base de dados. Olá.
É possível sim! Eu faço isso em Vendas, só nunca fiz em Orçamentos!
Estás a atribuir um novo ID à linha depois de clonar?
Inserção manual em BD é sempre possível, mas também deves ter que ir "mexer" no cabeçalho (totais e coisas assim...)...não aconcelho. |