Macros?
-
- Novato
- Mensajes: 25
- Registrado: Vie Feb 11, 2011 1:41 am
- Contactar:
Macros?
Necesito hacer que clarion reconozca una variable y la convierta a su nombre respectivo (tipo macros en Clipper recuerdan?)
Necesito que Clarion entienda esto:
Loop i#=1 to Mitabla{Prop:Fields} !Recorro todos los campos de la tabla
Variable= Who(Mitabla,i#} !Nombre del Campo actual
IF Mitabla{Prop:label,i#} <> history::MIT:Record.& Variable !Compare el campo actual contra el valor del historial
!a ver si se modificó
END
END
La parte en negrita es la que no logro hacer funcionar
Gracias
Necesito que Clarion entienda esto:
Loop i#=1 to Mitabla{Prop:Fields} !Recorro todos los campos de la tabla
Variable= Who(Mitabla,i#} !Nombre del Campo actual
IF Mitabla{Prop:label,i#} <> history::MIT:Record.& Variable !Compare el campo actual contra el valor del historial
!a ver si se modificó
END
END
La parte en negrita es la que no logro hacer funcionar
Gracias
- Mauricio
- Desarrollador de Clarion
- Mensajes: 1125
- Registrado: Dom Feb 06, 2011 9:34 am
- Ubicación: España
- Contactar:
Re: Macros?
Me parece que vas a tener que jugar con el what del registro histórico.
Algo así:
Esto lo escribí sin probarlo, aclaro. Pero buscaría por ese lado.
Algo así:
Código: Seleccionar todo
Loc:Any Any
Code
Loc:Any &= what(history::MIT:Record, El Número del campo que te interesa)
IF Loc:Any <> TuTabla{Prop:Label, i#}
!Etc
END !IF
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog
www.tdcsoftware.com y www.clarioneros.com/blog
-
- Novato
- Mensajes: 14
- Registrado: Dom Feb 13, 2011 3:06 pm
- Ubicación: Villa María, Córdoba
- Contactar:
Re: Macros?
Diego: aclarame estas dudas
1- lo que necesitas es comparar el Contenido de los campos ó el nombre de los campos ?
2- las estructuras de history::MIT:Record y MiTabla , son idénticas en tipos y orden ?
3- necesitas saber que campos tiene diferencia individualmente ó te sirve con solo saber si existe diferencia entre las dos estrucutras sin importar en que campos ?
1- lo que necesitas es comparar el Contenido de los campos ó el nombre de los campos ?
2- las estructuras de history::MIT:Record y MiTabla , son idénticas en tipos y orden ?
3- necesitas saber que campos tiene diferencia individualmente ó te sirve con solo saber si existe diferencia entre las dos estrucutras sin importar en que campos ?
-
- Al nivel de RZ
- Mensajes: 367
- Registrado: Lun Feb 07, 2011 4:45 pm
- Ubicación: Santo Domingo,Rep.Dominicana
- Contactar:
Re: Macros?
Hola
Si lo que necesita es conocer la estructura de una tabla con su respectivos campos
dale un vitazo esto tal vez te sirve.
Nota Importante
Te crea tu queue le pone un list y en open Window de la ventana pone el codigo,
no te olvide de poner en el esquematico tu tabla a la que quiere ver los campos o en otra tabla.
Espero q te sirva
Si lo que necesita es conocer la estructura de una tabla con su respectivos campos
dale un vitazo esto tal vez te sirve.
Código: Seleccionar todo
!cargado Tablas
loop i# = 1 to 40
clear(QMembresia)! Queue para carga los datos
Ca:Campos = who(MIEM:record,i#)! Aqui va la cola de tu tabla
if (Ca:Campos) > '' !Aqui se cargan los campos
add(QMembresia) ! Se guardan o se cargan
end!if
end!if
Te crea tu queue le pone un list y en open Window de la ventana pone el codigo,
no te olvide de poner en el esquematico tu tabla a la que quiere ver los campos o en otra tabla.
Espero q te sirva
Ing. R. Pacheco
Analista Programador
Pachecoramon@hotmail.com, Skype:pachecoramon
Santo Domingo, Rep. Dominicana
Para cualquier consulta rápida: hacerla por WhatApp al 1 347-6159 US
Analista Programador
Pachecoramon@hotmail.com, Skype:pachecoramon
Santo Domingo, Rep. Dominicana
Para cualquier consulta rápida: hacerla por WhatApp al 1 347-6159 US
-
- Novato
- Mensajes: 25
- Registrado: Vie Feb 11, 2011 1:41 am
- Contactar:
Re: Macros?
Lo que necesito es comparar el contenido de los campos, o saber si alguno de los campos fue modificado con respecto al valor del history.
Entro a la ventana, activo el historial Self.Savehistory()
y en el Takecompleted antes del parent call necesito saber si cualquier campo fue modificado
IF CLI:CAMPO1 <> history::CLI:Record.CLI:CAMPO1
Pero necesito probar todos los campos de la tabla contra el historial
Por esto uso un loop
Loop i#=1 to tabla{prop:Fields}
IF tabla{Prop:field,i#}<>HISTORY::TAB:TABLA.CAMPO <- este ultimpo pedazo (CAMPO) es lo que necesito desde un macro
END
end
Entro a la ventana, activo el historial Self.Savehistory()
y en el Takecompleted antes del parent call necesito saber si cualquier campo fue modificado
IF CLI:CAMPO1 <> history::CLI:Record.CLI:CAMPO1
Pero necesito probar todos los campos de la tabla contra el historial
Por esto uso un loop
Loop i#=1 to tabla{prop:Fields}
IF tabla{Prop:field,i#}<>HISTORY::TAB:TABLA.CAMPO <- este ultimpo pedazo (CAMPO) es lo que necesito desde un macro
END
end
-
- Novato
- Mensajes: 14
- Registrado: Dom Feb 13, 2011 3:06 pm
- Ubicación: Villa María, Córdoba
- Contactar:
Re: Macros?
Entonces creo que esto es lo que tenes que hacer:
PtrGroup &GROUP
ActualValor ANY
ViejoValor ANY
PtrGroup &= MiTabla{Prop:Record} !puntero al record actual
LOOP I# = 1 TO MiTabla{PROP:Fields}
ActualValor &= WHAT(PtrGroup, I#)
ViejoValor &= WHAT(history::CLI:Record, I#)
IF ActualValor <> ViejoValor
!los contenidos de los campos de posicion I# son distintos
END!IF
END !LOOP
Estoy suponiendo que history::CLI:Record es una estructura RECORD o puntero a un RECORD ( &GROUP).
Tené en cuenta que los campo MEMO y BLOB , no estan dentro de la estructra RECORD por lo que no se estan comparando aqui.
PtrGroup &GROUP
ActualValor ANY
ViejoValor ANY
PtrGroup &= MiTabla{Prop:Record} !puntero al record actual
LOOP I# = 1 TO MiTabla{PROP:Fields}
ActualValor &= WHAT(PtrGroup, I#)
ViejoValor &= WHAT(history::CLI:Record, I#)
IF ActualValor <> ViejoValor
!los contenidos de los campos de posicion I# son distintos
END!IF
END !LOOP
Estoy suponiendo que history::CLI:Record es una estructura RECORD o puntero a un RECORD ( &GROUP).
Tené en cuenta que los campo MEMO y BLOB , no estan dentro de la estructra RECORD por lo que no se estan comparando aqui.
-
- Novato
- Mensajes: 25
- Registrado: Vie Feb 11, 2011 1:41 am
- Contactar:
Re: Macros?
Muchas gracias, voy a hacer la prueba y te aviso
-
- Novato
- Mensajes: 25
- Registrado: Vie Feb 11, 2011 1:41 am
- Contactar:
Re: Macros?
Un Exito completo fue la ayuda de César, muy amable
- Mauricio
- Desarrollador de Clarion
- Mensajes: 1125
- Registrado: Dom Feb 06, 2011 9:34 am
- Ubicación: España
- Contactar:
Re: Macros?
Ahhh, claro, porque lo que puse yo no sirve! Ahora me ofendí!
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog
www.tdcsoftware.com y www.clarioneros.com/blog
-
- Novato
- Mensajes: 25
- Registrado: Vie Feb 11, 2011 1:41 am
- Contactar:
Re: Macros?
Aclaración, muchas gracias a todos los participantes en las respuestas, y Mauricio tambien
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 15 invitados