Achoice() com + de 80 colunas
Enviado: 11 Jul 2004 19:44
Uso Clipper 5.2 e preciso visualizar um array com mais de 80 colunas. Como eu faço isso?
Será que alguém pode me ajudar?
Será que alguém pode me ajudar?
Imagino que você queira visualizar uma matriz com strings de tamanho superior a 80. É isso? Se for, existem várias maneiras. Fica difícil dar uma opinião certeira sem um descrição mais detalhada. Visualizar onde? Num GET, browser de dados, botão, janela, etc??? Poste o código (ou parte dele) para podermos analisar ou, pelo menos, descreva o problema com mais detalhes.SandraD escreveu:Uso Clipper 5.2 e preciso visualizar um array com mais de 80 colunas. Como eu faço isso?
Troque por:OP=achoice(04,01,24,79,VETX)
Coloque a função abaixo junto com as suas rotinas:OP=machoice(04,01,24,79,VETX)
Código: Selecionar todos
PROC MACHOICE(vx_ls,vx_cs,vx_li,vx_ci,vx_matriz)
LOCAL vx_ret, vx_tam, vx_op, vx_colmax
vx_col:=1
@ vx_ls,vx_cs TO vx_li,vx_ci
vx_tam:=LEN(vx_matriz[1])
vx_larg:=(vx_ci-vx_cs)-1
vx_colmax:=vx_tam-(vx_larg-1)
PRIV vx_mat[LEN(vx_matriz)]
vx_elem=1
vx_posi=1
DO WHILE .T.
FOR i=1 TO LEN(vx_matriz)
vx_mat[i]=SUBS(vx_matriz[i],vx_col,vx_larg)
NEXT
vx_op:=achoice(vx_ls+1,vx_cs+1,vx_li-1,;
vx_ci-1,vx_mat,.T.,"AFUNC",vx_elem,vx_posi)
DO CASE
CASE LASTKEY()=27
vx_ret:=0
EXIT
CASE LASTKEY()=13
vx_ret:=vx_op
EXIT
CASE LASTKEY()=4
vx_col+=1
IF vx_col>vx_colmax
vx_col:=vx_colmax
ENDIF
CASE LASTKEY()=19
vx_col-=1
IF vx_col<1
vx_col:=1
ENDIF
ENDCASE
ENDDO
RETU (vx_ret)
FUNC AFUNC
PARAMETERS modo, elem, posi
vx_elem:=elem
vx_posi:=posi
IF modo=3
IF LASTKEY()=27
RETU (0)
ELSEIF LASTKEY()=13
RETU (1)
ELSEIF LASTKEY()=4 .OR. LASTKEY()=19
RETU (0)
ENDIF
ENDIF
RETU (2)