none
COPIAR Y PEGAR RRS feed

  • Pregunta

  • HOLA BUENAS NOCHES:

    ESPERO PUEDAN AYUDARME ESTOY DESARROLLANDO UNA APLICACION CON VISUAL STUDIO 2010 Y MYSQL.

    ESTOY MANDANDO DATOS DE UNA TABLA A MARCADORES DE UNA PLANTILLA YA HECHA EN WORD.

    LO QUE QUIERO ES COPIAR EL CONTENIDO DE ESE DOCUMENTO Y PASARLO A OTRO.

    YA LOGRE COPIAR PERO NO PUEDO PEGAR EN EL SEGUNDO DOCUMENTO ESTE ES MI CODIGO

    '***SELECCIONO TODO DEL DOCUMENTO UNO

      NM_CTWord.Selection.WholeStory()

    ***COPEO TODO DEL DOCUMENTO UNO

                    NM_CTWord.Selection.Copy()
    *******LO AGREGO AL SEGUNDO DOCUMENTO AQUI ES DONDE TENGO PROBLEMAS
                    documentonuevo = NMdocnuevo.Documents.Add
                    NMdocnuevo.ActiveWindow.Selection.Paste()
                    documentonuevo.Save()
                    documentonuevo.Close()
                    NM_CTdocumento.Close()

    ES LA PRIMERA VEZ QUE HAGO ESTO ES POR ESO QUE TENGO PROBLEMAS, 

    LO QUE QUIERO HACER ES QUE TENGO UNA TABLA CON X REGISTROS LA CONSULTA LO PONGO EN UN CICLO FOR FILA POR FILA MANDO LOS DATOS AL DOCUMENTO a, COPEO TODO DE DOCUMENTO a Y PEGO EN DOCUMENTO b, EN LA SIGUIENTE CONSULTA LO MISMO PERO EN EL DOCUMENTO b INSERTO UNA HOJA EN BLANCO PARA PEGAR LA SEGUNDA CONSULTA.

    QUIERO PONER LOS REGISTROS DE UNA TABLA EN UN SOLO DOCUMENTO.

    ESPERO PUEDAN AYUDARME O DAR ME UN CONSEJO DE COMO HACER LO QUE QUIERO.

    DE ANTEMANO MUCHAS GRACIAS.

    viernes, 19 de septiembre de 2014 7:01

Respuestas

  • En este ejemplo voy pegando un autotexto y reemplazando los marcadores a medida que voy agregando las páginas al documento

    Imports Word
    
    Public Class Form1
    
        Dim tabla As List(Of Datos)
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            tabla = New List(Of Datos)
            tabla.Add(New Datos("Aaaa", "ZZZZ"))
            tabla.Add(New Datos("Bbbb", "YYYY"))
            tabla.Add(New Datos("Cccc", "XXXX"))
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim word As New Word.Application
            word.Visible = True
    
            Dim doc As Document = word.Documents.Add(Template:="fulano.dot")
    
            For Each dato As Datos In tabla
                word.NormalTemplate.AutoTextEntries.Item("Datos de Fulano").Insert(Where:=word.Selection.Range, RichText:=True)
                doc.Bookmarks.Item("NOMBRE").Range.Text = dato.Nombre
                doc.Bookmarks.Item("APELLIDO").Range.Text = dato.Apellido
                word.Selection.InsertBreak(Type:=WdBreakType.wdPageBreak)
            Next
    
        End Sub
    End Class
    
    Class Datos
        Private m_Nombre As String
        Public Property Nombre() As String
            Get
                Return m_Nombre
            End Get
            Set(ByVal value As String)
                m_Nombre = value
            End Set
        End Property
    
        Private m_Apellido As String
        Public Property Apellido() As String
            Get
                Return m_Apellido
            End Get
            Set(ByVal value As String)
                m_Apellido = value
            End Set
        End Property
    
        Public Sub New(nom As String, ape As String)
            m_Nombre = nom
            m_Apellido = ape
        End Sub
    
    End Class
    

    Escribo el texto,
    agrego los marcadores,
    selecciono el texto
    voy al menú autotexto nuevo
    lo agrego con el nombre "Datos de fulano"
    borro el texto de la página
    guardo el documento como una plantilla con el nombre "fulano.dot"
    ejecuto el programa

    Así se ve el autotexto, con NOMBRE y APELLIDO seleccionados y agregados a la lista de marcadores

    ===
    Nombre: NOMBRE
    Apellido: APELLIDO
    ===


    y así queda una vez ejecutado el programa

    ===
    Nombre: Aaaa
    Apellido: ZZZZ

    Nombre: Bbbb
    Apellido: YYYY

    Nombre: Cccc
    Apellido: XXXX
    ===

     

     


    [W]


    • Editado [Walter] viernes, 19 de septiembre de 2014 14:16
    • Propuesto como respuesta Miguel.Vazquez.MSDNModerator viernes, 19 de septiembre de 2014 16:48
    • Marcado como respuesta SakuraAi domingo, 21 de septiembre de 2014 3:54
    viernes, 19 de septiembre de 2014 14:09

