Carcleo 4 Denunciar post Postado Janeiro 8, 2009 Ola! olha a furada que eu entrei nela. que troço dificil. não estou conseguindo e novamente recorro aos colegas. Estou terminando uma pequena aplicação windows para cadastar pedidos. Bom, acontece, que para imprimir o pedido no PrinDoicumet com os seus ítens, atraves da ajuda de voces eu consegui. O problema agora é que o cliente ta querendo o seguinte: Um relatório que lista todos os pedidos de um período a ser escolhido pelo cliente numa datatimepicker. O sql, tranquilo, ja fiz. Cada pedido do cliente nunca passa de 5 ítens de pedido, na maioria 2 por se tratar de poucos produtos que ele trabalha. Fiz um código que le os pedidos com datareader (leitor) num wile. Dentro desse wilw puz outro wilw para pegar cada uma vez que esse wile recebe um numero de pedido e faço uma consulta usando um dataset para ver quais s~çao os ítens desse pedido e usando um foreach listo os ítens desse pedido. Acontece que quando boto pra rodar o programa trava. eis o código: LinhasPorPagina = e.MarginBounds.Height / FonteNormal.GetHeight(e.Graphics) - 10 While (LinhaAtual < LinhasPorPagina AndAlso leitor.Read()) pedidoID = leitor("pedidoID") clienteID = leitor("clienteID") nomecli = leitor("nome") PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics)) + 100 e.Graphics.DrawString(clienteID, FonteNormal, Brushes.Red, MargemEsquerda, PosicaoDaLinha, New StringFormat()) e.Graphics.DrawString(nomecli, FonteNormal, Brushes.Red, MargemEsquerda + 50, PosicaoDaLinha, New StringFormat()) While (leitor("pedidoID")) Dim PrintStringdetalhespedidos2 As String = "Select * from detalhespedidos where pedidoID= " & leitor("pedidoID") Dim item As DataSet = accDb.ExecuteDS(PrintStringdetalhespedidos2, "detalhespedidos") For Each linhaDS As DataRow In item.Tables(0).Rows produtoID = linhaDS("produtoID") descricao = linhaDS("descricao") quantidade = linhaDS("quantidade") unidade = linhaDS("unidade") preco = linhaDS("preco") subtotal = linhaDS("subtotal") 'condicao = linha("condicao") 'total += subtotal 'condicao = linha("condicao") e.Graphics.DrawString(produtoID, FonteNormal, Brushes.Red, MargemEsquerda + 200, PosicaoDaLinha, New StringFormat()) e.Graphics.DrawString(descricao, FonteNormal, Brushes.Red, MargemEsquerda + 250, PosicaoDaLinha, New StringFormat()) e.Graphics.DrawString(quantidade, FonteNormal, Brushes.Red, MargemEsquerda + 300, PosicaoDaLinha, New StringFormat()) e.Graphics.DrawString(preco, FonteNormal, Brushes.Red, MargemEsquerda + 350, PosicaoDaLinha, New StringFormat()) e.Graphics.DrawString(subtotal, FonteNormal, Brushes.Red, MargemEsquerda + 400, PosicaoDaLinha, New StringFormat()) 'e.Graphics.DrawString(condicao, FonteNormal, Brushes.Red, MargemEsquerda + 450, PosicaoDaLinha, New StringFormat()) 'e.Graphics.DrawString(total, FonteNormal, Brushes.Red, MargemEsquerda + 450, PosicaoDaLinha, New StringFormat()) Next linhaDS End While LinhaAtual += 1 End While Por favor, aonde estou errando? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Janeiro 8, 2009 A ideia é resolver esse problema: Cada linha dessas 2 correspondem a um pedido e se você observar bem, vera um garrancho à frente do primeiro pedido. isso é porque o primeiro pedido, tem 2 ítens e um sobrepos o outros ao passo que o segundo pedido só tem 1 ítem. Problema parece ser de laço! Queria é fazer que meostra-se todos os ítens de cada pedido e só depois que tdos os ítens de um pedido forem listados ai sim mostrar o segundo pedido. Isso respeitando a paginação dos pedidos. Veja: Compartilhar este post Link para o post Compartilhar em outros sites