Bom dia amigo, FELIZ ANO NOVO
o problema é o seguinte, to precisando fazer um codigo assim:
eu tenho uma tabela de entrada
NrProd Descricao Qtde DtVal
10 AS infantil 800 01/01/07
10 AS infantil 200 01/02/07
10 AS infantil 300 01/03/07
essa tabela acima é d entrada, entao eu tenho 3 entrada do mesmo produto
Agora o problema vem aqui, quero dar saida em 1100 unidades, vcs viram q o estoque é 1300, mas nao tenho nenhum entrada de 1000, quero tirar os primeiros 800 da primeira entrada, depois dar um loop, tirar os 200 da segunda entrada, e por fim tirar 100 da terceira entrada....
To abrindo a tabela filtrando pelo NRPROD, ordenada pela data de validade, vejam o codigo q to tentando montar...
----------------------------------------------------------------------------------
TabEntMat.CursorLocation = adUseServer
TabEntMat.Open "Select Seq, qntdsaida, QntdSaldo, QuantCompra, NrMaterial, NomeBase, lote, Est, Fed, Mun, Org, Fabricante, Classe, Unid, NomeMaterial, Grupo, DataEntrada, lote From CadEntMat where NrMaterial ='" & Text3.Text & "' order by [dtval]", BancoMaterial, adOpenKeyset, adLockOptimistic, adCmdText
Dim contador As String
Dim Testa1 As String
contador = Trim(Text5.Text)
Testa1 = "0"
Do While Not contador = "0"
Dim TotCompra As String
TotCompra = "0"
TotCompra = TabEntMat("quantcompra")
If contador >= TotCompra Then
Testa1 = TotCompra
Else
Testa1 = Trim(Text5.Text)
End If
Dim i As Integer
Dim FlagEncontrou As Boolean
FlagEncontrou = False
Dim qte As Integer
qte = Trim(Text5.Text)
If MSFlexGrid1.Rows > 1 Then
For i = 1 To (MSFlexGrid1.Rows - 1)
If MSFlexGrid1.TextMatrix(i, 9) = Text6.Text Then
MSFlexGrid1.TextMatrix(i, 4) = MSFlexGrid1.TextMatrix(i, 4) + qte
FlagEncontrou = True
'.Row = I
Exit For
End If
Next i
End If
With MSFlexGrid1
If FlagEncontrou = False Then
nLinhas = .Rows + 1
.Rows = nLinhas
nPos = .Rows - 1
.Row = nPos
.Col = 0 'insere dados na coluna 1
.Text = TabEntMat("NomeMaterial")
.Col = 1
.Text = TabEntMat("NomeBase")
.Col = 2
.Text = TabEntMat("Org")
.Col = 3
.Text = TabEntMat("Unid")
.Col = 4
.Text = Testa1
.Col = 5
.Text = TabEntMat("NrMaterial")
.Col = 6
.Text = TabEntMat("grupo")
End With
contador = (contador - Testa1)
Testa1 = "0"
TabEntMat.MoveNext
Loop
Text5.Text = "1"
TabEntMat.Close
Text3.Text = ""
Text6.Text = ""
---------------------------------------------------------------------