locked
imprimir contenido de mi datagridview en el printdocument RRS feed

Respuestas

  • pero solo me imprime la primera fila (En negrita)mas no las demás: por ejemplo


    Claro que solo te imprime la primera fila: fíjate que en la instrucción que estás usando le pides que escriba SelectedRows(0). Ese "0" significa "la primera de las filas que estén seleccionadas". A no ser que en algún otro sitio del bucle de impresión estés ejecutando algo de código que cambie la selección de filas, se escribirá solo la primera fila.

    Y ojo también al último "100, 200", que hace que siempre se escriba en la posición (100,200). Si no cambias esto dentro del bucle que usas para recorrer las filas, entonces todas ellas se superpondrán una encima de otra porque siempre escribes en las mismas coordenadas.

    lunes, 14 de agosto de 2017 6:13
  • Si al poner SelectedRows(1) te da un error de "índice fuera del intervalo", eso implica que SeletedRows solo tiene 1 fila. Es decir, que únicamente se ha seleccionado en el grid una única fila, y el resto están sin seleccionar. Por eso decía en mi respuesta anterior que "... a no ser que en algún otro sitio del bucle de impresión estés ejecutando algo de código que cambie la selección de filas, se escribirá solo la primera fila". Si no estás jugando con la selección de filas, sino que quieres escribir el Grid completo, entonces no tiene sentido que uses el SelectedRows. Tendrías que usar en su lugar la colección Rows.
    martes, 15 de agosto de 2017 6:25

Todas las respuestas

  • pero solo me imprime la primera fila (En negrita)mas no las demás: por ejemplo


    Claro que solo te imprime la primera fila: fíjate que en la instrucción que estás usando le pides que escriba SelectedRows(0). Ese "0" significa "la primera de las filas que estén seleccionadas". A no ser que en algún otro sitio del bucle de impresión estés ejecutando algo de código que cambie la selección de filas, se escribirá solo la primera fila.

    Y ojo también al último "100, 200", que hace que siempre se escriba en la posición (100,200). Si no cambias esto dentro del bucle que usas para recorrer las filas, entonces todas ellas se superpondrán una encima de otra porque siempre escribes en las mismas coordenadas.

    lunes, 14 de agosto de 2017 6:13
  • Si al poner SelectedRows(1) te da un error de "índice fuera del intervalo", eso implica que SeletedRows solo tiene 1 fila. Es decir, que únicamente se ha seleccionado en el grid una única fila, y el resto están sin seleccionar. Por eso decía en mi respuesta anterior que "... a no ser que en algún otro sitio del bucle de impresión estés ejecutando algo de código que cambie la selección de filas, se escribirá solo la primera fila". Si no estás jugando con la selección de filas, sino que quieres escribir el Grid completo, entonces no tiene sentido que uses el SelectedRows. Tendrías que usar en su lugar la colección Rows.
    martes, 15 de agosto de 2017 6:25
  • y no estoy ejecutando ningún bucle que cambie la selección de filas. Probé con el Rows y me imprime igual solo la primera fila .

    Pero según el código que has mostrado sigues todavía poniendo (0) en lugar de usar un bucle !!! ¿No habíamos quedado en que mientras no pongas un bucle que recorra las filas nunca saldrá nada más que una única fila?

    Ese bucle puede ser de dos tipos: O bien vas cambiando la selección de fila y entonces usas SelectedRows, o bien usas Rows y entonces con el bucle vas recorriendo las filas sin seleccionarlas. Pero de todas todas necesitas un bucle, sino siempre te saldrá una sola fila.

    viernes, 18 de agosto de 2017 17:12
  • A ver, no es nada bueno que copies un cacho de código al azar y luego te quejes de que no hace lo que quieres que haga. Examina el programa, fíjate en lo que hace, y cambia las partes que no sean como quieres que sean.

    En particular, ese código que has puesto tiene un bucle que hace "For Each celda... in row.Cells", cosa que básicamente significa "quiero imprimir TODAS las celdas". Obviamente, si NO quieres todas, tendrás que quitar ese bucle que las recorre todas, y en su lugar escribir una a una las que sí quieres (o dejar el bucle y meterle un "If" que se salte las que no quieres).

    • Marcado como respuesta DANI27 viernes, 18 de agosto de 2017 17:57
    • Desmarcado como respuesta DANI27 viernes, 18 de agosto de 2017 17:57
    • Propuesto como respuesta Willams Morales viernes, 18 de agosto de 2017 19:24
    viernes, 18 de agosto de 2017 17:40
  • . no te molestes guey si no te da la gana de aportar no lo hagas

    dantexito


    • Editado DANI27 viernes, 18 de agosto de 2017 18:57 fastidio
    viernes, 18 de agosto de 2017 17:59
  • Pido disculpas si ha parecido un poco brusca mi respuesta, pero también tú tienes que ponerte un poco en el lugar de las personas que aportan las respuestas. Hay veces que resulta desesperante: le explicas a alguien qué es lo que está haciendo mal y por qué no puede funcionar lo que está haciendo, y cómo tiene que cambiarlo, y después de intercambiar unos cuantos mensajes resulta que te ponen "he hecho esto y no funciona", y en lo que han hecho resulta que están haciendo precisamente lo que les explicaste que no podía funcionar.

    A pesar de todo, no obstante te he respondido dónde estaba el problema del código y cuál es la parte que falla y qué cambios habría que hacer para arreglarlo. Aunque la respuesta esté escrita en forma de texto y no aporte código, tampoco es algo como para decir "...no te da la gana de aportar no lo hagas." Al fin y al cabo era una aportación válida, ya que explica cuál es el problema y narra cómo solucionarlo.

    • Propuesto como respuesta Willams Morales viernes, 18 de agosto de 2017 19:24
    viernes, 18 de agosto de 2017 19:18