Amigos:
No entiendo y estoy de cabeza, como paso un arreglo a una rutina y poder sacar los datos indicando una posicion del elemento del dentro del arreglo. Muestro el codigo y el error a entregar la letra en el Get y tratar de sacar la descripcion, que corresponde a ese codigo:
Saludos,
Antonio
***
Funcion Ingreso()
Local TgGet[10],oSay[10],bTu:=0,arr2,arre1
Arre1 := {}
AADD( Arre1, {"A","Administrador Sistema"} )
AADD( Arre1, {"S","Supervisor Sistema "} )
AADD( Arre1, {"G","Gerencia "} )
AADD( Arre1, {"D","Digitación "} )
// Aqui Digito un codigo Ej. " G "
Redefine BTNGET TgGet[05] Var cTip_usu Id 108 Of oDlg Update Picture "@!" COLOR RGB(160,0,0), RGB(0,255,255);
Valid Empty(cTip_usu).or. Eval({ ||if (BuTiusu(@cTip_usu,TgGet,@Arre1,oSay),(TgGet[05]:Refresh(),oSay[01]:Refresh(),.t.),(TgGet[05]:Refresh(),.t.))})
Function BuTiusu(cTip_usu,TgGet,Arre1,oSay)
Local bTu,cdTip_usu
bTu:=Ascan(Arre1,{|a|a[1]==cTip_usu})
cdTip_usu:=Arre1[2,bTu] // Aqui se produce el ERROR
oSay[01]:VarPut(cdTip_usu)
TgGet[05]:Varput(cTip_usu)
sysrefresh()
Return .t.
Error description: Error BASE/1132 Error de rango: acceso al array
Args:
[ 1] = A { ... }
[ 2] = N 4