SB8Saldo

Função que retorna o Saldo por Lote do produto (SB8)

Exemplo da Rotina:

nSaldo := SB8Saldo(Nil, Nil, Nil, Nil, "SEU_ALIAS", lQtdPrev, .T.)

Exemplo 1- Pegando o saldo do Produto:

//Pegando conteúdo do parâmetro
lQtdPrev := (GetMV("MV_QTDPREV") == "S")

//Buscando a estrutura da SB8
DbSelectArea("SB8")
aStruSB8 := SB8->(DbStruct())

//Criando a consulta que irá buscar os dados do Produto
cQuery := " SELECT "
cQuery += "		* "
cQuery += " FROM "
cQuery += "		" + RetSqlName('SB8') + " SB8 "
cQuery += " WHERE "
cQuery += "		B8_FILIAL  = '" + FWxFilial('SB8') + "' "
cQuery += "		AND B8_PRODUTO = 'PROD001' "
cQuery += "		AND B8_LOTECTL = 'LOTE001' "
cQuery += "		AND SB8.D_E_L_E_T_ = ' ' "
TCQuery cQuery New Alias 'QRY_SB8'

//Se houver dados da consulta
If ! QRY_SB8->(EoF())

	//Percorrendo os campos da estrutura
	For nAtual := 1 To Len(aStruSB8)

		//Se o tipo for diferente de Caracter, transforma o campo (por causa dos campos de Data)
		If aStruSB8[nAtual][2] <> "C"
			TcSetField("QRY_SB8", aStruSB8[nAtual][1], aStruSB8[nAtual][2], aStruSB8[nAtual][3], aStruSB8[nAtual][4])
		EndIf
		
	Next nAtual
	
	//Percorre todas as linhas da query
	While ! QRY_SB8->(EoF())
		//Pega o saldo e mostra um alert
		nSaldo := SB8Saldo(Nil, Nil, Nil, Nil, "QRY_SB8", lEmpPrev, .T.)
		Alert(nSaldo)
		
		QRY_SB8->(DbSkip())
	EndDo
	
EndIf
QRY_SB8->(DbCloseArea())

Observações:

– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;

– Se tiver sugestões de rotinas, pode entrar em contato;