Perguntas DbSelectArea()

Mais
2 anos 6 meses 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!!

Por favor Acessar ou Registrar para participar da conversa.

Mais
2 anos 6 meses 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.
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.

Mais
2 anos 6 meses atrás #33199 por CZL1
Respondido por CZL1 no tópico DbSelectArea()
Resolveu! Obrigado mano!

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.108 segundos
Joomla templates by a4joomla