In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Longitud del texto en un TDBMaskEdit

Foro público de Xailer en español
Responder
antonio.f.ortega
Mensajes: 14
Registrado: Sab Mar 05, 2005 1:26 pm

Longitud del texto en un TDBMaskEdit

Mensaje por antonio.f.ortega »

Si en una tabla de una Base de Datos MySQL, tengo una columna Nombres
VarChar(50), y en una fila tengo por ejemplo Andres, cuendo lo edito con un
DBMaskEdit, me permite editar nada mas que 6 caracteres, es decir la
longitud del valor que tiene la columna, según dice la ayuda si pongo el
nMaxLength en 50 pudiera escribir hasta 50 caracteres, pero no ocurre así,
salvo que en cPicture ponga un valor del tipo !!!!!!!!!!!!!!!!!!!, ¿ que
estoy haciendo mal ?.
Muchas Gracias.
Antonio F. Ortega
CapelSoft
Mensajes: 137
Registrado: Vie Jul 29, 2005 8:49 am
Ubicación: Valencia - España
Contactar:

Longitud del texto en un TDBMaskEdit

Mensaje por CapelSoft »

Antonio,
> Si en una tabla de una Base de Datos MySQL, tengo una columna Nombres
> VarChar(50), y en una fila tengo por ejemplo Andres, cuendo lo edito con un
> DBMaskEdit, me permite editar nada mas que 6 caracteres, es decir la
> longitud del valor que tiene la columna, según dice la ayuda si pongo el
> nMaxLength en 50 pudiera escribir hasta 50 caracteres, pero no ocurre así­,
> salvo que en cPicture ponga un valor del tipo !!!!!!!!!!!!!!!!!!!, ¿ que
> estoy haciendo mal ?.
El tMaskEdit toma el ancho de la variable de dos formas:
a. La propiedad nMaxLenght indica el ancho máximo del control. Sin
embargo, para pictures numéricos, tiene prevalencia el picture numérico.
b. Si nMaxLenght := 0 entonces es el picture el que marca el ancho de la
columna. Si el picture es tipo "@!" entonces no hay ancho predeterminado.
Espero haberte ayudado.
Saludos,
José Luis Capel
--
José Luis Capel
http://www.CapelBlog.es
antonio.ortega
Mensajes: 124
Registrado: Mié May 17, 2006 10:50 am

Longitud del texto en un TDBMaskEdit

Mensaje por antonio.ortega »

Gracias Jose Luis, no es un picture numérico, es del tipo caracter, estoy
poniendo el nMaxLength en 50 pero no me toma 50 caracteres, me toma la
longitud del valor, 6 en el ejemplo, la pregunta es si al poner el 50 en
nMaxLength me permite ingresar 50 caracteres independientemente del cPicture
( hablo de caracteres ) y de la longitud de Value, o simplemente controla
que no pase de 50, y la cantidad permitida va en funcion del cPicture.
Hasta ahora normalmente se establecia la longitud de la variable y es lo que
respetaba el get, ¿ en el caso de un DataControl como debo definir el ancho
de la variable ? ( para sintetizar todo este lio )
Gracias.
Saludos.
Antonio F. Ortega
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Longitud del texto en un TDBMaskEdit

Mensaje por ignacio »

Antonio,
Me podrías indicar que te devuelve la siguiente expresión:
oMiDBMaskEdit:oDataField:nLen
Gracias
"Antonio F. Ortega" <antonio.ortega@puentelibros.com> escribió en el mensaje
news:439d3f1f$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Gracias Jose Luis, no es un picture numérico, es del tipo caracter, estoy
> poniendo el nMaxLength en 50 pero no me toma 50 caracteres, me toma la
> longitud del valor, 6 en el ejemplo, la pregunta es si al poner el 50 en
> nMaxLength me permite ingresar 50 caracteres independientemente del
> cPicture
> ( hablo de caracteres ) y de la longitud de Value, o simplemente controla
> que no pase de 50, y la cantidad permitida va en funcion del cPicture.
>
> Hasta ahora normalmente se establecia la longitud de la variable y es lo
> que
> respetaba el get, ¿ en el caso de un DataControl como debo definir el
> ancho
> de la variable ? ( para sintetizar todo este lio )
>
> Gracias.
>
> Saludos.
>
> Antonio F. Ortega
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

