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.
* 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
San Luis (Capital), Argentina