Xbrowse con Columna CheckBox - (Solucionado)

Xbrowse con Columna CheckBox - (Solucionado)

Postby leandro » Tue Aug 13, 2013 10:42 pm

Buenas noches a todo el foro:

Como dice el encabezado quiero colocar una columna con checkbox sobre una dbf, he leido muchos ejemplos en el foro pero todos estan sobre arrays
lo unico que encontre sobre una dbf es el siguiente codigo pero no logro hacerlo funcionar.

Code: Select all  Expand view

FUNCTION pChebrowse()

local oDlg,oMvg1

DEFINE DIALOG oDlg NAME "orBuscar" ICON "#8001" TRANSPARENT

   REDEFINE BUTTONBMP Btn_Limp ID 4003 OF oDlg BITMAP "Blimpi2" TOOLTIP oLamcla:mTfil
   REDEFINE GET oBog1 VAR oMvg1 ID 4002 OF oDlg UPDATE

   REDEFINE SAY oSay ID 4004 PIXEL OF oDlg COLOR oLamcla:cClr5 PICTURE '@!'

   SELE d_ctasc
   dbappend()
   Dbgotop()
   oBrw := TXBrowse():New( oDlg )
   oBrw:nMarqueeStyle         := MARQSTYLE_HIGHLCELL //MARQSTYLE_HIGHLROW //
   oBrw:nColDividerStyle      := LINESTYLE_RAISED
   oBrw:nHeaderLines          := 1
   oBrw:lFooter               := .t.
   oBrw:nFooterLines          := 1
   oBrw:nFooterHeight         := 24
   oBrw:lColDividerComplete   := .t.
   oBrw:lRecordSelector       := .t.
   oBrw:bClrStd               := {|| IF( (Recno()%2)==0,{oLamcla:cClr5,oLamcla:cClr2},{oLamcla:cClr5,oLamcla:cClr1} ) }
   oBrw:bClrSel               := {|| { oLamcla:cClr5,oLamcla:cClr7 } }
   oBrw:bClrSelFocus          := {|| { CLR_WHITE,RGB(147,160,112) } }
   oBrw:lFastEdit             := .t.

       oCol  := oBrw:oCol( "Existe" )
       oCol:SetCheck( { "GREEN", "RED" }, {|o, v| (DBRLOCK(), d_ctasc->exist := v, DBUNLOCK() ) } )
       oCol:bStrData        := { || If( d_ctasc->exist, "Yes", "No" ) }
       oCol:nDataStrAlign   := AL_RIGHT

   oBrw:SetRDD()
   oBrw:CreateFromResource(102)


ACTIVATE DIALOG oDlg NOWAIT On Init (Centra( oDlg ),oDlg:refresh()) //VALID (pValCapSal(),.t.)
return nIL
 


Me dice que la función SetCheck no existe, alguien tiene un ejemplo...
Last edited by leandro on Fri Aug 23, 2013 11:21 pm, edited 1 time in total.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1480
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Xbrowse con Columna CheckBox

Postby Armando » Tue Aug 13, 2013 11:30 pm

Leandro:

Va un ejemplo con recordset pero fácilmente lo puedes adaptar a DBFs cambiando
el origen de los datos

Code: Select all  Expand view

            aCol[ 7]                            := oBrw:AddCol()
            aCol[ 7]:AddResource("SI16")
            aCol[ 7]:AddResource("NO16")
            aCol[ 7]:cHeader                := "Can"
            aCol[ 7]:bBmpData               := { || IF(oRsHdr:RecordCount() > 0,IIF(oRsHdr:Fields("HDR_CAN"):Value,1,2),2) }
            aCol[ 7]:nHeadBmpAlign      := AL_RIGHT
 


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3055
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Xbrowse con Columna CheckBox

Postby leandro » Wed Aug 14, 2013 2:24 am

Amigo buena noche, primero que todo muchas gracias por contestar.... Pero te cuento que adapte el código y no me funciono, así quedo:

Code: Select all  Expand view

  oCol = oLamcla:oBrwCapt:AddCol()
   oCol:AddResource("BFLEC")
   oCol:AddResource("BEQUIS")
   oCol:cHeader      := "Activa"
   oCol:bBmpData            := { || IF(d_ctasc->exist,1,2) }
   oCol:nHeadBmpAlign      := AL_RIGHT
 


y esta es la imagen

Image

De Antemano Gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1480
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Xbrowse con Columna CheckBox

Postby vlmsoft » Wed Aug 14, 2013 9:01 am

Hola Leandro

.....

REDEFINE XBROWSE oBrw ;
   ALIAS "Cliente" ;
   FIELDS Cliente->Codigo , ;
              Cliente->Nombre , ;
              Cliente->Baja ;
   ID 101 ;
   OF oDlg

....

oBrw:aCols[3]:SetCheck( { "CHECKON","CHECKOFF" } )

*** CHECKON y CHECKOFF son dos bitmaps almacenados en un fichero de recursos


Un saludo
vlmsoft
 
Posts: 36
Joined: Thu Jun 28, 2007 3:43 pm
Location: Madrid

Re: Xbrowse con Columna CheckBox

Postby nageswaragunupudi » Wed Aug 14, 2013 9:29 am

Mr Leandro

oBrw:SetRDD() should immediately follow oBrw := TXBrowse():New(oDlg ).
Then you would not get this error.

As long as you use this syntax for creation of XBrowse, you are likely to get into some other other errors or unable to avail most features of Xbrowse.

We highly recommend using command syntax.

In your example:
Code: Select all  Expand view

REDEFINE XBROWSE oBrw ID 102 OF oDlg ALIAS "d_ctasc" AUTOCOLS ;
   CELL LINES FOOTERS FASTEDIT

oBrw:oCol( "Exist" ):SetCheck( { "GREEN", "RED" }, .t. )

<other clauses>

ACTIVATE DIALOG oDlg ........... <other clauses>
 

The above code would have done what you wanted.
Regards

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

Re: Xbrowse con Columna CheckBox

Postby leandro » Wed Aug 14, 2013 10:56 am

Thanks for answering Mr. Nao and vlmsoft

But I get the following error

Code: Select all  Expand view

Descripción del Error:
___________________________________________________

Error BASE/1004
Class: 'NIL' has no exported method: SETCHECK
   Args:
     [   1] = U
     [   2] = A   { ... }
     [   3] = L   .T.
 

so stay the code
Code: Select all  Expand view

FUNCTION pChebrowse()

local oDlg,oMvg1

DEFINE DIALOG oDlg NAME "orBuscar" ICON "#8001" TRANSPARENT

   REDEFINE BUTTONBMP Btn_Limp ID 4003 OF oDlg BITMAP "Blimpi2" TOOLTIP oLamcla:mTfil
   REDEFINE GET oBog1 VAR oMvg1 ID 4002 OF oDlg UPDATE

   REDEFINE SAY oSay ID 4004 PIXEL OF oDlg COLOR oLamcla:cClr5 PICTURE '@!'

   SELE d_ctasc
   dbappend()

   Dbgotop()
   oBrw := TXBrowse():New( oDlg )


   REDEFINE XBROWSE oBrw ID 102 OF oDlg ALIAS "d_ctasc" AUTOCOLS ;
   CELL LINES FOOTERS FASTEDIT

   oBrw:oCol( "Cambia" ):SetCheck( { "GREEN", "RED" }, .t. )

   oBrw:SetRDD()


ACTIVATE DIALOG oDlg NOWAIT On Init (Centra( oDlg ),oDlg:refresh()) //VALID (pValCapSal(),.t.)
return nIL
 
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1480
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Xbrowse con Columna CheckBox

Postby nageswaragunupudi » Wed Aug 14, 2013 11:13 am

What is the exact spelling of the field "Cambia" ?
If there is no field by name "cambia" you will get this error.
Please post dbstruct() of the dbf that is opened with the alias "d_ctasc"
Regards

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

Re: Xbrowse con Columna CheckBox

Postby leandro » Thu Aug 15, 2013 2:04 am

Mr. Nao Thank's for answer

The structure is as follow

Code: Select all  Expand view

IF !FILE (".\dbfs\lamtem\ctas.DBF")
   DbCreate( ".\dbfs\lamtem\ctas",{   { "cuent"  ,"C",  10, 0 },;
                                                  { "nombr"  ,"C",  50, 0 },;
                                                  { "exist"    ,"L",   1,  0 } } )
ENDIF
 


"Cambia" = exist->d_ctasc
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1480
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Xbrowse con Columna CheckBox

Postby nageswaragunupudi » Thu Aug 15, 2013 8:02 am

Code: Select all  Expand view
  USE (".\dbfs\lamtem\ctas.DBF") NEW ALIAS SHARED d_ctasc

   < ... your other code ..>

   REDEFINE XBROWSE oBrw ID 102 OF oDlg ALIAS "d_ctasc"  ;
   COLUMNS "cuent", "nombre", "exist" ;
   CELL LINES FOOTERS FASTEDIT

   oBrw:oCol( "exist" ):SetCheck( { "GREEN", "RED" }, .t. )
 


You can refer to a column with oBrw:oCol( <cheader> ) OR oBrw:oCol( 3 ) ( creation order number. In the above case header of 3rd column is "exist" by default and not "Cambia"

If you specify different headers like this then you should use the header name
Code: Select all  Expand view
  REDEFINE XBROWSE oBrw ID 102 OF oDlg ALIAS "d_ctasc"  ;
   COLUMNS "cuent", "nombre", "exist" ;
   HEADERS "Cuentxxx", "Nombrexxx", "Cambia" ;
   CELL LINES FOOTERS FASTEDIT

   oBrw:oCol( "Cambia" ):SetCheck( { "GREEN", "RED" }, .t. )
 
Regards

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

Re: Xbrowse con Columna CheckBox

Postby leandro » Thu Aug 15, 2013 9:02 pm

Mr NAO, muchas gracias por responder, al rato lo reviso y te comento.

Saludos
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1480
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Xbrowse con Columna CheckBox

Postby leandro » Fri Aug 23, 2013 11:21 pm

Thanks Mr. NAO, worked very well. :D
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1480
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 13 guests