COMO MOSTRAR OS ITENS VENDIDOS DE CADA FUNCIONARIO
Boa Tarde Galera!
estou desenvolvendo um simples projetinho.
1 tela de login,
1 tela de cadastro de senhas que tem 3 niveis
1 = Tela do Patrão
2 = Tela do Gerente
3 = Tela do Funcionario
1 tela de cadastro de produtos, que quem vai usar somente o Gerente
1 tela de Vendas que é aberta para os funcionarios.
ex.
quando alguem da loja for cadastrar a sua senha la tera a opção para escolher a função.
Patrão - abre todas as telas
Gerente - abre a tela Cadastro e Vendas
Funcionario - abre somente a tela de Vendas
para criar uma senha, quando escolhe o tipo da função:
se escolher Patrão ou Gerente, vai pedir uma senha mestra
e se escolher Funcionario a não pede senha e o funcionario pode criar a sua senha, e quando eles colocarem o login e senha, vai abrir tal tela determinada, se o usuario for patrão - abre todas as telas e assim para todas... até ai ta perfeito!
vou mandar as telas para uma explicação bem melhor.
estou desenvolvendo um simples projetinho.
1 tela de login,
1 tela de cadastro de senhas que tem 3 niveis
1 = Tela do Patrão
2 = Tela do Gerente
3 = Tela do Funcionario
1 tela de cadastro de produtos, que quem vai usar somente o Gerente
1 tela de Vendas que é aberta para os funcionarios.
ex.
quando alguem da loja for cadastrar a sua senha la tera a opção para escolher a função.
Patrão - abre todas as telas
Gerente - abre a tela Cadastro e Vendas
Funcionario - abre somente a tela de Vendas
para criar uma senha, quando escolhe o tipo da função:
se escolher Patrão ou Gerente, vai pedir uma senha mestra
e se escolher Funcionario a não pede senha e o funcionario pode criar a sua senha, e quando eles colocarem o login e senha, vai abrir tal tela determinada, se o usuario for patrão - abre todas as telas e assim para todas... até ai ta perfeito!
vou mandar as telas para uma explicação bem melhor.
segue a tela do Login
segue a tela do login com o tipo de cadastro
segue a tela de cadastro de senhas
segue a tela do Gerente que vai cadastrar os produtos.
segue a tela do funcionario.
agora chegou onde eu queria...
quando eu clico no botão Nova Venda. o msflexgrid é habilitado ai eu posso clicar na linha desejada para escolher o produto vendido.
coloco a quantidade e o valor do produto.
e salvo.
quando eu gravo essa venda, ela é gravada da seguinte maneira:
codigo da venda - codigo do funcionario - codigo interno da venda - descrição - a quantidade vendida do produto - o valor do produto - data da venda - e a data de vencimento do produto.
eu quero mostrar na outra aba vendidos da seguinte forma:
ex.
pega o codigo do funcionario que na foto é o codigo do funcionario everton - 222
e mostre somente as vendas que ele efetuou, todas do codigo dele.
quando eu entrar com outro usuario as vendas irão ser salvas com o codigo do mesmo....
agora chegou onde eu queria...
quando eu clico no botão Nova Venda. o msflexgrid é habilitado ai eu posso clicar na linha desejada para escolher o produto vendido.
coloco a quantidade e o valor do produto.
e salvo.
quando eu gravo essa venda, ela é gravada da seguinte maneira:
codigo da venda - codigo do funcionario - codigo interno da venda - descrição - a quantidade vendida do produto - o valor do produto - data da venda - e a data de vencimento do produto.
eu quero mostrar na outra aba vendidos da seguinte forma:
ex.
pega o codigo do funcionario que na foto é o codigo do funcionario everton - 222
e mostre somente as vendas que ele efetuou, todas do codigo dele.
quando eu entrar com outro usuario as vendas irão ser salvas com o codigo do mesmo....
estou mandando tbm a tabela de vendas para vcs entenderem como esta sendo salvas para eu poder mostrar....
aew.. , faltou o campo CLIENTE, sem isso não da..
Do While Not rs.EOF = True
If rs!funcionario = Txtfuncionario.Text Then
Grid.Additem
End If
rs.MoveNext
Loop
Amigo, você passa um Loop na sua tabela verificando se a condição corresponde a algum registro, se sim adiciona no Grid, e lembrando que isso que eu passei é genérico, não é copiar e colar, abraços.
eu desenhei um form para fazer apenas um teste
coloquei 1 textbox, 1 command, 1 listbox e 1 msflexgrid:
quando eu digito o codigo do funcionario no textbox e aperto o botão no list carrega todas as vendas que esse funcionario efetuou
e se eu digitar outro funcionario tbm carrega somente as vendas dele, mais no grid só aparece o ultimo registro repare na imagem...
olha como esta o codigo do command...
[txt-color=#0000f0]Private Sub Command1_Click()
Conecta True
Dim RS As Recordset [ô] basta eu declarar o recordset
Dim sSQL As String
sSQL = [Ô]Select Distinct * from Vendas order by Vendas.CodFuncionario[Ô]
Set RS = Conexao.Execute(sSQL) [ô] só
Dim letras
List.Clear
[ô]Set tabela = banco.OpenRecordset([Ô]Select Distinct * from cadclientes order by cadclientes.IDcliente[Ô])
letras = Len(nomcli.Text)
If RS.RecordCount = 0 Then
MsgBox [Ô]Você não tem nenhum registro na tabela.[Ô], vbInformation, [Ô]Informação[Ô]
nomcli.Text = [Ô][Ô]
Exit Sub
Else
RS.MoveFirst
End If
Do While RS.EOF = False
If UCase(Mid(RS([Ô]CodFuncionario[Ô]), 1, letras)) = UCase(nomcli.Text) Then
List.AddItem RS([Ô]CodFuncionario[Ô]) & [Ô] - [Ô] & RS([Ô]Descrição[Ô])
CabecalhoGrid2
With MSFlexGrid1
.Rows = .Rows + 1 [ô]ira adicionar linhas até preencher todo grid
.TextMatrix(.Rows - 1, 0) = RS!Cod
.TextMatrix(.Rows - 1, 1) = RS!CodInterno
.TextMatrix(.Rows - 1, 2) = RS!Descrição
.TextMatrix(.Rows - 1, 3) = RS!QTDVendida
.TextMatrix(.Rows - 1, 5) = RS!ValorVendido
.TextMatrix(.Rows - 1, 6) = RS!DataInclusão
.TextMatrix(.Rows - 1, 7) = RS!DataValidade
.Row = .Rows - 1
.Col = 8
End With
End If
RS.MoveNext
Loop
Conecta False
End Sub
[/txt-color]
coloquei 1 textbox, 1 command, 1 listbox e 1 msflexgrid:
quando eu digito o codigo do funcionario no textbox e aperto o botão no list carrega todas as vendas que esse funcionario efetuou
e se eu digitar outro funcionario tbm carrega somente as vendas dele, mais no grid só aparece o ultimo registro repare na imagem...
olha como esta o codigo do command...
[txt-color=#0000f0]Private Sub Command1_Click()
Conecta True
Dim RS As Recordset [ô] basta eu declarar o recordset
Dim sSQL As String
sSQL = [Ô]Select Distinct * from Vendas order by Vendas.CodFuncionario[Ô]
Set RS = Conexao.Execute(sSQL) [ô] só
Dim letras
List.Clear
[ô]Set tabela = banco.OpenRecordset([Ô]Select Distinct * from cadclientes order by cadclientes.IDcliente[Ô])
letras = Len(nomcli.Text)
If RS.RecordCount = 0 Then
MsgBox [Ô]Você não tem nenhum registro na tabela.[Ô], vbInformation, [Ô]Informação[Ô]
nomcli.Text = [Ô][Ô]
Exit Sub
Else
RS.MoveFirst
End If
Do While RS.EOF = False
If UCase(Mid(RS([Ô]CodFuncionario[Ô]), 1, letras)) = UCase(nomcli.Text) Then
List.AddItem RS([Ô]CodFuncionario[Ô]) & [Ô] - [Ô] & RS([Ô]Descrição[Ô])
CabecalhoGrid2
With MSFlexGrid1
.Rows = .Rows + 1 [ô]ira adicionar linhas até preencher todo grid
.TextMatrix(.Rows - 1, 0) = RS!Cod
.TextMatrix(.Rows - 1, 1) = RS!CodInterno
.TextMatrix(.Rows - 1, 2) = RS!Descrição
.TextMatrix(.Rows - 1, 3) = RS!QTDVendida
.TextMatrix(.Rows - 1, 5) = RS!ValorVendido
.TextMatrix(.Rows - 1, 6) = RS!DataInclusão
.TextMatrix(.Rows - 1, 7) = RS!DataValidade
.Row = .Rows - 1
.Col = 8
End With
End If
RS.MoveNext
Loop
Conecta False
End Sub
[/txt-color]
OK...
Troque isso:
Por isso:
Não tem como não dar certo, é uma simples verificação, se você notar, você só vai falar...
se esse código que eu digitei aqui no text do form for igual o código do registro, adiciona todos os campos que você quiser no grid, e depois da um move next e verifica tudo de novo..
ve se funciona..
Troque isso:
If UCase(Mid(RS([Ô]CodFuncionario[Ô]), 1, letras)) = UCase(nomcli.Text) Then
Por isso:
If RS!CodFuncionario = nomcli.Text Then
Não tem como não dar certo, é uma simples verificação, se você notar, você só vai falar...
se esse código que eu digitei aqui no text do form for igual o código do registro, adiciona todos os campos que você quiser no grid, e depois da um move next e verifica tudo de novo..
ve se funciona..
Tópico encerrado , respostas não são mais permitidas