none
Imprimir datos desde una matriz RRS feed

  • Pregunta

  • Muy buenas tardes

    El problema que tengo es el siguiente: necesito imprimir unos datos que tengo en una matriz, pero nose como mandar esos datos a una impresora y tambien necesito pasar la posicion de los datos a imprimir.

    ¿Se puede hacer esto de mandar a imprimir datos desde una matriz y pasar la posicion de los datos a imprimir?

    Por lo que les solicito su ayuda ya sea con algun link o código, o alguna idea, de antemano muchas gracias por su ayuda.

    SrKuen® srkuen® Srkuen® srKuen® Sr Kuen® Sr. Kuen® Sr. kuen® sr. Kuen® sr. kuen® sr kuen® Sr kuen® sr Kuen® Sr Kuen®
    • Cambiado Fran DiazModerator viernes, 29 de mayo de 2009 10:09 Reporting ([Loc]From:Lenguaje C#)
    miércoles, 4 de marzo de 2009 21:20

Respuestas

  • Hola,

    Te cuento, haces un tiempo atras para un proyecto para un laboratorio nos encontramos con el mismo problema, la impresion de etiquetas sobre papel adhesivo, ya que esas etiquetas debian pegarse en frasco para su clasificacion.

    Para resolverlo no usamos Crystal, sino que fue con ActiveReports.

    Basicamente lo que se hizo fue delimitar el tamaño de la hoja del reporte, para que sea identico al de la etiqueta (o sea la hoja toma el tamaño de la etiqueta), y alli se agregaron los campos, que se bindearian al origen de datos.
    Luego al cargar los datos estos eran una n cantidad, que generaria la n cantidad de etiquetas. Esto ultimo al bindear el mismo reporteador lo hace solito.

    Igualmente por lo que se con Crystal tambien deberia poder lograrse, no son muy diferentes.

    Lo que no recuerdo exactamente como se habia logrado para que entre mas de una etiqueta por hoja.
    Pero me parece que lo que se hizo fue diseñar mas de una etiqueta en una hoja, y despues una vez cargada, por codigo se escribio logica para ver cuales no tenian datos y se borraban los recuadros y controles que sobraban. Igual esto tendria que confirmarlo, ya que yo no realice el diseño final.
    Si usas una impresora de etiquetas creo que no tendras este problema, ya que esas impresoras imprimen ya el tañano justo y de a una.

    Yo te cuento mandar a imprimir usando posiciones no es nada lindo, no lo hice nunca en .net, gracias a Dios, pero si me toco vivirlo en VB6, y te la regalo, era un juego milimetrico, en donde pararecia un caracter de mas se movia todo el diseño y andar recalculando todas las posiciones, era realmente complejo.

    Por eso te recomiendo un reporte, ve si puedes diseñarlo alli, y por ahi agregando algo de codigo en un reporteador es mil veces mas simple, si logras hacer lo que quieres, por lo menos el diseño es visual.
    Ademas es mas limpio para el mantenimiento posterior, si es que cambia alguna piscion, o existe algun corrimiento, o sea las tipicas modificacion, que de eso un desarrollador nunca esta exento.


    Saludos


    Leandro Tuttini
    • Marcado como respuesta superricagoku viernes, 6 de marzo de 2009 17:53
    jueves, 5 de marzo de 2009 2:54
  • Muchas gracias por tu ayuda Leandro Tuttini :

    Descarge el ActiveReports, se ve que es muy interesante, pero no pude ocuparlo al máximo.

    En lo que anduve buscando un manual de como utilizar el activereports me encontre con este link http://www.netveloper.com/contenido2.aspx?IDC=185_0

    Donde me manda directamente los datos a la impresora "sin hacer mucho en diseño".

    Pero muchas gracias por tu tiempo para orientarme y aclarar muchas dudas que tenia.

    Que tengas un buen dia.

    SrKuen® srkuen® Srkuen® srKuen® Sr Kuen® Sr. Kuen® Sr. kuen® sr. Kuen® sr. kuen® sr kuen® Sr kuen® sr Kuen® Sr Kuen®
    • Marcado como respuesta superricagoku viernes, 6 de marzo de 2009 17:53
    viernes, 6 de marzo de 2009 17:52

Todas las respuestas

  • hola,

    Una consulta si o si debes mandar directo a al impresora ?

    Porque lo pregunto, es que me imagino que seria mas simple si usaras algun sistema de reportes, llamese Crystal Report, Reporting Service, Data Dynamics, o algun otro.

    O sea tu tienes la matriz pero esta podrias cargarla en un reporte como si fuera un listado, tambien si quieres puedes darle un diseño.

    Por ahi lo que puede molestar es si tu matriz es demasiado dinamica en cuanto a columnas y posiciones, pero si tiene forma de listado, un reporte es lo mas simple.

    Es mas aunque no tenga forma de listado, aunque sean formularios, yo he realizado formularios de facturas muy buenos con Crystal Reports.

    Ademas los sistemas de reporte tiene funcionalidad de impresion bien simple.

    Por ahi esta matriz la estas usando para imprimir un formulario pre-impreso, no hay problema, en el reporte no realizas diseño solo colocas los campos en las posiciones exactas del pre-impreso y eso es todo.
    Por ahi en este punto vas a tener que ir jugando bastante con las posiciones hasta que coincidan pero creo que es mas facil que jugar con posiciones en el aire que le envias a una impresora por codigo.

    bueno espero que este consejo te sirva.
    Saludos

    Leandro Tuttini
    miércoles, 4 de marzo de 2009 22:39
  • Primero que todo gracias por responder  Leandro Tuttini

    Lo de mandarlo directo a la impresora no le veo inconveniente el de hacerlo o no, lo que sucede es que trato de imprimir etiquetas o viñetas, realmente el número de impresión será dinámico según se escojan, estas pueden ir de una hasta "n" viñetas o etiquetas.

    Y las dimensiones que tiene la viñeta o etiqueta son:

    en pulgadas: 3 1/2 x 15/16

    en centímetros: 8.89 x 2.38125

    Y con respecto a la matriz, es que en el formulario tengo solo un una parte que esta en un DataGridView, de donde inicio para extraer de la base de datos los demás datos.

    Un ejemplo de como me quedaría la etiqueta es lo siguiente:

    Código: 123456789
    Valor: $123456.00
    Lugar: Etiopia
    Ubicación: Caja23
    Dueño(s): Fulanito de tal, fulanita de tal.


    Es lo que trato de hacer, he estado investigando un poco y estoy leyendo acerca de PrintDocument y PrintDialog a ver si esto me sirve.

    Disculpa que sea un poco atrevido al abusar de tu confianza al preguntarte ¿que ideas puedes darme para solucionarlo?

    SrKuen® srkuen® Srkuen® srKuen® Sr Kuen® Sr. Kuen® Sr. kuen® sr. Kuen® sr. kuen® sr kuen® Sr kuen® sr Kuen® Sr Kuen®
    miércoles, 4 de marzo de 2009 22:56
  • Hola,

    Te cuento, haces un tiempo atras para un proyecto para un laboratorio nos encontramos con el mismo problema, la impresion de etiquetas sobre papel adhesivo, ya que esas etiquetas debian pegarse en frasco para su clasificacion.

    Para resolverlo no usamos Crystal, sino que fue con ActiveReports.

    Basicamente lo que se hizo fue delimitar el tamaño de la hoja del reporte, para que sea identico al de la etiqueta (o sea la hoja toma el tamaño de la etiqueta), y alli se agregaron los campos, que se bindearian al origen de datos.
    Luego al cargar los datos estos eran una n cantidad, que generaria la n cantidad de etiquetas. Esto ultimo al bindear el mismo reporteador lo hace solito.

    Igualmente por lo que se con Crystal tambien deberia poder lograrse, no son muy diferentes.

    Lo que no recuerdo exactamente como se habia logrado para que entre mas de una etiqueta por hoja.
    Pero me parece que lo que se hizo fue diseñar mas de una etiqueta en una hoja, y despues una vez cargada, por codigo se escribio logica para ver cuales no tenian datos y se borraban los recuadros y controles que sobraban. Igual esto tendria que confirmarlo, ya que yo no realice el diseño final.
    Si usas una impresora de etiquetas creo que no tendras este problema, ya que esas impresoras imprimen ya el tañano justo y de a una.

    Yo te cuento mandar a imprimir usando posiciones no es nada lindo, no lo hice nunca en .net, gracias a Dios, pero si me toco vivirlo en VB6, y te la regalo, era un juego milimetrico, en donde pararecia un caracter de mas se movia todo el diseño y andar recalculando todas las posiciones, era realmente complejo.

    Por eso te recomiendo un reporte, ve si puedes diseñarlo alli, y por ahi agregando algo de codigo en un reporteador es mil veces mas simple, si logras hacer lo que quieres, por lo menos el diseño es visual.
    Ademas es mas limpio para el mantenimiento posterior, si es que cambia alguna piscion, o existe algun corrimiento, o sea las tipicas modificacion, que de eso un desarrollador nunca esta exento.


    Saludos


    Leandro Tuttini
    • Marcado como respuesta superricagoku viernes, 6 de marzo de 2009 17:53
    jueves, 5 de marzo de 2009 2:54
  • Muchas gracias por tu ayuda Leandro Tuttini :

    Descarge el ActiveReports, se ve que es muy interesante, pero no pude ocuparlo al máximo.

    En lo que anduve buscando un manual de como utilizar el activereports me encontre con este link http://www.netveloper.com/contenido2.aspx?IDC=185_0

    Donde me manda directamente los datos a la impresora "sin hacer mucho en diseño".

    Pero muchas gracias por tu tiempo para orientarme y aclarar muchas dudas que tenia.

    Que tengas un buen dia.

    SrKuen® srkuen® Srkuen® srKuen® Sr Kuen® Sr. Kuen® Sr. kuen® sr. Kuen® sr. kuen® sr kuen® Sr kuen® sr Kuen® Sr Kuen®
    • Marcado como respuesta superricagoku viernes, 6 de marzo de 2009 17:53
    viernes, 6 de marzo de 2009 17:52