Log para control de cambio de campos


([N1] Anacreonte) #1

Tengo que montar un control que genere un log con los campos que han sido modificados por los usuarios, he visto los comandos de “¿Ha cambiado la ficha?”, pero únicamente indica si ha cambiado algún dato en un campo pero sin saber en concreto que campo ha sido, y tampoco me vale “¿Ha cambiado el campo?”, porque me obligaría a tener que repetirlo en tantos campos como componen la base datos, lo cual me parece largo y tedioso.

Había pensado usar “APLIVEL: Get número de campos” y luego con un for realizar una extracción del nombre del campo con “APIVEL: Get nombre de campo por número” pero claro luego me he topado con que “¿Ha cambiado el campo” no admite variables, con lo que mi gozo en un pozo.

Agradecería si alguno de vosotros ha tenido que montar algo parecido, que me dé una idea, aunque fuese por JavaScrip aunque tengo muy poca idea.

Gracias de antemano y un saludo.
Paco.


([N3] pacosatu) #2

Hola Paco

Ya lo hemos repetido hasta la saciedad, no se necesita conocer Javascript, lo que hay que conocer en profundidad es el API y el modelo de objetos de Velneo. El API es ya una parte fundamental de Velneo.

Por otro lado los comandos APILEVEL son obsoletos desde la versión 7.19 y desaparecerán en el futuro.

Para tu caso tienes el objeto VRegister del API y las funciones isFieldModified() así como el objeto VTableInfo.

Es bastante sencillo con el API y cuatro comandos de Javascript montar un bucle que devuelva los campos modificados.

Inténtalo y si te atascas, vuelve a consultar.

Saludos
Paco Satué


([N1] Anacreonte) #3

Muchas gracias Paco. Voy a ponerme con ello y ya comentaré.

Un saludo.
Paco Haro.


([N1] Anacreonte) #4

Hola Paco,

Con esto puedo averiguar que campo ha sido modificado:

var table = theRegisterIn.tableInfo();
var numcam = table.fieldCount();

for( var nIndex = 0; nIndex < numcam; nIndex++ )
{
if (theRegisterIn.isFieldModified(nIndex))
{
alert (“El Campo Nº " + nIndex + " con el Valor " + theRegisterIn.fieldToString(nIndex) + " ha sido modificado”)
};
};

No se si será el método correcto, pero funciona.

Un saludo.
Paco Haro.


([N3] pacosatu) #5

Hola Paco.

Sí, está correcto.
Ya habrás comprendido que no hay más remedio que acudir al API para disponer de código abstracto.

Saludos
Paco Satué


([N1] Anacreonte) #6

Hola Paco,

Como siempre mil gracias por tu ayuda. Creo que Velneo tiene algo descuidada la documentación, sobre todo referente al API, con más ejemplos que a todos aquellos que estamos “más que verdes” nos ayude a comprenderlos.

Un saludo.
Paco Haro.