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!!!!!!!!!!