FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TxBrowse error en casilla de verificaci贸n
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
TxBrowse error en casilla de verificaci贸n
Posted: Mon Feb 11, 2013 04:21 PM
Hola a todos

En este c贸digo

Code (fw): Select all Collapse
 聽 聽 聽aCampos := {oRsClien:Fields( 0):NAME, oRsClien:Fields( 1):NAME,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 oRsClien:Fields( 2):NAME, oRsClien:Fields( 3):NAME,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 oRsClien:Fields( 4):NAME, oRsClien:Fields( 5):NAME ,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 oRsClien:Fields( 6):NAME, oRsClien:Fields( 7):NAME,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 oRsClien:Fields( 8):NAME, oRsClien:Fields( 9):NAME,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 oRsClien:Fields(10):NAME, oRsClien:Fields(11):NAME,; 聽 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 聽 聽 聽 oRsClien:Fields(12):NAME, oRsClien:Fields(13):NAME 聽}
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 oBrw := TXBrowse():New( oWChild ) 
聽 聽 聽 oBrw:SetAdo( oRsClien, .T.,.T.,aCampos)
聽 聽 聽 
聽 聽 聽 WITH OBJECT oBrw
聽 聽 聽 聽 聽 聽:lColDividerComplete := .t. 
聽 聽 聽 聽 聽 聽:nMarqueeStyle 聽 聽 聽 := 3
聽 聽 聽 聽 聽 聽:nColDividerStyle 聽 聽:= 1
聽 聽 聽 聽 聽 聽:nHeaderLines 聽 聽 聽 聽:= 2
聽 聽 聽 聽 聽 聽:lFooter 聽 聽 聽 聽 聽 聽 := .t.
聽 聽 聽 聽 聽 聽:nStretchCol 聽 聽 聽 聽 := 1
聽 聽 聽 聽 聽 聽:bClrSelFocus 聽:= { || { CLR_BLACK, aSelGrad } }
聽 聽 聽 聽 聽 聽:bClrRowFocus 聽:= { || { CLR_BLACK, aRowGrad } } 聽
聽 聽 聽 聽 聽 聽:bClrStd 聽 聽 聽 := {|| IIF(oRsClien:AbsolutePosition % 2 == 0,{ CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } )} 
聽 聽 聽 聽 聽 聽:CreateFromCode() 聽
聽 聽 聽 聽 聽 聽:Adjust() 
聽 聽 聽 聽 聽 聽:l2007 := .t.
聽 聽 聽 END
聽 聽 聽 For nFor := 1 to len( oBrw:aCols ) 
聽 聽 聽 聽 聽 oCol := oBrw:aCols[ nFor ] 
聽 聽 聽 聽 聽 oCol:nEditType := 0 
聽 聽 聽 聽 聽 If oCol:Value = NIL
聽 聽 聽 聽 聽 聽 聽oCol:cEditPicture := " "
聽 聽 聽 聽 聽 EndIf 聽 
聽 聽 聽 聽 聽 oCol:blDClickData := {|| CtrCliente(ID_MOD,oWChild,oBrw),oBrw:Refresh() }
聽 聽 聽 next 

      oBrw:aCols[13]:SetCheck ({"CHECKON","CHECKOFF"} )
聽 聽 聽 oBrw:aCols[14]:SetCheck ({"CHECKON","CHECKOFF"} ) 
聽 聽 聽 oWChild:oClient := oBrw


Se produce el error que os pongo a continuaci贸n, cuando intento visualizar las columnas 13 y 14 que, como veis, son dos casillas de verificaci贸n.
No pregunt茅is por los bitmaps, est谩n en los recursos. La tabla tiene los campos 13 y 14 como verdadero/falso (es una base de datos de Acces, con diferentes tablas)
El m贸dulo est谩 trabajado con ADO puro y duro, ya que le escrib铆 hace tiempo a Adolfo Lagos, por si ten铆a su Adobase algo m谩s actualizado que el que yo tengo ( 煤ltima actualizaci贸n a帽o 2008) y algunos ejemplos y al no recibir contestaci贸n me inclin茅 por hacerlo as铆.
El error que digo es el siguiente :
Error description: Error BASE/1004 Class: 'LOGICAL' has no exported method: EVAL
Args:
[ 1] = L .F.

