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.

Copiar y Pegar

Foro de Xailer profesional en español
Responder
ddupre
Mensajes: 329
Registrado: Lun Nov 12, 2007 3:53 pm

Copiar y Pegar

Mensaje por ddupre »

Estimados,
Se me presenta esta situación y no se por donde comenzar.

Tengo una pequeñisima aplicación que lo único que hace es presentar un TDBBrowse en un Form.
Esa apicación la ejecuto automáticamente cuando un usuario se logea a una sesión de escritorio remoto, de forma tal que en esa sesión solo se puede ver el browse con sus columnas y filas, recorrerlas y ordenarlas ascendente o descendentemente.

Pues bien, el cliente me solicita que pueda marcar las celdas que le interesan (filas enteras, una o varias) y poder copiarlas y pegarlas por ejemplo en una planilla excel que tenga abierta en su equipo. El inconveniente que tengo está en que no se como implementar la opción de copiar y pegar. Como pequeña aclaración tengo bien presente que debo configurar la sesión de RDP para que comparta el "portapapeles" de manera de poder "traer" datos hacia el equipo cliente.

He buscado en el foro con diferentes filtros (copiar y pegar, cut&paste, etc.) alguna ayuda pero no e conseguido nada, tambien revisé los ejemplos de Xailer y no tuve suerte, seguramente porque no busque correctamente.

Necesitaría de la amabilidad de alguien para que me oriente como empezar en ese tema.

Desde ya muchas gracias
Daniel
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Copiar y Pegar

Mensaje por ignacio »

Buenos días,

Primeramente deberá utilizar el estilo TBrowse:nMarqueeStyle = bmHIGHLROWMS. De esta forma el usuario podrá marcar las filas que necesite copiar. Una vez mercadas deberá tener un botón para generar un archivo de texto con dichas filas seleccionadas. Los números de registro de las filas seleccionadas los puede recuperar con la matriz TBrowse:aSelected que le devuelve una matriz con los recnos() del origen de datos.

Para crear la cadena de texto le recomiendo que ponga un tabulador (Chr(9)) entre cada campo y luego un cambio de línea (CRLF) entre cada registro. De esta forma Excel es capaz de pegarlo correctamente. A continuación simplemente use este código, donde 'cMiCadenaDeTexto' es la cadena donde ha incluido toda la información.

Código: Seleccionar todo

 WITH OBJECT TClipBoard():Create( Self )
  IF :Open()
    :Empty()
    :SetText( cMiCadenaDeTexto )
  ENDIF
  :End()
END
Gracias por tener una suscripción activa con nosotros. Ha sido un placer poder ayudarle.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
ddupre
Mensajes: 329
Registrado: Lun Nov 12, 2007 3:53 pm

Re: Copiar y Pegar

Mensaje por ddupre »

Ignacio,
Muchas gracias por la rápida respuesta, trabajaré en ello tal cual su ayuda y le comentaré como me fue.

Un saludos
Daniel
ddupre
Mensajes: 329
Registrado: Lun Nov 12, 2007 3:53 pm

Re: Copiar y Pegar

Mensaje por ddupre »

Ignacio,
Ya tengo funcionando correctamente la opción de copiar y pegar, no obstante quisiera consultarle lo siguiente:
Ud. me suguiere que cree un archivo de texto lo cual hice y se genera correctamente, pero ¿cuál es la función de dicho archivo?, dado que el método :SetText() de la clase TclipBoard, coloca en el portapapeles la cadena que se le pase como parámetro.

Ante la duda de porqué generar el txt hice dos pruebas, primeramente le pasé como parámetro el nombre del archivo y lo que copia al portapeles es el propio nombre, y segundo le pasé la cadena que se genera "en memoria" dentro de una variable de texto y ahí sí, puede copiar correctamente los datos seleccionados.

¿Podra haber algún problema si la cantidad de datos a copiar es muy grande?

Desde ya muchas gracias
Daniel
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Copiar y Pegar

Mensaje por ignacio »

Buenos días,

Quise decir cadena de texto.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
ddupre
Mensajes: 329
Registrado: Lun Nov 12, 2007 3:53 pm

Re: Copiar y Pegar

Mensaje por ddupre »

Quedó claro.

Muchas gracias

Saludos
Daniel
Responder