exactamente asi lo hago, tengo un modulo de mantenimiento estandar.
si te das cuenta lo capturas para pasarlo al tForm
:lAnadir := ::oDbfCensos:lOnAppend
:ShowModal()
IF :nModalResult == mrOK
tendre que hacerlo asi, ya no me queda de otra, ya me di por vencido.
Saludos.
--
Ramon Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
"José Ramón Castro Polinio" <
jrcpoli@terra.es> escribió en el mensaje news:[email=
4543391a@news.xailer.com...]
4543391a@news.xailer.com...[/email]
> Ramón:
>
> Yo lo hago así y no falla.
>
> CLASS TFormMant FROM TForm
> COMPONENT oDataSet
>
> METHOD AddNew( oFrm )
>
> ENDCLASS
> //----------------------------------
> METHOD AddNew(oFrm) CLASS TFormMant
>
> WITH OBJECT oFrm
> :cText := "Agregar Nuevo"
> ::oDataSet:AddNew()
> :ShowModal()
> if :nModalResult == mrOK
> ::oDataSet:Update()
> ::oDBw:Refresh()
> else
> ::oDataSet:Cancel()
> endif
> :End()
> END WITH
>
> RETURN NIL
>
> //-----------------------------------
> ** Prg sin formulario solo inicializa el DataSet con la base de datos
> ** que quieras utilizar pero hereda del primero fíjate después de FROM
> CLASS TSocios FROM TFormMant
>
> METHOD AddNew( oSender )
>
> ENDCLASS
> //----------------------------------
> METHOD FormInitialize( oSender ) CLASS TSocios
>
> // Inicializa la base de datos a Utilizar
> WITH OBJECT ::oDataSet
> :cName := "Concursa.dbf"
> :lOpen := .T.
> END
>
> RETURN Super:FormInitialize( oSender )
>
> //----------------------------------
> METHOD AddNew( oSender ) CLASS TSocios
> ** Esto llama al formulario de alta pero con los datos del
> ** del formulario del procedimiento AddNew de TFormMant
> Super:AddNew(TFormSociosNew():New( Self ) )
>
> RETURN Nil
>
> Para que se entienda, el Formulario TFormMant es un formulario que no
> tiene nada más que el menú los iconos y el Browse y los procedimientos
> comunes a todos las bases de datos que lo vayan a utilizar, el PRG sin
> formulario es el que tiene las llamadas a los procedimiento del
> principal a través de la sentencia "Super", yo desde el menú principal
> de la aplicación llamo al PRG TSocios pero como este hereda de TFormMant
> me saldrá este, no el TSocios que no es formulario, en TSocios puedo
> definir procedimientos exclusivos de esa clase como por ejemplo los
> Report que declararé en TFormMat con la clausula "Virtual"
>
> Ejemplo: en TFormMant defino
>
> METHOD Delete() VIRTUAL
> METHOD Report() VIRTUAL
>
> En TSocios los declaro de nuevo pero aquí los desarrollo dentro del PRG
>
> METHOD Delete()
> METHOD Report()
>
> METHOD Delete() FROM TSocios
>
> *********
> *********
> RETURN Nil
>
> METHOD Report() FROM TSocios
>
> *****
> *****
> RETURN Nil
>
> Por lo tanto serán exclusivos de él.
>
> Ahora lo que quieres tú.
>
> CLASS TFormCensos FROM TForm
>
> COMPONENT oDbfCensos
>
> METHOD AddNew( oSender )
>
> ENDCLASS
>
> //--------------------------------
> METHOD AddNew( oSender ) CLASS TFormCensos
>
> WITH OBJECT FormCensosNew():New( Self )
> :cText := "Agregar Nuevo"
> ::oDbfCensos:AddNew()
> :lAnadir := ::oDbfCensos:lOnAppend
> :ShowModal()
> IF :nModalResult == mrOK
> *
> ::oDbfCensos:Update()
> ELSE
> ::oDbfCensos:Cancel()
> ENDIF
> :END()
> END
>
> RETURN Nil
>
> //--------------------------------------
> CLASS FormCensosNew FROM TForm
>
> Data lAnadir
>
> METHOD FormShow()
>
> ENDCLASS
>
> //-------------------------------------
> METHOD FormShow( oSender ) FROM FormCensosNew
>
> IF lAnadir // True que es lOnAppend
> ***
> ***
> ***
> ENDIF
>
> o poner
> IF ::oParent:oDbfCensos:lOnAppend
> ENDIF
> o acceder a los campos de la base de datos declarada en el primer
> formulario:
> ::oParent:oDbfCensos:FieldGetByName("ANNO") + " " + ;
> ::oParent:oDbfCensos:FieldGetByName("N_ANILLA")
>
> END
>
> RETURN Nil
>
> Si cometo algún error siempre habrá alguien para sacarme de él.
>
> José Ramón Castro.
> ramonzea escribió:
>> Vaya no se si me explique bien:
>>
>> se supone que al hacer:
>> en TForm2:
>>
>> TForm1():New( Self ):Show() //Self = TForm2
>>
>> y por tanto puedo accesar datos de TForm2 en TForm1 utilizando ::oParent, es
>> asi no?
>>
>> creo que use la palabra erronea.
>>
>> Saludos.
>
--