Visual Basic Foro
Programación => Visual Basic .NET / C# => Mensaje iniciado por: nemesis wolf en Agosto 13, 2015, 12:32:48 am
-
Hola a todos tengo una duda que no eh podido resolver, ya llevo tiempo intentanto pero no logro hacerlo funcionar, es un proyecto de la escuela para el departamento de nominas, tengo una ventana donde introdusco los datos y ya me da otros datos por default mi duda es como hacer para mandar esos datos que estan almacenados en labels y textbox como mandarlos a imprmir en txt
Aqui les dejo un ejemplo del form
(http://s24.postimg.org/4pw0zsnep/reporte.jpg) (http://postimg.org/image/4pw0zsnep/)
-
Hola.
Para crear un txt con la lista de todos los detalles solo tienes que hacer el recorrido de los labels y textos mediante un For Next y añadiendo saltos de linea vbCrLf en cada Next.
Hacerlo en txt es algo que para mi resulta incomodo de leer. A menos que sean pocos datos.
Una forma mas cómoda de leer es creando un xml con su hoja de stylos (Stylo.css) y lo puedes visualizar en cualquier explorer y darle a imprimir.
El utilizar xml y Stylo.css te permite utilizar colores, alinear, negrita, ponerle fotos, tamaño de fuente, tipo de fuente etc.
Y si te resulta mas fácil, puedes hacerlo con Html y Stylos.
Otra forma de hacerlo seria poner los textos dentro de un ListView.
Para imprimirlo:
1. Guardamos el txt o xml o html
2. Cargamos un form con un WebBrowser con la ruta del txt o xml o html y le ponemos un botón de imprimir.
También puedes cargar el WebBrowser dentro de un Picture y que sea visible o false.
En esta web tienes muchos ejemplos y ejercicios para hacerlo con xml:
http://www.mclibre.org/consultar/xml/index.html
En este otro enlace puedes ver con varios ejemplos, una idea de como puede quedar:
http://www.mclibre.org/consultar/xml/ejercicios/css.html
Realmente es muy simple y fácil pero tenemos una facilidad tremenda de hacer que lo simple se vea complicado.
Aqui tienes un ejemplo que te he preparado:
http://novaplus.es/XML-HTML/Ejemplo.xml
Y esta es una captura de como queda.
(http://novaplus.es/XML-HTML/Ejemplo.jpg)
Esta claro que es cuestión de que lo adaptes a tu gusto.
Aqui te dejo el ejemplo para que lo descargues:
http://novaplus.es/XML-HTML.rar
Salu2
Nota:
Hace como 15 años que utilizo xml para infinidad de cosas y es realmente magnifico lo que se puede hacer.
Las webs se pueden hacer con xml, pero html es un negocio muy poderoso y recordemos que Google es el primer interesado en el Html5.
Windows lo utiliza muchísimo desde Win95, son los padres del xml.
-
Me gusto tu aporte JBB, se agradece.
Saludos
-
Gracias ! por la explicacion y por los ejemplos y conincido contigo de que se ve mejor ya que los archivos en txt son tediosos de leer pero el problema va que el sistema no puedo ponerlo a mi manera sino segun los requerimientos que me dieron en la institucion y por fuerza tiene que ser txt , ya que estos los envian al ISSTE y de esa forma se los piden.
de antemano gracias por la info y si podrias explicarme un poco sobre como hacer esto usando el For next
gracias
-
Hola.
Para que te sea realmente útil mi ayuda, necesito que me pongas dos lineas exactas de lo que tienes que presentar en ese txt.
Ejemplo:
aaaaaaaa + bbbbbbb + ccccccc etc.
aaaaaaaa= 1111 + bbbbbbb= 222222 etc.
Seguro salud = 042
Y dime si todas las lineas son iguales o tienen diferente cantidad de datos
Por la foto que acompañas deduzco que todas las lineas serán similares.
De todas formas te digo como hacerlo de la forma mas simple.
'1. Tenemos que utilizar una variable o un listbox o un TexBox para recoger toda la info.
'Inserta un TextBox con nombre: TextPrinter con la propiedad de multilinea.
'Lo puedes dejar en visible false para que no se vea.
'2. Todos los labels y textbox tienen que estar indexados para que sea cómodo.
'LabelA(0)
'TextA(0)
'etc.
'Si copias un label y luego le das a pegar, te sale una ventana que te pregunta si quieres hacerlo con una matriz.
'A eso me refiero con lo de que tienen que estar indexados.
'3. Creamos el txt
Dim i As Integer ' Esto es para el bucle del For Nex
On Error Resume Next ' Error Esto no es necesario, pero te lo pongo para evitarte molestias en principio si no lo haces bien
TextPrinter= "" 'Dejamos el contenedor de texto vació.
For i = 0 To 20 'Aquí ponemos la cantidad de labels y que sera la misma de textbox, también lo podemos poner que sea de forma automática.
TextPrinter = TextPrinter & LabelA(i) & ":= " & TextA(i) & vbCrLf ' vbCrLf es el salto de linea
Next i
'4. Guardamos el txt. Puedes darle el nombre que quieras y terminado en .txt
Open App.Path & "\Datos.txt"For Output As #1
Print #1, TextPrinter
Close #1
' Ya tienes guardado el txt con todo lo que quieres imprimir
Suerte
-
Mira un ejemplo de como debe de quedar el archivo txt ! tambien para darle el formato y que quede acomodado de esa forma como seria , estoy liado
(https://scontent-vie1-1.xx.fbcdn.net/hphotos-xft1/v/t35.0-12/11924616_1013340405353138_1768039581_o.jpg?oh=e710e4df1e5019e2982e60a9cb73aa08&oe=55D75B6B)
-
Aca te prepare un pequeño ejemplo yo usaba este metodo para imprimir con la impresora ticketeadora.
El Proyecto para que veas como funciona: https://mega.nz/#!JQV3lIhS!h84xXKF6120FqjvNvocPcS3JuY3ZFrKfcc76eVzYX4E (https://mega.nz/#!JQV3lIhS!h84xXKF6120FqjvNvocPcS3JuY3ZFrKfcc76eVzYX4E)
(http://snag.gy/p1uen.jpg)
Private Sub cmdImprimir_Click()
Open ("c:\factura.txt") For Output As #1
Print #1, Tab((100 - Len("REPORTE DE CIFRAS")) \ 2); "REPORTE DE CIFRAS"
Print #1, Tab(1); String(100, "_")
Print #1, Tab(1); "CONCEPTO"; Tab(30); "ART. LEY"; Tab(50); "%"; Tab(70); "MONTO"
Print #1, Tab(1); String(100, "-")
For i = 0 To 2
Print #1, Tab(1); lblConcepto(i).Caption; Tab(30); lblLey(i).Caption; Tab(50); lblPorciento(i).Caption; Tab(70); txtMonto(i).Text
Next i
Print #1, Tab(1); String(100, "-")
Close #1
End Sub
Saludos...
-
Ayuda ya probe el codigo y me marca errores , que es lo que hago mal ya hasta puse algunos imports para ver si se corregian los errores pero no :/ aqui una imagen
(http://s11.postimg.org/4jzk39lxr/zerox.jpg) (http://postimg.org/image/4jzk39lxr/)
De antemano gracias
-
AYUDAAAA
-
Haa pero estas programando en Vb.net, el ejemplo que te pase es para el Visual basic 6 no especificaste en que estabas programando.
Pero es casi lo mismo solo que cambia el Print, yo lo hice asi, no tengo ahora instalado el .NET pero aca te dejo mi codigo que use en unos de mis programas.
Sub ImprimirTicket()
Dim xNom, xCan, xSub As String
FileOpen(1, "C:\Factura.txt", OpenMode.Output)
PrintLine(1, "========================================")
PrintLine(1, TAB((40 - Len("COMPROBANTE DE VENTAS")) \ 2), "COMPROBANTE DE VENTAS")
PrintLine(1, "========================================")
PrintLine(1)
PrintLine(1, "----------------------------------------")
PrintLine(1, TAB(0), "CANT", TAB(6), "P R O D U C T O", TAB(34), "SUBTOT")
PrintLine(1, "----------------------------------------")
For I = 0 To Form1.LVentas.Items.Count - 1
xNom = Form1.LVentas.Items(I).Text
xCan = Form1.LVentas.Items(I).SubItems(2).Text
xSub = Form1.LVentas.Items(I).SubItems(3).Text
PrintLine(1, TAB(0), xCan, TAB(6), xNom, TAB(34), xSub)
Next I
PrintLine(1, "----------------------------------------")
PrintLine(1, " TOTAL :", txtTotal.Text)
FileClose(1)
End Sub