In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Como saber el nombre de un Objeto
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Como saber el nombre de un Objeto
Parece obvio, el que le he dado no?
Pero si quiero recorrer los aComponent de un Form y tomar los nombres de
los que sean de un tipo
FOR nDB := 1 TO Len( oForm:aComponents )
IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
AADD(aDataBases,oForm:aComponents[nDB]:cName)
ENDIF
NEXT
cName me devuelve el nombre del DBF abierto
ClassName me devuelve TDBFDataSet
Pero quiero saber el nombre del componente que yo le he dado al objeto
TDBFDataSet ¿ se puede ?
Salu2.
Pero si quiero recorrer los aComponent de un Form y tomar los nombres de
los que sean de un tipo
FOR nDB := 1 TO Len( oForm:aComponents )
IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
AADD(aDataBases,oForm:aComponents[nDB]:cName)
ENDIF
NEXT
cName me devuelve el nombre del DBF abierto
ClassName me devuelve TDBFDataSet
Pero quiero saber el nombre del componente que yo le he dado al objeto
TDBFDataSet ¿ se puede ?
Salu2.
Como saber el nombre de un Objeto
Bingen,
> Pero quiero saber el nombre del componente que yo le he dado al objeto
> TDBFDataSet ¿ se puede ?
Nope. Si te refieres al contenido de cVarName, sólo existe en tiempo de
diseño en el IDE.
Saludos,
José Lalín
> Pero quiero saber el nombre del componente que yo le he dado al objeto
> TDBFDataSet ¿ se puede ?
Nope. Si te refieres al contenido de cVarName, sólo existe en tiempo de
diseño en el IDE.
Saludos,
José Lalín
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Como saber el nombre de un Objeto
Lo siento cVarName no es accesible voy a ver si me explico mejor para
que puedas ayudarme.
En un Form en el que tengo mas de 20 tDBFDataset quiero recoger todos
estos para hacer un proceso común a todos ellos y necesito saber el
nombre de los componentes no el de los archivos DBF.
Para ello hago
FOR nDB := 1 TO Len( oForm:aComponents )
IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
AADD(aDataBases,oForm:aComponents[nDB]:cName)
ENDIF
NEXT
Pero cName me devuelve el nombre de los archivos DBF y cVarName nada de
nada, simplemente peta como error y necesito saber el nombre de los
componentes no se si esto será posible pero...
Salu2 y gracias.
José Lalín escribió:
>
> Bingen,
>
>> Pero quiero saber el nombre del componente que yo le he dado al objeto
>> TDBFDataSet ¿ se puede ?
>
> Nope. Si te refieres al contenido de cVarName, sólo existe en tiempo de
> diseño en el IDE.
>
> Saludos,
> José Lalín
que puedas ayudarme.
En un Form en el que tengo mas de 20 tDBFDataset quiero recoger todos
estos para hacer un proceso común a todos ellos y necesito saber el
nombre de los componentes no el de los archivos DBF.
Para ello hago
FOR nDB := 1 TO Len( oForm:aComponents )
IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
AADD(aDataBases,oForm:aComponents[nDB]:cName)
ENDIF
NEXT
Pero cName me devuelve el nombre de los archivos DBF y cVarName nada de
nada, simplemente peta como error y necesito saber el nombre de los
componentes no se si esto será posible pero...
Salu2 y gracias.
José Lalín escribió:
>
> Bingen,
>
>> Pero quiero saber el nombre del componente que yo le he dado al objeto
>> TDBFDataSet ¿ se puede ?
>
> Nope. Si te refieres al contenido de cVarName, sólo existe en tiempo de
> diseño en el IDE.
>
> Saludos,
> José Lalín
-
- Mensajes: 157
- Registrado: Jue May 18, 2006 5:10 pm
Como saber el nombre de un Objeto
Igual me meto en donde no me llaman, pero no me puedo resistir.
> Lo siento cVarName no es accesible voy a ver si me explico mejor para que
> puedas ayudarme.
Se me ocurren dos soluciones, la primera y mas chorra es usar la propiedad
Cargo y poner en ella el combre del componentes.
La otra posibilidad que se me ocurre depende de si he entendido bien para lo
que lo necesitas.
> En un Form en el que tengo mas de 20 tDBFDataset quiero recoger todos
> estos para hacer un proceso común a todos ellos y necesito saber el nombre
> de los componentes no el de los archivos DBF.
Si creamos un array con referencias a los componentes podemos luego acceder
a ellos sin tener que saber el nombre de cada uno.
Local oCompo, aMatriz[30], nI
nI := 0
FOR EACH oCompo IN ::aComponents
if oCompo:isKindOf("TDBFDataSet")
nI += 1
aMatriz[nI] := oCompo
endif
NEXT
Supongo que se puede mejorar, ya que no he conseguido hacer el array
dinamico como lo tenias tu con AADD.
Luego puedes acceder directamente a las propiedades de cada Componente
For nI := 1 to len(aMatriz)
if aMatriz[nI] != Nil
msginfo( aMatriz[nI]:Cargo )
end if
next
Un saludo
Pedro Amaro
> Lo siento cVarName no es accesible voy a ver si me explico mejor para que
> puedas ayudarme.
Se me ocurren dos soluciones, la primera y mas chorra es usar la propiedad
Cargo y poner en ella el combre del componentes.
La otra posibilidad que se me ocurre depende de si he entendido bien para lo
que lo necesitas.
> En un Form en el que tengo mas de 20 tDBFDataset quiero recoger todos
> estos para hacer un proceso común a todos ellos y necesito saber el nombre
> de los componentes no el de los archivos DBF.
Si creamos un array con referencias a los componentes podemos luego acceder
a ellos sin tener que saber el nombre de cada uno.
Local oCompo, aMatriz[30], nI
nI := 0
FOR EACH oCompo IN ::aComponents
if oCompo:isKindOf("TDBFDataSet")
nI += 1
aMatriz[nI] := oCompo
endif
NEXT
Supongo que se puede mejorar, ya que no he conseguido hacer el array
dinamico como lo tenias tu con AADD.
Luego puedes acceder directamente a las propiedades de cada Componente
For nI := 1 to len(aMatriz)
if aMatriz[nI] != Nil
msginfo( aMatriz[nI]:Cargo )
end if
next
Un saludo
Pedro Amaro
-
- Mensajes: 133
- Registrado: Lun May 22, 2006 10:26 am
Como saber el nombre de un Objeto
> FOR nDB := 1 TO Len( oForm:aComponents )
> IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
> AADD(aDataBases,oForm:aComponents[nDB]:cName)
> ENDIF
> NEXT
En todo caso segun tu explicacion, no necesitarias el nombre del
componente, simplemente corre tu proceso sobre aDataBases[x], el cual en
tu ciclo ya fue cargado con el objeto del que ya tuviste certeza que
fuera un TDBFDataSet, esto partiendo de que el contenido de aComponents
de un TForm esta lleno de OBJETOS no visuales.
Ahora bien si el proceso que deseas correr es selectivo, es decir solo
aplica para "ciertos" DataSets, entonces crea una clase TMyDBFDataSet
que herede de TDBFDataSet y cambia tu verificacion a
IsKindOf("TMyDBFDataSet")
Saludos
> IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
> AADD(aDataBases,oForm:aComponents[nDB]:cName)
> ENDIF
> NEXT
En todo caso segun tu explicacion, no necesitarias el nombre del
componente, simplemente corre tu proceso sobre aDataBases[x], el cual en
tu ciclo ya fue cargado con el objeto del que ya tuviste certeza que
fuera un TDBFDataSet, esto partiendo de que el contenido de aComponents
de un TForm esta lleno de OBJETOS no visuales.
Ahora bien si el proceso que deseas correr es selectivo, es decir solo
aplica para "ciertos" DataSets, entonces crea una clase TMyDBFDataSet
que herede de TDBFDataSet y cambia tu verificacion a
IsKindOf("TMyDBFDataSet")
Saludos
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Como saber el nombre de un Objeto
Gracias amigos soluciones como esas ya me las había planteado pero no
quería tomar ese camino y me explico.
He hecho una clase tWord para hacer casi cualquier cosa con documentos
Word desde Xailer y estaba ultimándola con un método que llamando a una
plantilla o documento de Word (previamente hecho) desde un Form con
datos (de un cliente por ejemplo) automáticamente busque los campos
insertos en el DOC y los sustituya por los del registro/s del DBF/DBFs
en ámbito en el formulario para no tener que ir sustituyéndolos uno a
uno como tengo ahora.
Si opto por alguna de estas soluciones la clase no serviría para
cualquiera que quisiera usarla sin tener que explicarle lo que tendría
que hacer.
Muchas gracias de todas maneras.
quería tomar ese camino y me explico.
He hecho una clase tWord para hacer casi cualquier cosa con documentos
Word desde Xailer y estaba ultimándola con un método que llamando a una
plantilla o documento de Word (previamente hecho) desde un Form con
datos (de un cliente por ejemplo) automáticamente busque los campos
insertos en el DOC y los sustituya por los del registro/s del DBF/DBFs
en ámbito en el formulario para no tener que ir sustituyéndolos uno a
uno como tengo ahora.
Si opto por alguna de estas soluciones la clase no serviría para
cualquiera que quisiera usarla sin tener que explicarle lo que tendría
que hacer.
Muchas gracias de todas maneras.
-
- Mensajes: 133
- Registrado: Lun May 22, 2006 10:26 am
Como saber el nombre de un Objeto
> FOR nDB := 1 TO Len( oForm:aComponents )
> IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
> AADD(aDataBases,oForm:aComponents[nDB]:cName)
> ENDIF
> NEXT
Prueba con AADD(aDataBases,oForm:aComponents[nDB]:ClassName())
> IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
> AADD(aDataBases,oForm:aComponents[nDB]:cName)
> ENDIF
> NEXT
Prueba con AADD(aDataBases,oForm:aComponents[nDB]:ClassName())
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Como saber el nombre de un Objeto
Despues de leer dos veces me intereso tu tema, pero, para que requieres en
si el nombre del componente que le ponemos en tiempo de diseño¿
Si lo que nececitas es referenciar el nombre del componente y sustituirlo en
tu hoja de Word, por que no hacer una tabla de {"Nombre Componente", "DBF" }
Si explicaras un poco mas creo poder aportarte algunas ideas.
Saludos.
--
Ramón Zea
01.993.194.14.27
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d3e24a@ozsrv2.ozlan.local...]46d3e24a@ozsrv2.ozlan.local...[/email]
> Gracias amigos soluciones como esas ya me las había planteado pero no
> quería tomar ese camino y me explico.
>
> He hecho una clase tWord para hacer casi cualquier cosa con documentos
> Word desde Xailer y estaba ultimándola con un método que llamando a una
> plantilla o documento de Word (previamente hecho) desde un Form con datos
> (de un cliente por ejemplo) automáticamente busque los campos insertos en
> el DOC y los sustituya por los del registro/s del DBF/DBFs en ámbito en el
> formulario para no tener que ir sustituyéndolos uno a uno como tengo
> ahora.
>
> Si opto por alguna de estas soluciones la clase no serviría para
> cualquiera que quisiera usarla sin tener que explicarle lo que tendría que
> hacer.
>
> Muchas gracias de todas maneras.
si el nombre del componente que le ponemos en tiempo de diseño¿
Si lo que nececitas es referenciar el nombre del componente y sustituirlo en
tu hoja de Word, por que no hacer una tabla de {"Nombre Componente", "DBF" }
Si explicaras un poco mas creo poder aportarte algunas ideas.
Saludos.
--
Ramón Zea
01.993.194.14.27
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d3e24a@ozsrv2.ozlan.local...]46d3e24a@ozsrv2.ozlan.local...[/email]
> Gracias amigos soluciones como esas ya me las había planteado pero no
> quería tomar ese camino y me explico.
>
> He hecho una clase tWord para hacer casi cualquier cosa con documentos
> Word desde Xailer y estaba ultimándola con un método que llamando a una
> plantilla o documento de Word (previamente hecho) desde un Form con datos
> (de un cliente por ejemplo) automáticamente busque los campos insertos en
> el DOC y los sustituya por los del registro/s del DBF/DBFs en ámbito en el
> formulario para no tener que ir sustituyéndolos uno a uno como tengo
> ahora.
>
> Si opto por alguna de estas soluciones la clase no serviría para
> cualquiera que quisiera usarla sin tener que explicarle lo que tendría que
> hacer.
>
> Muchas gracias de todas maneras.
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Como saber el nombre de un Objeto
> Prueba con AADD(aDataBases,oForm:aComponents[nDB]:ClassName())
ClassName() devuelve el tipo de clase a la que pertenece el objeto
tDbfDataSet no el nombre del objeto.
Gracias de todos modos.
ClassName() devuelve el tipo de clase a la que pertenece el objeto
tDbfDataSet no el nombre del objeto.
Gracias de todos modos.
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Como saber el nombre de un Objeto
> Despues de leer dos veces me intereso tu tema, pero, para que requieres en
> si el nombre del componente que le ponemos en tiempo de diseño¿
Por que la idea es hacer un método en la clase tWord llamado
ReplaceFields(oForm) y ya que oForm contiene en si mismo todos los
objetos tDbfDataSet tome el documento word y busque todos los campos
insertados como {oUsuarios.Nombre} y los sustituya por su valor del
registro en uso en el oForm.
> Si lo que nececitas es referenciar el nombre del componente y sustituirlo en
> tu hoja de Word, por que no hacer una tabla de {"Nombre Componente", "DBF" }
Es lo que quiero hacer pero automáticamente por eso necesito el nombre
del componente.
Gracias y salu2.
> si el nombre del componente que le ponemos en tiempo de diseño¿
Por que la idea es hacer un método en la clase tWord llamado
ReplaceFields(oForm) y ya que oForm contiene en si mismo todos los
objetos tDbfDataSet tome el documento word y busque todos los campos
insertados como {oUsuarios.Nombre} y los sustituya por su valor del
registro en uso en el oForm.
> Si lo que nececitas es referenciar el nombre del componente y sustituirlo en
> tu hoja de Word, por que no hacer una tabla de {"Nombre Componente", "DBF" }
Es lo que quiero hacer pero automáticamente por eso necesito el nombre
del componente.
Gracias y salu2.
- ignacio
- Site Admin
- Mensajes: 9440
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Como saber el nombre de un Objeto
Bingen,
Podrías recorrerte la matriz aComponents del formulario, comprobar si algún
componente es del tipo TDataset y además está abierto, en cuyo caso sería un
dataset susceptible de usarse.
Un saludo,
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d51253@ozsrv2.ozlan.local...]46d51253@ozsrv2.ozlan.local...[/email]
>
>> Despues de leer dos veces me intereso tu tema, pero, para que requieres
>> en si el nombre del componente que le ponemos en tiempo de diseño¿
>
> Por que la idea es hacer un método en la clase tWord llamado
> ReplaceFields(oForm) y ya que oForm contiene en si mismo todos los objetos
> tDbfDataSet tome el documento word y busque todos los campos insertados
> como {oUsuarios.Nombre} y los sustituya por su valor del registro en uso
> en el oForm.
>
>> Si lo que nececitas es referenciar el nombre del componente y sustituirlo
>> en tu hoja de Word, por que no hacer una tabla de {"Nombre Componente",
>> "DBF" }
>
> Es lo que quiero hacer pero automáticamente por eso necesito el nombre del
> componente.
>
> Gracias y salu2.
Podrías recorrerte la matriz aComponents del formulario, comprobar si algún
componente es del tipo TDataset y además está abierto, en cuyo caso sería un
dataset susceptible de usarse.
Un saludo,
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d51253@ozsrv2.ozlan.local...]46d51253@ozsrv2.ozlan.local...[/email]
>
>> Despues de leer dos veces me intereso tu tema, pero, para que requieres
>> en si el nombre del componente que le ponemos en tiempo de diseño¿
>
> Por que la idea es hacer un método en la clase tWord llamado
> ReplaceFields(oForm) y ya que oForm contiene en si mismo todos los objetos
> tDbfDataSet tome el documento word y busque todos los campos insertados
> como {oUsuarios.Nombre} y los sustituya por su valor del registro en uso
> en el oForm.
>
>> Si lo que nececitas es referenciar el nombre del componente y sustituirlo
>> en tu hoja de Word, por que no hacer una tabla de {"Nombre Componente",
>> "DBF" }
>
> Es lo que quiero hacer pero automáticamente por eso necesito el nombre del
> componente.
>
> Gracias y salu2.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Como saber el nombre de un Objeto
> Podrías recorrerte la matriz aComponents del formulario, comprobar si algún
> componente es del tipo TDataset y además está abierto, en cuyo caso sería un
> dataset susceptible de usarse.
Efectivamente eso hago
FOR nDB := 1 TO Len( oForm:aComponents )
IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
AADD(aDataBases,oForm:aComponents[nDB]:cName)
ENDIF
NEXT
Pero luego cuando quiero hacer los replaces de los campos por su valor
lo que hago es buscar todos los campos que he escrito en el documento
word asi: <oClientes.Nombre>
Funciona correctamente si hago los replaces uno a uno por el campo
correspondiente pero mi intención era automatizarlo completamente ya que
en el programa que hago el cliente va a hacer docenas de escritos Word
con cientos de campos diferentes de 23 tDbfDatasets.
¿Es tan difícil obtener el nombre del objeto tDBFDataset recorriendo
aComponents? con esto lo tendría solucionado.
Muchas gracias y saludos.
> componente es del tipo TDataset y además está abierto, en cuyo caso sería un
> dataset susceptible de usarse.
Efectivamente eso hago
FOR nDB := 1 TO Len( oForm:aComponents )
IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
AADD(aDataBases,oForm:aComponents[nDB]:cName)
ENDIF
NEXT
Pero luego cuando quiero hacer los replaces de los campos por su valor
lo que hago es buscar todos los campos que he escrito en el documento
word asi: <oClientes.Nombre>
Funciona correctamente si hago los replaces uno a uno por el campo
correspondiente pero mi intención era automatizarlo completamente ya que
en el programa que hago el cliente va a hacer docenas de escritos Word
con cientos de campos diferentes de 23 tDbfDatasets.
¿Es tan difícil obtener el nombre del objeto tDBFDataset recorriendo
aComponents? con esto lo tendría solucionado.
Muchas gracias y saludos.
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Como saber el nombre de un Objeto
Yo hago algo similar pero con Excel,. pero lo que hago es darle al usuario campos o "variables", encerradas entre llaves, los llamos variables pre-definidfas, ejemplo:
{Cliente.Nombre}
{Cliente.Direccion}
{Vendedor.Nombre}
Asi recorro la hoja y genero una nueva, sustituyendo usando la clase TExpParser de Xailer, con algunas modificaciones ya que le haye algunos detallitos.
ASi en el programa agrego las "variables" que el usuario puede usar
:AddField( "Articulo.Ubicacion", {|| Articulo->Ubicacion })
:AddField( "Cliente.Clave", {|| Clientes->Cve_Client })
Espero te de una idaea o le sigo anotando.
Saludos.
--
Ramón Zea
01.993.194.14.27
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje news:[email=46d51253@ozsrv2.ozlan.local...]46d51253@ozsrv2.ozlan.local...[/email]
>
>> Despues de leer dos veces me intereso tu tema, pero, para que requieres en
>> si el nombre del componente que le ponemos en tiempo de diseño¿
>
> Por que la idea es hacer un método en la clase tWord llamado
> ReplaceFields(oForm) y ya que oForm contiene en si mismo todos los
> objetos tDbfDataSet tome el documento word y busque todos los campos
> insertados como {oUsuarios.Nombre} y los sustituya por su valor del
> registro en uso en el oForm.
>
>> Si lo que nececitas es referenciar el nombre del componente y sustituirlo en
>> tu hoja de Word, por que no hacer una tabla de {"Nombre Componente", "DBF" }
>
> Es lo que quiero hacer pero automáticamente por eso necesito el nombre
> del componente.
>
> Gracias y salu2.
--
{Cliente.Nombre}
{Cliente.Direccion}
{Vendedor.Nombre}
Asi recorro la hoja y genero una nueva, sustituyendo usando la clase TExpParser de Xailer, con algunas modificaciones ya que le haye algunos detallitos.
ASi en el programa agrego las "variables" que el usuario puede usar
:AddField( "Articulo.Ubicacion", {|| Articulo->Ubicacion })
:AddField( "Cliente.Clave", {|| Clientes->Cve_Client })
Espero te de una idaea o le sigo anotando.
Saludos.
--
Ramón Zea
01.993.194.14.27
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje news:[email=46d51253@ozsrv2.ozlan.local...]46d51253@ozsrv2.ozlan.local...[/email]
>
>> Despues de leer dos veces me intereso tu tema, pero, para que requieres en
>> si el nombre del componente que le ponemos en tiempo de diseño¿
>
> Por que la idea es hacer un método en la clase tWord llamado
> ReplaceFields(oForm) y ya que oForm contiene en si mismo todos los
> objetos tDbfDataSet tome el documento word y busque todos los campos
> insertados como {oUsuarios.Nombre} y los sustituya por su valor del
> registro en uso en el oForm.
>
>> Si lo que nececitas es referenciar el nombre del componente y sustituirlo en
>> tu hoja de Word, por que no hacer una tabla de {"Nombre Componente", "DBF" }
>
> Es lo que quiero hacer pero automáticamente por eso necesito el nombre
> del componente.
>
> Gracias y salu2.
--
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Como saber el nombre de un Objeto
Si esa es la idea y haciéndolo así si que me funciona, pero como tengo
mas de 300 posibles campos en el conjunto de 23 tablas y habrá mas
todavía, lo que me interesaría es poder hacerlo la lista de sustitución
como tu propones automáticamente, cargarla a un array y luego sustituir
todos los que encuentre en el documento Word.
Ramón Zea escribió:
> Asi recorro la hoja y genero una nueva, sustituyendo usando la clase
> TExpParser de Xailer, con algunas modificaciones ya que le haye algunos
> detallitos.
tExpParser que clase es esta que no sale en la ayuda de Xailer ??
Gracias
mas de 300 posibles campos en el conjunto de 23 tablas y habrá mas
todavía, lo que me interesaría es poder hacerlo la lista de sustitución
como tu propones automáticamente, cargarla a un array y luego sustituir
todos los que encuentre en el documento Word.
Ramón Zea escribió:
> Asi recorro la hoja y genero una nueva, sustituyendo usando la clase
> TExpParser de Xailer, con algunas modificaciones ya que le haye algunos
> detallitos.
tExpParser que clase es esta que no sale en la ayuda de Xailer ??
Gracias
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Como saber el nombre de un Objeto
> Se me ocurren dos soluciones, la primera y mas chorra es usar la propiedad
> Cargo y poner en ella el nombre del componente.
Con esta solución me funciona, pero me parece increible no poder saber
el nombre del componente desde la lista de aComponents de un Form.
Gracias y salu2.
> Cargo y poner en ella el nombre del componente.
Con esta solución me funciona, pero me parece increible no poder saber
el nombre del componente desde la lista de aComponents de un Form.
Gracias y salu2.
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Como saber el nombre de un Objeto
En mi version de mi sistema de DOS, las variables para usarlas en mis
reportes externos, lo cargaba de un archivo de texto plano, separado por un
identificador.
El primero era el campo que el usuario podia usar y podrias presentarlo en
una ayuda al usuario para que lo pueda insertar, y el segundo lo convertia
en un bloque de codigo.
#Cliente.Nombre-oClientes:Nombre
Asi si aumentas el numero de tus posibles "variables" solo los anexas en la
lista del archivo plano.
La Clase TExpParser viene con los fuentes de Xailer y no viene documentado.
Saludos.
--
Ramón Zea
01.993.194.14.27
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d55a44@ozsrv2.ozlan.local...]46d55a44@ozsrv2.ozlan.local...[/email]
> Si esa es la idea y haciéndolo así si que me funciona, pero como tengo mas
> de 300 posibles campos en el conjunto de 23 tablas y habrá mas todavía, lo
> que me interesaría es poder hacerlo la lista de sustitución como tu
> propones automáticamente, cargarla a un array y luego sustituir todos los
> que encuentre en el documento Word.
>
> Ramón Zea escribió:
>> Asi recorro la hoja y genero una nueva, sustituyendo usando la clase
>> TExpParser de Xailer, con algunas modificaciones ya que le haye algunos
>> detallitos.
>
> tExpParser que clase es esta que no sale en la ayuda de Xailer ??
>
> Gracias
reportes externos, lo cargaba de un archivo de texto plano, separado por un
identificador.
El primero era el campo que el usuario podia usar y podrias presentarlo en
una ayuda al usuario para que lo pueda insertar, y el segundo lo convertia
en un bloque de codigo.
#Cliente.Nombre-oClientes:Nombre
Asi si aumentas el numero de tus posibles "variables" solo los anexas en la
lista del archivo plano.
La Clase TExpParser viene con los fuentes de Xailer y no viene documentado.
Saludos.
--
Ramón Zea
01.993.194.14.27
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d55a44@ozsrv2.ozlan.local...]46d55a44@ozsrv2.ozlan.local...[/email]
> Si esa es la idea y haciéndolo así si que me funciona, pero como tengo mas
> de 300 posibles campos en el conjunto de 23 tablas y habrá mas todavía, lo
> que me interesaría es poder hacerlo la lista de sustitución como tu
> propones automáticamente, cargarla a un array y luego sustituir todos los
> que encuentre en el documento Word.
>
> Ramón Zea escribió:
>> Asi recorro la hoja y genero una nueva, sustituyendo usando la clase
>> TExpParser de Xailer, con algunas modificaciones ya que le haye algunos
>> detallitos.
>
> tExpParser que clase es esta que no sale en la ayuda de Xailer ??
>
> Gracias
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
- ignacio
- Site Admin
- Mensajes: 9440
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Como saber el nombre de un Objeto
Bingen,
El nombre del objeto es imposible de saber, porque realmente no existe
ningún nombre del objeto. Su clase contenedora tiene un miembro que apunta a
dicho objeto, pero eso no quiere decir que el objeto tenga un nombre. Me
temo que así no funciona. Lo siento.
Sigo sin entender para que necesitas saber el nombre del objeto.
Pero
siempre puedes utilizar su propiedad Cargo para guardarlo.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d539fe@ozsrv2.ozlan.local...]46d539fe@ozsrv2.ozlan.local...[/email]
>> Podrías recorrerte la matriz aComponents del formulario, comprobar si
>> algún componente es del tipo TDataset y además está abierto, en cuyo caso
>> sería un dataset susceptible de usarse.
>
> Efectivamente eso hago
>
> FOR nDB := 1 TO Len( oForm:aComponents )
> IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
> AADD(aDataBases,oForm:aComponents[nDB]:cName)
> ENDIF
> NEXT
>
> Pero luego cuando quiero hacer los replaces de los campos por su valor lo
> que hago es buscar todos los campos que he escrito en el documento word
> asi: <oClientes.Nombre>
>
> Funciona correctamente si hago los replaces uno a uno por el campo
> correspondiente pero mi intención era automatizarlo completamente ya que
> en el programa que hago el cliente va a hacer docenas de escritos Word con
> cientos de campos diferentes de 23 tDbfDatasets.
>
> ¿Es tan difícil obtener el nombre del objeto tDBFDataset recorriendo
> aComponents? con esto lo tendría solucionado.
>
> Muchas gracias y saludos.
El nombre del objeto es imposible de saber, porque realmente no existe
ningún nombre del objeto. Su clase contenedora tiene un miembro que apunta a
dicho objeto, pero eso no quiere decir que el objeto tenga un nombre. Me
temo que así no funciona. Lo siento.
Sigo sin entender para que necesitas saber el nombre del objeto.

