MarioG wrote:Estimados;
Tengo el siguiente código donde pretendo usar SetCheck()
- Code: Select all Expand view
REDEFINE XBROWSE oBrwPer ID 300 OF oDlg ;
COLUMNS "DESCRIP", "PERMISO" ;
HEADERS "Permisos", "Chk" ;
ALIAS Alias()
WITH Object oBrwPer
:nMarqueeStyle := MARQSTYLE_DOTEDCELL // barra señaladora
:nColDividerStyle := LINESTYLE_BLACK // Linea Tipo
:lColDividerComplete:= TRUE // Linea de columna hasta final de Brw
:nStretchCol := STRETCHCOL_LAST // Ajustar ultima col, al margen derecho
:l2007 := TRUE
:lAllowColHiding := FALSE // Anular menu pop Ocultar/Mostrar columna
:nRowHeight := 38
:nMoveType := MOVE_DOWN
:lVScroll := TRUE
:nColSel:= 2
:CreateFromCode()
:SetBackGround( aGrad )
:bGotFocus:= {|| ::oDBPermi:SetFocus() }
END
// Columnas
WITH OBJECT oBrwPer:Permisos
:nWidth:= 320
:bPaintText:= { |oCol, hDC, cText, aCoord| ::DrawCol( oCol, hDC, cText, aCoord ) }
END
WITH OBJECT oBrwPer:Chk
:nWidth:= 50
:nHeadStrAlign:= :nDataStrAlign:= AL_CENTER
:SetCheck( {"bmp_Ok", ""}, {|o, v| ::oDBPermi:Load(), ;
::oDBPermi:Permiso:= v, ;
::oDBPermi:Save() } )
END
El problema se dá con SetCheck(), ya que si lo comento, el browse se muestra sin problemas.
Bajo esta condición se produce el siguiente error:
Descripción de Error generado:
___________________________________________________
Error BASE/1004 Class: 'LOGICAL' has no exported method: EVAL
Args:
[ 1] = L .F.
Llamadas al Stack:
___________________________________________________
Llamado desde: EVAL(0)
Llamado desde: .\source\classes\XBROWSE.PRG TXBRWCOLUMN:PAINTCELL(9609)
Llamado desde: .\source\classes\XBROWSE.PRG TXBRWCOLUMN:PAINTDATA(9561)
Llamado desde: .\source\classes\XBROWSE.PRG TXBROWSE:PAINT(1434)
Llamado desde: .\source\classes\XBROWSE.PRG TXBROWSE:DISPLAY(1253)
Llamado desde: D:\MIHARB~1\Mifwh\Sources\control.prg TCONTROL:HANDLEEVENT(1666)
Llamado desde: .\source\classes\XBROWSE.PRG TXBROWSE:HANDLEEVENT(11632)
Llamado desde: .\source\classes\WINDOW.PRG _FWH(3153)
Llamado desde: DIALOGBOX(0)
Llamado desde: .\source\classes\DIALOG.PRG TDIALOG:ACTIVATE(270)
Llamado desde: D:\MixHarb\Temege\Sources\TCtrlAcc.prg TCTRLACC:CREAUSUARIOS(317)
Llamado desde: D:\MixHarb\Temege\Sources\mgCfgSys.prg (b)TCFGSYS:CFGSYS(428)
Llamado desde: .\source\classes\TGET.PRG TGET:LVALID(1184)
Llamado desde: D:\MIHARB~1\Mifwh\Sources\control.prg TGET:FWLOSTFOCUS(1110)
Llamado desde: D:\MIHARB~1\Mifwh\Sources\control.prg TCONTROL:HANDLEEVENT(1675)
Llamado desde: .\source\classes\TGET.PRG TGET:HANDLEEVENT(579)
Llamado desde: .\source\classes\WINDOW.PRG _FWH(3153)
Llamado desde: SYSREFRESH(0)
Llamado desde: .\source\classes\BTNBMP.PRG TBTNBMP:LBUTTONDOWN(584)
Llamado desde: D:\MIHARB~1\Mifwh\Sources\control.prg TCONTROL:HANDLEEVENT(1687)
Llamado desde: .\source\classes\BTNBMP.PRG TBTNBMP:HANDLEEVENT(1408)
Llamado desde: .\source\classes\WINDOW.PRG _FWH(3153)
Llamado desde: DIALOGBOX(0)
Llamado desde: .\source\classes\DIALOG.PRG TDIALOG:ACTIVATE(270)
Llamado desde: D:\MixHarb\Temege\Sources\mgCfgSys.prg TCFGSYS:CFGSYS(467)
Llamado desde: D:\Fuen32\SiGeCo2\CA32\Source\CA_MAIN.PRG (b)BUILDMENU(167)
Llamado desde: .\source\classes\MENU.PRG TMENU:COMMAND(461)
Llamado desde: .\source\classes\WINDOW.PRG TWINDOW:COMMAND(1027)
Llamado desde: TWINDOW:HANDLEEVENT(0)
Llamado desde: .\source\classes\WINDOW.PRG _FWH(3153)
Llamado desde: WINRUN(0)
Llamado desde: .\source\classes\WINDOW.PRG TWINDOW:ACTIVATE(980)
Llamado desde: D:\Fuen32\SiGeCo2\CA32\Source\CA_MAIN.PRG CA_MAIN(88)
Que es lo que no veo en este error, para corregirlo?
Sorry, I did not see this before.
1) Please let me know the FWH version you are using.
2) Is the field PERMISO a logical field? In that case,
- Code: Select all Expand view
:SetCheck( { "bmp_ok", "" }, .T. )
is all that is required. Try to avoid using bPostEdit block.
3) Is ::oDbPermi a Tdatabase object? If so, " :bGotFocus:= {|| ::oDBPermi:SetFocus() }" is nor correct.
After you reply to the above, I shall give you my final solution.