XBROWSE selección de registros con barra espaciadora

XBROWSE selección de registros con barra espaciadora

Postby pedroluis » Thu May 31, 2018 11:53 pm

Hola Señores !
De nuevo preguntando...
Hace poco que empecé a incursionar con el XBROWSE y evidentemente
no me llevo muy bién con él, pero me agrada mucho...

La pregunta es sencilla:
Tengo un XBROWSE con la base de datos rubros.dbf.
La idea es seleccionar los registros que quiero listar con la barra
espaciadora y que me marque la primer columna con una "X".
pero no se refresca cuando lo hago.
Pero si se graba en la base de datos

Les paso el código y una imágen.
Se que para ustedes será un tema sencillo, del cuál les voy
a estar muy agradecidos me echen una mano.

Code: Select all  Expand view
* RUBROS.PRG - Selección rubros. Compilar con BUILDX.BAT de FWH1709
* UV 31/05/2018              
*
* Seleccionar rubros.
*
#include "vta0000.ch"
#include "winapi.ch"
#include "report.ch"
#include "xbrowse.ch"
#define  VK_ENTER 13

EXTERNAL ORDKEYCOUNT, ORDKEYNO
REQUEST DBFCDX
EXTERN DBFCDX

*--------------------------------------
FUNCTION Main()              
*--------------------------------------
local  oDlg
local  oBrwr
local  lSave:=.f.

RDDSETDEFAULT("DBFCDX")
SET DATE FRENCH
SET CENTURY ON
SET EPOCH TO 1970
SET DECIMALS TO 2
SET CONFI ON
SET DELE ON
SET _3DLOOK ON
SetHandleCount(80)

REQUEST HB_Lang_ES
REQUEST HB_CODEPAGE_ESWIN
HB_LangSelect("ES")

sele 2
use rubros

DEFINE DIALOG oDlg RESOURCE "RUBSEL"  

REDEFINE XBROWSE oBrwr ALIAS ALIAS(2) FIELDS ;
     str(2->tilde1),;
     str(2->rubro),;
     2->Nombre ;
     HEADERS;
     "X",;
     "Rub.",;
     "Nombre" ;
     ID 182 OF oDlg ;
     SIZES 18,28,150   

oBrwr:nMarqueeStyle       := MARQSTYLE_HIGHLCELL                          
oBrwr:nColDividerStyle    := LINESTYLE_BLACK
oBrwr:nRowDividerStyle    := LINESTYLE_BLACK
oBrwr:lColDividerComplete := .t.
oBrwr:nHeaderLines        := 1                            
oBrwr:nDataLines          := 1                    
oBrwr:lRecordSelector     := .t.                                              
oBrwr:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }  
oBrwr:bClrSelFocus        := {|| { nRGB(  0,  0,  0), nRGB(248,195, 34) } }  
oBrwr:SetFocus()
oBrwr:Refresh()
oBrwr:lVScroll := .t.
oBrwr:lHScroll := .t.     

oBrwr:bKeyDown:={|nKey| iif(nKey=32,TIL1200F(oBrwr),oBrwr:Refresh())}

REDEFINE BUTTON ID 115 OF oDlg ;     // SI
         ACTION (lSave:=.t.,sysrefresh(),oDlg:End())  
REDEFINE BUTTON ID 114 OF oDlg ;     // NO
         ACTION (lSave:=.f.,sysrefresh(),CierraDbfs(),oDlg:End())
ACTIVATE DIALOG oDlg CENTERED

if lSave
   // Rutina de impresión...
endif   
clos data
sysrefresh()
FreeResources()
return nil

*--------------------------------------
FUNCTION TIL1200F(oBrwr)   // Para seleccionar registros con la barra espaciadora.
*--------------------------------------
// Marco el tilde1 en RUBROS.DBF con barra espaciadora
// el rubro que se va a listar.
sele 2
if 2->tilde1=" "
   sele 2
   repl tilde1 with "X"
else
   sele 2
   repl tilde1 with " "
endif
oBrwr:setfocus()
oBrwr:Refresh()
sysrefresh()
return nil

*-------------------------
FUNCTION CierraDbfs()
*-------------------------
set relation to
clos data
return nil
 


Image
Pedro L. Lavallen
San Luis (Capital), Argentina
User avatar
pedroluis
 
Posts: 99
Joined: Sun Oct 08, 2017 12:51 pm
Location: San Luis (Capital), Argentina

Re: XBROWSE selección de registros con barra espaciadora

Postby nageswaragunupudi » Sat Jun 02, 2018 1:11 am

Code: Select all  Expand view
USE ITEMS SHARED NEW

REDEFINE XBROWSE oBrwr ID 182 OF oDlg ;
   DATASOURCE "ITEMS" ;
   COLUMNS "TILDE1", "CATEGORY", "Name" ;
   HEADERS "X", "Rub." ;
   COLSIZES 18,26,150 ;
   CELL LINES
   

oBrwr:bKeyChar := { |k,f,oCol| If( k == 32, ;
   ( oCol := oBrwr:oCol( 1 ), oCol:VarPut( If( Empty( oCol:Value ), "X", " " ) ), 0 ), nil ) }
     
// BUTTONS

ACTIVATE DIALOG oDlg CENTERED

CLOSE ITEMS
 
Regards

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

Re: XBROWSE selección de registros con barra espaciadora

Postby FranciscoA » Sat Jun 02, 2018 3:52 pm

Hola.
No dudo que el codigo del Sr. Rao funcione.
Pero, siguiendo tu codigo, prueba modificando asi:
oBrwr:bKeyDown:={|nKey| iif( nKey=32, TIL1200F(oBrwr), ) }
Saludos
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE selección de registros con barra espaciadora

Postby pedroluis » Sat Jun 02, 2018 4:54 pm

Señores Rao y Francisco, muchas gracias por sus respuestas !
Las 2 funcionaron perfectamente !!!
La respuesta de Francisco, muy sencilla, y la de Rao más complicada
pero correcta también.
Me gustaría aprender más sobre la clase TXBROWSE y ver nuevos ejemplos.
Hasta ahora vi todos los que están en la carpeta de FWH y en la página
http://wiki.fivetechsoft.com/doku.php?i ... eticamente.
¿ Hay algún sitio donde se puedan ver más ejemplos y/o tutoriales para apender más sobre el tema ?
Gracias de nuevo, y saludos !
Pedro L. Lavallen
San Luis (Capital), Argentina
User avatar
pedroluis
 
Posts: 99
Joined: Sun Oct 08, 2017 12:51 pm
Location: San Luis (Capital), Argentina

Re: XBROWSE selección de registros con barra espaciadora

Postby nageswaragunupudi » Sun Jun 03, 2018 1:23 am

In these forums, I posted many samples showing the recommended and the best way to create and use XBrowse.
You can download a program from this thread
http://forums.fivetechsupport.com/viewt ... =3&t=35170
With this program you can download and see all the samples I posted in these forums.
Please study these sample and adapt them to your needs.
Regards

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

Re: XBROWSE selección de registros con barra espaciadora

Postby pedroluis » Mon Jun 04, 2018 1:59 pm

Gracias amigo Rao.
Muy atento !
Pedro L. Lavallen
San Luis (Capital), Argentina
User avatar
pedroluis
 
Posts: 99
Joined: Sun Oct 08, 2017 12:51 pm
Location: San Luis (Capital), Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 41 guests