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.

Macro en nombre de registro

Foro público de Xailer en español
Responder
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Macro en nombre de registro

Mensaje por Paco V »

Se puede utilizar & en la siguiente funcion para introducir 11 en NomCamP1,
12 en NomCamp2, ...., 15 en NomCamp5?
for n := 1 to 5
campo := "NomCamp"+str(n,1)
::oDbfDataSet1:&campo := n+10
next n
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Macro en nombre de registro

Mensaje por Xevi »

Paco,
no lo he probado... a ver si te sirve!!!
For n := 1 To 5
__ObjSendMsg( Self, "oDbfDataSet1:NomCamp" + AllTrim(Str(n)) ) :=
n+10
Next
Un Saludo,
Xevi.
"Paco V" <ssi@ono.com> escribió en el mensaje
news:43c4f9a1$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>
> Se puede utilizar & en la siguiente funcion para introducir 11 en
> NomCamP1,
> 12 en NomCamp2, ...., 15 en NomCamp5?
>
>
> for n := 1 to 5
> campo := "NomCamp"+str(n,1)
> ::oDbfDataSet1:&campo := n+10
> next n
>
>
>
>
CapelSoft
Mensajes: 137
Registrado: Vie Jul 29, 2005 8:49 am
Ubicación: Valencia - España
Contactar:

Macro en nombre de registro

Mensaje por CapelSoft »

Xevi y Paco,
Probad así­ (no lo he probado):
cMacro := "Self:odbfdataset1:"+campo
&cMacro := loquesea...
Esto creo que deberí­a de funcionar. Si no ando equivocado, los dataxxx
no crean datas reales, si no que utiliza el sistema de captura de errores.
Saludos,
José Luis Capel
::oDbfDataSet1:&campo
Xevi escribió:
>
> Paco,
>
> no lo he probado... a ver si te sirve!!!
>
> For n := 1 To 5
> __ObjSendMsg( Self, "oDbfDataSet1:NomCamp" + AllTrim(Str(n)) ) :=
> n+10
> Next
>
>
>
> Un Saludo,
> Xevi.
>
>
> "Paco V" <ssi@ono.com> escribió en el mensaje
> news:43c4f9a1$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>>
>>Se puede utilizar & en la siguiente funcion para introducir 11 en
>>NomCamP1,
>>12 en NomCamp2, ...., 15 en NomCamp5?
>>
>>
>>for n := 1 to 5
>>campo := "NomCamp"+str(n,1)
>>::oDbfDataSet1:&campo := n+10
>>next n
>>
>>
>>
>>
>
>
>
>
--
José Luis Capel
http://www.CapelBlog.es
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Macro en nombre de registro

Mensaje por Paco V »

Jose Luis no va. A lo mejor no se puede, pero seria muy interesante.
Paco V
=?ISO-8859-1?Q?Jos=E9_Luis_Capel?= <capelsoft@terra.es> wrote:
>Xevi y Paco,
>
>Probad así (no lo he probado):
>
>cMacro := "Self:odbfdataset1:"+campo
>
>&cMacro := loquesea...
>
>Esto creo que debería de funcionar. Si no ando equivocado, los dataxxx
>no crean datas reales, si no que utiliza el sistema de captura de errores.
>
>Saludos,
>José Luis Capel
>
>
>::oDbfDataSet1:&campo
>
>Xevi escribió:
>>
>> Paco,
>>
>> no lo he probado... a ver si te sirve!!!
>>
>> For n := 1 To 5
>> __ObjSendMsg( Self, "oDbfDataSet1:NomCamp" + AllTrim(Str(n))
) :=
>> n+10
>> Next
>>
>>
>>
>> Un Saludo,
>> Xevi.
>>
>>
>> "Paco V" <ssi@ono.com> escribió en el mensaje
>> news:43c4f9a1$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>
>>>
>>>Se puede utilizar & en la siguiente funcion para introducir 11 en
>>>NomCamP1,
>>>12 en NomCamp2, ...., 15 en NomCamp5?
>>>
>>>
>>>for n := 1 to 5
>>>campo := "NomCamp"+str(n,1)
>>>::oDbfDataSet1:&campo := n+10
>>>next n
>>>
>>>
>>>
>>>
>>
>>
>>
>>
CapelSoft
Mensajes: 137
Registrado: Vie Jul 29, 2005 8:49 am
Ubicación: Valencia - España
Contactar:

Macro en nombre de registro

Mensaje por CapelSoft »