siempre puedes utilizar su propiedad Cargo para guardarlo.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d539fe@ozsrv2.ozlan.local...]46d539fe@ozsrv2.ozlan.local...[/email]
>> Podrías recorrerte la matriz aComponents del formulario, comprobar si
>> algún componente es del tipo TDataset y además está abierto, en cuyo caso
>> sería un dataset susceptible de usarse.
>
> Efectivamente eso hago
>
> FOR nDB := 1 TO Len( oForm:aComponents )
> IF oForm:aComponents[nDB]:IsKindOf( "TDBFDataSet" )
> AADD(aDataBases,oForm:aComponents[nDB]:cName)
> ENDIF
> NEXT
>
> Pero luego cuando quiero hacer los replaces de los campos por su valor lo
> que hago es buscar todos los campos que he escrito en el documento word
> asi: <oClientes.Nombre>
>
> Funciona correctamente si hago los replaces uno a uno por el campo
> correspondiente pero mi intención era automatizarlo completamente ya que
> en el programa que hago el cliente va a hacer docenas de escritos Word con
> cientos de campos diferentes de 23 tDbfDatasets.
>
> ¿Es tan difícil obtener el nombre del objeto tDBFDataset recorriendo
> aComponents? con esto lo tendría solucionado.
>
> Muchas gracias y saludos.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9440
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Como saber el nombre de un Objeto
Bingen,
No todo lo que está en el directorio source está documentado. Dicha clase es
parte de ello. Lo siento.
Un saludo,
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d55a44@ozsrv2.ozlan.local...]46d55a44@ozsrv2.ozlan.local...[/email]
> Si esa es la idea y haciéndolo así si que me funciona, pero como tengo mas
> de 300 posibles campos en el conjunto de 23 tablas y habrá mas todavía, lo
> que me interesaría es poder hacerlo la lista de sustitución como tu
> propones automáticamente, cargarla a un array y luego sustituir todos los
> que encuentre en el documento Word.
>
> Ramón Zea escribió:
>> Asi recorro la hoja y genero una nueva, sustituyendo usando la clase
>> TExpParser de Xailer, con algunas modificaciones ya que le haye algunos
>> detallitos.
>
> tExpParser que clase es esta que no sale en la ayuda de Xailer ??
>
> Gracias
No todo lo que está en el directorio source está documentado. Dicha clase es
parte de ello. Lo siento.
Un saludo,
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46d55a44@ozsrv2.ozlan.local...]46d55a44@ozsrv2.ozlan.local...[/email]
> Si esa es la idea y haciéndolo así si que me funciona, pero como tengo mas
> de 300 posibles campos en el conjunto de 23 tablas y habrá mas todavía, lo
> que me interesaría es poder hacerlo la lista de sustitución como tu
> propones automáticamente, cargarla a un array y luego sustituir todos los
> que encuentre en el documento Word.
>
> Ramón Zea escribió:
>> Asi recorro la hoja y genero una nueva, sustituyendo usando la clase
>> TExpParser de Xailer, con algunas modificaciones ya que le haye algunos
>> detallitos.
>
> tExpParser que clase es esta que no sale en la ayuda de Xailer ??
>
> Gracias
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Como saber el nombre de un Objeto
Podrias usar tDbfDataSet:cAlias para identificarlo.
Saludos
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:46d5114d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
>> Prueba con AADD(aDataBases,oForm:aComponents[nDB]:ClassName())
>
> ClassName() devuelve el tipo de clase a la que pertenece el objeto
> tDbfDataSet no el nombre del objeto.
>
> Gracias de todos modos.
Saludos
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:46d5114d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
>> Prueba con AADD(aDataBases,oForm:aComponents[nDB]:ClassName())
>
> ClassName() devuelve el tipo de clase a la que pertenece el objeto
> tDbfDataSet no el nombre del objeto.
>
> Gracias de todos modos.