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.

TDBCOMBOBOX (TDATAFIELD Argument error)

Foro público de Xailer en español
Responder
Avatar de Usuario
Hurricane
Mensajes: 278
Registrado: Mar Mar 24, 2015 10:21 am
Ubicación: Brasil
Contactar:

TDBCOMBOBOX (TDATAFIELD Argument error)

Mensaje por Hurricane »

Fui a editar un registro, no modifiqué ningún campo, cuando voy a guardar me aparece el error, Xailer 8 y 9.
DBComboBox
  • En la tabla, el campo numérico asociado a DC tiene el valor 99
  • Diseñador: dtBOUND, csDROPDOWNLIST, aItems y aItemsBound vacíos
  • Comienza vacío
Si el campo de la tabla tiene un valor que no existe en el DbComboBox (comenzará vacío), si el usuario no selecciona un elemento, se producirá un error al guardar.
Versão do Xailer: Xailer 8.0.1
Compilador: Harbour 3.2.0dev (r1912031042)
Compilador C/C++ : MinGW GNU C 7.3 (32-bit)
Plataforma Windows: Windows 10 10.0

-------------------- Informação de manejo de erro interno ---------------------

Chamada Subsistema: BASE
Código Sistema: 1070
Status por Defeito: .F.
Descrição: Argument error
Operação: ==
Argumentos: [ 1] = Tipo: N Val: 99 [ 2] = Tipo: C Val:
Ficheiros envolvidos:
Dos Error Code: 0

Trace Through:
TDATAFIELD:HASCHANGED (168)
TDBCOMBOBOX:SETDATA (98)
(b)XDBFDATASET_SAVE (1140)
AEVAL (0)
TDBFDATASET:SAVE (1140)
TDBFDATASET:UPDATE (798)
TFRMPEDIDO:FORMCLOSE (108)
TFRMPEDIDO:ONCLOSE (0)
TFRMPEDIDO:WMCLOSE (693)
SENDMESSAGE (0)
(b)XCONTROL (101)
TFRMPEDIDO:SENDMSG (0)
(b)XFORM (116)
TFRMPEDIDO:CLOSE (0)
TGLASSBTN:CLICK (105)
(b)XCONTROL (156)
TGLASSBTN:COMMAND (0)
TSCROLLINGWINCONTROL:WMCOMMAND (275)
TFRMPEDIDO:WMCOMMAND (965)
TFRMPEDIDO:SHOWMODAL (0)
FRMPEDIDO (76)
(b)BRWPEDIDO (61)
TFRMBROWSE:BRWKEYDOWN (74)
TDBBROWSE:ONKEYDOWN (0)
TFRMBROWSE:BRWDBLCLICK (87)
TDBBROWSE:ONDBLCLICK (0)
TDBBROWSE:WMLBUTTONDBLCLK (2112)
TFRMBROWSE:SHOWMODAL (0)
FRMBROWSE (51)
BRWPEDIDO (61)
(b)TFRMPRINCIPAL_FORMCREATE (29)
TMENUITEM:ONCLICK (0)
TMENU:DOACTION (253)
TMENU:DOACTION (258)
TFRMPRINCIPAL:WMCOMMAND (958)
RUNFORM (0)
TAPPLICATION:RUN (289)
MAIN (22)
Israel Solis
Mensajes: 162
Registrado: Mié Nov 03, 2004 12:42 pm
Ubicación: Cancún, México
Contactar:

Re: TDBCOMBOBOX (TDATAFIELD Argument error)

Mensaje por Israel Solis »

Hola,

Intenta sobrecargar tDataField la clase con esto...

Código: Seleccionar todo

METHOD HasChanged( xValue ) CLASS TDataField

   IF ValType(xValue) = "C"
      xValue := XA_Trim(xValue) // Para que compare SIN espacios finales
   ENDIF

RETURN !VarsEqual( ::InitValue(), xValue )


// May'22: Sobrecarga para evitar un error de ejecución cuando se comparan campos de distinto tipo, oCampo:InitValue() == oCampo:Value  ( caracter == numérico )

#pragma BEGINDUMP

#include "xailer.h"

HB_FUNC_STATIC( VARSEQUAL )
{
   int iResult;

   if( hb_itemCompare( hb_param( 1, HB_IT_ANY ),
                       hb_param( 2, HB_IT_ANY ),
                       HB_TRUE, &iResult ) )
      hb_retl( iResult == 0 );
   else
      hb_retl( HB_FALSE );
}

#pragma ENDDUMP

Saludos :D

Israel
Responder