ASP.NET - Ayuda con iTextSharp por favor

 
Vista:
sin imagen de perfil

Ayuda con iTextSharp por favor

Publicado por Andres (4 intervenciones) el 10/07/2021 13:48:06
hola, tengo un problema con una aplicación web en vb,net en lenguaje asp.net... estoy creando un reporte pdf a través de la clase iTextSharp... todo el seguimiento del proceso de elaboración funciona perfecto salvo esta parte...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim cell As PdfPCell = New PdfPCell(New Phrase("columns"))
cell.Colspan = dt.Columns.Count
 
For Each c As DataColumn In dt.Columns
    table.AddCell(New Phrase(c.ColumnName, font9))
Next
 
For Each r As DataRow In dt.Rows
    If dt.Rows.Count > 0 Then
        Dim t As Int32
        t = dt.Columns.Count
        For h = 0 To t
            table.AddCell(New Phrase(r(h), ToString(), font9))
        Next h
    End If
Next

mas precisamente en este sector:
1
2
3
For h = 0 To t
    table.AddCell(New Phrase(r(h), ToString(), font9))
Next h
esto lo que hace es recorrer las columnas de la base de datos que traigo previamente con un SP en SQL, e irlas transformando en string para irlas agregando en las tablas del informe, cuando comienza a recorrer la primer fila, lee la primer celda que es un valor Integer ("1"), lo transforma en String y lo manda a la tabla, el problema ocurre cuando salta a la segunda celda, ahi se encuentra con un valor varchar ("prueba"), cuando lo trata de convertir a string produce el error... les dejo una imagen...

1

es la primera vez que uso la clase iTextSharp y encima la fui adaptando de un video tutorial en el cual estaba escrita en C# por ende es posible que la falla provenga de la sintaxis, pero no encuentro solución, alguna sugerencia?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda con iTextSharp por favor

Publicado por Andres (4 intervenciones) el 10/07/2021 14:10:50
solucionado... declare un vector arriba y lo redimencione dentro del for y ahi logre hacerlo andar... les dejo el codigo reacondicionado por si alguien lo necesita

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
For Each r As DataRow In dt.Rows
    If dt.Rows.Count > 0 Then
 
 
        Dim t As Int32
        t = dt.Columns.Count - 1
        For h = 0 To t
            Dim y As Int16
            y = dt.Columns.Count - 1
            ReDim s(y)
            s(h) = r(h)
            table.AddCell(s(h))
        Next h
    End If
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar