Problema de reconocimiento de alias...

Post Reply
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Problema de reconocimiento de alias...

Post by Elias Torres »

Hola a todos...
Bueno antes de nada este es el codigo conflictivo...


*********************************
FUNCTION configuracion(usuario,clave)
*********************************
LOCAL olist,radio_pvp,radio_art,oart_nuevo,oexis_local,lval:=.f.,lval1:=.f.
LOCAL oexis_local_siempre,oexis_remot_siempre,contador


CLOSE DATABASES

&& se contabilizan los registros que estan marcados
SELECT 0
USE (CURDIR() +"\definiciones.dbf") VIA "DBFCDX" new
INDEX ON codigo TO codigo
definiciones->(OrdSetFocus("codigo"))
SET FILTER TO (definiciones->activado==.T.)
definiciones->(dbgotop())
contador:=0
DO while !EOF()
contador:=contador+1
definiciones->(dbskip())
ENDDO
definiciones->( DbClearFilter() )
definiciones->(dBGotop())

SELECT 0

USE (CURDIR() + "\vector_ini.dbf") VIA "DBFCDX" new
ip:=ALLTRIM(vector_ini->ip_equipo) &&guarda la ip del equipo
nombre_pda:=ALLTRIM(vector_ini->codpda)
control_existencias_locales:= vector_ini->exis_local
control_existencias_remotas:= vector_ini->exis_remot
existencias_locales_siempre:=vector_ini->el_siempre
existencias_remotas_siempre:=vector_ini->er_siempre


SELECT vector_ini

DEFINE window oWnd1 TITLE "Configuración"

&&definimos las pestañas y el tamaño de estas
@ 3, 1 FOLDER oFld PROMPTS "Parámetros", "Sistema", "Descargas", "Configuración",;
"Máscaras","Definiciones","Cambio de Claves" SIZE 225, 175

&&le damos un color de fondo para integrarla en la pantalla principal
oFld:setcolor(RGB(1,1,1),RGB(230,184,94))



IF VAL(tipo_acceso)==0 &&solo se permite acceso a la primera pagina

&& primera pagina

@ 2, 1 SAY "Codigo PDA" OF oFld:aDialogs[ 1 ] SIZE 70, 15
@ 2, 10 GET oCod_pda var vector_ini->codpda OF oFld:aDialogs[ 1 ] SIZE 130, 21
@ 3.6, 1 SAY "Aplicación" OF oFld:aDialogs[ 1 ] SIZE 70, 15
@ 4, 10 GET oAplic var vector_ini->aplicacion OF oFld:aDialogs[ 1 ] SIZE 130, 21
@ 5.4, 1 SAY "Almacen" OF oFld:aDialogs[ 1 ] SIZE 70, 15
@ 6, 10 GET oAlmacen var vector_ini->almacen OF oFld:aDialogs[ 1 ] SIZE 130, 21
@ 7.1, 1 SAY "Lista Precios" OF oFld:aDialogs[ 1 ] SIZE 70, 15
@ 8, 10 GET oPrecios var vector_ini->lista_pvp OF oFld:aDialogs[ 1 ] SIZE 130, 21

ELSE &&el acceso es a toda la configuración

&& primera pagina

@ 2, 1 SAY "Codigo PDA" OF oFld:aDialogs[ 1 ] SIZE 70, 15
@ 2, 10 GET oCod_pda var vector_ini->codpda OF oFld:aDialogs[ 1 ] SIZE 130, 21
@ 3.6, 1 SAY "Aplicación" OF oFld:aDialogs[ 1 ] SIZE 70, 15
@ 4, 10 GET oAplic var vector_ini->aplicacion OF oFld:aDialogs[ 1 ] SIZE 130, 21
@ 5.4, 1 SAY "Almacen" OF oFld:aDialogs[ 1 ] SIZE 70, 15
@ 6, 10 GET oAlmacen var vector_ini->almacen OF oFld:aDialogs[ 1 ] SIZE 130, 21
@ 7.1, 1 SAY "Lista Precios" OF oFld:aDialogs[ 1 ] SIZE 70, 15
@ 8, 10 GET oPrecios var vector_ini->lista_pvp OF oFld:aDialogs[ 1 ] SIZE 130, 21

&& segunda pagina

@ 1, 1 SAY "Dirección IP" OF oFld:aDialogs[ 2 ] SIZE 70, 15
@ 1, 10 GET oIP var vector_ini->ip_equipo OF oFld:aDialogs[ 2 ] SIZE 130, 21
@ 2.6, 1 SAY "Nombre Eq." OF oFld:aDialogs[ 2 ] SIZE 70, 15
@ 3, 10 GET oNombreEq var vector_ini->equipo OF oFld:aDialogs[ 2 ] SIZE 130, 21
@ 4.3, 1 SAY "Ruta" OF oFld:aDialogs[ 2 ] SIZE 70, 15
@ 5, 10 GET oRuta var vector_ini->ruta OF oFld:aDialogs[ 2 ] SIZE 130, 21
@ 6, 1 SAY "Usuario" OF oFld:aDialogs[ 2 ] SIZE 70, 15
@ 7, 10 GET oUsuario var vector_ini->usuario OF oFld:aDialogs[ 2 ] SIZE 130, 21
@ 7.8, 1 say "Constraseña" of oFld:aDialogs[ 2 ] SIZE 70, 15
@ 9, 10 GET oPass var vector_ini->pass OF oFld:aDialogs[ 2 ] SIZE 130, 21

&& tercera pagina

@ 1, 1 SAY "Inventarios" OF oFld:aDialogs[ 3 ] SIZE 70, 15
@ 1, 10 GET oRuta_Inv var vector_ini->ruta_inv OF oFld:aDialogs[ 3 ] SIZE 130, 21
@ 2.6, 1 SAY "Compras" OF oFld:aDialogs[ 3 ] SIZE 70, 15
@ 3, 10 GET oRuta_com var vector_ini->ruta_com OF oFld:aDialogs[ 3 ] SIZE 130, 21
@ 4.3, 1 SAY "Ventas" OF oFld:aDialogs[ 3 ] SIZE 70, 15
@ 5, 10 GET oRuta_ven var vector_ini->ruta_ven OF oFld:aDialogs[ 3 ] SIZE 130, 21
@ 6, 1 SAY "Consultas" OF oFld:aDialogs[ 3 ] SIZE 70, 15
@ 7, 10 GET oRuta_con var vector_ini->ruta_con OF oFld:aDialogs[ 3 ] SIZE 130, 21

&& cuarta pagina

@ 1, 1 SAY "Dias sin actualizar" OF oFld:aDialogs[ 4 ] SIZE 110, 15
@ 1, 15 GET oDias var vector_ini->dias OF oFld:aDialogs[ 4 ] SIZE 90, 21
@ 3, 1 checkbox oart_nuevo var vector_ini->art_nuevo prompt "Crear Articulo" OF oFld:aDialogs[ 4 ] SIZE 100, 21
@ 5, 1 checkbox omod_pvp var vector_ini->pvp_modif prompt "Modificar PVP" OF oFld:aDialogs[ 4 ] SIZE 100, 21
@ 7, 22 checkbox oexis_local_siempre var vector_ini->El_siempre prompt "Siempre" OF oFld:aDialogs[ 4 ] SIZE 100, 21
IIF (control_existencias_locales=.f.,oexis_local_siempre:hide(),lval:=.t.)
@ 9, 22 checkbox oexis_remot_siempre var vector_ini->er_siempre prompt "Siempre" OF oFld:aDialogs[ 4 ] SIZE 100, 21
IIF (control_existencias_remotas=.f.,oexis_remot_siempre:hide(),lval1:=.t.)

@ 7, 1 checkbox oexis_local var vector_ini->exis_local prompt "Ver Exis. Locales" OF oFld:aDialogs[ 4 ] SIZE 140, 21 on click ( lVal := ! lVal, Iif( lVal, oexis_local_siempre:show(), (oexis_local_siempre:hide(),vector_ini->el_siempre:=.t.)))

@ 9, 1 checkbox oexis_remot var vector_ini->exis_remot prompt "Ver Exis. Remotas" OF oFld:aDialogs[ 4 ] SIZE 140, 21 on click ( lVal1 := ! lVal1, Iif( lVal1, oexis_remot_siempre:show(),(oexis_remot_siempre:hide(),vector_ini->er_siempre:=.t.)))


&& quinta pagina


