Textbox e Indice Unico

08/10/2005 - 15:48 por Daniel | Informe spam
Como estan?

Quisiera saber como puedo calcular el ancho de un textbox dependiendo
el tamaño del campo al cual esta enlazado y si se pasa de cierto
tamaño que se calcule pero el alto. Hize algo, pero no tengo los
resultados que quiero el codigo es el siguiente:

loTObjeto = PADC("", FSIZE(ALLTRIM(loCamposFijos(I,1))) + 3, "O")
&&Relleno una variabla con el tamaño del campo
ThisForm.&loObjeto..Width = TXTWIDTH(loTObjeto,"Tahoma",8) *
FONTMETRIC(6,"Tahoma",8) &&Calculo el ancho del campo

Es algo muy parecido a lo que pasa cuando se arrastran los campos desde
el DataEnvironment al formulario.

La otra duda es que estoy cargando una tabla en tiempo de ejecucion con un
campo unico, el problema esta en que si repito el campo unico no me da
error al momento de guardar pero si los da cuando me muevo. En otro
formulario hago lo mismo pero funciona bien me da el error cuando debe.
Este es el codigo que utilizo:

SET MULTILOCKS ON

SELECT 0
USE FULLPATH(CURDIR()) + ALLTRIM(Carpeta) + "\" + TablaCampos
loSuccess = CURSORSETPROP("Buffering",5)
IF loSuccess = .T.
MESSAGEBOX("Se ha conectado a la Tabla " + TablaCampos + " con
exito.",64,"Enlace a Datos")
EndIf
loSuccess = .F.
SELECT 1
USE FULLPATH(CURDIR()) + ALLTRIM(Carpeta) + "\" + TablaDigitacion
loSuccess = CURSORSETPROP("Buffering",5,TablaDigitacion)
IF loSuccess = .T.
MESSAGEBOX("Se ha conectado a la Tabla " + TablaDigitacion + " con
exito.",64,"Enlace a Datos")
EndIf

Por sus comentarios estare muy agradecido.


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway

Preguntas similare

Leer las respuestas

#1 Luis María Guayán
08/10/2005 - 17:07 | Informe spam
Al estar usando Buffering, debes usar TABLEUPDATE() para confirmar los
cambios.

La diferencia debe estar que en el ejemplo usas Buffering = 5 (Buffer de
Tabla) y las modificaciones se guardan cuando haces el TABLEUPDATE().

La configuración prederterminada es Buffering = 3 (de registro) y estos
cambios se guardan haciendo TABLEUPDATE() o moviendo el puntero de registro.


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos



"Daniel" escribió en el mensaje
news:
Como estan?

Quisiera saber como puedo calcular el ancho de un textbox dependiendo
el tamaño del campo al cual esta enlazado y si se pasa de cierto
tamaño que se calcule pero el alto. Hize algo, pero no tengo los
resultados que quiero el codigo es el siguiente:

loTObjeto = PADC("", FSIZE(ALLTRIM(loCamposFijos(I,1))) + 3, "O")
&&Relleno una variabla con el tamaño del campo
ThisForm.&loObjeto..Width = TXTWIDTH(loTObjeto,"Tahoma",8) *
FONTMETRIC(6,"Tahoma",8) &&Calculo el ancho del campo

Es algo muy parecido a lo que pasa cuando se arrastran los campos desde
el DataEnvironment al formulario.

La otra duda es que estoy cargando una tabla en tiempo de ejecucion con un
campo unico, el problema esta en que si repito el campo unico no me da
error al momento de guardar pero si los da cuando me muevo. En otro
formulario hago lo mismo pero funciona bien me da el error cuando debe.
Este es el codigo que utilizo:

SET MULTILOCKS ON

SELECT 0
USE FULLPATH(CURDIR()) + ALLTRIM(Carpeta) + "\" + TablaCampos
loSuccess = CURSORSETPROP("Buffering",5)
IF loSuccess = .T.
MESSAGEBOX("Se ha conectado a la Tabla " + TablaCampos + " con
exito.",64,"Enlace a Datos")
EndIf
loSuccess = .F.
SELECT 1
USE FULLPATH(CURDIR()) + ALLTRIM(Carpeta) + "\" + TablaDigitacion
loSuccess = CURSORSETPROP("Buffering",5,TablaDigitacion)
IF loSuccess = .T.
MESSAGEBOX("Se ha conectado a la Tabla " + TablaDigitacion + " con
exito.",64,"Enlace a Datos")
EndIf

Por sus comentarios estare muy agradecido.


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
#2 Daniel
14/10/2005 - 18:25 | Informe spam
Gracias Luis María Guayán!

El buffer lo cambie a 3 y aún así no me da el error en la linea
TABLEUPDATE() si no cuando me muevo, lo extraño es que en otro formulario
hago lo mismo abro la tabla en tiempo de ejecucion y le asigno el buffer a
5, repito el campo y al momento de guardar se intercepta el error, he
intentado varias cosas y ninguna funciona.


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida