PROVISIONAL: es un manual pegado de iWriter!
pendiente formatearlo
–
Manual de Usuario de CPI API Office (ApiExcel)
INTRODUCCION
API Excel CPI es un producto que permite la conectividad de Hojas de Calculo MS Excel y programas de AS/400 sin necesitar procesos de definición ni transferencia de ficheros.
API Excel CPI puede ser usada para mejorar aplicaciones actuales de AS/400, así como en nuevos desarrollos pudiendo obtener desde simples listados hasta sofisticados informes.
Además de la obtencion del informe se obtiene un fichero Excel, por lo que puede ser cambiado, enviado por correo electronico, diskette, etc.
Esta programado sobre un entorno absolutamente Cliente/Servidor, con la ventaja de que las tareas de elaboración, impresión, etc. pueden ordenarse totalmente desde un PC pero también desde programas normales de AS/400. Esto es de utilidad a la hora de diseñar o cambiar Aplicaciones para que la obtención de informes se realice con destino a Hojas de Cálculo.
Pueden establecerse multiples modelos de interface sobre Hojas Excel partiendo de diseños de Hojas de Calculo con todos sus atributos naturales como calculos, formateo, colores, etc. Al mover información desde AS/400 a las hojas estas no pierden sus atributos, con lo que se pueden conservar las hojas diseñadas sin necesitar reelaboración de datos ni atributos.
API Excel CPI puede usarse en combinación con programas normales de AS/400, estos programas de AS pueden leer y procesar N fuentes de datos y solo determinadas informaciones de interes pueden ser movidas a elementos de Hojas de Calculo, sin miedo a que por ello se pierda el formato diseñado.
CREANDO INFORMES DESDE PC
Se define una interface en el fichero general CPI@XLIN.INI con I@XL00.EXE y se declara un fichero.INI con el nombre de esa interface. El fichero.INI puede crearse nuevo o copiarse de otro haciendo los cambios oportunos.
Cuando definimos la interface en el fichero general y la solicitamos haciendo doble click, se procede a crear un fichero con nombre interface.INI de manera automática. También podemos crearlo copiandolo de otro y dándole el nombre de la nueva interface. Entonces la solicitar la interface se abre este fichero.
Siempre que se solicita una interface podemos modificar este fichero. Si deseamos que algunas características de la interface como si la hoja debe o no ser visible, si el procedimiento se debe o no ejecutar completo, si se desea imprimir la hoja etc… pueden cambiarse de manera temporal marcando y desmarcando las casillas destinadas a ello.
Al solicitar aunque sea sin procesar una interface se crea un fichero con nombre interface.@XW en el directorio WINDOWS/SYSTEM Local, que es el que buscan los programas API EXCEL para encontrar las definiciones de la interface. Este fichero tiene el mismo contenido del interface.INI mas las respuestas para la ejecución (respuestas a preguntas, imprimir Si/No…etc).
Se puede obligar a una ejecución de programas en el AS/400 que se desea de la siguiente manera:
path\I@XL00.exe *SN=nameAS
Al solicitarse la interface desde el PC se ejecuta el programa asociado de 400.
Una interface puede no tener asociada la ejecución de un programa de 400 (pgmMode=N en el fichero interface.INI), o puede procesarse una interface en modo no completo. En el primer caso no se procesa ningún programa de 400 sino que solo se toman los datos para actualizar la excel desde el miembro 'interface' fichero QAPIXCPI biblioteca TEXTCPIU. Esto permite p.e. que procesos batch nocturnos pongan (usando las API'S) información en QAPIXCPI para ser usada cuando se procese la interface de PC.
Los programas del AS/400 relacionados con una interface deben recibir los parámetros siguientes:
&MBRI *CHAR 8 --> Nombre de Interface. &MODO *CHAR 1 --> Modo de Ejecución &RESP *CHAR 240 --> 8 Respuestas de 30 caracteres cada una &STS *CHAR 8 --> Estado
Y añadir las bibliotecas necesarias (CPI@API, CPI@PUB), así como las bibliotecas de los ficheros que procese el programa.
En el programa de 400 se deben incluir las instrucciones necesarias para las funciones API Excel. Las veremos más adelante en el apartado Funciones API Excel CPI.
Fichero interface.INI
El fichero interface.INI debe tener el mismo nombre de interface declarada en el archivo CPI@XLIN.INI, fichero general de interfaces.
En interface.INI se permiten hasta 8 preguntas que se pasan a los programas de 400 como parámetros. Tiene cada uno una longitud máxima de 30 caracteres.
Este fichero contiene las siguientes partes:
[General]
Pgm=El nombre del programa que se ejecuta en el 400
pgmlib=La biblioteca en la que se encuentra el programa anterior
pgmMode='Y' o 'Full' significa que la interface se realiza de forma completa: al ejecutar la interface desde PC se ejecutan los programas de 400 y se envian los datos a la hoja Excel declarado en la etiqueta Target explicadas en el apartado Start. 'N' o ' ' significa que cuando se ejecuta la interface desde el PC tan solo se procede a tomar los datos que un procedimiento anterior dejó preparados.
[Questions]
QXnn=Dato alfanumérico de nn posiciones. Ej: QX10=Nombre de la interface
QXUnn=Dato alfanumérico de nn posiciones que devuelve mayúsculas. EJ: QXU30=Teclee la 1° Cabecera del Informe
QXXnn=Dato alfanumérico de nn posiciones. EJ: QXX25=Teclee la 2° Cabecera del Informe
QLC=Lista de constantes. Los valores permitidos se separan con comas. Ej: QLC=Seleccione Mes a procesar, Enero, Febrero, Marzo
QYN=Cuestiones que se contestan marcándolas para seleccionarlas o desmarcándolas en caso contrario. Se presenta una casilla con una cruz por omisión. Al 400 se envía 'Y' o 'N'. Ej: QYN=Desea los importes en miles?
QNY=Como la anterior pero por omisión la casilla no presenta una cruz. Si se seleccionan, al 400 llega una 'Y', en caso contrario una 'N'. Ej: QNY=Desea Edición?
QNNnn=Admite solo números de nn posiciones y rellena a la izquierda con ceros. Ej: QNN04=Año
QNRnn=Verifica un rango para un dato numérico de nn posiciones permitiendo un valor por omisión. Se indican entre comas siendo el primer valor la omisión. Ej: QNR02=Digite Mes de Proceso,07,01,12
QHELP=Es un texto de ayuda para preguntas. Sin uso de momento.
QDatexxxnne=Admite fechas desde calendario haciendo doble click. Siendo xxx 'DMY' o 'YMD', nn '08' o '06', y e 'E' (Editada) o 'N' (Sin editar). Ej: QDateDMY08E=Fecha de Proceso
QDateYMD05E=Admite fecha en formato Año/Mes editada. Ej: QDateYMD05E=Fecha de Proceso en Año/Mes
QDateYMD04N=Admite fecha en formato Año/Mes sin editar. Ej: QDateYMD04N=Fecha de proceso
formato YYYYMM
[Start]
Source=Path de la Hoja Excel base.
Target=Path de la Hoja Excel Destino que contendrá el resultado.
Sheet=N° de Hoja del libro Excel. 1 por omisión.
Visible='Y' muestra la Hoja Excel en la ejecución, 'N' no la muestra.
[Move]
Ordenes fijas para aminorar código en 400 (Pendiente).
[End]
Print='Y' imprimir al finalizar, 'N' No imprime. '?' se pregunta.
Close='Y' cierra la hoja, 'N' deja abierta la hoja, '?' pregunta.
Pause=Proceso terminado. Emite una pausa.
Ejemplo1 de fichero Interface.INI
[General] Pgm=MODEL1CL pgmLib=CPI@CG2 pgmMode=Y [Questions] QXN10=Nombre de la interface QXU30=Teclee la 1° Cabecera del Informe QXX25=Teclee la 2° Cabecera del Informe QLC=Seleccione Mes a Procesar, Enero,Febrero,Marzo QYN=Desea los cálculos en Miles? QNY=Desea Edición? QNR02=Digite Mes de Proceso,01,01,12 QNN04=Código de Cliente [Start] Source=C:\EXCELCPI\modelA.xls Target=C:\EXCELCPI\modelAc.xls Sheet=1 Visible=Y [End] Print=N Close=Y Pause=Proceso terminado
Ejemplo2 de fichero Interface.INI
[General] Pgm=MODEL2CL pgmLib=CPI@CG2 pgmMode=Y [Questions] QDATEDMY08N=Fecha en formato DDMMYYYY QDATEDMY08E=Fecha en formato DD/MM/YYYY QDATEYMD08N=Fecha en formato YYYYMMDD QDATEYMD08E=Fecha en formato YYYY/MM/DD QDATEDMY06N=Fecha en formato DDMMYY QDATEDMY06E=Fecha en formato DD/MM/YY QDATEYMD06N=Fecha en formato YYMMDD QDATEYMD06E=Fecha en formato YY/MM/DD [Start] Source=C:\EXCELCPI\modelB.xls Target=C:\EXCELCPI\modelBc.xls Sheet=1 Visible=Y [End] Print=Y Close=N Pause=Proceso terminado
Funciones que se incluyen en programas ADP 400:
@XL_Start Data('Auto') Data2(mbrscrpt)
Orden de Comienzo de API.
@XL_Action('Start') Data('noAuto') Data2(mbrscrpt)
Apertura desde 400.
@XL_End
Orden de Cierre de API.
@XL_MoveX o @XL_MoveN Row('rrr') Col('ccc') Data(dato) Dec('n')
Mueve un dato o el último de un grupo.
@XL_MoveXA o @XL_MoveNA Row('rrr') Col('ccc') Data(dato) Dec('n')
Inicia el movimiento de un grupo de datos a la derecha.
@XL Action('Pos') Data('nomCelda') Data2(' ')
Pone como activa una celda con el nombre indicado (Pos).
@XL Action('Sheet') Data('n') Data2(' ')
Pone como activa una hoja del libro excel (Sheet).
@XL Action('Insert') Data('nomCelda') Data2(' ')
Inserta una fila (Insert).
@XL Action('Font') Data(wfont1) Data2(wfont2)
@XL Action('Borde') Data(wbord1) Data2(wbord2)
Borde alrededor de una o varias celdas de una fila (Borde).
@XL Action('bordeA') Data(wbord1) Data2(wbord2)
. Borde sin verticales entre el ámbito de celdas (alrededor) (bordeA).
01-01 - (un guión)
02-03 -- (dos guiones) No hay uso de color en bordeA 04-04 - (un guión). No hay uso de Grosor. 05-05 Estilo. Solo se usan los códigos 1 y 7. . También 2 y 3. Puede combinarse con Font de Fondo.
@XL Action('Pausa') Data(campo) Data2(' ')
. Emite una Pausa en el PC mostrando el contenido de campo (Pausa).
@XL Action('Format') Data(codedi) Data2(coldh)
. Edición en contenido de celdas (Format).
“#,##0” ó “#,##0.00” (Se permite ¤ a izqda o dcha)
"#,##0¤);[Red](#,##0)" (pone negativos en rojo)
columna o columnas enteras indicadas)
@XL Action('sizeCol') Data(size) Data2(coldh)
Aumento o Disminución del Ancho de columnas (sizeCol).
@XL Action('crtTx') Data(nombre) Data2('079015')
@XL Action('Image') Data(file) Data2(' ')
@XL Action('sizeRow') Data(size) Data2(' ')
Cambiar el Alto de una fila (sizeRow)
@XL Action('delRow') Data(nomcelda) Data2(' ')
Supresión de la fila que tiene una celda con ese nombre (delRow).
@XL Action('delCol') Data(nomcelda) Data2(' ')
Supresión de una columna (delCol).
@XL Action('delTx') Data(nomcelda) Data2(' ')
Supresión de un TextBox con ese nombre (delTx).
@XL Action('Open') Data(TipoAper) Data2(Numhoja)
Función de apertura de una hoja (Open).
@XL Action('Close') Data('Y/N/?') Data2(' ')
Función de cierre de una hoja (Close). Especialmente indicado en apertura modo 'noAuto'.
@XL Action('saveAs') Data(Path) Data2(nomhoja)
Salva una hoja Excel dandole un nombre (saveAs).
@XL Action('Save') Data(' ') Data2(' ')
Salva la hoja en el path del TARGET del fichero interface.INI. (Save).
@XL Action('setPrint') Data(posic) Data2(' ')
Alineación vertical u horizontal (SetPrint). Data admite 'PORT' Vertical o 'LAND' Horizontal
@XL Action('setPrint') Data(centra) Data2(' ')
Centrado al imprimir (SetPrint). Data admite 'CenterV' Vertical o 'CenterH' Horizontal
@XL Action('setPrint') Data(texto) Data2(cabepie)
Cabeceras y pies de la hoja (SetPrint).
@XL Action('SetPrint') Data('BW') Data2(' ')
. Imprimir solo Black&White (no grises) (SetPrint).
@XL Action('SetPrint') Data('Grid') Data2('Y')
. Activar/Desactivar Impresión de Grid (SetPrint).
@XL Action('SetPrint') Data('RepCab') Data2('Rn:Rn')
. Repite cabeceras (SetPrint).
formas: 'Rn:Rn' o 'Ln:Ln' o '$n:$n'.
@XL Action('SetPrint') Data('RepCol') Data2('A:C')
. Repite columnas (SetPrint).
siguiente manera: 'A:C'.
@XL Action('SetPrint') Data('Marg?') Data2(número)
. Definir Margenes del papel (SetPrint).
sentido de las agujas del reloj:
1=Izquierdo 2=Arriba 3=Derecho 4=Abajo
72=pulgada (2.4 cm) 36=media (1.2 cm) 18=cuarto (0.6 cm)
@XL Action('Print') Data('Y') Data2(' ')
. Imprimir la Hoja activa (Print).
CREANDO INFORMES DESDE AS/400
Ademas de arrancar una interface desde PC se puede también solicitar la creación de informes desde el 400, llevando los datos a una hoja con diseño previo o bién crear en ese momento una hoja completamente nueva.
Se necesita el siguiente entorno de trabajo:
una alteración temporal. Es donde se recogerá la información de
la hoja Excel a crear.
En los programas de as400 se incluiran las funciones API Excel.
Si se va a crear una hoja totalmente nueva, se debe usar la función de comienzo @XL_Start en modo 'noAuto'. Si se busca el fichero interface.@XW se usa esta función en modo 'Auto'. Siempre indicando el miembro script.
Si se crea una hoja nueva se debe indicar además un modo especial de apertura, '*NEW', con la función @XL_Action('Open'). Si se va a alimentar una hoja base (cuando se busca fichero interface.@XW) no es necesaria aunque se puede usar para cambiar valores como que la hoja sea visible, minimizada u oculta durante el proceso de la interface.
Cuando se crea una hoja de cálculo nueva desde AS/400 es necesario darle un nombre un path. Se debe pues usar la función^@XL Action('SaveAs')^.
Una vez finalizada la funcionalidad API Excel con la función^@XW¤End^, para procesar la interface es necesario ejecutar el programa TFXL99CL con un parámetro de 80 posiciones. El contenido de este parámetro es variable según la funcionalidad deseada:
(cuando se busca fichero interface.@XW). Si no hay una interface PC
asociada (no hay fichero interface.@XW) se puede poner cualquier cosa.
además en las posiciones 11 a 18 nombre del script.
interface2…etc comenzando en la posición 1.
interface.@XW: ^'*XW=PU'^para buscar el fichero en el directorio USER
del path de los programas API de PC.^'*XW=NO'^indica que no se busca este fichero. Esto sería en hojas creadas por completo desde el AS/400.^Nada^ indica que se busca el fichero en el WIN/SYSTEM local.
poniendo despues de la información anterior, dejando un blanco al
menos, la instrucción: *SN=nameAS
Los programas API Excel de PC se buscan según la información del path que contenga la dtaara TEXTCPIU/CPI@XL en las posiciones de la 101 a la 50. Por ejemplo:
DEFINICION/EJEMPLO DE SCRIPT
Las interfaces guardan la información elaborada por los programas de AS/400 mediante las funciones API Excel en un miembro del fichero QAPIXCPI en la biblioteca TEXTCPIU.
En los casos de interfaces solicitadas desde PC, este miembro al que llamamos script, toma el nombre del fichero interface.INI sin la extensión.
En las interfaces arrancadas desde AS/400 puede buscarse el fichero interface.@XW para tomar definiciones de SOURCE y TARGET de la hoja o puede definirse totalmente la hoja de cálculo desde AS/400. En estos casos el nombre del script puede ser el del fichero interface.INI o no.
Vea un ejemplo de script de una interface que se arranca desde AS/400 y crea una hoja de cálculo excel completamente nueva:
*API's de Conectividad AS/400 con Excel (c) CPI SOFTWARE 1996. +STARTM,241096,123751,NM045902,NOAUTO Control,CPIX1,Excel OPEN,VISIBLE,*NEW MOVE,01,02,'DEMOSTRACION CPI SOFTWARE' FONT,TNR--12N,0202 SIZECOL,-6,0101 SIZECOL,+40,0202 MOVE,01,03,'RELACION DE TRABAJADORES POR GRUPO DE TRABAJO' FONT,TNR--12N, MOVE,02,03,'Percepciones Categorias y Trabajador' FONT,TNR--12N, MOVE,04,02,'NOMBRE','DEP','GRT','Salario Base',' Antig. Base','Complem.' FONT,TNR--10NC,0110 BORDE,---21,0210 SIZECOL,-6,0303 SIZECOL,-6,0404 SIZECOL,+1,0510 MOVE,06,01,'*','Total grupo trabajo',' 01','',9138546,96784,340490,'' FONT,TNR--10N --11,0110 BORDEA,- 21,0110 MOVE,07,01,'*','Total grupo trabajo DES. S/36',' 01','',1193102,4600,'' FONT,TNR--10N --11,0110 BORDEA,- 21,0110 MOVE,08,01,'*','Total grupo trabajo ( DES. PC',' 01','',684652,10000,'' FONT,TNR--10N --11,0110 BORDEA,- 21,0110 MOVE,09,01,'**','Total dependencia. MATATERO',' 01','',11016300,101384,'' FONT,TNR--10N --14,0110 BORDEA,- 21,0110 MOVE,10,01,'*','Total grupo trabajo (',' 02','',1337315,20600,55674,'' FONT,TNR--10N --11,0110 BORDEA,- 21,0110 MOVE,11,01,'*','Total grupo trabajo ( S/36',' 02','',2209136,6000,'' FONT,TNR--10N --11,0110 BORDEA,- 21,0110 MOVE,12,01,'**','Total dependencia.. COMANA',' 02','',3546451,20600,'' FONT,TNR--10N --14,0110 BORDEA,- 21,0110 MOVE,13,01,'*','Total grupo trabajo (',' 03','',486202,8600,'' FONT,TNR--10N --11,0110 BORDEA,- 21,0110 MOVE,14,01,'**','Total dependencia.... PIPENSA',' 03','',486202,8600,'' FONT,TNR--10N --14,0110 BORDEA,- 21,0110 MOVE,15,01,'*','Total grupo trabajo (',' 98','',127629,'' FONT,TNR--10N --11,0110 BORDEA,- 21,0110 MOVE,16,01,'**','Total dependencia.... DEPEND.HORAS',' 98','',127629,'' FONT,TNR--10N --14,0110 BORDEA,- 21,0110 MOVE,17,01,'****','Total Empresa',' 98','',15176582,121984,445764,'' FONT,TNR--10N --10,0110 BORDEA,- 21,0110 SETPRINT,&I&F,CAB1 SETPRINT,Fecha: &D Hora: &T,CAB2 SETPRINT,Pagina &P de &N,CAB3 CLOSE,Y, SAVEAS,C:\EXCELCPI\,NMPRU +ENDM,241096,123752 EndAPI
Las líneas que comienzan con asterisco son comentarios.
Las líneas de comienzo y fin de API llevan en la primera posición un '+' seguido del nombre de la función (STARTM, comienzo; ENDM, fin).
El resto de las líneas comienzan por el nombre de la función, le sigue la acción y los datos, siempre separados por comas.
La función STARTM, en la segunda línea, lleva información de la fecha en que se solicitó la interface, la hora, el nombre del script, y el modo de apertura o comienzo de API. En este caso la apertura es en modo NOAUTO porque no se busca fichero interface.@XW.
La función OPEN, en la cuarta línea, lleva a su derecha información sobre visibilidad de la hoja durante el proceso de la interface y con *NEW indica creación de una hoja nueva.
La función MOVE, en la línea 5, se traduce por: escribe en la celda correspondiente a la fila 01, columna 02, el dato 'DEMOSTRACION CPI SOFTWARE'.
En la línea 13 hay una función más potente de escritura, mueve todos los datos que se indican entre comas en la misma línea. Es decir, comenzando en la celda de la fila 04, columna 02 se escribe 'NOMBRE', en la celda de la derecha 'DEP'…
La función FONT de la línea 14 va a asociar los siguientes atributos a la línea anterior: hay una orden para establecer el tipo de fuente en TNR, Negrita y Centrado, comenzando en la columna 01 y finalizando en la 10.
La función BORDE de la línea 15 pone un borde de grosor 2 continuo (estilo 1), a las celdas del ámbito columna 02 a 10. Estas funciones requiere una escritura previa, es decir, se esta poniendo borde a los datos de la línea 13.
La línea 16 tiene una función SIZECOL para disminuir el tamaño de la columna 03 en 6 veces menos.
La función SETPRINT hemos visto que tiene varias posibilidades, este caso en la línea 56, incorpora la Fecha y Hora a la cabecera central de la hoja.
En la línea 59 la función SAVEAS da el nombre 'NMPRU' a la hoja y la salva en el path: C:\EXCELCPI\.
Todos los programas deben incluir una rutina principal cuya misión es la de guardar la información de cada función API Excel. Esta información se indica en los parámetros del programa TFXL07B. A continuación se muestra dicha rutina y se explica cada parámetro:
CL0N01N02N03Factor1+++Oper+Factor2+++ResultLonDHMaMeIgComentarios+ C XL@SR1 BEGSR API Excel CPI C MOVE XL@MBI XL@MBI 8 C CALL 'TFXL07B' API Excel CPI C PARM XL@ACC 8 ACCION C PARM XL@ROW 80 ROW - FILA C PARM XL@COL 80 COLUMNA C PARM XL@TIP 1 TIPO DE DATO C PARM XL@ALF250 DATO ALFA C PARM XL@NUM 152 DATO NUMERICO C ENDSR
Cada parámetro contendrá un tipo específico de información:
. XL@ACC contendrá el tipo de función ('*START@' para comienzo de Api, '*ENDPGM@' en finalización de Api, '*ACTION' en funciones de atributos, '*ADD' en escritura de datos..etc).
. XL@ROW contendrá la fila.
. XL@COL contendrá la columna.
. XL@TIP deberá llevar una 'X' para datos alfanumérico, y 'n' número de decimales en el caso de datos numéricos.
. XL@ALF contendrá los datos alfanuméricos.
. XL@NUM contendrá los datos numérico.
Si se solicita una interface desde PC los programas de AS/400 necesitan conocer las respuestas del usuario en el fichero interface.INI. Por ello se reciben los parámetros:
CL0N01N02N03Factor1+++Oper+Factor2+++ResultLonDHMaMeIgComentarios+ C *ENTRY PLIST C PARM XL@MBI 8 MBR INTERF C PARM XL@MPG 1 MODO PGM C PARM XL@R RESPUESTAS C PARM XL@STS 8 ESTADO
donde:
. XL@MBI contiene el nombre de la interface.
. XL@MPG contiene el modo de ejecución (pgmMode del fichero interface.INI).
. XL@R contiene las respuestas (8 respuestas de 30 caracteres cada una).
. XL@STS de uso reservado.
Para facilitar la tarea declaramos XL@R como una serie:
E....Arch(de)Arch(a)+NombreN/rN/tbLonPDSNommatLonPDSComentarios+++ E XL@R 8 30
De esta manera bastarán con moves de XL@R,n a campos que definiremos con las posiciones adecuadas a la longitud del dato respuesta.
Describiremos a continuación los valores de los campos definidos en la rutina XL@SR1 según las diferentes funciones Api Excel:
Comienzo de Api Excel
XL@ACC –> '*START@'
XL@ALF –> 'AUTO' siempre que se soliciten interface desde PC, y desde400
cuando se busca el fichero interface.@XW.
'NOAUTO' desde 400 cuando no se busca el fichero interface.@XW.
XL@ROW –> ' ' para interfaces desde PC. 'script' script= miembro
QAPIXCPI cuando la interface se arranca desde 400.
Fin de Api Excel
Después de la última función Api Excel del programa.
XL@ACC –> '*ENDPGM@'
Mover un dato.
XL@ROW –> '*NAME' cuando en XL@COL hay nombre de celda.
'*NAMETX' cuando en XL@COL hay nombre de cuadro de texto.
'rrr' rrr=fila.
' ' la fila activa.
'+n' la fila activa más n.
XL@COL –> 'ccc' ccc=columna.
' ' la columna activa.
'+n' la columna activa más n.
un nombre de celda.
un nombre de cuadro de texto.
XL@TIP –> 'X' cuando el dato es alfanumérico.
'n' número de deimales en datos numéricos.
XL@ALF –> dato alfanumérico
XL@NUM –> dato numérico.
XL@ACC –> '*WRITE' mueve el dato
'*ADD ' inicia el movimiento de un grupo de datos a la derecha. Debe finalizarse con una acción '*WRITE'
Activar una celda
XL@ACC –> '*ACTION'
XL@COL –> 'POS'
XL@ALF –> nombre de celda
XL@ROW –> '*BLANKS'
Activar una hoja
XL@ACC –> '*ACTION'
XL@COL –> 'SHEET'
XL@ALF –> 'n' número de hoja.
XL@ROW –> '*BLANKS'
Insertar una fila
Insertar una fila antes de la fila que tenga una celda con el nombre indicado en XL@ALF.
XL@ACC –> '*ACTION'
XL@COL –> 'INSERT'
XL@ALF –> nombre de celda.
XL@ROW –> '*BLANKS'
Definir un Font, atributos y colores
XL@ACC –> '*ACTION'
XL@COL –> 'FONT'
XL@ALF –> variable de 15 posiciones que se desglosan de la siguiente
manera:
01-04 Nombre de Font (ARI- o TNR- o MSS- MSSS CNEW WING o ---- para no cambiar) 05-05 - (un guión) 06-07 sizeFont. Admite entre 05 y 50 (00 para no cambiar). Admite también +n y -n para aumentar o disminuir el tamaño. 08-10 Atributos N=Negrita, I=Itálica, S=Subrayado, F=Relleno izda/dcha, C=Centrar, R=Dcha, L=Izq, CV=Ajuste horiz + vert. 11-12 colorTexto de 00 a 15 ó -- para no cambiar 13-14 colorFondo de 00 a 15 ó -- para no cambiar. . Colores válidos: 00=Negro 01=Azul 02=Verde 03=Cy 04=Rosa 05=Mag 06=Ama 07=Blan 08=Gris 09=Az+ 10=Ver+ 11=Cy+ 12=Ros+ 13=Mag+ 14=Bl+
XL@ROW –> una variable de 5 posiciones que se desglosa de la siguiente
manera: * 01-02 Columna desde (como 01,04...) * 03-04 Columna hasta (07, 09...) . * 05-05 'C' para cambiar atributos a una columna (o columnas) entera si esta posición está a blancos el Font es para la celda activa
Borde alrededor de una o varias celdas de una fila
XL@ACC –> '*ACTION'
XL@COL –> 'BORDE'
XL@ALF –> variable de 5 posiciones desglosadas de la siguiente forma:
XL@ROW –> variable de 4 posiciones conteniendo 'ddhh', columna desde
hasta. Puede combinarse una orden de Borde con otra de FONT para el fondo del texto.
Borde alrededor sin verticales entre las celdas
XL@ACC –> '*ACTION'
XL@COL –> 'BORDEA'
XL@ALF –> variable de 5 posiciones desgolsadas de la siguiente forma:
XL@ROW –> variable de 4 posiciones conteniendo 'ddhh', columna desde
hasta.
Pausa
XL@ACC –> '*ACTION'
XL@COL –> 'PAUSA'
XL@ALF –> Contenido del mensaje.
XL@ROW –> '*BLANKS'
Edición en contenido de celdas
XL@ACC –> '*ACTION'
XL@COL –> 'FORMAT'
XL@ALF –> código de edición en modo Excel, por ejemplo:
XL@ROW –> columna desde hasta 'ddhhC' si en la 5° posición se incluye
una 'C' se formatea la columna o columnas indicadas. Sin la 'C' se formatea la celda o celdas correspondiente a la columna o columnas indicadas en la fila activa.
Aumento o Disminución del Ancho de columnas
XL@ACC –> '*ACTION'
XL@COL –> 'SIZECOL'
XL@ALF –> Admite n, +n y -n para aumentar disminuir tamaño. Y '00' para
ajuste al dato.
XL@ROW –> Columna desde hasta 'ddhh'. Una columna tipo de Excel tiene
un tamaño de 12 aproximadamente.
Crear cuadro de texto
XL@ACC –> '*ACTION'
XL@COL –> 'CRTTX'
XL@ALF –> nombre del cuadro de texto.
XL@ROW –> '079015' dimensiones iniciales.
Cuando se le mueve contenido al cuadro se dispone de ajuste automático.
Pegar una imágen (Logos, Fotos…)
XL@ACC –> '*ACTION'
XL@COL –> 'IMAGE'
XL@ALF –> nombre del fichero sin extensión que contiene la imágen.
XL@ROW –> '*BLANKS' el fichero está en el directorio de los programas
API, '*USER' el fichero está en el directorio USER que se encuentra debajo del de los programas. 'algo' path del fichero.
Aumento del Alto de una fila
XL@ACC –> '*ACTION'
XL@COL –> 'SIZEROW'
XL@ALF –> admite n, y +n, para aumentar el alto de una fila.
Supresión de una fila
Supresión de una fila que tiene una celda con el nombre que se indica:
XL@ACC –> '*ACTION'
XL@COL –> 'DELROW'
XL@ALF –> nombre de celda.
XL@ROW –> '*BLANKS'
Supresión de una columna
Se puede suprimir una columna en la que hay una celda con nombre indicado en XL@ALF o se puede indicar el n° de columna directamente en dicho parámetro.
XL@ACC –> '*ACTION'
XL@COL –> 'DELCOL'
XL@ALF –> nombre de celda, o n° de columna
XL@ROW –> '*BLANKS'
Supresión de un cuadro de texto
XL@ACC –> '*ACTION'
XL@COL –> 'DELTX'
XL@ALF –> nombre del cuadro de texto.
XL@ROW –> '*BLANKS'
Apertura de una hoja
XL@ACC –> '*ACTION' XL@COL –> 'OPEN'
XL@ALF –> 'VISIBLE' la hoja permanece visible durante la interface. 'MIN' la hoja permanece minimizada durante la interface. 'HIDE' la hoja permanece oculta durante el proceso.
XL@ROW –> '*NEW' obligatorio en hojas creadas completamente nuevas desde
el AS/400. '*BLANKS' en el resto.
Cierre de una hoja
XL@ACC –> '*ACTION' XL@COL –> 'CLOSE'
XL@ALF –> 'Y' Se cierra la hoja al finalizar la interface. 'N' Se deja la hoja abierta al finalizar la interface. '?' Pregunta al usuario la acción a tomar.
XL@ROW –> '*BLANKS'
Salvar la hoja Excel
XL@ACC –> '*ACTION' XL@COL –> 'SAVEAS'
XL@ALF –> '*SOURCE' se salva en el path de la hoja base indicado en el
fichero interface.INI. '*TARGET' se salva en el path del TARGET. '*PGM' se salva en el path de los programas API de PC. '*EXCEL' se salva en el directorio Excel. 'algo' se salva en este path.
XL@ROW –> Nombre de hoja excel sin extensión.
Salvar la hoja en el TARGET
XL@ACC –> '*ACTION' XL@COL –> 'SAVE' XL@ALF –> '*BLANKS' XL@ROW –> '*BLANKS'
Opciones de Impresión
XL@ACC –> '*ACTION' XL@COL –> 'SETPRINT'
XL@ALF –>
un texto para encabezados y pies de página de la hoja. Se admiten los siguientes controles: I&=Itálica &B=Bold &U=Underline &D=Date &T=Time &F=File &A=TabName &P=Page &N=Pages *PATH=Dir *USER1=EmpreReg *USER2=UsuarReg
XL@ROW –> '*BLANKS'
'Y' 'N' '?' 'Rn:Rn' o 'Ln:Ln' o '$n:$n' ámbito de cabeceras a repetir. 'A:C' ámbito de columnas a repetir. 'CAB1' cabecera izquierda de la página. 'CAB2' cabecera central " 'CAB3' cabecera derecha " 'PIE1' pie izquierdo " 'PIE2' pie central " 'PIE3' pie derecho "
'núm.medición' para márgenes en 1/72 de pulgada: 72=pulgada (2.4 cm) 36=media(1.8 cm) 18=cuarto (0.6 cm)
Una vez movida la información a los campos precisos, se debe ejecutar la rutina XL@SR1.
HISTORICO DE CAMBIOS
Se incorpora una función para pegar imagenes en las hojas de cálculo:
@XL Action('Image') Data(file) Data2(' ')
Se incorpora una función que crea cuadros de texto:
@XL Action('crttx') Data(nombre) Data2('wwwhhh')
Se incorpora una función transmisión de información desde una Nota
asignada a una celda a los programas de AS/400. Ejecutando I@XL04.exe
tenemos la posibilidad de crear un miembro en QAPIXCPI que comienza por
Z¤ seguido de un nombre que por omisión es el nombre de la hoja. Primero
se procesa la hoja seleccionada y a continuación se transfiere la
información al 400. Los programas de 400 deberán tener en cuenta la
información de este miembro para cuando el usuario varíe las notas en la
hoja no tener que hacer cambios en el programa. Si el usuario realiza
cambios en las notas debe procesar y transferir de nuevo la información
mediante I@XL04.exe.
Se amplía la función de supresión de columna. Ahora se puede también suprimir un n° columna indicado en el parámetro Data.
@XL Action('DELCOL') Data(nomcelda) Data2(' ')
La función 'sizeCol' no necesita escritura previa.
Nuevo soporte de alineación de líneas en la función 'Font': . CV=Ajuste Horiz + Vert.
Nueva función 'SetPrint' para repetir cabeceras:
@XL Action('SetPrint') Data('RepCab') Data2('Rn:Rn')
SetPrint para Definir Margenes del papel.
@XL Action('SetPrint') Data('Marg?') Data2(numero) permite indicar el numero de puntos de impresora (en medicion 1/72 de pulgada) a usar como margen del papel.
El ejemplo ? debe cambiarse por 1 a 4 segun las agujas de reloj: 1=Izquierdo 2=Arriba 3=Derecho 4=Abajo. En cuanto a la medicion 72=Pulgada (2.4 cm) 36=Media (1.2 cm) 18=cuarto (0.6 cm).
Esta operacion puede usarse para extremar el uso de papel, de forma que entre alguna columna más de las que permite excel por omision. debe recordarse que un buen efecto se consigue con SetPrint CenterV y SetPrint CenterH para centrar el informe en el papel.
Nueva función SetPrint para repetir Columnas.
@XL Action('SetPrint') Data('RepCol') Data2('A:B') Esta funcion (que tiene su pareja en RepRow para repetir filas) permite indicar que al imprimir se repitan siempre ciertas columnas (las dos primeras en el ejemplo).
Nota: son sinonimos RepiteCol, RepCol para repetir columnas. de igual
modo que RepiteCab, RepCab, RepRow para repetir filas.
Modo adicional de conexion Host - PC
El modo de conexion que usa API Excel por defecto es APPC directo, pero hay algunos entornos donde es dificil o imposible conseguir la configuracion adecuada, por lo que se cuenta con un metodo alternativo que consiste en usar cualquier programa de transferencia de ficheros, tal como aquellos incluidos en la mayor parte de programas de emulacion o de conectividad al 400.
El modo Transfer debe ser configurado especialmente segun el programa de transferencia a usar. Se incluyen algunos ejemplos que pueden usarse como basel, aunque esto depende de los productos que esten instalados en el PC asi como de la forma en que se instalaran.
Se amplía la funcionalidad de sizeCol para ajuste al dato: Para incorporar esta nueva función poner en el parámetro Data el valor '00'.
Se incorpora la funcionalidad de “pegado”, importante en fórmulas. Por ejemplo para sumas de varias celdas:
En Excel la función suma de celdas sería: =SUMA(E025;E035;….;E055;E075)
Se permite el fraccionamiento de esta función, de la siguiente manera: un primer movimiento de dato con la primera parte que puede englobar una o mas celdas terminando con un paréntesis de cierre: =SUMA(E025;E035;……)
Los siguientes movimientos “para pegar” se deben escribir comenzando con
dos veces el símbolo igual( y terminando con un paréntesis de cierre: ==;E055;E075)
Se amplian los datos fila, columna de 10 a 80 posiciones. Y el dato a 250 posiciones.
Fin del Manual