Perguntas DbSelectArea()
- CZL1
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 21
- Obrigados Recebidos: 0
3 anos 1 mês atrás #33197
por CZL1
DbSelectArea() foi criado por CZL1
Boa tarde!
Programo na linguagem a pouco tempo e estou montando um codigo para rodar no coletor de dados, aonde ele lê a quantidade na etiqueta e o codigo + lote também e depois grava essas informações numa tabela customizada.
Minha dúvida é quando tento usar o DbSelectArea() para fazer as interações com as tabelas (ZAC a que criei e a SB8). Quando passa pelo DbSelectArea() o codigo parece passar direto e vai pra mensagem de alerta. Como é ambiente de teste, as informações estão ok para permitir o teste.
Segue o trecho do codigo:
DbSelectArea("SB8")
SB8->(DBSETORDER(1))
If SB8->(DBSEEK(XFILIAL("SB8") + cProdu + '01' + cLote))
DbSelectArea("ZAC")
ZAC->(DBSETORDER(2))
If !ZAC->(DBSEEK(XFILIAL("ZAC") + cProdu + cLote + Padr(cEnd,TamSX3("ZAC_END")[1])))
ZAC->(Reclock("ZAC",.T.))
ZAC->ZAC_FILIAL := xFilial("ZAC")
ZAC->ZAC_COD := cProdu
ZAC->ZAC_LOTE := cLote
ZAC->ZAC_QTD := cQt
ZAC_CTSEQ := cTSEQ
ZAC_END := cEnd
ZAC->(MsUnlock())
ZAC->(DbCloseArea())
VtKeyboard(Chr(20))
ELSE
IF ZAC->ZAC_QTD < SB8->B8_SALDO
ZAC->(Reclock("ZAC",.F.))
ZAC->ZAC_FILIAL := xFilial("ZAC")
ZAC->ZAC_COD := cProdu
ZAC->ZAC_LOTE := cLote
ZAC->ZAC_QTD := cQt
ZAC_END := cEnd
ZAC->(MsUnlock())
ZAC->(DbCloseArea())
VtKeyboard(Chr(20))
ELSE
VtAlert('Quantidade Bipada Maior que o estoque!','Aviso',.t.,4000,3)
VtKeyboard(Chr(20))
VtBeep(3)
ENDIF
ENDIF
VtBeep(2)
ELSE
VtAlert('Produto não encontrado no estoque!','Aviso',.t.,4000,3)
VtKeyboard(Chr(20))
VtBeep(3)
Return .F.
EndIf
Se puderem me ajudar a entender por que não tá funcionando eu agradeço!!
Programo na linguagem a pouco tempo e estou montando um codigo para rodar no coletor de dados, aonde ele lê a quantidade na etiqueta e o codigo + lote também e depois grava essas informações numa tabela customizada.
Minha dúvida é quando tento usar o DbSelectArea() para fazer as interações com as tabelas (ZAC a que criei e a SB8). Quando passa pelo DbSelectArea() o codigo parece passar direto e vai pra mensagem de alerta. Como é ambiente de teste, as informações estão ok para permitir o teste.
Segue o trecho do codigo:
DbSelectArea("SB8")
SB8->(DBSETORDER(1))
If SB8->(DBSEEK(XFILIAL("SB8") + cProdu + '01' + cLote))
DbSelectArea("ZAC")
ZAC->(DBSETORDER(2))
If !ZAC->(DBSEEK(XFILIAL("ZAC") + cProdu + cLote + Padr(cEnd,TamSX3("ZAC_END")[1])))
ZAC->(Reclock("ZAC",.T.))
ZAC->ZAC_FILIAL := xFilial("ZAC")
ZAC->ZAC_COD := cProdu
ZAC->ZAC_LOTE := cLote
ZAC->ZAC_QTD := cQt
ZAC_CTSEQ := cTSEQ
ZAC_END := cEnd
ZAC->(MsUnlock())
ZAC->(DbCloseArea())
VtKeyboard(Chr(20))
ELSE
IF ZAC->ZAC_QTD < SB8->B8_SALDO
ZAC->(Reclock("ZAC",.F.))
ZAC->ZAC_FILIAL := xFilial("ZAC")
ZAC->ZAC_COD := cProdu
ZAC->ZAC_LOTE := cLote
ZAC->ZAC_QTD := cQt
ZAC_END := cEnd
ZAC->(MsUnlock())
ZAC->(DbCloseArea())
VtKeyboard(Chr(20))
ELSE
VtAlert('Quantidade Bipada Maior que o estoque!','Aviso',.t.,4000,3)
VtKeyboard(Chr(20))
VtBeep(3)
ENDIF
ENDIF
VtBeep(2)
ELSE
VtAlert('Produto não encontrado no estoque!','Aviso',.t.,4000,3)
VtKeyboard(Chr(20))
VtBeep(3)
Return .F.
EndIf
Se puderem me ajudar a entender por que não tá funcionando eu agradeço!!
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
3 anos 1 mês atrás #33198
por admin
Respondido por admin no tópico DbSelectArea()
Brother estranho não entendi muito bem o que está acontecendo, mas já tentou debugar seu código ?
Fiz uma alteração, veja se funciona.
Fiz uma alteração, veja se funciona.
DbSelectArea("SB8")
If SB8->(dbSetOrder(1), DBSEEK(XFILIAL("SB8") + cProdu + '01' + cLote))
If !ZAC->(dbSetOrder(2), DBSEEK(XFILIAL("ZAC") + cProdu + cLote + Padr(cEnd,TamSX3("ZAC_END")[1])))
ZAC->(Reclock("ZAC",.T.))
ZAC->ZAC_FILIAL := xFilial("ZAC")
ZAC->ZAC_COD := cProdu
ZAC->ZAC_LOTE := cLote
ZAC->ZAC_QTD := cQt
ZAC_CTSEQ := cTSEQ
ZAC_END := cEnd
ZAC->(MsUnlock())
ZAC->(DbCloseArea())
VtKeyboard(Chr(20))
ELSE
IF ZAC->ZAC_QTD < SB8->B8_SALDO
ZAC->(Reclock("ZAC",.F.))
ZAC->ZAC_FILIAL := xFilial("ZAC")
ZAC->ZAC_COD := cProdu
ZAC->ZAC_LOTE := cLote
ZAC->ZAC_QTD := cQt
ZAC_END := cEnd
ZAC->(MsUnlock())
ZAC->(DbCloseArea())
VtKeyboard(Chr(20))
ELSE
VtAlert('Quantidade Bipada Maior que o estoque!','Aviso',.t.,4000,3)
VtKeyboard(Chr(20))
VtBeep(3)
ENDIF
ENDIF
VtBeep(2)
ELSE
VtAlert('Produto não encontrado no estoque!','Aviso',.t.,4000,3)
VtKeyboard(Chr(20))
VtBeep(3)
Return .F.
EndIf
Por favor Acessar ou Registrar para participar da conversa.
- CZL1
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 21
- Obrigados Recebidos: 0
Tempo para a criação da página:0.112 segundos