Galera, Boa Tarde..
Fiz um relatorio com reportwier, via codigo onde monto o pedido PAI e Pedidos filhos.
O pai e unico e os filhos dependendo to tanto de filhos que esse pedido tem. o problema é que pode ser qualquer quantidade de filho ele so carrega o pai e um filho.
E xemplo..
Pedido pai(Codigo '1'), pedidos filhos (Codigo '1','2','3') so vai carregar o pai e o filho 3.
Segue a funçao que estou usando.
Dim orcl As String = "select cdpfi as numpedcomp from lep_web_pedido where ebeln = '" & NumPedPrinc & "'"
Dim dtNumFilho As DataTable = ExecuteDataTable(orcl)
Dim dtPedidoFilho As New DataTable
For Each Item As DataRow In dtNumFilho.Rows
Dim orcl1 As String = "Select distinct fornc as FORNECEDOR, name1 as RAZSOC,'' as NEG,'' as CODNEG,eindt as ENTREGA,zterm as COND_PAGTO, inco1 as FRETE,' ' as PORCDESC,fileg as LOCALDESTINO,locen as LOCALENTREGA,txz01
as DESCRICAOTP FROM lep_web_pedido where cdpfi in('" & Item("Numpedcomp") & "') "
Dim dtLocalEntregaparc As DataTable = ExecuteDataTable(orcl1)
Dim orcl2 As String = "Select distinct RAZSOC , ENDERECO, NUMERO, CEP, CIDADE, ESTADO, DDD, FONE, CGCCPF, INSCRICAO, (select FANTASIA from CAD_FILIAL where CODFIL = '" & dtLocalEntregaparc.Rows(0)("LOCALDESTINO")
& "') FANTASIA2 from CAD_FILIAL where CODFIL = '" & dtLocalEntregaparc.Rows(0)("LOCALENTREGA") & "'"
Dim dtLocalEntregaparc2 As DataTable = ExecuteDataTable(orcl2)
Dim orcl3 As String = "Select txz01 as DESCRICAO,idnlf as REFER,VLICM as CODIGO,menge as QTDE,brtwr as PRECO_BRUTO,' ' as REF_COR,VLIPI as IPI,color as COR,(menge*brtwr) as TOTAL,'testetotal1' as TOTAL1 from lep_web_pedido
where cdpfi in ('" & Item("Numpedcomp") & "') "
Dim dtItens As DataTable = ExecuteDataTable(orcl3)
Dim orcl4 As String = "Select sum(menge) as QTDE,(brtwr*menge) as TOTAL from lep_web_pedido where cdpfi in('" & Item("Numpedcomp") & "') group by menge,brtwr"
Dim dtTotal As DataTable = ExecuteDataTable(orcl4)
'Tirei para teste Luiz
Dim Quantidade As Integer = 0
Dim Total As Double = 0
For Each TotalItens As DataRow In dtTotal.Rows
'Quantidade = Quantidade + TotalItens("QTDE")
'Total = Total + TotalItens("Total")
Quantidade = TotalItens("QTDE")
Total = TotalItens("Total")
Next
For Each subItem As DataRow In dtItens.Rows
dtPedidoFilho.Rows.Add(Item("NumPedComp"), dtLocalEntregaparc.Rows(0)("FORNECEDOR"), dtLocalEntregaparc.Rows(0)("RAZSOC"), dtLocalEntregaparc.Rows(0)("NEG"), dtLocalEntregaparc.Rows(0)("CODNEG"), dtLocalEntregaparc.Rows(0)("ENTREGA"),
dtLocalEntregaparc.Rows(0)("COND_PAGTO"), dtLocalEntregaparc.Rows(0)("FRETE"), dtLocalEntregaparc.Rows(0)("PORCDESC"), dtLocalEntregaparc.Rows(0)("DESCRICAOTP"), dtLocalEntregaparc2.Rows(0)("RAZSOC"), dtLocalEntregaparc2.Rows(0)("ENDERECO"), dtLocalEntregaparc2.Rows(0)("NUMERO"),
dtLocalEntregaparc2.Rows(0)("CEP"), dtLocalEntregaparc2.Rows(0)("CIDADE"), dtLocalEntregaparc2.Rows(0)("ESTADO"), dtLocalEntregaparc2.Rows(0)("DDD"), dtLocalEntregaparc2.Rows(0)("FONE"), dtLocalEntregaparc2.Rows(0)("CGCCPF"), dtLocalEntregaparc2.Rows(0)("INSCRICAO"),
dtLocalEntregaparc2.Rows(0)("FANTASIA2"), subItem("DESCRICAO"), subItem("REFER"), subItem("CODIGO"), subItem("QTDE"), subItem("PRECO_BRUTO"), subItem("REF_COR"), subItem("COR"), subItem("IPI"), Quantidade, Total)
Next
Next
Return dtPedidoFilho
dtPedidoFilho.Dispose()
dtPedidoFilho.Clear()
End Function