- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Erro ao excluir coluna de um TCBROWSE
×
Linguagem de Programação ADVPL
Perguntas Erro ao excluir coluna de um TCBROWSE
- jeduardomneto
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 11
- Obrigados Recebidos: 0
7 anos 6 meses atrás #32135
por jeduardomneto
Erro ao excluir coluna de um TCBROWSE foi criado por jeduardomneto
Estou tentando criar um TCBROWSE dinâmico, ou seja, ora aparecem algumas colunas, ora não.
Como ainda não tenhor muita experiência em ADVPL, estou apanhando. Consegui montar um
modelo reduzido da função onde é possível reproduzir o problema. Acontece que quando é para
acrescentar novas colunas no grid, funciona beleza, mas quando preciso excluir colunas aí
ocorre o seguinte erro: array out of bounds ( 3 of 2 ) on {|| AITENS[OLIST:NAT,03]}(TESTE_EDU.PRW) 03/05/2017 18:09:21 line : 67
Não consigo entender o que estou fazendo de errado.
Segue abaixo fonte para facilitar a compreensão de meu problema.
#include "rwmake.ch"
#include "topconn.ch"
#include "totvs.ch"
#include "protheus.ch"
User Function TESTE_EDU()
Private oDlg, oList
Private cQuery := ""
Private aItens := {}
Private lCkExibe := .F.
DEFINE MSDIALOG oDlg TITLE "Teste" FROM 0,0 TO 564,1303 of oMainWnd pixel
DEFINE FONT oFont NAME "Courier New" SIZE 0,-13
oChkImp := TCheckBox():New(002,010,"Exibe Custo Standard",{|u|If(PCount()>0,lCkExibe:=u,lCkExibe)},oDlg,100,10,,,,,,,,.T.)
oList := TCBrowse():New(020,001,652,240,,,,oDlg,,,,,,,,,,,,.F.,,.T.,,.F.,,,)
oList:AddColumn(TCColumn():New("Código" ,{|| aItens[oList:nAt,01]},"@!",,,"LEFT",050,.F.,.F.,,,,.F.,))
oList:AddColumn(TCColumn():New("Descrição",{|| aItens[oList:nAt,02]},"@!",,,"LEFT",100,.F.,.F.,,,,.F.,))
oList:SetArray(aItens)
oList:bWhen:= { || Len(aItens) > 0 }
oButtonC:=tButton():New(270,530,'Consultar',oDlg,{|| TstCon()} ,60,11,,,,.T.)
oButtonS:=tButton():New(270,593,' Sair ',oDlg,{|| oDlg:End()},60,11,,,,.T.)
Activate Dialog oDlg Centered //On Init EnchoiceBar(oDlg, {|| nOpca:=1, Confirma()}, {|| oDlg:End()} ,, )
Static Function TstCon()
aItens := {}
If !lCkExibe
cQuery := " SELECT B1_COD,B1_DESC "
Else
cQuery := " SELECT B1_COD,B1_DESC, B1_CUSTD "
EndIf
cQuery += " FROM SB1010 "
cQuery += " WHERE D_E_L_E_T_ <> '*' "
cQuery += " ORDER BY B1_COD "
If ( SELECT("QRYA") ) > 0
dbSelectArea("QRYA")
QRYA->(dbCloseArea())
EndIf
TCQUERY cQuery NEW ALIAS "QRYA"
dbSelectArea("QRYA")
dbGoTop()
While QRYA->(!Eof())
If !lCkExibe
AADD(aItens,{QRYA->B1_COD,QRYA->B1_DESC})
Else
AADD(aItens,{QRYA->B1_COD,QRYA->B1_DESC,QRYA->B1_CUSTD})
EndIf
dbSelectArea("QRYA")
QRYA->(dbSkip())
EndDo
If lCkExibe
oList:AddColumn(TCColumn():New("Custo Standard",{|| aItens[oList:nAt,03]},"@EZ 99999.99",,,"RIGHT",030,.F.,.F.,,,,.F.,))
EndIf
oList:SetArray(aItens)
oList:bWhen:= { || Len(aItens) > 0 }
oList:Refresh()
oDlg:Refresh()
Return()
Como ainda não tenhor muita experiência em ADVPL, estou apanhando. Consegui montar um
modelo reduzido da função onde é possível reproduzir o problema. Acontece que quando é para
acrescentar novas colunas no grid, funciona beleza, mas quando preciso excluir colunas aí
ocorre o seguinte erro: array out of bounds ( 3 of 2 ) on {|| AITENS[OLIST:NAT,03]}(TESTE_EDU.PRW) 03/05/2017 18:09:21 line : 67
Não consigo entender o que estou fazendo de errado.
Segue abaixo fonte para facilitar a compreensão de meu problema.
#include "rwmake.ch"
#include "topconn.ch"
#include "totvs.ch"
#include "protheus.ch"
User Function TESTE_EDU()
Private oDlg, oList
Private cQuery := ""
Private aItens := {}
Private lCkExibe := .F.
DEFINE MSDIALOG oDlg TITLE "Teste" FROM 0,0 TO 564,1303 of oMainWnd pixel
DEFINE FONT oFont NAME "Courier New" SIZE 0,-13
oChkImp := TCheckBox():New(002,010,"Exibe Custo Standard",{|u|If(PCount()>0,lCkExibe:=u,lCkExibe)},oDlg,100,10,,,,,,,,.T.)
oList := TCBrowse():New(020,001,652,240,,,,oDlg,,,,,,,,,,,,.F.,,.T.,,.F.,,,)
oList:AddColumn(TCColumn():New("Código" ,{|| aItens[oList:nAt,01]},"@!",,,"LEFT",050,.F.,.F.,,,,.F.,))
oList:AddColumn(TCColumn():New("Descrição",{|| aItens[oList:nAt,02]},"@!",,,"LEFT",100,.F.,.F.,,,,.F.,))
oList:SetArray(aItens)
oList:bWhen:= { || Len(aItens) > 0 }
oButtonC:=tButton():New(270,530,'Consultar',oDlg,{|| TstCon()} ,60,11,,,,.T.)
oButtonS:=tButton():New(270,593,' Sair ',oDlg,{|| oDlg:End()},60,11,,,,.T.)
Activate Dialog oDlg Centered //On Init EnchoiceBar(oDlg, {|| nOpca:=1, Confirma()}, {|| oDlg:End()} ,, )
Static Function TstCon()
aItens := {}
If !lCkExibe
cQuery := " SELECT B1_COD,B1_DESC "
Else
cQuery := " SELECT B1_COD,B1_DESC, B1_CUSTD "
EndIf
cQuery += " FROM SB1010 "
cQuery += " WHERE D_E_L_E_T_ <> '*' "
cQuery += " ORDER BY B1_COD "
If ( SELECT("QRYA") ) > 0
dbSelectArea("QRYA")
QRYA->(dbCloseArea())
EndIf
TCQUERY cQuery NEW ALIAS "QRYA"
dbSelectArea("QRYA")
dbGoTop()
While QRYA->(!Eof())
If !lCkExibe
AADD(aItens,{QRYA->B1_COD,QRYA->B1_DESC})
Else
AADD(aItens,{QRYA->B1_COD,QRYA->B1_DESC,QRYA->B1_CUSTD})
EndIf
dbSelectArea("QRYA")
QRYA->(dbSkip())
EndDo
If lCkExibe
oList:AddColumn(TCColumn():New("Custo Standard",{|| aItens[oList:nAt,03]},"@EZ 99999.99",,,"RIGHT",030,.F.,.F.,,,,.F.,))
EndIf
oList:SetArray(aItens)
oList:bWhen:= { || Len(aItens) > 0 }
oList:Refresh()
oDlg:Refresh()
Return()
Por favor Acessar ou Registrar para participar da conversa.
- jeduardomneto
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 11
- Obrigados Recebidos: 0
7 anos 6 meses atrás #32161
por jeduardomneto
Respondido por jeduardomneto no tópico Erro ao excluir coluna de um TCBROWSE
Bom dia !
Por favor, alguém me dê alguma dica para resolver esse problema.
Obrigado.
Por favor, alguém me dê alguma dica para resolver esse problema.
Obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Erro ao excluir coluna de um TCBROWSE
Tempo para a criação da página:0.116 segundos