Longitud del texto en un TDBMaskEdit

Mensaje por joseluis »

Antonio,
Al asignar un valor a un control tMaskEdit en ejecución, prueba lo
siguiente (para campos alfanuméricos):
::oMaskEdit1:Value := PAD( mivariable, ::oMaskEdit1:nMaxLenght)
Esta operación es necesaria si utilizas odbc u otros orí­genes de datos,
dado que odbc te devuelve solo el valor del campo sin añadir los
espacios necesarios hasta completar la longitud definida.
Saludos,
José Luis Capel
Antonio F. Ortega escribió:
> Gracias Jose Luis, no es un picture numérico, es del tipo caracter, estoy
> poniendo el nMaxLength en 50 pero no me toma 50 caracteres, me toma la
> longitud del valor, 6 en el ejemplo, la pregunta es si al poner el 50 en
> nMaxLength me permite ingresar 50 caracteres independientemente del cPicture
> ( hablo de caracteres ) y de la longitud de Value, o simplemente controla
> que no pase de 50, y la cantidad permitida va en funcion del cPicture.
>
> Hasta ahora normalmente se establecia la longitud de la variable y es lo que
> respetaba el get, ¿ en el caso de un DataControl como debo definir el ancho
> de la variable ? ( para sintetizar todo este lio )
>
> Gracias.
>
> Saludos.
>
> Antonio F. Ortega
>
>
antonio.f.ortega
Mensajes: 14
Registrado: Sab Mar 05, 2005 1:26 pm

Longitud del texto en un TDBMaskEdit

Mensaje por antonio.f.ortega »

Ignacio el valor es 6, es decir la longitud del valor almacenado, el tipo de
campo en la tabla es VarChar, no se si tenga algo que ver.
Gracias.
Antonio F. Ortega
antonio.f.ortega
Mensajes: 14
Registrado: Sab Mar 05, 2005 1:26 pm

Longitud del texto en un TDBMaskEdit

Mensaje por antonio.f.ortega »

