TDBLabels y Addnew()
Publicado: Jue Dic 27, 2007 1:01 pm
Hola de nuevo,
Espero estar en lo cierto: me he dado cuenta de que Xailer actualiza los campos TDBLabel que están asociados a un DataSet de manera correcta (supongo que internamente busca el campo oDataSet:oField y lo carga en su propiedad cText).
Hay un problemilla y es que por lo visto los TLabel y TDBLabel no tienen la propiedad Value, sólo tienen el texto cText. Así que si estamos en un proceso AddNew() del DataSet y tenemos asociados TDBLabel a un campo, por ejemplo NUMERO, si asignamos en código el DataSet:NUMERO := 0001 al estar en modo "añadir" este valor debe quedarse en el buffer del dataset y grabarlo cuando hagamos Update() o desecharlo con Cancel(). Pero no podemos llegar ni siquiera al Update() ya que en cuanto asignamos el campo en código (DataSet:NUMERO := 0001) Xailer intenta actualizar los TDLabel asociados a ese campo (NUMCLIENTE) cambiando su propiedad Value pero no existe (debería ser la cText), dando el siguiente error:
***************************** Registro de errores *****************************
Fecha: 27-12-2007
Hora: 12:58:37
Memoria libre: 186608
Area actual: 1
------------------------- Información del compilador --------------------------
Versión Xailer: Xailer 1.8.0 Version 1.8
Compilador: xHarbour build 1.0.0 Intl. (SimpLex) PCode Version: 9
Compilador C/C++: Borland C++ 5.8.0
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBLABEL:_VALUE
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TDATAFIELD:VARPUT (143)
TDBFDATASET:VARPUT (1113)
TDBFDATASET:_NUMERO (1372)
TFORM1:TOOLBARNUEVO (651)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON:XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
TTOOLBAR:COMMAND (377)
TSCROLLINGWINCONTROL:WMCOMMAND (253)
TFORM1:WMCOMMAND (888)
RUNFORM (0)
TAPPLICATION:RUN (209)
MAIN (48)
------------------ Información detallada de áreas de trabajo ------------------
Area: 1
Alias: CLIENTES
Registro: 17
Filtro: empty(clientes->numero)=.f.
Relación:
Orden del índice: 1
Clave activa: 1
Area: 2
Alias: DOCUMEN
Registro: 17
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 3
Alias: CATEGOR
Registro: 1
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Si estoy en lo cierto y es un error de Xailer, espero que lo arreglen pronto para poder seguir usando TDBLabel y no tener que sustituir algunas de esas etiquetas por TDBEdit desactivados...
Muchas gracias
--
Espero estar en lo cierto: me he dado cuenta de que Xailer actualiza los campos TDBLabel que están asociados a un DataSet de manera correcta (supongo que internamente busca el campo oDataSet:oField y lo carga en su propiedad cText).
Hay un problemilla y es que por lo visto los TLabel y TDBLabel no tienen la propiedad Value, sólo tienen el texto cText. Así que si estamos en un proceso AddNew() del DataSet y tenemos asociados TDBLabel a un campo, por ejemplo NUMERO, si asignamos en código el DataSet:NUMERO := 0001 al estar en modo "añadir" este valor debe quedarse en el buffer del dataset y grabarlo cuando hagamos Update() o desecharlo con Cancel(). Pero no podemos llegar ni siquiera al Update() ya que en cuanto asignamos el campo en código (DataSet:NUMERO := 0001) Xailer intenta actualizar los TDLabel asociados a ese campo (NUMCLIENTE) cambiando su propiedad Value pero no existe (debería ser la cText), dando el siguiente error:
***************************** Registro de errores *****************************
Fecha: 27-12-2007
Hora: 12:58:37
Memoria libre: 186608
Area actual: 1
------------------------- Información del compilador --------------------------
Versión Xailer: Xailer 1.8.0 Version 1.8
Compilador: xHarbour build 1.0.0 Intl. (SimpLex) PCode Version: 9
Compilador C/C++: Borland C++ 5.8.0
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBLABEL:_VALUE
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TDATAFIELD:VARPUT (143)
TDBFDATASET:VARPUT (1113)
TDBFDATASET:_NUMERO (1372)
TFORM1:TOOLBARNUEVO (651)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON:XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
TTOOLBAR:COMMAND (377)
TSCROLLINGWINCONTROL:WMCOMMAND (253)
TFORM1:WMCOMMAND (888)
RUNFORM (0)
TAPPLICATION:RUN (209)
MAIN (48)
------------------ Información detallada de áreas de trabajo ------------------
Area: 1
Alias: CLIENTES
Registro: 17
Filtro: empty(clientes->numero)=.f.
Relación:
Orden del índice: 1
Clave activa: 1
Area: 2
Alias: DOCUMEN
Registro: 17
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 3
Alias: CATEGOR
Registro: 1
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Si estoy en lo cierto y es un error de Xailer, espero que lo arreglen pronto para poder seguir usando TDBLabel y no tener que sustituir algunas de esas etiquetas por TDBEdit desactivados...
Muchas gracias
--