Error BASE/1132 Bound error: array access
Called from CLASS_PRODUTOS.PRG->(b)PRODUTOSCLASS_PRODUTOS_PESQUISA(2820)
Called from source\winapi\hbrowse.prg->HBROWSE:LINEOUT(1112)
Called from source\winapi\hbrowse.prg->HBROWSE:PAINT(813)
Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(331)
Called from ->HWG_REDRAWWINDOW(0)
Called from source\winapi\hbrowse.prg->HBROWSE:REFRESH(2025)
Called from CLASS_PRODUTOS.PRG->PRODUTOSCLASS:PESQUISA_PRODUTOS_ONKEYDOWN(2941)
Called from CLASS_PRODUTOS.PRG->(b)PRODUTOSCLASS_PRODUTOS_PESQUISA(2802)
Called from source\winapi\hbrowse.prg->HBROWSE:ONEVENT(381)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(156)
Called from CLASS_PRODUTOS.PRG->PRODUTOSCLASS:PRODUTOS_PESQUISA(2842)
Called from NOTADEPEDIDOGRAFICA.PRG->NOTA_DE_PEDIDO_VALIDA_PRODUTOS(579)
Called from NOTADEPEDIDOGRAFICA.PRG->(b)NOTA_DE_PEDIDO(95)
Called from source\winapi\hedit.prg->__VALID(893)
Called from source\winapi\hedit.prg->(b)HEDIT_NEW(98)
Called from source\winapi\hdialog.prg->ONDLGCOMMAND(374)
Called from source\winapi\hdialog.prg->(b)(_INITSTATICS00003)(0)
Called from source\winapi\hdialog.prg->HDIALOG:ONEVENT(211)
Called from ->HWG_SETFOCUS(0)
Called from source\winapi\hedit.prg->HWG_GETSKIP(1082)
Called from source\winapi\hdialog.prg->ONDLGCOMMAND(359)
Called from source\winapi\hdialog.prg->(b)(_INITSTATICS00003)(0)
Called from source\winapi\hdialog.prg->HDIALOG:ONEVENT(211)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(156)
Called from NOTADEPEDIDOGRAFICA.PRG->NOTA_DE_PEDIDO(218)
Called from SGC.PRG->(b)ACESSO_9(291)
Called from source\winapi\htool.prg->HTOOLBAR:NOTIFY(414)
Called from source\winapi\hcwindow.prg->ONNOTIFY(263)
Called from source\winapi\hcwindow.prg->(b)(_INITSTATICS00005)(0)
Called from source\winapi\hcwindow.prg->HWINDOW:ONEVENT(191)
Called from source\winapi\hdialog.prg->HDIALOG:ONEVENT(219)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from source\winapi\hdialog.prg->HDIALOG:ACTIVATE(156)
Called from SGC.PRG->MAIN(196)
HWGUI 2.22 Build 4
Date:28/10/2020
Time:11:36:08
minha rotina esta assim:
@ 4,70 BROWSE oBrowse1 ARRAY OF oDlgPROD SIZE 900,304 STYLE WS_BORDER + WS_VSCROLL +WS_HSCROLL ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;
ON CLICK {|| oDlgPROD:Close() } ;
ON KEYDOWN {|oBrowse1,nKeyPress| ::PESQUISA_PRODUTOS_onKeyDown( oBrowse1, nKeyPress, oDlgProd, @cProgressKey, cAlvo_Consulta ) }
oBrowse1:oStyleHead := HStyle():New( { 0xffffff, 0xbbbbbb }, 1,, 0.4, 16759929 )
oBrowse1:oFont := HFont():Add( '',0,-15,700,,,)
oBrowse1:freeze := 2
oBrowse1:aArray := ::PESQUISA_PRODUTOS_CARREGA( "ORDER BY PRODUTOS.DESPRO LIMIT 50" )
oBrowse1:AddColumn( HColumn():New( "ID",hwg_ColumnArBlock(),"N",13,0,.F.,1,2,'99999999999',,,,,;
{|| oBrowse1:aArray := ::PESQUISA_PRODUTOS_CARREGA( "ORDER BY PRODUTOS.PRODUTOS_ID LIMIT 50" ),cAlvo_Consulta:="PRODUTOS.PRODUTOS_ID",obrowse1:Refresh(), hwg_WriteStatus( oDlgPROD,3,"Ordem: CODIGO") } ,,,,))
oBrowse1:AddColumn( HColumn():New('DESCRIÇÃO/NOME PRODUTO', hwg_ColumnArBlock() ,'C',85, 0 ,.F.,1,,,,,,,;
{|| oBrowse1:aArray := ::PESQUISA_PRODUTOS_CARREGA( "ORDER BY PRODUTOS.DESPRO LIMIT 50" ), cAlvo_Consulta:="PRODUTOS.DESPRO",obrowse1:Refresh(), hwg_WriteStatus( oDlgPROD,3,"Ordem: DESCRIÇÃO/NOME PRODUTO") } ,,,,))
oBrowse1:AddColumn( HColumn():New('Unidade', hwg_ColumnArBlock() ,'C',9, 0 ,.F.,1,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Preço Venda', hwg_ColumnArBlock() ,'N',14, 2 ,.F.,1,2,'@E 999,999.99',,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Estoque Loja', hwg_ColumnArBlock() ,'N',22, 3 ,.F.,1,2,,,,,,,,,,))
BEGIN SEQUENCE
bColorBlock :={|| IIF( oBrowse1:aArray[oBrowse1:nCurrent,6] < 0.001 ,{255, 16777215 ,16777215,255 },{0,16777215,16777215,0 }) }
RECOVER
bColorBlock :={|| {0,16777215,16777215,0 } }
END SEQUENCE
FOR EACH oColuna IN oBrowse1:aColumns
oColuna:bColorBlock := bColorBlock
NEXT
a rotina de carga e consulta esta assim:
************************************************************************************************************************************************************************************************************************
METHOD PESQUISA_PRODUTOS_CARREGA( cAlvo_Consulta ) CLASS PRODUTOSCLASS
************************************************************************************************************************************************************************************************************************
LOCAL aResult :={};
, oQuery;
, cQuery
cQuery := "SELECT PRODUTOS.PRODUTOS_ID, ";
+ "PRODUTOS.DESPRO, ";
+ "PRODUTOS.TIPUNI, ";
+ "PRODUTOS.preven, ";
+ "PRODUTOS.ESTATU, ";
+ "(PRODUTOS.ESTATU + PRODUTOS.ESTL02) SOMA ";
+ "from PRODUTOS ";
+ cAlvo_Consulta
oQuery := ::oServer:Execute(cQuery)
if oQuery:Eof()
aAdd( aResult, {0,;
'',;
'',;
0.00,;
0.000,;
0.000} )
endif
DO WHILE ! oQuery:Eof()
aAdd( aResult, {oQuery:Fields( "PRODUTOS_ID" ):Value,;
oQuery:Fields( "DESPRO" ):Value,;
oQuery:Fields( "TIPUNI" ):Value,;
oQuery:Fields( "preven" ):Value,;
oQuery:Fields( "ESTATU" ):Value,;
oQuery:Fields( "SOMA" ):Value} )
oQuery:MoveNext()
ENDDO
oQuery:Close()
RETURN aResult
************************************************************************************************************************************************************************************************************************
METHOD PESQUISA_PRODUTOS_onKeyDown( oBrowse1, nKeyPress, oDlgProd, cProgressKey, cAlvo_Consulta ) CLASS PRODUTOSCLASS
************************************************************************************************************************************************************************************************************************
LOCAL nPosicao:=0;
, cConsulta;
KSETCAPS(.T.);
IF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ "34|33|37|38|39|40|20|16"
cProgressKey:=""
oDlgProd:oLabel2:settext(cProgressKey)
RETURN .T.
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [90]
nKeyPress := 90
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [96]
nKeyPress := 48
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [97]
nKeyPress := 49
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [98]
nKeyPress := 50
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [99]
nKeyPress := 51
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [100]
nKeyPress := 52
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [101]
nKeyPress := 53
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [102]
nKeyPress := 54
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [103]
nKeyPress := 55
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [104]
nKeyPress := 56
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [105]
nKeyPress := 57
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [106]
nKeyPress := 42
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [190]
nKeyPress := 46
ELSEIF nKeyPress == Asc("8") .AND. hwg_isCtrlShift( .F.,.T. )
nKeyPress := 42
ENDIF
IF nKeyPress = VK_RETURN .OR. nKeyPress = VK_ESCAPE
oDlgProd:Close()
RETURN .T.
ENDIF
If nKeyPress # 8
cProgressKey += Chr(nKeyPress)
nPosicao:=AScan(oBrowse1:aArray,cProgressKey)
oDlgProd:oLabel2:settext(cProgressKey)
// cConsulta:= "WHERE " + cAlvo_Consulta + IF(isalpha(cProgressKey), " LIKE '%" + cProgressKey + "%'" , " LIKE '" + cProgressKey + "%'") + " ORDER BY " + cAlvo_Consulta
cConsulta:= "WHERE " +cAlvo_Consulta + " LIKE '%" + cProgressKey + "%'" + " ORDER BY " + cAlvo_Consulta
oBrowse1:aArray := ::PESQUISA_PRODUTOS_CARREGA( cConsulta )
oDlgProd:obrowse1:REFRESH()
ELSEIF nKeyPress = 8 .AND. Len(cProgressKey) >= 1
cProgressKey:=Left(cProgressKey,Len(cProgressKey) - 1)
nPosicao:=AScan(oBrowse1:aArray,cProgressKey)
oDlgProd:oLabel2:settext(cProgressKey)
// cConsulta:= "WHERE " + cAlvo_Consulta + IF(isalpha(cProgressKey), " LIKE '%" + cProgressKey + "%'" , " LIKE '" + cProgressKey + "%'") + " ORDER BY " + cAlvo_Consulta
cConsulta:= "WHERE " +cAlvo_Consulta + " LIKE '%" + cProgressKey + "%'" + " ORDER BY " + cAlvo_Consulta
oBrowse1:aArray := ::PESQUISA_PRODUTOS_CARREGA( cConsulta )
oDlgProd:obrowse1:REFRESH()
ENDIF
IF nPosicao # 0
cConsulta:= "WHERE " + cAlvo_Consulta + " LIKE '%" + cProgressKey + "%'" + " ORDER BY " + cAlvo_Consulta
// cConsulta:= "WHERE " +cAlvo_Consulta + IF(isalpha(cProgressKey), " LIKE '%" + cProgressKey + "%'" , " LIKE '" + cProgressKey + "%'") + " ORDER BY " + cAlvo_Consulta
oBrowse1:aArray := ::PESQUISA_PRODUTOS_CARREGA( cConsulta )
oDlgProd:obrowse1:REFRESH()
ENDIF
return .T.
estou achando que deve ser um problema com o ADO que nao esta retornando os dados ou o HBROWSE que se perde com o retorno
obs: o erro nao acontece sempre