Esta es una respuesta de Ignacio a un usuario:
/*
A diferencia de Clipper y 5win, Xailer NO requiere que los controles tipo
GET tengan preasignados un tamaño igual al número de caracteres editables
rellenado con blancos, debido a que en Windows no es necesario dicho
relleno.
De esta forma se evitan varios efectos horrorosos en la edición, como son
que cuando se marca el texto completo, ya que se marcan igualmente un montón
de espacios en blanco, y segundo, el efecto de que cuando se va al final del
texto aparece el cursor más alla del texto propiamente dicho.
En un control TMaskEdit puede indicar su ancho de edición de varias formas
posibles:
- mediante la propiedad nMaxLength,
- utilizando una máscara con la propiedad cPicture.
- Inicializando la propiedad 'Value' con el ancho que necesita (sólo para
datos tipo carácter). En este caso, la propiedad nMaxLength pasa a valer
Len( Value ), sin embargo el propio 'Value' sufre un Trim() para su edición,
sin embargo podrá editar hasta Len( Value )
* /
En mi pinión quizás lo correcto serí­a que nMaxLength no asuma el valor de Len( Value ) , cuando nMaxLength != 0 .
En cualquier caso, lo que me dices es valido y satisface mi necesidad.
Muchas Gracias.
Antonio F. Ortega
--
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Longitud del texto en un TDBMaskEdit

Mensaje por ignacio »

This is a multi-part message in MIME format.
------=_NextPart_000_001F_01C5FFCD.46C177F0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0020_01C5FFCD.46C177F0"
------=_NextPart_001_0020_01C5FFCD.46C177F0
Content-Type: text/plain;
charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
Antonio,=20
Me temo que ese es el problema. Esa propiedad marca la longitud del =
campo devuelta por el propio API ODBC a trav=E9s de la funci=F3n =
SqlDescribeCol(). Incluse aunque sea Varchar en vez de Char deber=EDa =
devolver el ancho m=E1ximo.=20
Compruebo que en la configuraci=F3n de ODBC de MySql existe un checkbox =
para optimizar el ancho devuelto de ciertas columnas:
Te recomiendo que marques dicho checkbox y espero que se arregle.=20
Un saludo,
"Antonio F. Ortega" <antonio.f.ortega@ono.com> escribi=F3 en el mensaje =
news:[email=439dd838@ozsrvnegro.ozlan.local...]439dd838@ozsrvnegro.ozlan.local...[/email]
> Ignacio el valor es 6, es decir la longitud del valor almacenado, el =
tipo de
> campo en la tabla es VarChar, no se si tenga algo que ver.
>=20
> Gracias.
>=20
> Antonio F. Ortega
>=20
>
------=_NextPart_001_0020_01C5FFCD.46C177F0
Content-Type: text/html;
charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dwindows-1252">
<META content=3D"MSHTML 6.00.2900.2769" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV>Antonio, </DIV>
<DIV>Â</DIV>
<DIV>Me temo que ese es el problema. Esa propiedad marca la longitud del =
campo=20
devuelta por el propio API ODBCÂ a trav=E9s de la funci=F3n =
SqlDescribeCol().=20
Incluse aunque sea Varchar en vez de Char deber=EDa devolver el ancho =
m=E1ximo.=20
</DIV>
<DIV>Â</DIV>
<DIV>Compruebo que en la configuraci=F3n de ODBC de MySql existe un =
checkbox para=20
optimizar el ancho devuelto de ciertas columnas:</DIV>
<DIV>Â</DIV>
<DIV><IMG alt=3D"" hspace=3D0 =
src=3D"cid:001a01c5ffc4$e4f85500$0e00000a@ozlan.local"=20
align=3Dbaseline border=3D0></DIV>
<DIV>Â</DIV>
<DIV>Te recomiendo que marques dicho checkbox y espero que se arregle. =
</DIV>
<DIV>Â</DIV>
<DIV>Un saludo,</DIV>
<DIV>Â</DIV>
<DIV>"Antonio F. Ortega" <<A=20
href=3D"mailto:antonio.f.ortega@ono.com">antonio.f.ortega@ono.com</A>>=
escribi=F3=20
en el mensaje <A=20
href=3D"news:439dd838@ozsrvnegro.ozlan.local">news:439dd838@ozsrvnegro.oz=
lan.local</A>...</DIV>>=20
Ignacio el valor es 6, es decir la longitud del valor almacenado, el =
tipo=20
de<BR>> campo en la tabla es VarChar, no se si tenga algo que =
ver.<BR>>=20
<BR>> Gracias.<BR>> <BR>> Antonio F. Ortega<BR>>=20
<BR>></BODY></HTML>
------=_NextPart_001_0020_01C5FFCD.46C177F0--
------=_NextPart_000_001F_01C5FFCD.46C177F0
Content-Type: image/png;
name="Image1.png"
Content-Transfer-Encoding: base64
Content-ID: <001a01c5ffc4$e4f85500$0e00000a@ozlan.local>
iVBORw0KGgoAAAANSUhEUgAAANAAAABQCAMAAABfygueAAAAB3RJTUUH1QwN CQcQ5JqvzAAAAAlw
SFlzAAAOwwAADsMBx2+oZAAAAARnQU1BAACxjwv8YQUAAAF3UExURfr5+fr6 +fr5+vr6+vn5+vn6
+ZGbnPv7/Pv7/fn6+vn5+fz7/Ozp2Pz7/fv8/BxRgPv8/fHx7/Pz8fX19Pf3 9vn5+Pv7+v39/P7+
/v///wAAAO/v7Pz8/ezs6fv5+vr6++jo5eXl4vr5+/v6+vz8/OLi3uDg297e 2fv6+9zc1/r7+vr7
+/v8/vv7+/z7/vv7/vr6/Pz8/vv6/Pr7/PDw6u/u6Oro4eTi2ZGntPHv3/Dw 6/Hx7O/v6evq4+Xi
2/Ly7ezr5Obj3PLy7vHx7fDw7Ozr5ebj3fPz7u3s5efk3fT07+7t5ujl3vT0 8PPz7+7t5+jl3/X1
8enm4PX18vDv6ern4Pb28vb28/Hw6uvo4fb29PHw6+vo4vj49vf39fPx7u3q 5vj49/r6+PX08vDu
6vz8+/b08v7+/ePp66m5v+Pp7OTp7O3x87bEzdDW0N2hU/m4OP/HPKGzu8jR zeHGju6fMfm5OP/I
PPu+OeuXLuaLLOSXPN3CjWcfajsAAAgZSURBVHja3Vr7n9tGEd+zLqsNtmwB JWkHUUGcFqW2fJaP
Qi4BUsIjkPYCR9q7EjjerwBNC6Qv4I/nO7OSV9b5cbLv86l1c+f11zs7q/lq Zkf6YdReFkaRyaIo
uhxIjaIsi0bZEMOlQGqIH8Mg2huGlwOpaBQOzWgvZJLhwfNP/7OG/Pd/B+Vd PlOkwCuTHAyBnn/4
0cdryCcfPi/v8pkiFSFM+GYcRO9/8M+15IP3n96uLf/698HBwbP6hsvtVJDt mSgzQbAHpLM1Rf/9
pdryj/eeHTx7r77hcjsVhSYMIoMqAbQ+oRfry1/++vTg6d8u2k4FYRQOcaIQ ozBan9D1m3+qK9f+
fPvg9vX6hsvtcIZCHJ4oG2VAjhCxZLTA/zPzeqe2/P4Pf4Rj3kXbqXC4N4xM gAgB6YrL8wkx1Sqh
01zkRpzS6Vxh1VR+/ZvfwrHfXYBdaeHpKd4UAmNGBnyAzkdoXoSenFih0lgV mtE8/uWv4NiTJ5vb
UXmlCpBpoGTwPZeQDYckYDaNzHqETk7WI7TSjkqrVIBqEKEgIOdMMHuGHC0q RlpE6OTYChUj7I9l
FHx8PKNnOXr3F3Ds5OQC7HILGZQxeAXiwo0wRfMjVBByPM4SenxkhZdjtFi+ ZaRCfTSVw7ffgWPH
j89jR4vt8mFqoUwU8ktCiLIQhWcJUWl0RJYQKkbxkNzVqnzmObbQrgwXECrs 8GANfU43sApXEFqW
ckeHVigfqTQWs8WXlUev/xyOHR2dw24GzbEjZ3+IB2sQGJwgw1FalHKri8Iy QuSuW4tQ2W4ZIfdh
QnjrwbsPWLUjs/RNgZboMn34yAoVI98CN9pZ+yuX+z/9GRw7PFxt96hsVrUj t7kMit95wKgddMNy
lauQmfMsnSX08MEioQXz9958C449fHjBdqrt+2AUGeMDrf8uN39/vhEP1nBs XTsmJA9VrtldfNYn
9OBeXbn745/AsQe1DVfYCaEuAhRsRuj+9+vKD374Izh2v7bhCjt+U+gakWDx GVpN6N7dunLnje/B
sXu1DVfYqZvGx/kxftcArU/o7p268u3vfBeO3a1tuMJOGR8lru23ESA/XJ/Q N2rL69/8Fhy7c9F2
KvLDNgLET9ZNCG2NKNNFwuGhisTrrl8Utkf4OeSHfjsAqw2eQ9sjOEM4P+3Q cN5dCkJ+l5n4AT7d
y0GIX3mEE9ClIGQsH/l3hIZNRcq30pbxUkSoLDqaKpqKVH58fL9IuWE2HGV7 WVORmjCVCf9Nigg1
elD+vm8p+UB6JJMj+WsmYkIp80mFUBZNM7KhSCKUpJPURijL2XJCNhOpMZgk kwS0xnyGhkHIOnBt
KFKJPT9+Okn4OTSyZPOxgUj5KahMBv5+CoQzxPEbhVIyGonUIE3SsT8Zxz6Q vCmMEDr7GtFEpCaT
/TQdcJUD0lvSsLMBUv4knewnaRqDEafcVjTsbIDUeB81O+GyDaS3pGFnA6Rw hCYI0HgMWqnekoad
DZAaTJJkIiUOSG9Jw84GSKWTAWfcOImBtGv7aSpSKNfxIBmjdgNp1/bTVKTi cQKJB+kASLu2n6Yi
lQwGoJOkcQykXdtPU5EaM6EUbGIg7dp+mopUnMQJ4iMhirVr+2kqUuCRvjZg VkDatf00FSlUBK/f
R1FIgbRr+2kqUh7nGgdoAKRd209TEUeIK4IcpUS7tp+mIuV5XnzNAyEAT7u2 n6Yi1U8sm9gD0q7t
p6lIeYN+30via7EHpF3bj0OdWalotw2peCDRiSEDT7u2H4c6vbJ0KtptQ8rr ex6y7rWkD6Rd249D
nd6tW7e+/uorX/vqV778eRASLTevVNYFVCBWlnehOSjX8tJijrpVrUVUQvYa xFo64ykjFIU4Rohi
JJ6Hsj1t+3GICRV8vtDrWC1BS7PrMEeCiOeo2IWq+5URMaJ8jhasozOIGFE0 b2cQ6r/c8jhKQNq1
/TgEQlM+XwQh0RJraWadEULdQHRgl+9C1f3KiMpztGgd5ftRMcdXmrWdIhV7 TMeTQLW0a/txqNNz
fF7glBPno9wdpAyGLo/diNOQKcAWiNNJ5oiTkJdYBFtOWCOe2WsUu8jO+WJB Vmv3C2SO14IQLyaa
9ZQRnyEUuBvMCmfItf041Ok5Pl9ChETLl+Y7R12JzBRJTLoSLr6Lci859cWC 5F7bOdEKMNNdyhb5
TcqjLfvZXewPWJBdF8z6rCQ6N2705Vu7th+HOj3H51qvY7XEWropJwQZbQrU zZFcUdYRryOxILbA
Yl96G/kaZKYWvEvJgp32jexs50pam9xkPfBnfVaccQiR1+Lc067tx6FOz/G5 jgiJlljLrmEdtXGj
cmRy5HN+yTridSQW5Czya5A/teBdShaY42tQfrUZbcBFQWxpxlNGiFDrZUsJ SLu2H4c6PcfnRU45
1vJOqHQ+LgpvHTI58vkWyjrM4TCIBVlk17EWt1tQsQt+Um6BueIa+TqKiv2s xXRuxmdOuZbX2rWV
Qbu2H4c6PcfnpV7HajlnBNkzzuebLaZzkh78xXM2MjniZxSfe3sNsqjYhcgS Id4P62Rn3iqSObsL
Fw2OejE347NqXRVGIASkXduPQ52e4yOEZrRLEJ1z3YUiKQq7OwgRx0i7th+H Oj3HB4Qq2iWIzrnu
QpHyuCy0vKv4KFS5aduPQ5V3uYp22xAiJIWupRhp1/bjUOVtu6LdNqR2r+wi 31Sr1QLSru2nqUip
lvc5HCIcIyDt2n6aitSOgly5esVrAWm/8aLUTmtnx9tVV1pAU0LlBqBmof8D azEHARdj3hsAAAAA
SUVORK5CYII=
------=_NextPart_000_001F_01C5FFCD.46C177F0--

Attached files
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
antonio.f.ortega
Mensajes: 14
Registrado: Sab Mar 05, 2005 1:26 pm

Longitud del texto en un TDBMaskEdit

Mensaje por antonio.f.ortega »

Gracias por el esfuerzo, lamentablemente no arregla el problema, optaré por poner un Pad o algun apaño parecido, ¿ a ti se te ocurre el más óptimo para 'salvar' la situación ? .
Reitero mi agradecimiento por tan impecable soporte.
Saludos.
Antonio F. Ortega
--
Responder