COMO EU POSSO CRIAR UM RELATORIO??

TIDY 29/12/2011 09:43:28
#392099
Bom Dia a todos.
eu criei um projeto de Vendas onde eu executo uma venda relacionando com algum Cliente!

1º clico na janela de vendas.
2º clico no botão selecionar cliente, ele me faz uma consulta linq ao banco de dados SQL e me traz os dados do cliente aos campos da janela de vendas
3ºclico no botao selecionar produto, ele me faz uma consulta linq ao banco de dados sql e me traz os dados dos produtos a um datagridview na mesma janela de vendas
quantos produtos eu inserir ele vai carregando no grid os produtos!
4º clico em salvar e salva todas as informações em uma tabela do banco de dados!
porem, quando eu vou gerar o relatorio! por todas as vezes que adicionei um produto a mais na grid ele gera tambem os dados dos clientes!

ficando varias vezes os campos do cliente preenxidos repetidamente e porem os dos produtos ficam normais!

eu não estou conseguindo arrumar isso! estou usando o simples reportview, ja tentei o crystal report mas da no mesmo! e pra mim ficou mais complicado de usa-lo

Sou um pouco inesperiente no VB e em qualquer outra linguagem!
TECLA 29/12/2011 20:01:49
#392141
Posta um PRINT do FORM (ou do REPORT) pra gente ter uma ideia do que está ocorrendo.
NICKOSOFT 31/12/2011 21:43:04
#392220
Resposta escolhida
crystal report com dados do cliente e subreport com dados dos produtos, mas nunca fiz os dados vindos de apenas uma tabela, sendo originarios de 2 tabelas pelo menos, precisa de um campo igual pra fazer a linkagem do subreport
TIDY 03/01/2012 08:40:43
#392323

Olá, Desculpem a demora pois só tenho acesso a internet no trabalho!

bom segue ai um print[img]
quando eu clico em incluir adiciona um produto em uma tabela temporaria com os dados do cliente e os dados do produto! e quando clico em salvar, salva os dados do cliente e os produtos selecionados em uma tabela Detalhes de pedidos! porem. pra cada produto adicionado ele salva uma linha a mais das informaçoes do cliente! repare que nas demais linhas só tem um campo preenchido com os dados, isso é pq eu abilitei uma opção do report view que blokeia itens duplivcados mas mesmo assim adiciona uma linha em branco! isso ajuda um pouco mas nao resolve, pq aqui vendemos no minimo de 10 a 50 itens em uma só Nota fiscal!

ali no campo nome eu deixei a opção desabilitada para entenderem o que ocorre!

eu sei onde esta ocorrendo o erro, mas minha lógica nao esta indo de acordo com o que o programa pode fazer!
Segue o código:


Private Sub btnincluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnincluir.Click
[ô]Verificamos a quantidade foi informada
If txtQuantidade.Text = String.Empty Then
MsgBox([Ô]Informe a quantidade requerida...[Ô])
txtQuantidade.Focus()
Exit Sub
End If
---------------->>>>>> [ô]Verificamos se o nome do produto , preco e quantidade não estão vazios
If txtNomeProduto.Text <> [Ô][Ô] And txtPrecoProduto.Text <> [Ô][Ô] And txtQuantidade.Text <> [Ô][Ô] Then
[ô]

oDetalhesPedidos = New detalhesPedidos

\\\\ AQUI EU ADICIONO OS DADOS. TODOS, é AQUI QUE OCCORRE O ERRO. CADA VEZ QUE EU CLICO EM INCLUIR ELE FAZ UM INSERT, JA TENTEI FAZER UMA CONDIÇÃO DE SE OS CAMPOS ODETALHESpEDIDOS JA ESTIVESSEM PREENCHIDOS ENTAO NAO ADICIONACE UMA LINHA MAS NAO ADIANTOU!
oDetalhesPedidos.razaoSocial = razaoSocial
oDetalhesPedidos.Telefone = TelTextBox.Text
oDetalhesPedidos.dataCompra = txtdata.Text
oDetalhesPedidos.Enderecoo = EnderecoTextBox.Text
oDetalhesPedidos.Bairroo = BairroTextBox.Text
oDetalhesPedidos.Cidadee = CidadeTextBox.Text
oDetalhesPedidos.Ceep = CepTextBox.Text
oDetalhesPedidos.Cnpjj = CnpjTextBox.Text
oDetalhesPedidos.inscrEstadual = Inscricao_estadualTextBox.Text
oDetalhesPedidos.emaill = EmailTextBox.Text
oDetalhesPedidos.contatoo = ContatoTextBox.Text

[ô]Preenchemos os valores no objeto

oDetalhesPedidos.Código = Código
oDetalhesPedidos.nomeProduto = nomeProduto
oDetalhesPedidos.Preço = Preço
oDetalhesPedidos.Quantidade = Convert.ToInt32(txtQuantidade.Text)
oDetalhesPedidos.Estoque = Estoque
oDetalhesPedidos.Pgto = Convert.ToString(txtpgto.Text)
oDetalhesPedidos.DataEntrega = Convert.ToString(txtentrega.Text)
oDetalhesPedidos.Subtotal = Preço * Convert.ToInt32(txtQuantidade.Text)
[ô]Verificamos se o produto solicitado esta na lista de pedidos
[ô]Se não estiver incluimos na lista de DetalhesPedidos
If buscarDetalhesVendas(ArrDetalhesPedidos, oDetalhesPedidos) = False Then

[ô]Incluimos o pedido a lista de DetalhesPedidos
ArrDetalhesPedidos.Add(oDetalhesPedidos)
razaoSocial.ToList.Remove(razaoSocial)
End If

[ô]Associamos a lista como origem da fonte de dados
Me.dgVendas.DataSource = ArrDetalhesPedidos.ToList
End If
TIDY 04/01/2012 08:34:20
#392359
Citação:

:
crystal report com dados do cliente e subreport com dados dos produtos, mas nunca fiz os dados vindos de apenas uma tabela, sendo originarios de 2 tabelas pelo menos, precisa de um campo igual pra fazer a linkagem do subreport



Nick eu não posso usar o Crystal report pq criei o banco de dados no proprio VB ai na hora de mandar procurar o Banco de dados no Crystal ele nao reconhece!

e eu não gostei do Crystal reports hehe! mas a sua idea me ajudou a resolver o problema, quando voce falou em subreport eu lembrei que o reportView tem isso, mas nao foi isso que eu fiz.

Nas opções do report tem uma opção de Group ai eu adicionei grupos e exclui a tabela [Ô]MAE[Ô] ai só carrega um dado apenas do Cliente e nao varios! se eu fosse trabalhar com uma planilia que eu fosse guardar os dados do cliente pra saber oque ele comprou no ano eu teria problemas mas como'é apenas gerado um relatorio como nota fiscal e depois apagado nao tem problema nenhum! obrigado Nick!

As vezes as pessoas dão dicas que aos olhos dos outros sao besteiras ou apenas algo que descartamos mas em alguma palavra nos leva a ter ideas que nos ajudam a chegar onde queremos!

Obrigado
Tópico encerrado , respostas não são mais permitidas