checkbox en xbrowse

artu01
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

checkbox en xbrowse

Post by artu01 »

Hola
no consigo hacer que aparezca el cuadradito de check en una columna que es de tipo logica
me pinta .t. o .f.
le he dado todas las formas posibles con "ON" y "OFF"

Code: Select all | Expand

   REDEFINE XBROWSE oBrw2 ID 5000 OF oDlg ALIAS "CTACTE" ;   COLUMNS "Voucher","Estado","Mesprov","tipdoc","SerDoc","NumDoc","Moneda","tcambio","DEBES","HABERS","SALDOS","DEBED","HABERD" ;   HEADERS "Voucher","Estado","Mes","T.Doc.", "Serie", "Numero", "Mon.", "T.C.", "Debe S/.", "Haber S/.", "Saldo S/.", "Debe US$", "Haber US$";   JUSTIFY, .F., AL_CENTER, .T. ;   AUTOSORT FASTEDIT ;   FOOTERS LINES CELL      oCol:=oBrw2:oCol("Estado")      oCol:SetCheck({"ON","OFF"}) 

Podrian decirme como se hace?
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: checkbox en xbrowse

Post by joseluisysturiz »

Primero, estas usando DBF o MYSQL.?
Segundo, si es DBF tiene el campo como logico.?
Tercero, si es MYSQL debes de convertir el valor del campo en .t. / .f. ya que mysql no maneja campos logicos.
Cuarto, puedes poner todas las opciones como defines esa columna para usar el SetCheck,

Quinto, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
artu01
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: checkbox en xbrowse

Post by artu01 »

Me explico mejor con una imagen
http://img534.imageshack.us/img534/552/8azl.jpg

espero su ayuda
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: checkbox en xbrowse

Post by artu01 »

joseluisysturiz wrote:Primero, estas usando DBF o MYSQL.?
Segundo, si es DBF tiene el campo como logico.?
Tercero, si es MYSQL debes de convertir el valor del campo en .t. / .f. ya que mysql no maneja campos logicos.
Cuarto, puedes poner todas las opciones como defines esa columna para usar el SetCheck,

Quinto, saludos... :shock:

joseluis
1. uso dbf
2. si es campo logico
4. no tengo mucha exp. con xbrowse, aqui mi codigo

Code: Select all | Expand

   REDEFINE XBROWSE oBrw2 ID 5000 OF oDlg ALIAS "CTACTE" ;   COLUMNS "Voucher","Estado","Mesprov","tipdoc","SerDoc","NumDoc","Moneda","tcambio","DEBES","HABERS","SALDOS","DEBED","HABERD" ;   HEADERS "Voucher","Estado","Mes","T.Doc.", "Serie", "Numero", "Mon.", "T.C.", "Debe S/.", "Haber S/.", "Saldo S/.", "Debe US$", "Haber US$";   JUSTIFY, .F., AL_CENTER, .T. ;   AUTOSORT FASTEDIT ;   FOOTERS LINES CELL   //AUTOCOLS    if ! Empty( oCol := oBrw2:oCol( "Estado" ) )       oCol:SetCheck({"ON","OFF"})       oCol:cSortOrder:=nil       //oCol:bStrData:={||NIL}   ---> aqui bota error por eso lo comento    Endif    oBrw2:nMarqueeStyle := 5   
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: checkbox en xbrowse

Post by joseluisysturiz »

intenta suspender el IF haber si te lo muestra y el oCol:bStrData:={||NIL} es el valor del campo, porque lo colocas en NILL si debe ser .f. o .t. para que aparezca el checkbox.? saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
carlos vargas
Posts: 1723
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: checkbox en xbrowse

Post by carlos vargas »

por favor, pon despues del redefine xbrowse

oBrw:SetRdd()

prueba y comentas.

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
artu01
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: checkbox en xbrowse

Post by artu01 »

joseluis:
le he puesto oCol:bStrData:={|| .t.} y bota error
joseluisysturiz wrote:intenta suspender el IF haber si te lo muestra y el oCol:bStrData:={||NIL} es el valor del campo, porque lo colocas en NILL si debe ser .f. o .t. para que aparezca el checkbox.? saludos... :shock:


carlos:
siguel igual sin mostrar la cajita de checkbox

Code: Select all | Expand

#INCLUDE "FiveWin.ch"#include "XBrowse.ch"   DEFINE DIALOG oDlg RESOURCE "BRW_CTACTE" FONT oFontS   CTACTE->(DBGoTop())   select CTACTE   REDEFINE XBROWSE oBrw2 ID 5000 OF oDlg ALIAS "CTACTE" ;   COLUMNS "Voucher","Estado" ;   HEADERS "Voucher","Estado"    if ! Empty( oCol := oBrw2:oCol( "Estado" ) )      oCol:SetCheck({"ON","OFF"})      oCol:cSortOrder:=nil      oBrw2:SetRdd()    Endif    oBrw2:nMarqueeStyle := 5    ACTIVATE DIALOG oDlg CENTERED ON INIT oBrw2:SetRdd()  
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
User avatar
carlos vargas
Posts: 1723
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: checkbox en xbrowse

Post by carlos vargas »

Pon el SetRdd inmediatamente despues del REDEFINE por favor
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
artu01
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: checkbox en xbrowse

Post by artu01 »

carlos vargas wrote:Pon el SetRdd inmediatamente despues del REDEFINE por favor

Gracias carlos x tu ayuda pero no funcka
sera x la version fwh que tengo es la 8.11?, compile unos prgs demos de xbrowse que consegui por alli pero igual
me sale .t. ó .f. en la columna de campo logica en vez del cuadradito para hacer un check


Espero que me sigan ayudando
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: checkbox en xbrowse

Post by joseluisysturiz »

Intenta asi haber

oCol:bStrData:={|| nombre_del_campo con su alias }

y confirma bien si el tipo de campo el logico...deberia funcionarte...saludos... :shock:

tambien intenta asi haber que te hace setcheck({"ON","OFF", .t.}, o dejalo solo asi...setcheck()
Dios no está muerto...

Gracias a mi Dios ante todo!
artu01
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: checkbox en xbrowse

Post by artu01 »

joseluisysturiz wrote:Intenta asi haber

oCol:bStrData:={|| nombre_del_campo con su alias }

y confirma bien si el tipo de campo el logico...deberia funcionarte...saludos... :shock:

tambien intenta asi haber que te hace setcheck({"ON","OFF", .t.}, o dejalo solo asi...setcheck()

Jose Luis:
he intentado con todas las opciones y no sale el cuadradito sino .t.
Copio parte del xbrowse.prg para saber si es el mismo que Uds. tienen ó sufrio variación (fwh 8.11)

Code: Select all | Expand

METHOD SetCheck( aBmps, bOnPostEdit ) CLASS TXBrwColumn   local nBmpOn, nBmpOff := 0, nBmpNull := 0   local LogiVal := .f.   if Empty( ::nArrayCol )      if ::bEditvalue != nil         LogiVal := ( ValType( Eval( ::bEditvalue ) ) == 'L' )      endif   else      LogiVal := ( ValType( ::oBrw:aArrayData[ 1, ::nArrayCol ] ) == 'L' )   endif   if LogiVal      if If( ".bmp" $ Lower( aBmps[ 1 ] ), ::AddBmpFile ( aBmps[ 1 ] ), ::AddResource( aBmps[ 1 ] ) )         nBmpOn      := Len( ::aBitMaps )         if If( ".bmp" $ Lower( aBmps[ 2 ] ), ::AddBmpFile ( aBmps[ 2 ] ), ::AddResource( aBmps[ 2 ] ) )            nBmpOff  := Len( ::aBitMaps )         endif         ::bBmpData  := { | u | If( ( u := Eval( ::bEditValue ) ) == nil, nBmpNull, If( u, nBmpOn, nBmpOff ) ) }         ::bStrData  := .f.         ::hChecked  := .t.         if bOnPostEdit != nil            ::bOnPostEdit := bOnPostEdit            ::nEditType   := EDIT_GET         endif      endif   else      MsgStop( "Method Valid only for logical values" )   endifreturn nil 

el primer parametro de la funcion es un array de bmps, sera que me faltan los bmps?
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
User avatar
sysctrl2
Posts: 1066
Joined: Mon Feb 05, 2007 7:15 pm
Has thanked: 7 times
Been thanked: 3 times
Contact:

Re: checkbox en xbrowse

Post by sysctrl2 »

Con array a mi me funciona como sigue,
adjunto el exe con todo y codigo,
marca y desmarca con doble clik o barra espaciadora espero te de una LUZ
https://app.box.com/s/riv066zwek9qqkgugx8f

saludos.

Code: Select all | Expand

* manejo de bitmaps con xbrowse* 24-dic-2013* by. SysCtrl.#include "fivewin.ch"#include "xbrowse.ch"static oBrwFunction Main()  ScChk():New()return nilCLASS ScChk  METHOD New()  METHOD Teclas()ENDCLASSMETHOD New() CLASS ScChk  local oDlg, oFont  local oBtn  local oBrush  local aData  aData := { {.f.,1,"Cesar Cortes Cruz", 1500.00,600.00}, ;             {.f.,2,"Nombre 2", 1600.00,700.00} }  DEFINE BRUSH oBrush COLOR nRGB( 255, 255, 255 )  DEFINE FONT oFont NAME "TAHOMA" SIZE 5,15  DEFINE DIALOG oDlg SIZE 800,600 PIXEL FONT oFont TRANSPARENT BRUSH oBrush  oDlg:cTitle := "Check xbrw"  @ 10,10 XBROWSE oBrw SIZE -10,-70 PIXEL OF oDlg ;      DATASOURCE aData ;      COLUMNS 1, 2, 3, 4, 5 ;      COLSIZES 90, 150,250,90,90 ;      HEADERS "Select", "Clave","Nombre","Ingreso","Egreso" ;      CELL LINES FOOTERS NOBORDER FASTEDIT   oBrw:bKeyDown := {|nKey| ::Teclas( nKey, @oDlg ) }  oBrw:nMarqueeStyle    = MARQSTYLE_HIGHLWIN7        oBrw:nDataLines := 2  oBrw:nStretchCol         := STRETCHCOL_LAST  oBrw:nHeaderLines := 2  oBrw:nFooterLines := 2  oBrw:nColSel := 1  WITH OBJECT oBrw:Ingreso      :cEditPicture   := "$999,999.99"  END  WITH OBJECT oBrw:aCols[1]    :AddBmpFile(   "checkon.BMP")    :AddBmpFile(   "checkoff.BMP")    //:AddResource("CHKON")    // :AddResource("CHKOFF")    :bBmpData     := {|| IF( oBrw:aArrayData[ oBrw:nArrayAt ][1], 1, 2) }    :bStrData     := {|| IF( oBrw:aArrayData[ oBrw:nArrayAt ][1], 'Si', 'No') }    :blDClickData := {|o, v| ( oBrw:aArrayData[ oBrw:nArrayAt ][1] := !oBrw:aArrayData[ oBrw:nArrayAt ][1], oBrw:DrawSelect() ) }   END  WITH OBJECT oBrw      :CreateFromCode()  END  @ 250, 150 BUTTONBMP oBtn1 PROMPT "Aceptar" TEXTRIGHT OF oDlg ;     ACTION ( oDlg:end() ) PIXEL SIZE 100, 30  CANCEL CENTER   oDlg:lhelpicon := .F.  ACTIVATE DIALOG oDlg CENTERED   RELEASE FONT oFontRETURN NILMETHOD Teclas( nKey, oDlg, aData ) CLASS ScChk  if nKey = VK_SPACE //marca o desmarca con la barra espaciadora    if oBrw:aArrayData[oBrw:nArrayAt][1]      oBrw:aArrayData[ oBrw:nArrayAt ][1] := .f.    else      oBrw:aArrayData[ oBrw:nArrayAt ][1] := .t.    endif    oBrw:DrawSelect()  ENDIFRETURN NIL
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
artu01
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: checkbox en xbrowse

Post by artu01 »

sysctrl2 wrote:Con array a mi me funciona como sigue,
adjunto el exe con todo y codigo,
marca y desmarca con doble clik o barra espaciadora espero te de una LUZ
https://app.box.com/s/riv066zwek9qqkgugx8f

saludos.

Code: Select all | Expand

* manejo de bitmaps con xbrowse* 24-dic-2013* by. SysCtrl.#include "fivewin.ch"#include "xbrowse.ch"static oBrwFunction Main()  ScChk():New()return nilCLASS ScChk  METHOD New()  METHOD Teclas()ENDCLASSMETHOD New() CLASS ScChk  local oDlg, oFont  local oBtn  local oBrush  local aData  aData := { {.f.,1,"Cesar Cortes Cruz", 1500.00,600.00}, ;             {.f.,2,"Nombre 2", 1600.00,700.00} }  DEFINE BRUSH oBrush COLOR nRGB( 255, 255, 255 )  DEFINE FONT oFont NAME "TAHOMA" SIZE 5,15  DEFINE DIALOG oDlg SIZE 800,600 PIXEL FONT oFont TRANSPARENT BRUSH oBrush  oDlg:cTitle := "Check xbrw"  @ 10,10 XBROWSE oBrw SIZE -10,-70 PIXEL OF oDlg ;      DATASOURCE aData ;      COLUMNS 1, 2, 3, 4, 5 ;      COLSIZES 90, 150,250,90,90 ;      HEADERS "Select", "Clave","Nombre","Ingreso","Egreso" ;      CELL LINES FOOTERS NOBORDER FASTEDIT   oBrw:bKeyDown := {|nKey| ::Teclas( nKey, @oDlg ) }  oBrw:nMarqueeStyle    = MARQSTYLE_HIGHLWIN7        oBrw:nDataLines := 2  oBrw:nStretchCol         := STRETCHCOL_LAST  oBrw:nHeaderLines := 2  oBrw:nFooterLines := 2  oBrw:nColSel := 1  WITH OBJECT oBrw:Ingreso      :cEditPicture   := "$999,999.99"  END  WITH OBJECT oBrw:aCols[1]    :AddBmpFile(   "checkon.BMP")    :AddBmpFile(   "checkoff.BMP")    //:AddResource("CHKON")    // :AddResource("CHKOFF")    :bBmpData     := {|| IF( oBrw:aArrayData[ oBrw:nArrayAt ][1], 1, 2) }    :bStrData     := {|| IF( oBrw:aArrayData[ oBrw:nArrayAt ][1], 'Si', 'No') }    :blDClickData := {|o, v| ( oBrw:aArrayData[ oBrw:nArrayAt ][1] := !oBrw:aArrayData[ oBrw:nArrayAt ][1], oBrw:DrawSelect() ) }   END  WITH OBJECT oBrw      :CreateFromCode()  END  @ 250, 150 BUTTONBMP oBtn1 PROMPT "Aceptar" TEXTRIGHT OF oDlg ;     ACTION ( oDlg:end() ) PIXEL SIZE 100, 30  CANCEL CENTER   oDlg:lhelpicon := .F.  ACTIVATE DIALOG oDlg CENTERED   RELEASE FONT oFontRETURN NILMETHOD Teclas( nKey, oDlg, aData ) CLASS ScChk  if nKey = VK_SPACE //marca o desmarca con la barra espaciadora    if oBrw:aArrayData[oBrw:nArrayAt][1]      oBrw:aArrayData[ oBrw:nArrayAt ][1] := .f.    else      oBrw:aArrayData[ oBrw:nArrayAt ][1] := .t.    endif    oBrw:DrawSelect()  ENDIFRETURN NIL

Hola gente todavia me pregunto porque no me sale el cuadrado de checkbox en el xbrowse
cesar:
como seria para que tu codigo funcione no con arreglos de data sino con tablas dbf?
gracias por la ayuda!
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: checkbox en xbrowse

Post by artu01 »

Gracias cesar ya funciono
asi lo solucione

Code: Select all | Expand

                   DEFINE DIALOG oDlg SIZE 1000,500 PIXEL TITLE FWVERSION          @ 0, 1 XBROWSE oLbx OF oDlg ALIAS "activi" SIZE 800, 100 FOOTERS CELL          oLbx:SetRdd()          oLbx:bKeyDown := {|nKey| Teclas( nKey, @oDlg ) }          oLbx:nMarqueeStyle    = 5 //MARQSTYLE_HIGHLWIN7          oLbx:nDataLines := 2          oLbx:nStretchCol         := STRETCHCOL_LAST          WITH OBJECT oLbx:aCols[3]            :AddBmpFile(   "checkon.BMP")            :AddBmpFile(   "checkoff.BMP")            :bBmpData     := {|| IF( activi->estado, 1, 2) }            :bStrData     := {|| IF( activi->estado, 'Si', 'No') }            :blDClickData := {|o, v| ( activi->estado:= !activi->estado, oLbx:DrawSelect() ) }          END          WITH OBJECT oLbx            :CreateFromCode()          END         ACTIVATE DIALOG oDlg   
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
User avatar
sysctrl2
Posts: 1066
Joined: Mon Feb 05, 2007 7:15 pm
Has thanked: 7 times
Been thanked: 3 times
Contact:

Re: checkbox en xbrowse

Post by sysctrl2 »

Sabia que te daria una LUZ,
saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
Post Reply