Page 1 of 1
SetBtnGet en xBrowse
Posted:
Thu Nov 05, 2015 6:42 pm
by acuellar
Amigos
El SetBrnGet es de TSBrowse, como es en xBrowse?
Que sirve para poder pulsar una tecla asignada para realizar una acción cuando estamos usando bEditBlock, además permite colocar una imagen
Gracias por la ayuda.
Saludos,
Adhemar
Re: SetBtnGet en xBrowse
Posted:
Thu Nov 05, 2015 7:18 pm
by karinha
Re: SetBtnGet en xBrowse
Posted:
Thu Nov 05, 2015 7:52 pm
by acuellar
Gracias João
Revisé todos los parámetros y parece que no tiene uno que cumpla esa función.
Esperemos que dice el master RAO
Saludos,
Adhemar
Re: SetBtnGet en xBrowse
Posted:
Thu Nov 05, 2015 8:10 pm
by Antonio Linares
Adhemar,
Lo que necesitas es asignarle una imagen al botón ?
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 1:03 am
by acuellar
Antonio
Lo que necesito es que el cuadro que muestra el bEditBlock poner una imagen con F2 y al pulsar F2 me ejecute un función que muestre otro browse donde pueda elegir un registro.
Gracias,
Saludos,
Adhemar
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 1:09 am
by acuellar
A propósito del TSBrowse alguien sabe del maestro Manuel Mercado de México. Todo un master.
Saludos,
Adhemar
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 3:27 pm
by acuellar
He encontrado éste ejemplo:
Quiero que al pulsar F2 ó click en el cuadrito muestre el otro browse para elegir el Item.
- Code: Select all Expand view
#include "fivewin.ch"
REQUEST DBFCDX
function Main()
local oWnd, oBar, oFont
Private lPued:=.T.
RDDSetDefault( "DBFCDX" )
SET DELETED ON
if ! File( 'TestTrn.Dbf' )
CreateTestDbf()
endif
DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
DEFINE WINDOW oWnd MDI
oWnd:SetFont( oFont )
DEFINE BUTTONBAR oBar OF oWnd SIZE 100,32 2007
SET MESSAGE OF oWnd TO '' 2007
DEFINE BUTTON OF oBar PROMPT "XBrowse" ACTION XbrAppend( This )
DEFINE BUTTON OF oBar PROMPT "Quit" ACTION oWnd:End()
ACTIVATE WINDOW oWnd
RELEASE FONT oFont
return 0
static function XbrAppend( oBtn )
local oWnd, oBrw
oBtn:Disable()
USE TESTTRN NEW ALIAS TRN EXCLUSIVE
DEFINE WINDOW oWnd MDICHILD OF WndMain()
@ 0,0 XBROWSE oBrw OF oWnd ;
COLUMNS 'Code', 'Item', 'Rate', 'Quantity' ;
ALIAS 'TRN' CELL LINES FASTEDIT
oBrw:Amount := { || oBrw:Rate:Value * oBrw:Quantity:Value }
WITH OBJECT oBrw
:Cargo := 0
WITH OBJECT :Code
:nEditType := 5 //EDIT_BUTTON
:bEditBlock := { || SelectItem( oBrw ) }
END
:Quantity:nEditType := EDIT_GET
:bPastEof := { || (oBrw:cAlias)->( AppendRec( oBrw ) ) }
:bChange := { || (oBrw:cAlias)->( CheckAppend( oBrw ) ) }
END
oBrw:CreateFromCode()
oWnd:oClient := oBrw
oWnd:bPostEnd := { || TRN->( DbCloseArea() ), oBtn:Enable() }
ACTIVATE WINDOW oWnd ON INIT oBrw:SetFocus() ;
VALID CheckAppend( oBrw, .t. )
return nil
static function AppendRec( oBrw )
if oBrw:Cargo == 0 // not in append mode
APPEND BLANK
GO BOTTOM
oBrw:Cargo := RecNo()
oBrw:Refresh()
oBrw:GoLeftMost()
oBrw:Code:Edit()
endif
return nil
static function CheckAppend( oBrw, lExit )
local nRecNo := RecNo()
DEFAULT lExit := .f.
if oBrw:Cargo > 0 .and. ( lExit .or. oBrw:Cargo != nRecNo )
GOTO oBrw:Cargo
DELETE
oBrw:Cargo := 0
if ! lExit
GOTO nRecNo
oBrw:Refresh()
endif
endif
if lExit
PACK
endif
return .t.
static function SelectItem( oBrw1 )
local aItems := { { 1, "Item.1", 20 }, { 2, "Item.2", 30 }, { 3, "Item.3", 40 } }
local nRet := oBrw1:Code:Value
XBROWSER aItems ;
SETUP ( oBrw:cHeaders := { "Code", "Item", "Rate" } ) ;
SELECT ( nRet := oBrw:aRow[ 1 ], ;
oBrw1:Item:Value := oBrw:aRow[ 2 ], ;
oBrw1:Rate:Value := oBrw:aRow[ 3 ], ;
oBrw1:Cargo := 0, ;
oBrw1:nColSel := 4, ;
oBrw1:Refresh() )
return nRet
//----------------------------------------------------------------------------//
static function CreateTestDbf()
local aCols := { ;
{ "CODE", "N", 4, 0 }, ;
{ "ITEM", "C", 20, 0 }, ;
{ "RATE", "N", 6, 2 }, ;
{ "QUANTITY", "N", 4, 0 } }
DBCREATE( "TESTTRN", aCols )
USE TESTTRN EXCLUSIVE
APPEND BLANK
FIELD->CODE := 1
FIELD->ITEM := "Item.1"
FIELD->RATE := 20
FIELD->QUANTITY := 3
CLOSE TESTTRN
return nil
Gracias por la ayuda.
Saludos,
Adhemar
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 5:11 pm
by Antonio Linares
Adhemar,
El ejemplo que has publicado ya lo hace. Que le falta a ese ejemplo ?
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 5:24 pm
by acuellar
Antonio
El ejemplo sólo funciona dando click en el cuadrito.
Quiero que me permita pulsar F2 y en lo posible poner una imagen.
Saludos,
Adhemar
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 6:40 pm
by Antonio Linares
Adhemar,
Prueba a añadir esta línea:
oBrw:bKeyDown = { | nKey | If( oBrw:nColSel == 1 .and. nKey == VK_F2, oBrw:SelectedCol():RunBtnAction(), ) }
aquí:
- Code: Select all Expand view
static function XbrAppend( oBtn )
local oWnd, oBrw
oBtn:Disable()
USE TESTTRN NEW ALIAS TRN EXCLUSIVE
DEFINE WINDOW oWnd MDICHILD OF WndMain()
@ 0,0 XBROWSE oBrw OF oWnd ;
COLUMNS 'Code', 'Item', 'Rate', 'Quantity' ;
ALIAS 'TRN' CELL LINES FASTEDIT
oBrw:Amount := { || oBrw:Rate:Value * oBrw:Quantity:Value }
WITH OBJECT oBrw
:Cargo := 0
WITH OBJECT :Code
:nEditType := 5 //EDIT_BUTTON
:bEditBlock := { || SelectItem( oBrw ) }
END
:Quantity:nEditType := EDIT_GET
:bPastEof := { || (oBrw:cAlias)->( AppendRec( oBrw ) ) }
:bChange := { || (oBrw:cAlias)->( CheckAppend( oBrw ) ) }
END
oBrw:bKeyDown = { | nKey | If( oBrw:nColSel == 1 .and. nKey == VK_F2, oBrw:SelectedCol():RunBtnAction(), ) }
oBrw:CreateFromCode()
oWnd:oClient := oBrw
oWnd:bPostEnd := { || TRN->( DbCloseArea() ), oBtn:Enable() }
ACTIVATE WINDOW oWnd ON INIT oBrw:SetFocus() ;
VALID CheckAppend( oBrw, .t. )
return nil
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 7:07 pm
by acuellar
Perfecto.
Gracias Antonio
Si es posible faltaría poder colocar una imagen.
Saludos,
Adhemar
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 7:53 pm
by MGA
oBrw:aCols[1]:AddResource('LUPA')
oBrw:aCols[1]:nBtnBmp := 1
oBrw:aCols[1]:lBtnTransparent:= .f.
Re: SetBtnGet en xBrowse
Posted:
Fri Nov 06, 2015 8:30 pm
by acuellar
Gracias SGS
Funciona.
Saludos,
Adhemar