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())
Exemplo em Vídeo:
Clique nesse link para ver um exemplo em Vídeo da nossa Maratona de Exemplos.
Observações:
– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
– Se tiver sugestões de rotinas, pode entrar em contato;