Re: ComboSearchGrid
Posted: Wed Feb 06, 2019 7:59 pm
Hola AidTIC
Tienes algún ejemplo funcional de tu problema ?
Tienes algún ejemplo funcional de tu problema ?
Exclusive forum for HMG, a Free / Open Source xBase WIN32/64 Bits / GUI Development System
http://hmgforum.com/
Code: Select all
Function Gestion_Bancos
aBancos := BancosOpen()
DEFINE WINDOW Win_Ban ;
AT 10, 20 ;
WIDTH 800 ;
HEIGHT 600 ;
TITLE 'Mantenimiento de Bancos' ;
modal
ON KEY ESCAPE ACTION ThisWindow.Release()
DEFINE LABEL label01
ROW 11
COL 10
WIDTH 80
VALUE 'Banco'
FONTNAME fNAME
FONTSIZE fSIZE
TOOLTIP ""
FONTBOLD .T.
FONTCOLOR BLUE
END LABEL
DEFINE COMBOSEARCHGRID NBAN
ROW 10
COL 100
WIDTH 500
ITEMS aBancos
TOOLTIP ""
FONTBOLD .F.
FONTNAME fNAME
FONTSIZE fSIZE
FONTCOLOR BLACK
HEADERS { 'Codigo' , 'Banco' , 'Empresa' }
WIDTHS { 150 , 200 , 300 }
JUSTIFY { 0 , 0 , 0 }
ONENTER Win_Ban.tBanDes.SetFocus
anywheresearch .t.
showheaders .t.
END COMBOSEARCHGRID
DEFINE LABEL label02
ROW 41
COL 10
WIDTH 150
VALUE 'Descripcion'
FONTNAME fNAME
FONTSIZE fSIZE
TOOLTIP ""
FONTBOLD .T.
FONTCOLOR BLUE
END LABEL
DEFINE TEXTBOX tBanDes
ROW 40
COL 170
WIDTH 360
FONTNAME fNAME
FONTSIZE fSIZE
ONENTER Win_Ban.NEMP.SetFocus
TOOLTIP ""
FONTBOLD .F.
END TEXTBOX
DEFINE LABEL label03
ROW 71
COL 10
WIDTH 150
VALUE 'Empresa'
FONTNAME fNAME
FONTSIZE fSIZE
TOOLTIP ""
FONTBOLD .T.
FONTCOLOR BLUE
END LABEL
DEFINE COMBOSEARCHGRID NEMP
ROW 70
COL 100
WIDTH 500
ITEMS aEmpresas
TOOLTIP ""
FONTBOLD .F.
FONTNAME fNAME
FONTSIZE fSIZE
FONTCOLOR BLACK
HEADERS { 'Codigo' , 'Empresa' }
WIDTHS { 50 , 300 }
JUSTIFY { 0 , 0 }
ONENTER Win_Ban.tBanCue.SetFocus
anywheresearch .t.
showheaders .t.
END COMBOSEARCHGRID
DEFINE LABEL label04
ROW 101
COL 10
WIDTH 150
VALUE 'Cuneta Contable'
FONTNAME fNAME
FONTSIZE fSIZE
TOOLTIP ""
FONTBOLD .T.
FONTCOLOR BLUE
END LABEL
DEFINE TEXTBOX tBanCue
ROW 100
COL 170
WIDTH 360
FONTNAME fNAME
FONTSIZE fSIZE
ONENTER Win_Ban.Btn_Guardar.SetFocus
TOOLTIP ""
FONTBOLD .F.
END TEXTBOX
DEFINE GRID Grid_Banc
ROW 130
COL 10
WIDTH 740
HEIGHT 330
VALUE Nil
HEADERS {'Cod.Comun' , 'Cod.Propio' , 'D/H' , 'Concepto' , 'NºAsiento'}
WIDTHS { 60 , 60 , 40 , 200 , 60 }
JUSTIFY { GRID_JTFY_RIGHT, GRID_JTFY_RIGHT , GRID_JTFY_CENTER , GRID_JTFY_LEFT, GRID_JTFY_RIGHT}
//DYNAMICFORECOLOR { fColor , fColor , fColor , fColor , fColor , fColor, fColor , fColor , fColor , fColor }
//DYNAMICBACKCOLOR { bColor , bColor , bColor , bColor , bColor , bColor , bColor , bColor , bColor , bColor }
FONTNAME fNAME
FONTSIZE fSIZE
FONTCOLOR BLACK
TOOLTIP ""
EDITOPTION GRID_EDIT_DEFAULT
END GRID
DEFINE BUTTON Btn_Guardar
ROW 490
COL 70
CAPTION '&Guardar'
ACTION Guardar_Emp ()
WIDTH 120
HEIGHT 27
FONTNAME fNAME
FONTSIZE fSIZE
TOOLTIP "Guardar Cliente"
END BUTTON
DEFINE BUTTON Btn_Eliminar
ROW 490
COL 230
CAPTION '&Eliminar'
ACTION Eliminar_Emp ()
WIDTH 120
HEIGHT 27
FONTNAME fNAME
FONTSIZE fSIZE
TOOLTIP "Eliminar Cliente"
END BUTTON
DEFINE BUTTON Btn_Cancelar
ROW 490
COL 390
CAPTION '&Cancelar'
ACTION Win_Ban.Release
WIDTH 120
HEIGHT 27
FONTNAME fNAME
FONTSIZE fSIZE
TOOLTIP "Cancelar Registro"
END BUTTON
DEFINE STATUSBAR FONT fNAME SIZE 10
STATUSITEM "Consolidador Extractos Bancarios (c) 2017 Skydone Solutions, S.L." STYLE RAISED
KEYBOARD
DATE
CLOCK WIDTH 100
END STATUSBAR
END WINDOW
Win_Ban.CENTER
Win_Ban.ACTIVATE
Return Nil
Code: Select all
STATIC PROC _CSGItemSelected( cParentName, cTxBName, lTab )
local lOk := .f.
local i := 0
local j := 0
local cQStr := ''
if GetProperty( ThisWindow.Name, "_csList", "VALUE" ) > 0
nListValue := GetProperty( ThisWindow.Name, '_csList', "VALUE" )
Do Case
Case cParentName = "Win_Ban" .and. cTxBName = "NBAN"
MSGINFO("1" , 415)
// MSGDEBUG(_HMG_CSG_aTable)
cod_emp := VAL(_HMG_CSG_aTable [ nListValue, 4 ])
cListItem := _HMG_CSG_aTable [ nListValue, 1 ]
cod_ban := _HMG_CSG_aTable [ nListValue, 1 ]
cListBanDes := _HMG_CSG_aTable[ nListValue, 2 ]
cListBanEmp := _HMG_CSG_aTable[ nListValue, 3 ]
cListBanCue := _HMG_CSG_aTable[ nListValue, 5 ]
aLineData := _HMG_CSG_aTable[ nListValue ]
cQStr := 'update itemselected set tblrowid = ( select rowid from ' + cTblName + ' where '
for i := 1 to _HMG_CSG_nCols
cQStr := cQStr + 'col' + alltrim( str( i ) ) + ' = ' + _HMG_CSG_C2SQL( aLineData[ i ] )
if i < _HMG_CSG_nCols
cQStr := cQStr + ' and '
endif
next i
cQStr := cQStr + ')'
// msginfo(cQStr)
lOk := _HMG_CSG_MiscSQL( _HMG_CSG_DBO, cQStr )
if .not. lOk
msgstop( 'Error in ComboSearchGrid!' )
return nil
endif
// MSGINFO(cListProGra)
SetProperty( cParentName, cTxBName , "VALUE", cListItem )
SetProperty( cParentName, "tBanDes" , "VALUE", cListBanDes )
SetProperty( cParentName, "NEMP" , "VALUE", cListBanEmp )
SetProperty( cParentName, "tBanCue" , "VALUE", cListBanCue )
mostrar_opciones ()
SetProperty(cParentName,cTxBName,"CARETPOS",;
LEN( cListItem ) )
DoMethod( ThisWindow.Name, "Release" )
if pcount() == 3
if lTab
_Pushkey(VK_TAB)
endif
endif
Case cParentName = "Win_Ban" .and. cTxBName = "NEMP"
cod_emp := VAL(_HMG_CSG_aTable [ nListValue, 1 ])
cListItem := _HMG_CSG_aTable [ nListValue, 2 ]
aLineData := _HMG_CSG_aTable[ nListValue ]
cQStr := 'update itemselected set tblrowid = ( select rowid from ' + cTblName + ' where '
for i := 1 to _HMG_CSG_nCols
cQStr := cQStr + 'col' + alltrim( str( i ) ) + ' = ' + _HMG_CSG_C2SQL( aLineData[ i ] )
if i < _HMG_CSG_nCols
cQStr := cQStr + ' and '
endif
next i
cQStr := cQStr + ')'
lOk := _HMG_CSG_MiscSQL( _HMG_CSG_DBO, cQStr )
if .not. lOk
msgstop( 'Error in ComboSearchGrid!' )
return nil
endif
// MSGINFO(cListProGra)
SetProperty( cParentName, cTxBName , "VALUE", cListItem )
SetProperty(cParentName,cTxBName,"CARETPOS",;
LEN( cListItem ) )
DoMethod( ThisWindow.Name, "Release" )
if pcount() == 3
if lTab
_Pushkey(VK_TAB)
endif
endif
OtherWise
cod_emp := VAL(_HMG_CSG_aTable [ nListValue, 1 ])
cListItem := _HMG_CSG_aTable [ nListValue, 2 ]
cListPATCU := _HMG_CSG_aTable[ nListValue, 3 ]
cListPATDI := _HMG_CSG_aTable[ nListValue, 4 ]
cListPATEN := _HMG_CSG_aTable[ nListValue, 5 ]
cListProGra := _HMG_CSG_aTable[ nListValue, 6 ]
//MSGINFO(cListProGra , Valtype (cListProGra))
aLineData := _HMG_CSG_aTable[ nListValue ]
cQStr := 'update itemselected set tblrowid = ( select rowid from ' + cTblName + ' where '
for i := 1 to _HMG_CSG_nCols
cQStr := cQStr + 'col' + alltrim( str( i ) ) + ' = ' + _HMG_CSG_C2SQL( aLineData[ i ] )
if i < _HMG_CSG_nCols
cQStr := cQStr + ' and '
endif
next i
cQStr := cQStr + ')'
lOk := _HMG_CSG_MiscSQL( _HMG_CSG_DBO, cQStr )
if .not. lOk
msgstop( 'Error in ComboSearchGrid!' )
return nil
endif
// MSGINFO(cListProGra)
SetProperty( cParentName, cTxBName, "VALUE", cListItem )
SetProperty( cParentName, "tCuenta", "VALUE", cListPATCU )
SetProperty( cParentName, "tDiario", "VALUE", cListPATDI )
SetProperty( cParentName, "tElntace", "VALUE", cListPATEN )
SetProperty( cParentName, "rProgram", "VALUE", VAL(cListProGra ))
mostrar_bancos ()
SetProperty(cParentName,cTxBName,"CARETPOS",;
LEN( cListItem ) )
DoMethod( ThisWindow.Name, "Release" )
if pcount() == 3
if lTab
_Pushkey(VK_TAB)
endif
endif
EndCase
ELSE
// ( GetProperty( ThisWindow.Name, "_cstext", "VALUE" ) )
SetProperty( cParentName, cTxBName, "VALUE", GetProperty( ThisWindow.Name, "_cstext", "VALUE" ) )
// SetProperty( cParentName, tEnlace, "VALUE", GetProperty( ThisWindow.Name, "_cstext", "VALUE" ) )
DoMethod( ThisWindow.Name, "Release" )
if pcount() == 3
if lTab
_Pushkey(VK_TAB)
endif
endif
ENDIF
RETURN // _CSGItemSelected()
Code: Select all
Date:07-02-2019 Time: 17:29:41
Error BASE/1132 Bound error: array access
Called from _CSGITEMSELECTED(417)
Called from (b)CREATECSGRID(295)
Called from _DOCONTROLEVENTPROCEDURE(6056)
Called from EVENTS(828)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5717)
Called from CREATECSGRID(333)
Called from (b)_DEFINECOMBOSEARCHGRID(187)
Called from _DOCONTROLEVENTPROCEDURE(6056)
Called from EVENTS(1861)
Called from SETWINDOWTEXT(0)
Called from _SETVALUE(536)
Called from SETPROPERTY(7931)
Called from _CSGITEMSELECTED(444)
Called from (b)CREATECSGRID(319)
Called from EVENTS(3244)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5717)
Called from CREATECSGRID(333)
Called from (b)_DEFINECOMBOSEARCHGRID(187)
Called from _DOCONTROLEVENTPROCEDURE(6056)
Called from EVENTS(1861)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5717)
Called from DOMETHOD(9003)
Called from GESTION_BANCOS(196)
Called from (b)MAIN(154)
Called from _DOCONTROLEVENTPROCEDURE(6056)
Called from EVENTS(1756)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5717)
Called from MAIN(300)