Copiar documento de una base de datos a otra

Dentro de un formulario he creado un botón el cual quiero que este documento al cerrarlo, quiero que lo copie en la vista de otra base de datos. Y para ello he realizado el siguiente código pero no me funciona bien:

@If(@Prompt([YesNo];"Cierre del documento";"¿Quiere cerrar el documento?");@Success;@Return(""));
@SetField("cliFechaBaja";@Now);
@SetField("cliCierre";"SI");
@Command([EditCopy]);
@Command([FileOpenDatabase]; "*//*":"*.NSF"; "uvwGeneralIncidencias"; ""; ""; "" );
@Command([EditPaste]);
@Command([FileCloseWindow])

Lo que hace cuando cierra, va a la vista que le dicho y me sale que quiere buscar lo que he copiado, y yo simplemente quiero que me guarde en esa vista el documento sin necesidad de ir a esa vista ni verlo. Como si copiara y pegara manualmente el documento de una vista en una otra con diferente BD.

1 respuesta

Respuesta
1

Te pongo un ejemplo de un botón/acción que se ejecuta desde un documento.

clave:=@Text(@DocumentUniqueID);
v:="LFTodosporID";
@PostedCommand([FileCloseWindow]);
@PostedCommand([OpenView];v;clave);
@PostedCommand([EditCopy]);
vistabd2:="Vista2";
@PostedCommand([FileOpenDatabase]; "":"LLL2.NSF"; vistabd2);
@PostedCommand([EditPaste])

Te explico los pasos.

1. clave:=@Text(@DocumentUniqueID);

es el id del documento que queremos copiar a otra bd.

2. v:="LFTodosporID";

Es una vista con todos los docs de la bd origen, con la primera columna ordenada con la formula @Text(@DocumentUniqueID)

3 . @PostedCommand([FileCloseWindow]);

Cerramos el documento

4. @PostedCommand([OpenView];v;clave);

Nos posicionamos en el documento origen a copiar .

5 .@PostedCommand([EditCopy]);

Copiamos el documento

6 vistabd2:="Vista2";

Es una vista que de la bd destino donde queremos copia el documento.

7 @PostedCommand([FileOpenDatabase]; "":"LLL2.NSF"; vistabd2);

Abrimos la bd destino en la vista indicada, en este caso LL2.nsf

8 @PostedCommand([EditPaste])

Copiamos el documento en la bd destino.

Hola Jose,

Tengo una duda en el paso 4, que no entiendo

porque hay que posicionarse. Lo intentado poner

como me lo has explicado pero no lo copia, abre

la vista de la base de datos origen.

Lo que tenia inicialmente en el botón era esto que simplemente cerraba una incidencia:

@If(@Prompt([YesNo];"Cierre del documento";"¿Quiere cerrar el documento?");@Success;@Return(""));
@SetField("cliFechaBaja";@Now);
@SetField("cliCierre";"SI");
@Command([FileCloseWindow])

y ahora tengo esto:

@If(@Prompt([YesNo];"Cierre del documento";"¿Quiere cerrar el documento?");@Success;@Return(""));
@SetField("cliFechaBaja";@Now);
@SetField("cliCierre";"SI");
clave:=@Text(@DocumentUniqueID);
v:="IDGeneral";
@Command([FileCloseWindow]);
@PostedCommand([OpenView];v;clave);
@Command([EditCopy]);
v2:="uvwGeneralIncidencias";
@Command([FileOpenDatabase]; "mrtn":"SKMS.NSF";v2);
@PostedCommand([EditPaste]);

¿La vista de destino (v2) la podría pasar directamente no y la otra (v1)?

Pues no se realmente falla para que no se copie el documento...

Muchas gracias por todo Jose

Saludos, Sergio

El poner @postedCommand en la funciones es importante, para que estas se ejecuten

En el orden que queramos.

El 4º paso, lo que hago es con el id del documento que quieres copia, abro una vista y me sitúo en el para hacer el Copy,

El poner variables para las vistas, puedes saltártelo, puedes poner directamente las vistas

Que vas a utilizar.

Saludos

Jose

PD: Si tienes algúna cosa mas, mandame un email [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas