Creo que la cuestión va a estar en el envío de los parámetros de una función a otra, me explico
Antes de abrir la dbf Avisos, hago una comprobación del nombre del alias para éste usuario.
aAlias:= cargaAlias()
Function CargaAlias
*******************
return { ;
cGetNewAlias( "ARTICULO" ),; // 1
cGetNewAlias( "MUNICI" ) ,; // 2
cGetNewAlias( "PROVIN" ) ,; // 3
cGetNewAlias( "PROPIE" ) ,; // 4
cGetNewAlias( "SEAT1" ) ,; // 5
cGetNewAlias( "RAPPEL" ) ,; // 6
cGetNewAlias( "EQUIPO" ) ,; // 7
cGetNewAlias( "REFEREN" ) ,; // 8
cGetNewAlias( "MATERIAL" ),; // 9
cGetNewAlias( "VEHICULO" ),; // 10
cGetNewAlias( "TIPOS" ) ,; // 11
cGetNewAlias( "CANON" ) ,; // 12
cGetNewAlias( "TEXTOS" ) ,; // 13
cGetNewAlias( "IMAGEN" ) ,; // 14
,; // 15
,; // 16
,; // 17
cGetNewAlias( "PARTE" ) ,; // 18
cGetNewAlias( "FIESTAS" ) ,; // 19
cGetNewAlias( "VACAS" ) ,; // 20
cGetNewAlias( "PROVE" ) ,; // 21
cGetNewAlias( "FACTURA" ) ,; // 22
cGetNewAlias( "ALMACEN" ) ,; // 23
cGetNewAlias( "ALBARAN" ) ,; // 24
cGetNewAlias( "EXTRAS" ) ,; // 25
cGetNewAlias( "CONDUC" ) ,; // 26
cGetNewAlias( "GASTOS" ) ,; // 27
cGetNewAlias( "REEMBOL" ) ,; // 28
cGetNewAlias( "RUTA" ) ,; // 29
cGetNewAlias( "AVISOS" ) ,; // 30
cGetNewAlias( "NALBARAN" ) ; // 31
}
Luego abro la dbf:
dbUseArea(.T.,,Publicas:cUnidad+Publicas:cSubd+"\Avisos",aAlias[30],.T.)
(aAlias[30])->(OrdSetFocus("Fecha1"))
Y luego cuando paso de una funcion a otra que va a utilizar el alias, lo paso por referencia:
DEFINE BUTTON RESOURCE "MUNDO" OF oBar NOBORDER MESSAGE "Visualizar Los Avisos en Internet" ACTION (cTitulo:="Visualización de Avisos en Internet",mirasql(cTitulo,aAlias));
WHEN Publicas:cAccesoC;
TOOLTIP "Visualizar Los Avisos en Internet"
Luego la funcion que recibe esto está así:
static function mirasql(titulo,aAlias)
local oDlg, oLbx,n
USE mi_base VIA "ADORDD" TABLE "recogidas" MYSQL ;
FROM "mi_sitio" USER "usuario" PASSWORD "contraseña" alias "recogidas"
DEFINE DIALOG oDlg FROM 1, 1 TO 25, 79
oDlg:cTitle:=titulo
@ 1, 1 LISTBOX oLbx FIELDS recogidas->fecha, ;
recogidas->compania, ;
recogidas->Nombrer, ;
recogidas->Caller, ;
recogidas->Poblar, ;
recogidas->Comentario ;
HEADERS "Fecha ","Avisado por:","Recoger en:","Domicilio","Poblacion","Observaciones" ;
FIELDSIZES 45,100,100,100,60,100 ;
SIZE 284, 137 OF oDlg
oLbx:nLineStyle := 1
oLbx:nClrBackHead := RGB(248,191,36)
oLbx:bTextColor:= {|nRow,nCol,nStyle| If( nStyle==0 .and. nCol==8,CLR_HRED, ) }
oLbx:nClrPane:={||iIF((oLbx:cAlias)->(OrdKeyNo())%2==0,nRGB(242,247,252),nRGB(226,226,208))}
@154,08 BTNBMP LEFT PROMPT " Agregar" SIZE 50,19 OF oDlg RESOURCE "grabasql" ACTION oDlg:End()
@154,67 BTNBMP LEFT PROMPT " Modificar" SIZE 50,19 OF oDlg RESOURCE "modifisql" ACTION oDlg:End()
@154,125 BTNBMP LEFT PROMPT " Borrar" SIZE 50,19 OF oDlg RESOURCE "borrasql" //ACTION BorraU(oLbx )
@154,184 BTNBMP LEFT PROMPT " Buscar" SIZE 50,19 OF oDlg RESOURCE "buscasql" //ACTION BuscaU(oLbx,3,"Color")
@154,242 BTNBMP LEFT PROMPT " Salir" SIZE 50,19 OF oDlg RESOURCE "salirsql" ACTION (oDlg:End())
ACTIVATE DIALOG oDlg CENTERED
// esto lo he puesto aqui de momento para probar
recogidas->(Dbgotop())
Do while !recogidas->(Eof())
While .not. ((aAlias[30])->(Rlock())); end
(aAlias[30])->( dbappend())
(aAlias[30])->Fecha := recogidas->Fecha
(aAlias[30])->Fecha1 := recogidas->Fecha
(aAlias[30])->Pro := recogidas->compania
(aAlias[30])->Pro1 := recogidas->nombrer
(aAlias[30])->domi := recogidas->calle
(aAlias[30])->domi1 := recogidas->caller
(aAlias[30])->tel := ""
(aAlias[30])->tel1 := ""
(aAlias[30])->pobla := recogidas->Pobla
(aAlias[30])->pobla1 := recogidas->Poblar
(aAlias[30])->conductor:= "00006"
(aAlias[30])->nconductor:=" "
(aAlias[30])->hora := recogidas->hora
(aAlias[30])->notas := recogidas->comentario
(aAlias[30])->codpobla := " "
(aAlias[30])->rutar := "60"
(aAlias[30])->turno := "T"
(aAlias[30])->operador := "INTERNET"
(aAlias[30])->( dbUnlock() )
recogidas->(Dbskip())
enddo
// Recogidas->(Dbzap())
recogidas->(Dbclosearea())
RETURN NIL
Lo que he observado es que con ésta estructura, que funciona perfectamente sólo con dbf, cuando meto por medio el tema de adordd, me da error en la dbf.
Saludos
Jose Luis