xbrowse y setcheck (Solucionado)

xbrowse y setcheck (Solucionado)

Postby cmsoft » Wed Dec 14, 2016 8:55 pm

Estimados:
Este codigo que antes me funcionaba, ahora con FW16 no lo hace no me muestra los cuadros chequedos, me muestra como si siempre fuese .f.
Code: Select all  Expand view
REDEFINE XBROWSE oBrw1 DATASOURCE oQry1;
              COLUMNS "modulo","detalle","codigo","permiso","permisos";
              HEADERS "Modulo","Descripcion Modulo","Orden","Permiso","Permisos";
              SIZES 100,250,50,80,113;
              ID 200 OF oDlg1
   oBrw1:aCols[4]:nEditType := EDIT_GET
   oBrw1:aCols[4]:bEditValue := {|| IF( oQry1:permiso=0, .f., .t. )  }
   oBrw1:aCols[4]:SetCheck(,.t.)

Gracias de antemano
Last edited by cmsoft on Thu Dec 29, 2016 8:45 pm, edited 1 time in total.
User avatar
cmsoft
 
Posts: 1257
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xbrowse y setcheck

Postby nageswaragunupudi » Thu Dec 15, 2016 4:46 am

It should appear.
May we know your fwh16.?? version please?
Do you see ".F." instead of CheckBox ?
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10470
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xbrowse y setcheck

Postby cmsoft » Fri Dec 16, 2016 11:35 am

Mi version es FWH 16.06
Solo aparece el casillero sin checar
User avatar
cmsoft
 
Posts: 1257
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xbrowse y setcheck

Postby cmsoft » Mon Dec 19, 2016 4:34 am

+1
User avatar
cmsoft
 
Posts: 1257
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xbrowse y setcheck

Postby nageswaragunupudi » Mon Dec 19, 2016 4:49 am

For purposes of testing, can you please try this modification and post the screenshot?
Code: Select all  Expand view
REDEFINE XBROWSE oBrw1 DATASOURCE oQry1;
   COLUMNS "modulo","detalle","codigo","permiso!=0","permiso","permisos";
   HEADERS "Modulo","Descripcion Modulo","Orden","Permiso","val","Permisos";
   SIZES 100,250,50,80,80,113;
   ID 200 OF oDlg1

oBrw1:aCols[ 4 ]:SetCheck( nil, .t. )
oBrw1:CreateFromCode()
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10470
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xbrowse y setcheck

Postby cmsoft » Mon Dec 19, 2016 12:08 pm

Me devuelve un error
Code: Select all  Expand view

   Error description: Error FiveWin/2  Duplicated Id: No:    174

El browse lo defino en el recurso.
User avatar
cmsoft
 
Posts: 1257
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xbrowse y setcheck

Postby nageswaragunupudi » Mon Dec 19, 2016 12:12 pm

We are just adding one more column in your code that is working.
How can there be duplicate ID?
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10470
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xbrowse y setcheck

Postby cmsoft » Thu Dec 29, 2016 8:44 pm

La solucion fue cambiar el tipo de datos, ya que la query la obtenia de una tabla temporal con un capo tinyint, que no me lo llenaba.
XBrowse tiene algun tipo de configuracion para ver un campo tinyint como booleano??
Code: Select all  Expand view
REDEFINE XBROWSE oBrw1 DATASOURCE oQry1;
              COLUMNS "modulo","detalle","codigo","permiso","permisos";
              HEADERS "Modulo","Descripcion Modulo","Orden","Permiso","Permisos";
              SIZES 100,250,50,80,113;
              ID 200 OF oDlg1
   oBrw1:aCols[4]:nEditType := EDIT_GET
   oBrw1:aCols[4]:bEditValue := {|| IF( oQry1:permiso="S", .t., .f. )  }
   oBrw1:aCols[4]:SetCheck(,.t.)

Lo llenaba con la siguiente instruccion SQL
Code: Select all  Expand view
TEXT into  cSql
CREATE TEMPORARY TABLE IF NOT EXISTS `menues_temp` (
  `ITEM` int(6) NOT NULL AUTO_INCREMENT,
  `CODIGO` varchar(4) NOT NULL DEFAULT ' ' ,
  `USUARIO` varchar(15) NOT NULL DEFAULT ' ' ,
  `MODULO` varchar(15) NOT NULL DEFAULT ' ' ,
  `ETIQUETA` varchar(20) NOT NULL DEFAULT ' ' ,
  `DETALLE` varchar(40) NOT NULL DEFAULT ' ' ,
  `RECURSO` varchar(10) NOT NULL DEFAULT ' ' ,
  `PADRE` varchar(4) NOT NULL DEFAULT ' ' ,
  `PERMISOS` varchar(5) NOT NULL  DEFAULT ' ',
  `REPORTE` varchar(1) NOT NULL DEFAULT ' ',
  `PERMISO` tinyint(1) NOT NULL default 0 ,
  PRIMARY KEY (`ITEM`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1
ENDTEXT

oApp:oServer:Execute(cSql)
oApp:oServer:Execute("TRUNCATE menues_temp")
oApp:oServer:NextResult()
oApp:oServer:Execute("INSERT INTO menues_temp "+;
                     "(codigo,usuario,modulo,etiqueta,detalle,recurso,padre,permiso,permisos) "+;
                     "(SELECT m.codigo,"+ClipValue2Sql(usua)+;
                     ",m.modulo, m.etiqueta, m.detalle,m.recurso,m.padre,"+;
                     "IF(b.codigo IS NOT NULL,1,0) , b.permisos FROM menu_nuevo m   "+;
                     "LEFT JOIN (SELECT codigo,permisos FROM menu_nuevo WHERE usuario = "+ClipValue2Sql(usua)+" "+;
                     "ORDER BY codigo) b ON m.codigo = b.codigo "+;
                     "WHERE m.usuario = '%%%%%%' ORDER BY m.codigo)")
oApp:oServer:NextResult()
oQry1 := oApp:oServer:Query( "SELECT * FROM menues_temp")
oQry1:Refresh()

Y lo reemplace con esta otra y funciono:
Code: Select all  Expand view
TEXT into  cSql
CREATE TEMPORARY TABLE IF NOT EXISTS `menues_temp` (
  `ITEM` int(6) NOT NULL AUTO_INCREMENT,
  `CODIGO` varchar(4) NOT NULL DEFAULT ' ' ,
  `USUARIO` varchar(15) NOT NULL DEFAULT ' ' ,
  `MODULO` varchar(15) NOT NULL DEFAULT ' ' ,
  `ETIQUETA` varchar(20) NOT NULL DEFAULT ' ' ,
  `DETALLE` varchar(40) NOT NULL DEFAULT ' ' ,
  `RECURSO` varchar(10) NOT NULL DEFAULT ' ' ,
  `PADRE` varchar(4) NOT NULL DEFAULT ' ' ,
  `PERMISOS` varchar(5) NOT NULL  DEFAULT ' ',
  `REPORTE` varchar(1) NOT NULL DEFAULT ' ',
  `PERMISO` varchar(1) NOT NULL default ' ' ,
  PRIMARY KEY (`ITEM`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1
ENDTEXT

oApp:oServer:Execute(cSql)
oApp:oServer:Execute("TRUNCATE menues_temp")
oApp:oServer:NextResult()
oApp:oServer:Execute("INSERT INTO menues_temp "+;
                     "(codigo,usuario,modulo,etiqueta,detalle,recurso,padre,permiso,permisos) "+;
                     "(SELECT m.codigo,"+ClipValue2Sql(usua)+;
                     ",m.modulo, m.etiqueta, m.detalle,m.recurso,m.padre,"+;
                     "IF(b.codigo IS NOT NULL,'S','N') , b.permisos FROM menu_nuevo m   "+;
                     "LEFT JOIN (SELECT codigo,permisos FROM menu_nuevo WHERE usuario = "+ClipValue2Sql(usua)+" "+;
                     "ORDER BY codigo) b ON m.codigo = b.codigo "+;
                     "WHERE m.usuario = '%%%%%%' ORDER BY m.codigo)")
oApp:oServer:NextResult()
oQry1 := oApp:oServer:Query( "SELECT * FROM menues_temp")
oQry1:Refresh()

Lo del ID duplicado no pude detectar que era.
Gracias Mr Rao por su tiempo.
Saludos
User avatar
cmsoft
 
Posts: 1257
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 76 guests