- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Problema na Alteração - Modelo 2
×
Linguagem de Programação ADVPL
Perguntas Problema na Alteração - Modelo 2
- Chferracioli
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 6
- Obrigados Recebidos: 0
11 anos 1 mês atrás - 11 anos 1 mês atrás #17640
por Chferracioli
Bom dia pessoal,
Por favor estou com problemas na rotina de alteração, sempre quando tento alterar um registo ele sobrescreve o primeiro item.
Exemplo: tenho um registro com 2 itens, se altero e adiciono mais 1 item ao invés de ficar com 3 itens, o primeiro item é sobreposto pelo item 003. No final fico apenas com o item 002 e 003.
Alguém poderia me ajudar?
Obrigado.
Anexo esta o fonte.
Problema na Alteração - Modelo 2 foi criado por Chferracioli
Bom dia pessoal,
Por favor estou com problemas na rotina de alteração, sempre quando tento alterar um registo ele sobrescreve o primeiro item.
Exemplo: tenho um registro com 2 itens, se altero e adiciono mais 1 item ao invés de ficar com 3 itens, o primeiro item é sobreposto pelo item 003. No final fico apenas com o item 002 e 003.
Alguém poderia me ajudar?
Obrigado.
Anexo esta o fonte.
Ultima edição: 11 anos 1 mês atrás por Chferracioli.
Por favor Acessar ou Registrar para participar da conversa.
- THALESCOTR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 124
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17645
por THALESCOTR
Respondido por THALESCOTR no tópico Problema na Alteração - Modelo 2
Bom dia Cleber,
acredito que o seu problema está no dbssek, pois você está posicionando apenas no numero, então se foi encontrado o numero da solicitação ele apenas altera o registro, se você tem 2 registros já ele vai sobrescrever os 2.
O que você deve fazer é criar um novo indice: Filial + Numero + Produto:
Ficando assim seu DbSeek:
if dbSeek(xFilial("SZI")+cNumero+AllTrim(Acols[nZ][nPosProd]))
SZI->(RecLock("SZI",.F.))
else
SZI->(RecLock("SZI",.T.))
endIf
Ou seja, se ele encontrar o produto, altera, senão insere na tabela.
Att
Thales
acredito que o seu problema está no dbssek, pois você está posicionando apenas no numero, então se foi encontrado o numero da solicitação ele apenas altera o registro, se você tem 2 registros já ele vai sobrescrever os 2.
O que você deve fazer é criar um novo indice: Filial + Numero + Produto:
Ficando assim seu DbSeek:
if dbSeek(xFilial("SZI")+cNumero+AllTrim(Acols[nZ][nPosProd]))
SZI->(RecLock("SZI",.F.))
else
SZI->(RecLock("SZI",.T.))
endIf
Ou seja, se ele encontrar o produto, altera, senão insere na tabela.
Att
Thales
Por favor Acessar ou Registrar para participar da conversa.
- Chferracioli
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 6
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17650
por Chferracioli
Respondido por Chferracioli no tópico Problema na Alteração - Modelo 2
Valeu Thales,
Criei o índice e alterei o fonte mas acontece a mesma coisa, tem mais alguma ideia do que posso fazer no DbSeek?
Obrigado.
Criei o índice e alterei o fonte mas acontece a mesma coisa, tem mais alguma ideia do que posso fazer no DbSeek?
Obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- THALESCOTR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 124
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17652
por THALESCOTR
Respondido por THALESCOTR no tópico Problema na Alteração - Modelo 2
O seu Acols, está retornando o tamanho correto, quando você salva ele ele tem 3 linhas? ou possui somente 2?
coloque um alert(Len(acols)) na sua função fsalvar para verificar.
coloque um alert(Len(acols)) na sua função fsalvar para verificar.
Por favor Acessar ou Registrar para participar da conversa.
- Chferracioli
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 6
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17655
por Chferracioli
Respondido por Chferracioli no tópico Problema na Alteração - Modelo 2
Esta correto, esta retornando de acordo com a quantidade de linhas.
Valeu
Valeu
Por favor Acessar ou Registrar para participar da conversa.
- Chferracioli
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 6
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17667
por Chferracioli
Respondido por Chferracioli no tópico Problema na Alteração - Modelo 2
Boa tarde pessoal,
Consegui resolver com a ajuda do Thales, alem da dica dele criei um índice mais detalhado com item e produto e funcionou... abaixo segue como ficou o DbSeek.
if dbSeek(xFilial("SZI")+cNumero+AllTrim(aCols[nZ][nPosItem])+AllTrim(Acols[nZ][nPosProd]))
Obrigado pela ajuda.
Consegui resolver com a ajuda do Thales, alem da dica dele criei um índice mais detalhado com item e produto e funcionou... abaixo segue como ficou o DbSeek.
if dbSeek(xFilial("SZI")+cNumero+AllTrim(aCols[nZ][nPosItem])+AllTrim(Acols[nZ][nPosProd]))
Obrigado pela ajuda.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Problema na Alteração - Modelo 2
Tempo para a criação da página:0.081 segundos