Mostrando entradas con la etiqueta Importaciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta Importaciones. Mostrar todas las entradas

jueves, 29 de noviembre de 2007

Importación desde un Ms Excel

La forma rápida que la gente hace es pasar la hoja de Ms Excel a texto y luego usar las importaciones... pero eso a veces no es posible porque lo debe hacer el usuario y no un desarrollador. (Recordemos que las importaciones son una herramienta del desarrollador (M4DevClient) y no de usuario (M4DistClient o RichWeb))

Yo utilizo una forma que la verdad es rápida y permite hacer comprobaciones según se importa información.

Un ejemplo; los usuario de RRHH reciben todas las semanas una hoja Ms Excel con un listado de los nuevos teléfonos dados por el dpt. de sistemas, es decir, vamos a importar números de teléfono de tipo "Oficina" de un hoja Ms Excel donde el formato es el siguiente: DNI (en la columna A) y Teléfono (en la columna B).


Para ello crearemos un M4Object CXX_IMPORTAR_TELEFONOS con 3 nodos:

CXX_IMP_TEL_ROOT (Nodo principal) -> No tendrá campos, servirá para la ejecución de la importación. Creamos:

  • una propiedad llamada CXX_EXCEL_FILE; de ámbito nodo y tipo long (es donde el usuario podrá dejar la ruta al excel a importar que se pedirá en presentación)
  • un método llamado CXX_IMPORT de ámbito nodo, con el siguiente código: >CXX_IMPORT.TXT

CXX_AUX_PERSONA (Nodo libre) -> Cargaremos los datos de la persona por DNI (STD_SSN).

  • Añadiremos una propiedad: PRP_STD_SSN, de ámbito nodo, tipo cadena variable de 11 posiciones y NO visible.
  • La sentencia será: SELECT @STD_ID_PERSON = A.STD_ID_PERSON, @STD_SSN = A.STD_SSN FROM &STD_PERSON A WHERE (A.STD_SSN = @PRP_STD_SSN).
  • Crearemos un método: CXX_GET_ID_PERSON(ARG_STD_SSN cadena variable de 11 posiciones) ambito nodo, tipo cadena variable de 9 posiciones. El código será el siguiente: CXX_GET_ID_PERSON.TXT

CXX_IMP_AUX_PHONE (Nodo libre) -> Guardaremos el nuevo teléfono.

  • La sentencia será: SELECT @STD_ID_PERSON = A.STD_ID_PERSON, @STD_DT_START = A.STD_DT_START, @STD_DT_END = A.STD_DT_END, @STD_ID_LOCATION_TYPE = A.STD_ID_LOCATION_TYPE, @STD_ID_LINE_TYPE = A.STD_ID_LINE_TYPE, @STD_PHONE = A.STD_PHONE FROM &STD_PHONE_FAX A

La presentación, CXX_IMPORTAR_TELEFONOS quedaría algo así como:



Como temas especiales los dos botones tendrían estos códigos OBL:

a) "Abrir explorador de windows" (Botón de la carpeta) bttBROWSER.txt

b) "Visualizar el documento" (Botón de la lupa) bttVIEW.txt

Espero que os sirva