- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Não encontro o registro na tabela SA1 com dbSeek
×
Linguagem de Programação ADVPL
Perguntas Não encontro o registro na tabela SA1 com dbSeek
- GCarvalho_14
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
10 anos 4 meses atrás #23633
por GCarvalho_14
Não encontro o registro na tabela SA1 com dbSeek foi criado por GCarvalho_14
Bom dia a todos,
Estou iniciando em adpvl e usei as função dbSeek para encontrar um registro na tabela SA1990, no entanto, não há nenhum retorno do registro.
Já pesquisei em vários lugares sobre o dbSeek, mas ainda não compreendi bem a sintaxe da função.
Att.: Glauber
Estou iniciando em adpvl e usei as função dbSeek para encontrar um registro na tabela SA1990, no entanto, não há nenhum retorno do registro.
Já pesquisei em vários lugares sobre o dbSeek, mas ainda não compreendi bem a sintaxe da função.
Att.: Glauber
Por favor Acessar ou Registrar para participar da conversa.
- Edumantoan
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 10
- Obrigados Recebidos: 0
10 anos 4 meses atrás #23634
por Edumantoan
Respondido por Edumantoan no tópico Não encontro o registro na tabela SA1 com dbSeek
Bom dia, vai um exemplo para você
dbSelectArea("SB1") //Seleciona a tabela SB1
SB1->(DbSetOrder(1)) // Seleciona o índice 1 que é no caso B1_FILIAL+B1_COD
Dbseek(xFilial("SB1")+cCodProd)//Posiciono o ponteiro na Filial que estou logado + no Código do produto
cDescProd := SB1->B1_DESC //Obtenho a descrição do produto que eu quero e jogo em uma variável
SB1->(dbCloseArea())// Fecho a tabela
O lugar ideal para suas dúvidas é no TDN
tdn.totvs.com/pages/viewpage.action?pageId=23889301
dbSelectArea("SB1") //Seleciona a tabela SB1
SB1->(DbSetOrder(1)) // Seleciona o índice 1 que é no caso B1_FILIAL+B1_COD
Dbseek(xFilial("SB1")+cCodProd)//Posiciono o ponteiro na Filial que estou logado + no Código do produto
cDescProd := SB1->B1_DESC //Obtenho a descrição do produto que eu quero e jogo em uma variável
SB1->(dbCloseArea())// Fecho a tabela
O lugar ideal para suas dúvidas é no TDN
tdn.totvs.com/pages/viewpage.action?pageId=23889301
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 216
- Obrigados Recebidos: 0
10 anos 4 meses atrás #23635
por admin
Respondido por admin no tópico Não encontro o registro na tabela SA1 com dbSeek
Glauber bom dia, em que momento esta tentando dar o dbseek ? se a tabela SA1 estiver com um determinado filtro aonde o codigo desejado não satisfaça a condição, o dbseek não irá encontra-lo mesmo ok.
Eduardo aqui também é o Lugar ideal para a retirada de dúvidas, o tdn também.
Abraços.
Eduardo aqui também é o Lugar ideal para a retirada de dúvidas, o tdn também.
Abraços.
Por favor Acessar ou Registrar para participar da conversa.
- GCarvalho_14
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
10 anos 4 meses atrás #23640
por GCarvalho_14
Respondido por GCarvalho_14 no tópico Não encontro o registro na tabela SA1 com dbSeek
Boa Tarde Admin,
Segue o meu código
User Function LocReg()
DbSelectArea("SA1")
DbSetOrder(1)
If dbSeek( " 1 " + " 32" + " 0")
Alert("Registro localizado")
Else
Alert("Registro nao localizado!")
EndIf
Return
Na Apsdu em SA1 eu encontrei o registro, esta:
A1_FILIAL = 1
A1_COD = 32
A1_LOJA = 0
Mas no meu caso, não sei o motivo pelo qual não retorna verdadeiro.
Segue o meu código
User Function LocReg()
DbSelectArea("SA1")
DbSetOrder(1)
If dbSeek( " 1 " + " 32" + " 0")
Alert("Registro localizado")
Else
Alert("Registro nao localizado!")
EndIf
Return
Na Apsdu em SA1 eu encontrei o registro, esta:
A1_FILIAL = 1
A1_COD = 32
A1_LOJA = 0
Mas no meu caso, não sei o motivo pelo qual não retorna verdadeiro.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 4 meses atrás #23641
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Não encontro o registro na tabela SA1 com dbSeek
Glauber o campo código deve possuir o tamanho de 6 caracteres
tente assim:
DbSelectArea("SA1")
DbSetOrder(1)
If dbSeek( xFilial("SA1") + PadR("32",6) + "01")
Alert("Registro localizado")
Else
Alert("Registro nao localizado!")
EndIf
Return
Geralmente o codigo do cliente deve possuir zeros a esquerda, é o mais indicado.
Exemplo:
A1_COD = 000023
A1_LOJA= 01
Por Padrão todo o dbseek acrescente a funçaõ xFilial(Alias) que irá retornar a filial que o usuario está logado, exemplo: 01, 02 ou 0101 ou 0202 etc.
Tente usar este exemplo abaixo:
cCodigo := '000023'
cLoja := '01'
If SA1->(dbSetOrder(1), dbSeek(xFilial("SA1")+cCodigo+cLoja))
Alert("Achei o Cliente !")
Else
Alert("Nao Achei o Cliente !")
Endif
tente assim:
DbSelectArea("SA1")
DbSetOrder(1)
If dbSeek( xFilial("SA1") + PadR("32",6) + "01")
Alert("Registro localizado")
Else
Alert("Registro nao localizado!")
EndIf
Return
Geralmente o codigo do cliente deve possuir zeros a esquerda, é o mais indicado.
Exemplo:
A1_COD = 000023
A1_LOJA= 01
Por Padrão todo o dbseek acrescente a funçaõ xFilial(Alias) que irá retornar a filial que o usuario está logado, exemplo: 01, 02 ou 0101 ou 0202 etc.
Tente usar este exemplo abaixo:
cCodigo := '000023'
cLoja := '01'
If SA1->(dbSetOrder(1), dbSeek(xFilial("SA1")+cCodigo+cLoja))
Alert("Achei o Cliente !")
Else
Alert("Nao Achei o Cliente !")
Endif
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- GCarvalho_14
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
10 anos 4 meses atrás - 10 anos 4 meses atrás #23670
por GCarvalho_14
Respondido por GCarvalho_14 no tópico Não encontro o registro na tabela SA1 com dbSeek
Luiz Alberto, bom dia.
Infelizmente não tive como responder antes, porque acabei ficando sem internet. Peço desculpa por isso.
Funcionou. Muito Obrigado.
Eu tive que dropar a tabela SA1, e depois cria - la novamente, em segui rodei o código que você escreveu e ai deu certo. Antes de fazer isto eu rodei o seu código e continuava dando o mesmo problemas de antes.
Enfim, funcionou!
Só uma coisa, quando você passou a expressão
If SA1->(dbSetOrder(1), dbSeek(xFilial("SA1")+cCodigo+cLoja))
As variáveis cCodigo e Cloja são entendida como A1_COD e A1_Loja ?
Muito Obrigado!
Espero logo ganhar fluência na linguagem e poder ajudar os outros.
Infelizmente não tive como responder antes, porque acabei ficando sem internet. Peço desculpa por isso.
Funcionou. Muito Obrigado.
Eu tive que dropar a tabela SA1, e depois cria - la novamente, em segui rodei o código que você escreveu e ai deu certo. Antes de fazer isto eu rodei o seu código e continuava dando o mesmo problemas de antes.
Enfim, funcionou!
Só uma coisa, quando você passou a expressão
If SA1->(dbSetOrder(1), dbSeek(xFilial("SA1")+cCodigo+cLoja))
As variáveis cCodigo e Cloja são entendida como A1_COD e A1_Loja ?
Muito Obrigado!
Espero logo ganhar fluência na linguagem e poder ajudar os outros.
Ultima edição: 10 anos 4 meses atrás por GCarvalho_14.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Não encontro o registro na tabela SA1 com dbSeek
Tempo para a criação da página:0.142 segundos