Paco,
Mira a ver si este 'apaño' te sirve:
cMacro := &( " { | S | s:ODBFDATASET1:"+campo"}" )
logdebug(eval(cMacro, Self))
Saludos,
José Luis Capel
Paco V escribió:
> Jose Luis no va. A lo mejor no se puede, pero seria muy interesante.
>
> Paco V
>
> =?ISO-8859-1?Q?Jos=E9_Luis_Capel?= <capelsoft@terra.es> wrote:
>
>>Xevi y Paco,
>>
>>Probad así­ (no lo he probado):
>>
>>cMacro := "Self:odbfdataset1:"+campo
>>
>>&cMacro := loquesea...
>>
>>Esto creo que deberí­a de funcionar. Si no ando equivocado, los dataxxx
>>no crean datas reales, si no que utiliza el sistema de captura de errores.
>>
>>Saludos,
>>José Luis Capel
>>
>>
>>::oDbfDataSet1:&campo
>>
>>Xevi escribió:
>>
>>>
>>>Paco,
>>>
>>>no lo he probado... a ver si te sirve!!!
>>>
>>> For n := 1 To 5
>>> __ObjSendMsg( Self, "oDbfDataSet1:NomCamp" + AllTrim(Str(n))
>
> ) :=
>
>>>n+10
>>> Next
>>>
>>>
>>>
>>>Un Saludo,
>>>Xevi.
>>>
>>>
>>>"Paco V" <ssi@ono.com> escribió en el mensaje
>>>news:43c4f9a1$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>
>>>
>>>>Se puede utilizar & en la siguiente funcion para introducir 11 en
>>>>NomCamP1,
>>>>12 en NomCamp2, ...., 15 en NomCamp5?
>>>>
>>>>
>>>>for n := 1 to 5
>>>>campo := "NomCamp"+str(n,1)
>>>>::oDbfDataSet1:&campo := n+10
>>>>next n
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>
--
José Luis Capel
http://www.CapelBlog.es
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Macro en nombre de registro

Mensaje por jfgimenez »

Paco,
> Se puede utilizar & en la siguiente funcion para introducir 11 en
> NomCamP1,
> 12 en NomCamp2, ...., 15 en NomCamp5?
>
>
> for n := 1 to 5
> campo := "NomCamp"+str(n,1)
> ::oDbfDataSet1:&campo := n+10
> next n
Prueba esto:
WITH OBJECT ::oDbfDataSet1
FOR n :=1 TO 5
:FieldPut( :FieldPos( "NomCamp" + Str( n, 1 ) ), n + 10 )
NEXT
END
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Ingo
Mensajes: 330
Registrado: Mié Jul 05, 2006 3:58 pm

Macro en nombre de registro

Mensaje por Ingo »

Paco,
try this:
WITH OBJECT ::oDbfDataSet1
:RecLock()
FOR n:=1 TO 5
:oFieldByName("camp"+STR(n,1)):Value:=10+n
NEXT
:RecUnlock()
/* controlling
FOR n:=1 TO 5
msginfo(:&("camp"+STR(n,1)))
NEXT
*/
END WITH
Regards
Ingo
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Macro en nombre de registro

Mensaje por Paco V »

Me genera error:
FIELDPUT(0)
Error DBFCDX/1022 Lock required
Argumentos: ()
Paco V
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>Paco,
>
>> Se puede utilizar & en la siguiente funcion para introducir 11 en
>> NomCamP1,
>> 12 en NomCamp2, ...., 15 en NomCamp5?
>>
>>
>> for n := 1 to 5
>> campo := "NomCamp"+str(n,1)
>> ::oDbfDataSet1:&campo := n+10
>> next n
>
>Prueba esto:
>
> WITH OBJECT ::oDbfDataSet1
> FOR n :=1 TO 5
> :FieldPut( :FieldPos( "NomCamp" + Str( n, 1 ) ), n + 10 )
> NEXT
> END
>
>--
>Un saludo,
>
>José F. Giménez
>
>
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Macro en nombre de registro

Mensaje por Paco V »

OK Ingo. Y gracias a Todos por vuestro interes.
Regards
Paco V
"Ingo" <ingo.jh@web.de> wrote:
>Paco,
>
>try this:
>WITH OBJECT ::oDbfDataSet1
> :RecLock()
> FOR n:=1 TO 5
> :oFieldByName("camp"+STR(n,1)):Value:=10+n
> NEXT
> :RecUnlock()
>/* controlling
> FOR n:=1 TO 5
> msginfo(:&("camp"+STR(n,1)))
> NEXT
>*/
>END WITH
>
>Regards
>
>Ingo
>
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Macro en nombre de registro

Mensaje por Xevi »

Paco,
Pues eso ya es un avance!!!
Quiere decir que si funciona.
Pero necesitas hacer un bloqueo del registro que necesitas modificar, o
abrir la DBF en modo exclusivo.
Un Saludo,
Xevi.
"Paco V" <ssi@ono.com> escribió en el mensaje
news:43c63e0b$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>
> Me genera error:
> FIELDPUT(0)
> Error DBFCDX/1022 Lock required
> Argumentos: ()
>
> Paco V
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>>Paco,
>>
>>> Se puede utilizar & en la siguiente funcion para introducir 11 en
>>> NomCamP1,
>>> 12 en NomCamp2, ...., 15 en NomCamp5?
>>>
>>>
>>> for n := 1 to 5
>>> campo := "NomCamp"+str(n,1)
>>> ::oDbfDataSet1:&campo := n+10
>>> next n
>>
>>Prueba esto:
>>
>> WITH OBJECT ::oDbfDataSet1
>> FOR n :=1 TO 5
>> :FieldPut( :FieldPos( "NomCamp" + Str( n, 1 ) ), n + 10 )
>> NEXT
>> END
>>
>>--
>>Un saludo,
>>
>>José F. Giménez
>>
>>
>
>
Responder