Copiar filas de una tabla extensible en otra tabla extensible - InfoPath Dev
in

InfoPath Dev

Copiar filas de una tabla extensible en otra tabla extensible

Last post 05-04-2012 03:49 PM by jcsaavedra. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 06-03-2009 12:35 PM

    • anpira
    • Not Ranked
      Female
    • Joined on 06-02-2009
    • Spain
    • Posts 4

    Copiar filas de una tabla extensible en otra tabla extensible

    Hola a todos,

    Primero de todo, me quiero disculpar por si este tema ya ha salido, pero he estado buscando y no doy encontrado una solución a mi problema. Os comento:

    Estoy diseñando un formulario en InfoPath 2007, para luego publicarlo en una biblioteca de SharePoint. Necesito copiar todas las filas de una tabla en otra tabla distinta, todo ello en código C# con VSTA.
    Más o menos, el origen de datos que tengo es el siguiente:


    tablaOriginal
    ----ext_tablaOriginal
    --------lugarOriginal
    --------nombreOriginal

    tablaDestino
    ----ext_tablaDestino
    --------lugarDestino
    --------nombreDestino
    --------ciudadDestino
    --------paisDestino

    Una vez que el usuario introduzca varias filas en la tablaOrignal, presionando un botón se deberán copiar todas esas filas (lugarOriginal y nombreOriginal) en la tablaDestino. Todo mediante código. (Otro usuario se encargará de introducir el resto de los datos como la ciudad o el pais)

    Bien, lo que yo consigo es ir introduciendo los datos en la tabla extensible "tablaDestino". Lo que no soy capaz es de ir leyendo todas las filas insertadas en la "tablaOrigen".

    Os envío algo del código que he hecho, por si me lo podeis completar, ya que estoy totalmente perdida:

    // Apunto las dos tablas extensibles:
    XPathNavigator _tablaOriginal = MainDataSource.CreateNavigator().SelectSingleNode("/my:misCampos/my:tablaOriginal", NamespaceManager);
    XPathNavigator _tablaDestino = MainDataSource.CreateNavigator().SelectSingleNode("/my:misCampos/my:tablaDestino", NamespaceManager);

    // Recojo el namespace:
    string myNameSpace = NamespaceManager.LookupNamespace("my");

    // Imagino que aquí debería tener algún tipo de lector que vaya nodo a nodo por la tabla Original para ir leyendo las filas, pero no encuentro cómo:
    XmlReader reader = _tablaOriginal.SelectSingleNode("/my:misCampos/my:tablaOrigen", NamespaceManager).ReadSubtree(); // ESTO NO FUNCIONA, CLARO

    // Declaro un lector que vaya insertando nodos-hijo e introduzca los datos leídos:
    XmlWriter writer = _tablaDestino.SelectSingleNode("/my:misCampos/my:tablaDocuObligatoria", NamespaceManager).AppendChild();

    // En un bucle se debería ir escribiendo cada columna de cada fila leída ( no se cómo) y escribiendolo en la tabla de destino:
    while (ALGÚN TIPO DE BUCLE QUE RECORRA LA TABLA DE ORIGEN)
     {
      writer.WriteStartElement("ext_tablaDestino", myNameSpace);
      writer.WriteElementString("lugarDestino", myNameSpace, >>lugarOrigen que hemos leido<
      writer.WriteElementString("nombreDestino", myNameSpace, >>nombreOrigne que hemos leído<
      writer.WriteEndElement();
     }

    El código está incompleto porque no doy leído todas las filas de la tabla origen. Sé que es un gran esfuerzo por vuestra parte, pero os estaría muy agradecida si me pudiérais echar una mano.

    Gracias por todo.

  • 06-03-2009 01:10 PM In reply to

    Re: Copiar filas de una tabla extensible en otra tabla extensible

    Hola! No soy programador, por lo que no podré comentar sobre tu código. Pero te pregunto, es un projecto que tenés que realizar? (Es decir, es obligatorio el uso de código?)

    Si no lo es, nosotros hemos creado qRules, que tiene un comando que hace exactamente lo que buscás: copiar de una tabla a otra. El problema es que no puede coexistir con código y requiere InfoPath 2007.

    Ernesto Machado
    Qdabra® Software/ InfoPathDev.com
    The InfoPath Experts – Streamline data gathering to turn process into knowledge.™


  • 06-03-2009 11:54 PM In reply to

    • anpira
    • Not Ranked
      Female
    • Joined on 06-02-2009
    • Spain
    • Posts 4

    Re: Copiar filas de una tabla extensible en otra tabla extensible

    Hola ErnestoM,

     Gracias por tu interés.

    Pues el proyecto ya tiene más codigo asociado a otros botones, por lo que sí: debo desarrollarlo con programación. O eso, o con reglas propias de InfoPath, pero creo que no se puede hacer lo que busco.

  • 03-22-2011 07:57 AM In reply to

    Re: Copiar filas de una tabla extensible en otra tabla extensible

    Hola me gustaría saber como funciona qRules.

  • 05-04-2012 03:49 PM In reply to

    Re: Copiar filas de una tabla extensible en otra tabla extensible

    COMO PUEDO REPLICAR UNA ESTRUCTURA EXTENSIBLE DE UNA CONECCION SECUNDARIA A UNA ESTRUCTURA EXTENSIBLE NORMAL PARA PODER MAPEAR LOS CAMPOS O COMO MAPEAR CMAPOS DE UNA CONECCION SECUNDARIA????????
Page 1 of 1 (5 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.