- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Array out of bounds
×
Linguagem de Programação ADVPL
Perguntas Array out of bounds
- gilmargpc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 1
- Obrigados Recebidos: 0
3 anos 10 meses atrás #32971
por gilmargpc
Array out of bounds foi criado por gilmargpc
Boa tarde
Conseguem me auxiliar num código, esta apresentando o erro
"array out of bounds [2] of [1] on { || ANMAPROV[NNMAPROV] + AOKLIB[NNMAPROV] }(MT120BRW.PRW) 14/01/2021 17:56:52 line : 161"
O erro esta neste array: aNmAprov[nNmAprov] + aOkLib[nNmAprov]
Conseguem me auxiliar num código, esta apresentando o erro
"array out of bounds [2] of [1] on { || ANMAPROV[NNMAPROV] + AOKLIB[NNMAPROV] }(MT120BRW.PRW) 14/01/2021 17:56:52 line : 161"
O erro esta neste array: aNmAprov[nNmAprov] + aOkLib[nNmAprov]
User Function PCAprov()
Local cAprov := space(6)
Local aNmAprov := {}
//Local nNmAprov := 0
Local aOkLib := {}
cNumSC := sc7->c7_num
// Identificando aprovador pendente...
If !empty(SC7->C7_APROV7) .and. empty(SC7->C7_LIBOK7)
cAprov := SC7->C7_APROV7
Endif
If !empty(SC7->C7_APROV6) .and. empty(SC7->C7_LIBOK6)
cAprov := SC7->C7_APROV6
Endif
If !empty(SC7->C7_APROV5) .and. empty(SC7->C7_LIBOK5)
cAprov := SC7->C7_APROV5
Endif
If !empty(SC7->C7_APROV4) .and. empty(SC7->C7_LIBOK4)
cAprov := SC7->C7_APROV4
Endif
If !empty(SC7->C7_APROV3) .and. empty(SC7->C7_LIBOK3)
cAprov := SC7->C7_APROV3
Endif
If !empty(SC7->C7_APROV2) .and. empty(SC7->C7_LIBOK2)
cAprov := SC7->C7_APROV2
Endif
If !empty(SC7->C7_APROV1) .and. empty(SC7->C7_LIBOK1)
cAprov := SC7->C7_APROV1
Endif
If !empty(SC7->C7_APROV1)
aadd(aNmAprov , UsrRetName(SC7->C7_APROV1))
aadd(aOkLib , " ")
Endif
If !empty(SC7->C7_APROV2)
aadd(aNmAprov , UsrRetName(SC7->C7_APROV2))
aadd(aOkLib , " ")
Endif
If !empty(SC7->C7_APROV3)
aadd(aNmAprov , UsrRetName(SC7->C7_APROV3))
aadd(aOkLib , " ")
Endif
If !empty(SC7->C7_APROV4)
aadd(aNmAprov , UsrRetName(SC7->C7_APROV4))
aadd(aOkLib , " ")
Endif
If !empty(SC7->C7_APROV5)
aadd(aNmAprov , UsrRetName(SC7->C7_APROV5))
aadd(aOkLib , " ")
Endif
If !empty(SC7->C7_APROV6)
aadd(aNmAprov , UsrRetName(SC7->C7_APROV6))
aadd(aOkLib , " ")
Endif
If !empty(SC7->C7_APROV7)
aadd(aNmAprov , UsrRetName(SC7->C7_APROV7))
aadd(aOkLib , " ")
Endif
// Identifiando quem aprovou:
If len(aOkLib) = 0
aadd(aNmAprov , "*** SEM APROVADORES CADASTRADOS ***")
aadd(aOkLib , " ")
Endif
If !empty(SC7->C7_LIBOK1)
aOkLib[1] := " - " + iif(SC7->C7_LIBOK1="S","Aprovado" , "Reprovado") + " em " + dtoc(SC7->C7_DTLIB1)
Endif
If !empty(SC7->C7_LIBOK2) .and. len(aOkLib)>1
aOkLib[2] := " - " + iif(SC7->C7_LIBOK2="S","Aprovado" , "Reprovado") + " em " + dtoc(SC7->C7_DTLIB2)
Endif
If !empty(SC7->C7_LIBOK3) .and. len(aOkLib)>2
aOkLib[3] :=" - " + iif(SC7->C7_LIBOK3="S","Aprovado" , "Reprovado") + " em " + dtoc(SC7->C7_DTLIB3)
Endif
If !empty(SC7->C7_LIBOK4) .and. len(aOkLib)>3
aOkLib[4] := " - " + iif(SC7->C7_LIBOK4="S","Aprovado" , "Reprovado") + " em " + dtoc(SC7->C7_DTLIB4)
Endif
If !empty(SC7->C7_LIBOK5) .and. len(aOkLib)>4
aOkLib[5] := " - " + iif(SC7->C7_LIBOK5="S","Aprovado" , "Reprovado") + " em " + dtoc(SC7->C7_DTLIB5)
Endif
If !empty(SC7->C7_LIBOK6) .and. len(aOkLib)>5
aOkLib[6] := " - " + iif(SC7->C7_LIBOK6="S","Aprovado" , "Reprovado") + " em " + dtoc(SC7->C7_DTLIB6)
Endif
If !empty(SC7->C7_LIBOK7) .and. len(aOkLib)>6
aOkLib[7] := " - " + iif(SC7->C7_LIBOK7="S","Aprovado" , "Reprovado") + " em " + dtoc(SC7->C7_DTLIB7)
Endif
nLiIni := 005
@ 001,1 TO 200,500 DIALOG oDlg2 TITLE "Aprovadores deste PC: " + cNumSC
//Lista todos os aprovadores envolvidos
oFont := TFont():New('Courier new',,-18,.T.)
For nNmAprov := 1 to len(aNmAprov)
oSay:= TSay():New(@ nLiIni,04, {|| aNmAprov[nNmAprov] + aOkLib[nNmAprov] },oDlg2,,oFont,,,,.T.,CLR_RED,CLR_WHITE,200,20)
nLiIni := nLiIni + 10
Next
@ 75,50 BMPBUTTON TYPE 1 ACTION Close(oDlg2)
ACTIVATE DIALOG oDlg2 CENTERED
Return
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Array out of bounds
Tempo para a criação da página:0.148 segundos