Todas las respuestas

  • En este ejemplo voy pegando un autotexto y reemplazando los marcadores a medida que voy agregando las páginas al documento

    Imports Word
    
    Public Class Form1
    
        Dim tabla As List(Of Datos)
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            tabla = New List(Of Datos)
            tabla.Add(New Datos("Aaaa", "ZZZZ"))
            tabla.Add(New Datos("Bbbb", "YYYY"))
            tabla.Add(New Datos("Cccc", "XXXX"))
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim word As New Word.Application
            word.Visible = True
    
            Dim doc As Document = word.Documents.Add(Template:="fulano.dot")
    
            For Each dato As Datos In tabla
                word.NormalTemplate.AutoTextEntries.Item("Datos de Fulano").Insert(Where:=word.Selection.Range, RichText:=True)
                doc.Bookmarks.Item("NOMBRE").Range.Text = dato.Nombre
                doc.Bookmarks.Item("APELLIDO").Range.Text = dato.Apellido
                word.Selection.InsertBreak(Type:=WdBreakType.wdPageBreak)
            Next
    
        End Sub
    End Class
    
    Class Datos
        Private m_Nombre As String
        Public Property Nombre() As String
            Get
                Return m_Nombre
            End Get
            Set(ByVal value As String)
                m_Nombre = value
            End Set
        End Property
    
        Private m_Apellido As String
        Public Property Apellido() As String
            Get
                Return m_Apellido
            End Get
            Set(ByVal value As String)
                m_Apellido = value
            End Set
        End Property
    
        Public Sub New(nom As String, ape As String)
            m_Nombre = nom
            m_Apellido = ape
        End Sub
    
    End Class
    

    Escribo el texto,
    agrego los marcadores,
    selecciono el texto
    voy al menú autotexto nuevo
    lo agrego con el nombre "Datos de fulano"
    borro el texto de la página
    guardo el documento como una plantilla con el nombre "fulano.dot"
    ejecuto el programa

    Así se ve el autotexto, con NOMBRE y APELLIDO seleccionados y agregados a la lista de marcadores

    ===
    Nombre: NOMBRE
    Apellido: APELLIDO
    ===


    y así queda una vez ejecutado el programa

    ===
    Nombre: Aaaa
    Apellido: ZZZZ

    Nombre: Bbbb
    Apellido: YYYY

    Nombre: Cccc
    Apellido: XXXX
    ===

     

     


    [W]


    • Editado [Walter] viernes, 19 de septiembre de 2014 14:16
    • Propuesto como respuesta Miguel.Vazquez.MSDNModerator viernes, 19 de septiembre de 2014 16:48
    • Marcado como respuesta SakuraAi domingo, 21 de septiembre de 2014 3:54
    viernes, 19 de septiembre de 2014 14:09
  • Muchas Gracias me ayudo muchísimo. :)
    domingo, 21 de septiembre de 2014 3:57