Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Diiculdades com laços

Recommended Posts

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

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:

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.