Stack Calls
===========
Called from: => EVAL( 0 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTCELL( 9622 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTDATA( 9574 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:PAINT( 1434 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DISPLAY( 1253 )
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1666 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 11649 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3154 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 270 )
Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG( 426 )
Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS( 31 )
Called from: => EVAL( 0 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTCELL( 9622 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTDATA( 9574 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:PAINT( 1434 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DISPLAY( 1253 )
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1666 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 11649 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3154 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 270 )
Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG( 426 )
Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS( 31 )
Called from: => EVAL( 0 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTCELL( 9622 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTDATA( 9574 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:PAINT( 1434 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DISPLAY( 1253 )
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1666 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 11649 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3154 )
Called from: => WINRUN( 0 )
Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 980 )
Called from: D:\PROYEC~4\Pizarro\SOURCE\geshinic.prg => MAIN( 155 )


La verdad es que me escama este error, ya que he verificado con otro programa que tengo con ADO y Acces y no tengo ning煤n problema ni me da este error.
Este error s贸lo se produce en las l铆neas con el SetCheck.

A ver si me pod茅is iluminar un poco
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: TxBrowse error en casilla de verificaci贸n
Posted: Mon Feb 11, 2013 06:17 PM

Pedro, disculpa mi ignorancia si digo algo que no tenga logica, pero veo un detalle, veo que inicias los campos desde 0 hasta 13 y no desde 1 hasta 14 y revisastes bien si estan encajando los campos en las columnas correspondientes.? porque por lo visto el valor de la col.14 no es de tipo logico, nose, es lo que veo a siemple vista y como estas usando oCol:bEditValue de las col.13 y 14.? espero te de alguna pista para solucionar tu problema, saludos... :shock:

Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: TxBrowse error en casilla de verificaci贸n
Posted: Mon Feb 11, 2013 06:27 PM

Estimado amigo Jos茅 Luis, en ADO los campos no empiezan en el n煤mero 1 sino en el 0, de ah铆 que aunque tu veas en el arreglo del 0 al 13, sin embargo en el Browse
ves la columna 14, ya que si cuentas, del cero al trece hay catorce elementos.
Ahora mismo acabo de hacer unas pruebas para ver si el tipo de campo viene correcto y, si, viene correcto con el tipo 11 que es el de campo l贸gico, lo que no entiendo es por qu茅 no me coge la evaluaci贸n del verdadero o falso en el setcheck.

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: TxBrowse error en casilla de verificaci贸n
Posted: Mon Feb 11, 2013 06:36 PM
Pedro wrote:Estimado amigo Jos茅 Luis, en ADO los campos no empiezan en el n煤mero 1 sino en el 0, de ah铆 que aunque tu veas en el arreglo del 0 al 13, sin embargo en el Browse
ves la columna 14, ya que si cuentas, del cero al trece hay catorce elementos.
Ahora mismo acabo de hacer unas pruebas para ver si el tipo de campo viene correcto y, si, viene correcto con el tipo 11 que es el de campo l贸gico, lo que no entiendo es por qu茅 no me coge la evaluaci贸n del verdadero o falso en el setcheck.


Entendido y aprendido algo sobre ADO, si me fije que habian 14 campos, solo me extra帽o que fuera de 0-13 y no de 1-14, nunca he manejado ADO, ahora has probado hacer la conversion tu mismo en el bStrData o bEditValue .t./.f..? algo como oCol:bEditValue := {|| IIF( valor_campo = valor, .f., .t. ) }, no sea que no te este reconociendo el valor como logico. saludos... :-)
Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: TxBrowse error en casilla de verificaci贸n
Posted: Mon Feb 11, 2013 06:52 PM
Bueno pues visto el problema y esto ya es cosa del master Antonio o Daniel, ya que poniendo el xBrowse.prg de la versi贸n 12.04 a continuaci贸n del m贸dulo main
funciona perfectamente el browse.
Y la 煤nica diferencia que veo es esta :
L铆neas 9265 a 9280 de la versi贸n 12.04
Code (fw): Select all Collapse
  if ::bStrData != nil .and. !::hChecked
      cData := Eval( ::bStrData )
      if ValType( cData ) != 'C'
         cData := cValToChar( cData )
      endif
      if ! Empty( ::nDataStrAlign )
         cData := AllTrim( cData )
      endif
      if isrtf( cData )
         cData := "<RichText>"
      elseif isGtf( cData )
         cData := GtfToTxt( cData )
      endif
   else
      cData := ""
   endif


estas mismas l铆neas est谩n de la 9621 a la 9636 en la versi贸n 12.06 y est谩n as铆
Code (fw): Select all Collapse
   if ::bStrData != nil //.and. !::hChecked
      cData := Eval( ::bStrData )
      if ValType( cData ) != 'C'
         cData := cValToChar( cData )
      endif
      if ! Empty( ::nDataStrAlign )
         cData := AllTrim( cData )
      endif
      if isrtf( cData )
         cData := "<RichText>"
      elseif isGtf( cData )
         cData := GtfToTxt( cData )
      endif
   else
      cData := ""
   endif


la diferencia es que han comentado el hChecked y en el eval que viene a continuaci贸n casca el programa.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: TxBrowse error en casilla de verificaci贸n
Posted: Mon Feb 11, 2013 06:55 PM

Disculpa Jos茅 Luis no vi tu respuesta.

El campo es tipo l贸gico, y me lo reconoce como l贸gico, el problema es lo que acabo de comentar antes, que en la versi贸n 12.06 han anulado la comprobaci贸n del hChecked
Ahora intentar茅 poner ese m贸dulo de la clase a ver si funciona dejando el hChecked en su sitio.

EDITO

el m贸dulo de la clase funciona, no da el error. A ver si Antonio o Daniel nos indican el motivo por el que se coment贸 el hChecked y a que afecta el ponerlo.

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO

Continue the discussion