@ 1, 1 SAY "Inventario" OF oFld:aDialogs[ 5 ] SIZE 70, 15
@ 1, 10 GET omasc_inv var vector_ini->masc_inv OF oFld:aDialogs[ 5 ] SIZE 130, 21
@ 2.6, 1 SAY "Compras" OF oFld:aDialogs[ 5 ] SIZE 70, 15
@ 3, 10 GET omasc_com var vector_ini->masc_com OF oFld:aDialogs[ 5 ] SIZE 130, 21
@ 4.3, 1 SAY "Ventas" OF oFld:aDialogs[ 5 ] SIZE 70, 15
@ 5, 10 GET omasc_ven var vector_ini->masc_ven OF oFld:aDialogs[ 5 ] SIZE 130, 21


&& pagina 6

SELECT definiciones

@ 1, 1 listbox olist fields definiciones->codigo,definiciones->descrip,;
definiciones->abreviatur,definiciones->activado fieldsizes 30,100,37,20 header "Cód","Descripción","Abrev","Sel" OF oFld:aDialogs[ 6 ] size 207,105

olist:nClrPane := { || If( definiciones->activado,RGB(230,184,94) , RGB(255,255,255) ) }
olist:blClicked:={||definiciones->activado:=!definiciones->activado,;

IIF(definiciones>activado==.t.,contador:=contador+1, contador:=contador-1),olist:Refresh(),IIF(contador<=3,,(msginfo('Solo es posible marcar 3 definiciones...','Atención'),definiciones->activado:=!definiciones->activado,contador:=contador-1))}


@ 9, 1 bitmap obmp1 name "titulo_modificar" noborder OF oFld:aDialogs[ 6 ] SIZE 110, 42
@ 9, 17 bitmap obmp2 name "titulo_anadir" noborder of oFld:aDialogs[ 6 ] size 110, 42
@ 11.5, 9 bitmap obmp3 name "titulo_borrar" noborder of oFld:aDialogs[ 6 ] size 110, 42

oBmp2:blClicked := {|| MsgBeep(),nueva_marca(oWnd1) }
oBmp1:blClicked := {|| MsgBeep(),IIF(!BOF(),(nRecno := definiciones->( Recno()),modifica_definicion(olist)),obmp1:hide()) }
oBmp3:blClicked := {|| MsgBeep(),(nRecno := definiciones->( Recno())),IIF(!BOF(),IIF(MsgNoYes('¿Desea borrar de las definiciones el registro marcado?','Atención'),(definiciones->(DBDelete()),olist:REFRESH(),contador:=contador-1),),obmp3:hide()) }


&& septima pagina (cambio de clave)

@ 5, 4 bitmap obmp7 name "cambio_clave" noborder OF oFld:aDialogs[ 7 ] SIZE 180, 42
oBmp7:blClicked := {|| MsgBeep(),IIF(msgNoYes('Atención, ¿desea cambiar la clave asignada al usuario?','Atención'),cambia_clave(usuario,clave),)}

endif

&&color de fondo de la pantalla
oWnd1:setcolor(RGB(1,1,1),RGB(230,184,94))

ACTIVATE WINDOW oWnd1;
on init botones_configuracion(oWnd1,olist) &&al iniciar cargamos la barra de botones
RETURN nil



Se me ha presentado un problema que no se por donde cogerlo. Tengo el codigo anterior que lo que hace es mostrar una serie de pestañas para la configuración de la aplicación. Resulta que cuando entro la primera vez a esta opción todo funciona correctamente, pero si vuelvo a entrar una segunda vez todo me funciona menos la pestaña 6. Me da un error que dice que no encuentra el alias definiciones.De echo en esta pestaña el Select Definiciones lo hace y no da error pero cuando llega al listbox me da el error de 'no se encuentra el alias definiciones'.... Yo creo que el problema puede estar en el browse donde muestro las definiciones que a lo mejor hay que inicializarlo de nuevo, la verdad es que no se que hacer. He probado a destruir el objeto olist, pero nada. Lo curioso es que cuando entro lo primero que hago es cerrar las tablas que tengo abiertas pero tampoco me soluciona el problema..

Si alguien puede aclararme cual es el problema o por lo menos darme alguna pista que me pueda 'iluminar' se lo agradecería....


Saludos..

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

A primera vista, aqui falta esto:

IIF(definiciones->activado==.t., ...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

Prueba a hacer:

SELECT definiciones
MsgInfo( Alias() )

para asegurarte de que el Alias() es correcto
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Antonio, en cuanto a la falta de '-' es un error al copiarlo aqui. He comprobado el alias y es correcto... Pero cuando pincho en la pestaña en cuestion(por segunda vez) me da el error, a la primera no.

El error lo tengo localizado al mostrar _ en el browse... La verdad es que nose porque se da el error. Nose si el browse se queda 'pillado' la primera vez. He probado como decia en el otro post a destruir el objeto pero nada....No se me ocurre nada mas.


Saludos.

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

> Pero cuando pincho en la pestaña en cuestion(por segunda vez) me da el error, a la primera no.

Te refieres a que te mantienes en la misma pantalla, pero cambias de pestaña solamente ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Hola Antonio, me falla cuando hago lo siguiente:

Todo el codigo anterior pertecene a una seccion del programa llamada configuración. El tema es que cuando entro por primera vez a esta seccíón (se muestran todas las pestañas) funciona perfectamente, realizo cualquier cambio (o no) y salgo para meterme en otra sección fuera de la configuración. Hasta aqui todo correcto. Entonces si vuelvo a entrar en esta sección de configuración por segunda vez,cuando llego a la pestaña nº 7 es cuando me da el error. Nose si me he explicado...


Saludos.

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

Entendido, y cual es el error exacto que te aparece ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Antonio, el error que me da es exactamente este:


Alias does not exist
DEFINICIONES
stack calls:
(b)CONFIGURACION(705)
TWBROWSE:DRAWSELECT(0)
(b)TWBROWSE(0)
TWBROWSE:LOSTFOCUS(0)
TWBROWSE:KILLFOCUS(0)
TCONTROL:HANDLEEVENT(0)
TWBROWSE:HANDLEEVENT(0)
_FWPPC(0)
MSGINFO(0)
SHOWERROR(0)
(b)ERRORSYS(0)
(b)CONFIGURACION(705)
TWBROWSE:DRAWSELECT(0)
(b)TWBROWSE(0)
TWBROWSE:GOTFOCUS(0)
TWINDOW:HANDLEEVENT(0)
TCONTROL:HANDLEEVENT(0)
TWBROWSE:HANDLEEVENT(0)
_FWPPC(0)
SETFOCUS(0)
TDIALOG:GOTFOCUS(0)
TWINDOW:HANDLEEVENT(0)
TDIALOG:HANDLEEVENT(0)
_FWPPC(0)
SETFOCUS(0)
TDIALOG:SETFOCUS(0)
TFOLDER:SETOPTION(0)
TFOLDER:NOTIFY(0)
TWINDOW:NOTIFY(0)
TWINDOW:HANDLEEVENT(0)
_FWPPC(0)
DIALOGBOX(0)
TDIALOG:ACTIVATE(0)
MAIN(109)


Saludos

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

En alguna parte de tu código debes estar reusando esa área de trabajo ó cerrándola.

Llama a MsgInfo( Select( "DEFINICIONES" ) ) antes de entrar en esa función y comprueba que te muestre un valor distinto a cero
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Antonio,
he puesto lo que me comentas antes de la función Configuración() y me muestra un cero. He probado a abrir las tablas dentro de la función Configuración() con un Select 1 en vez de Select 0 para cambiar el área de trabajo pero me sigue dando el mismo error. Lo que no entiendo es si al hacer un close databases (como hago al entrar en dicha función) no me debe cerrar TODAS las tablas y áreas de trabajo?.


Saludos.

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

Prueba esto en vez de SELECT 0:

SELECT 1
USE (CURDIR() +"\definiciones.dbf") VIA "DBFCDX" new
...

SELECT 2 // Seleccionas la siguiente
USE (CURDIR() + "\vector_ini.dbf") VIA "DBFCDX" new
...
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Nada Antonio, he cambiado las areas de trabajo y me sigue dando el mismo error. Lo curioso es que si yo le quito el objeto listbox funciona correctamente, por lo que el error está localizado al mostrar _ de la tabla definiciones en dicho listbox... No doy con la solución...


Saludos.

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

SELECT 1
USE (CURDIR() +"\definiciones.dbf") VIA "DBFCDX" new
MsgInfo( Alias() )

antes del browse, tendría que mostrar siempre DEFINICIONES, es así ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Hola Antonio, por fin he dado con el problema!. Miré por todo el código que estaba relacionado con esta función (basándome en lo que me decías de que estaba reutilizando el área de trabajo o directamente me lo estaba cargando) y efectivamente en una parte de una función estaba haciendo un 'use' que no debía hacer. Lo he quitado y todo está correcto.

De nuevo muchas gracias por tu tiempo.

Saludos.

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

bien :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply