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
 

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

Preguntas similares