Foros del Web » Programación para mayores de 30 ;) » .NET »

Print Document - ¿Como imprimir varias lineas en un solo detalle ?

Estas en el tema de Print Document - ¿Como imprimir varias lineas en un solo detalle ? en el foro de .NET en Foros del Web. Hola :) Aqui tengo un problemita :S pues necesito hacer de alguna manera imprimir varias lineas en un solo detalle por ejemplo: Cantidad Detalle Precio ...
  #1 (permalink)  
Antiguo 18/05/2009, 12:03
 
Fecha de Ingreso: junio-2008
Mensajes: 20
Antigüedad: 15 años, 10 meses
Puntos: 0
Print Document - ¿Como imprimir varias lineas en un solo detalle ?

Hola :)

Aqui tengo un problemita :S pues necesito hacer de alguna manera imprimir
varias lineas en un solo detalle por ejemplo:

Cantidad Detalle Precio
01 KJSaklsjalksjalksj laksjakljñsjkñ 25.00
ñlkñldkñs dflkdlgñ dfgdñlfgkdñ
dflsdkfñds klkñlñ ffff :)

02 IJojdf gdfgkjfdgklfdg dfgdfklgjfdñlg dfmgklfdgfl g 15.00
kfdmgdf fgmfkg gggg ggyth
:O

y asi sucesivamente. yo tengo una rutina con la cual hago que solo por una vex haga q sea en dos lineas pero para las siguientes ya no me funciona lo indico q cuando escriba (\) al usuario indique q va a pasar hacia abajo, como en el ejmplo claro no se imprime ese caracter es un indicador , en la caja de texto cuando ingresa los datos es de largo por asi decirlo. como puedo hacer para que con ese indicador q propongo u otro metodo pueda ingresar el datalle que desea.

Esto lo trabajo con el print document uso el vb.net 2003 les mando el codigo:

For intX = 0 To ds.Tables("x").Rows.Count() - 1

Dim str_descrip, str_letra, lineaAP As String
Dim poslta As Integer
Dim cadenaDescrip As Integer
cadenaDescrip = Len(Trim(ds.Tables("x").Rows(intX)("cod_serv")) & " " & Trim(ds.Tables("x").Rows(intX)("Descripcion")))

str_descrip = Trim(ds.Tables("x").Rows(intX)("cod_serv")) & " " & Trim(ds.Tables("x").Rows(intX)("Descripcion"))
For poslta = 1 To str_descrip.Length
str_letra = Mid(str_descrip, poslta, 1)
If str_letra = "\" Then
cadenaDescrip = poslta
lineaAP = "SI"
Exit For
End If
Next

Dim cant_lineas, z, i, k, m As Integer
cant_lineas = CInt(cadenaDescrip) \ 65

i = 0
m = y
k = cant_lineas * 65
For z = 1 To cant_lineas
ePrint.Graphics.DrawString((Trim(ds.Tables("x").Ro ws(intX)("cod_serv")) & " " & Trim(ds.Tables("x").Rows(intX)("Descripcion"))).Su bstring(i, 65), _
New Font("Arial", 9, FontStyle.Regular), Brushes.Black, 34, m)
i = i + 65
m = m + 4
Next
If cadenaDescrip > k Then
If lineaAP = "SI" Then
ePrint.Graphics.DrawString((Trim(ds.Tables("x").Ro ws(intX)("cod_serv")) & " " & Trim(ds.Tables("x").Rows(intX)("Descripcion"))).Su bstring(i, (cadenaDescrip - k) - 1), New Font("Arial", 9, FontStyle.Regular), _
Brushes.Black, 34, m)
Else
ePrint.Graphics.DrawString((Trim(ds.Tables("x").Ro ws(intX)("cod_serv")) & " " & Trim(ds.Tables("x").Rows(intX)("Descripcion"))).Su bstring(i), New Font("Arial", 9, FontStyle.Regular), _
Brushes.Black, 34, m)
End If
End If
If lineaAP = "SI" Then
m = m + 4
ePrint.Graphics.DrawString((Trim(ds.Tables("x").Ro ws(intX)("cod_serv")) & " " & Trim(ds.Tables("x").Rows(intX)("Descripcion"))).Su bstring(poslta + 1), New Font("Arial", 9, FontStyle.Regular), _
Brushes.Black, 34, m)
End If

strprecio = Trim(CStr(FormatNumber(ds.Tables("x").Rows(intX)(" Precio_unit"), 2)))
ePrint.Graphics.DrawString(strprecio, New Font("Arial", 10, FontStyle.Regular), _
Brushes.Black, 149, y)

y += (m - y) + 6

Next

Si tienen otra forma menos engorrosa se los agredeceria :D plissss
Lo que necesito lograr en conclusion
Ingreso en una caja de texto "sdfsdfsdffffff\hhhhhhhhhhfdgdfgfddddddddddddddddd daaaaaaaaaaaaa\ggggggggggg"
y en otro lado un label su tamaño maximo del label 50 caracteres.
lo q quiero es este resultado:
sdfsdfsdffffff ---> hasta ahi porq lo indico el \
hhhhhhhhhhfdgdfgfddddddddddddddddddaaaaaa
aaaaaaaa --> por sobrapasar los 50 caracteres paso a la siguiente linea
ggggggggggg ---->imprime lo q sigue depues de \ una nueva linea

ayuda!!!!!!!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:36.