Tipos De Campo Acl - Buenos Aires Ciudad

   EMBED

Share

Preview only show first 6 pages with water mark for full document please download

Transcript

ACL™ Versión 7 Manual de Referencia ACL Services Ltd. 1550 Alberni Street Vancouver, BC, Canada V6G 1A5 Tel: +1-604-669-4225 Fax: +1-604-669-3557 E-mail: [email protected] Web: www.acl.com ACL Europe S.A. Ringlaan 39 bus 3 1853 Strombeek-Bever, Belgium Tel: +32-2-642-22-90 Fax: +32-2-642-22-91 E-mail: [email protected] Web: www.acl.com AWDS107087 ACL™ 50 Kallang Avenue #07-05 Noel Corporate Building Singapore 339505 Tel: +65-299-3350 Fax: +65-299-5110 E-mail: [email protected] Web: www.acl.com para Windows ACL Services (Singapore) Pte. Ltd. Manual de Referencia ACL para Windows ™ Versión 7 Manual de Referencia ACL para Windows ™ Versión 7 “Copyright” © 2002 ACL Services Ltda. Reservados todos los derechos. Ninguna parte de esta publicación puede reproducirse, almacenarse en un sistema de recuperación o transmitirse bajo cualquier forma o por cualquier medio (fotocopia, electrónico, mecánico, grabación u otro), sin la autorización por escrito de la editora, excepto por críticos que pueden citar pequeños tramos como reseñas. Este manual contiene informaciones con fechas. El uso de estos materiales se basa en el hecho de que este manual no contiene toda la información, ni la información más actualizada relativa a la situación o a la aplicación prevista. ACL pone a su disposición, mediante un contrato escrito e independiente, servicios de soporte técnico y de actualización. Publicado en junio de 2002 por: ACL Services Ltd. 1550 Alberni Street Vancouver, BC Canadá V6G 1A5 Teléfono: +1-604-669-4225 Fax: +1-604-669-3557 Correo electrónico: [email protected] Web: www.acl.com Para ser utilizado con ACL para Windows Versión 7,2 Impreso en Canadá 10 9 8 7 6 5 4 3 2 1 ACL y "Audit Command Language" son marcas registradas de ACL o de cualquiera de sus subsidiarias o licenciadores. Microsoft, Windows, el logotipo de Windows y Windows NT son marcas registradas de Microsoft Corporation. SAP es una marca registrada de SAP AG. Las otras marcas o productos mencionados en el software, o que están asociados al mismo, son marcas comerciales o registradas de sus respectivos titulares y deben considerarse como tales. El uso de un término en el manual no debe considerarse como que afecta a la validez de una marca comercial o de servicio. iii Contenido Acerca de este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Capítulo 1: Tipos de campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Categorías de datos ................................................................................... 5 Datos del carácter .............................................................................. 5 Datos numéricos ............................................................................... 5 Datos lógicos ..................................................................................... 5 Datos de fecha ................................................................................... 5 Tipos de campo ACL ................................................................................ 6 Tipos de datos y tipos de campo ACL ..................................................... 7 ACCPAC ................................................................................................... 8 ACL ........................................................................................................... 8 ASCII ........................................................................................................ 9 BASIC ....................................................................................................... 9 Binary (Binario) ........................................................................................ 9 Custom (Personalizada) ......................................................................... 10 Date (Fecha) ........................................................................................... 11 Fechas en blanco o no válidas ......................................................... 11 Año de dos dígitos .......................................................................... 12 Fechas en serie ................................................................................. 12 Fechas en campos numéricos comprimidos .................................. 12 Formatos de fecha ........................................................................... 14 Convenciones de formato de fecha ................................................ 15 Sintaxis del modo comando ........................................................... 15 EBCDIC .................................................................................................. 15 Float (Flotante) ....................................................................................... 16 Halfbyte (Medio byte) ............................................................................ 16 IBMfloat .................................................................................................. 17 Logical (Lógico) ...................................................................................... 17 Micro ...................................................................................................... 17 Numeric (Numérico) ............................................................................. 18 Packed (Compactado) ........................................................................... 18 Las fechas en campos numéricos compactados ............................. 19 Códigos de siglo en campos de fecha compactados ....................... 19 iv Contenido PCASCII ................................................................................................. Print (Imprimir) .................................................................................... Unisys ..................................................................................................... Unsigned (Sin signo) ............................................................................. VAXfloat ................................................................................................ Zoned (Zonado) .................................................................................... 21 21 22 22 23 23 Capítulo 2: Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Resumen de funciones ........................................................................... ABSOLUTE( ) ........................................................................................ AGE( ) .................................................................................................... ALLTRIM( ) ........................................................................................... ASCII( ) .................................................................................................. AT( ) ....................................................................................................... BETWEEN( ) ......................................................................................... BIT( ) ...................................................................................................... BLANKS( ) ............................................................................................. BYTE( ) .................................................................................................. CDOW( ) ............................................................................................... CHR( ) .................................................................................................... CLEAN( ) ............................................................................................... CTOD( ) ................................................................................................. DATE( ) .................................................................................................. DECIMALS( ) ........................................................................................ DIGIT( ) ................................................................................................. DOW( ) .................................................................................................. DOW(`19991124`) = 4 .......................................................................... EBCDIC( ) .............................................................................................. EFFECTIVE( ) ....................................................................................... EXCLUDE( ) .......................................................................................... EXPONENT( ) ....................................................................................... FILESIZE( ) ............................................................................................ FIND( ) ................................................................................................... FREQUENCY( ) .................................................................................... FTYPE( ) ................................................................................................ FVANNUITY( ) ..................................................................................... FVLUMPSUM( ) ................................................................................... HEXADECIMAL( ) ............................................................................... INCLUDE( ) ........................................................................................... 25 30 30 31 32 32 34 35 37 37 38 38 39 40 41 42 43 44 44 44 44 45 46 46 47 49 50 51 52 52 53 Contenido INSERT( ) ............................................................................................... 54 INTEGER( ) ............................................................................................ 54 ISBLANK( ) ............................................................................................ 55 LAST( ) ................................................................................................... 56 LEADING( ) ........................................................................................... 56 LENGTH( ) ............................................................................................. 57 LOGARITHM( ) ..................................................................................... 57 LOWER( ) ............................................................................................... 58 LTRIM( ) ................................................................................................ 59 MAP( ) .................................................................................................... 59 MASK( ) .................................................................................................. 61 MATCH( ) .............................................................................................. 61 MAXIMUM( ) ........................................................................................ 63 MINIMUM( ) ......................................................................................... 64 MOD( ) ................................................................................................... 64 NOMINAL( ) .......................................................................................... 65 NPER( ) .................................................................................................. 66 OCCURS( ) ............................................................................................. 66 OFFSET( ) ............................................................................................... 67 PACKED( ) ............................................................................................. 68 PMT( ) .................................................................................................... 68 PROPER( ) .............................................................................................. 70 PVANNUITY( ) ..................................................................................... 70 PVLUMPSUM( ) .................................................................................... 71 RAND( ) o RND( ) ................................................................................. 72 RATE( ) .................................................................................................. 72 RECLEN( ) .............................................................................................. 73 RECNO( ) ............................................................................................... 74 RECOFFSET( ) ....................................................................................... 75 REMOVE( ) ............................................................................................ 76 REPEAT( ) .............................................................................................. 77 REPLACE( ) ........................................................................................... 78 REVERSE( ) ............................................................................................ 79 RJUSTIFY( ) ........................................................................................... 80 ROOT( ) .................................................................................................. 80 ROUND( ) .............................................................................................. 80 SHIFT( ) .................................................................................................. 81 SOUNDEX( ) .......................................................................................... 82 SOUNDSLIKE( ) .................................................................................... 82 v vi Contenido SPLIT( ) .................................................................................................. STRING( ) .............................................................................................. SUBSTRING( ) ...................................................................................... TEST( ) ................................................................................................... TIME( ) .................................................................................................. TRANSFORM( ) .................................................................................... TRIM( ) .................................................................................................. UNSIGNED( ) ........................................................................................ UPPER( ) ................................................................................................ VALUE( ) ............................................................................................... VERIFY( ) .............................................................................................. ZONED( ) .............................................................................................. ZSTAT( ) ................................................................................................ 83 83 84 85 86 87 87 88 88 89 90 90 91 Capítulo 3: Parámetros de comandos comunes . . . . . . . . . . . . . . . . 95 All (Todos) ............................................................................................. 95 Append (Anexar) ................................................................................... 96 As (Como) .............................................................................................. 96 Ascending (Ascendente) ....................................................................... 97 Break (Salto) .......................................................................................... 98 Descending (Descendente) ................................................................... 99 End of File (Fin de archivo) .................................................................. 100 File (Archivo) ........................................................................................ 102 File Type (Tipo de archivo) .................................................................. 102 First (Primero) ...................................................................................... 103 Footer (Pie de página) .......................................................................... 104 Graph (Gráfico) .................................................................................... 105 Header (Encabezado) ........................................................................... 106 If (Si) ...................................................................................................... 107 Key (Clave) ............................................................................................ 107 Local (Lugar) ......................................................................................... 108 Name (Nombre) ................................................................................... 109 Next (Siguiente) .................................................................................... 109 Nodups (Sin duplicados) ...................................................................... 110 Nozeros (Sin ceros) ............................................................................... 111 Open (Abrir) ......................................................................................... 111 Page (Página) ........................................................................................ 112 Picture (Figura) ..................................................................................... 112 Print (Imprimir) ................................................................................... 112 Contenido Record (Registro) ................................................................................. 113 Screen (Pantalla) .................................................................................. 114 Suppress (Suprimir otros) .................................................................... 114 To (A) ................................................................................................... 115 Use Output File (Usar archivo de salida) ............................................ 116 While (Mientras) .................................................................................. 117 Width (Ancho) ..................................................................................... 118 Capítulo 4: Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Accept (Aceptar) .................................................................................. 121 Cuadros de diálogo creados con Aceptar ..................................... 122 Parámetros .................................................................................... 122 Sintaxis del modo comando ......................................................... 122 Activate (Activar) ................................................................................. 127 Ventana Panorama ....................................................................... 127 Parámetros .................................................................................... 127 Sintaxis del modo comando ......................................................... 128 Age (Antigüedad) ................................................................................. 130 Parámetros .................................................................................... 130 Cuadro de diálogo Antigüedad .................................................... 131 Sintaxis del modo comando ......................................................... 135 Assign (Asignar) ................................................................................... 136 Parámetros .................................................................................... 136 Sintaxis del modo comando ......................................................... 137 Benford ................................................................................................. 138 Parámetros .................................................................................... 138 Entrada .......................................................................................... 139 Salida ............................................................................................. 139 Cuadro de diálogo Benford .......................................................... 140 Sintaxis del modo comando ......................................................... 141 Calculate (Calcular) .............................................................................. 143 Prerrequisitos ................................................................................ 143 Parámetros .................................................................................... 143 Sintaxis del modo comando ......................................................... 143 Classify (Clasificar) .............................................................................. 145 Parámetros .................................................................................... 145 Salida del comando ....................................................................... 146 Cuadro de diálogo Clasificar ........................................................ 146 Sintaxis del modo comando ......................................................... 148 vii viii Contenido Close (Cerrar) ....................................................................................... 149 Sintaxis del modo comando .......................................................... 149 Comment (Comentario) ...................................................................... 151 Cuadro de diálogo Comentario .................................................... 151 Sintaxis del modo comando .......................................................... 151 Count (Contar) ..................................................................................... 153 Parámetros ..................................................................................... 153 Cuadro de diálogo Contar ............................................................. 153 Sintaxis del modo comando .......................................................... 154 Cross Tabulate (Tabla cruzada) ........................................................... 155 Ejemplo .......................................................................................... 155 Cuadro de diálogo Tabla cruzada ................................................. 157 Parámetros ..................................................................................... 157 Sintaxis del modo comando .......................................................... 158 Define Field (Definir campo) ............................................................... 159 Parámetros ..................................................................................... 159 Sintaxis del modo comando .......................................................... 159 Define Relations (Definir relaciones) ................................................... 163 Define Report (Definir reporte) ........................................................... 164 Sintaxis del modo comando .......................................................... 164 Delete (Eliminar) .................................................................................. 165 Parámetros ..................................................................................... 165 Sintaxis del modo comando .......................................................... 166 Dialog (Diálogo) ................................................................................... 168 Generador de diálogo .................................................................... 168 Crear un cuadro de diálogo personalizado ................................... 169 Controles ....................................................................................... 171 Editar controles ............................................................................. 178 Eliminación de controles ............................................................... 178 Editar un cuadro de diálogo personalizado .................................. 178 Sintaxis del modo comando .......................................................... 180 Directory (Directorio) .......................................................................... 183 Parámetros ..................................................................................... 183 Sintaxis del modo comando .......................................................... 184 Display (Mostrar) ................................................................................. 185 Parámetros ..................................................................................... 185 Sintaxis del modo comando .......................................................... 186 Do Batch (Ejecutar lote) ....................................................................... 188 Parámetros ..................................................................................... 188 Contenido Cuadro de diálogo ejecutar lote .................................................... 188 Sintaxis del modo comando ......................................................... 190 Do Report (Generar reporte) ............................................................... 191 Sintaxis del modo comando ......................................................... 191 Dump (Vaciar) ..................................................................................... 192 Parámetros .................................................................................... 192 Cuadro de diálogo Vaciar ............................................................. 194 Sintaxis del modo comando ......................................................... 194 Duplicates (Duplicados) ...................................................................... 196 Parámetros .................................................................................... 196 Cuadro de diálogo Duplicados ..................................................... 196 Else (Otro) ............................................................................................ 197 Parámetros .................................................................................... 197 Cuadro de diálogo Otro ................................................................ 197 Sintaxis del modo comando ......................................................... 198 End (Fin) .............................................................................................. 199 Sintaxis del modo comando ......................................................... 199 Evaluate (Evaluar) ................................................................................ 200 Evaluación de muestreo de registros ............................................ 201 Evaluación de muestreo monetario .............................................. 201 Parámetros .................................................................................... 202 Cuadro de diálogo Evaluar ........................................................... 203 Sintaxis del modo comando ......................................................... 206 Export (Exportar) ................................................................................. 207 Crear archivos MS Excel y MS Access .......................................... 207 Exportar de XML .......................................................................... 208 Utilizar Exportar con el Sistema ACL Cliente/Servidor .............. 208 Exportar archivos seleccionados o la vista ................................... 208 Parámetros .................................................................................... 208 Cuadro de diálogo Exportar ......................................................... 209 Sintaxis del modo comando ......................................................... 210 Extract (Extraer) ................................................................................... 211 Parámetros .................................................................................... 211 Cuadro de diálogo Extraer ............................................................ 212 Sintaxis del modo comando ......................................................... 214 Fieldshift (Desplazar campos) ............................................................. 215 Parámetros .................................................................................... 215 Botón Desplazar campos .............................................................. 216 Sintaxis del modo comando ......................................................... 217 ix x Contenido File History (Historia del archivo) ....................................................... 218 Elemento del menú Historia del archivo ...................................... 218 Sintaxis del modo comando .......................................................... 219 Find (Buscar literal) .............................................................................. 220 Prerrequisitos ................................................................................ 220 Sintaxis del modo comando .......................................................... 220 Gaps (Faltantes) .................................................................................... 222 Parámetros ..................................................................................... 222 Cuadro de diálogo Faltantes ......................................................... 222 Group (Grupo) ..................................................................................... 224 Parámetros ..................................................................................... 224 Cuadro de diálogo Grupo ............................................................. 224 Sintaxis del modo comando .......................................................... 225 Grupos sencillos ............................................................................ 226 Grupos condicionales .................................................................... 226 Grupos anidados ........................................................................... 227 Variables en grupos ....................................................................... 228 Help (Ayuda) ........................................................................................ 230 Botón Ayuda .................................................................................. 230 Sintaxis del modo comando .......................................................... 230 Histogram (Histograma) ...................................................................... 231 Parámetros ..................................................................................... 231 Cuadro de diálogo Histograma ..................................................... 233 Sintaxis del modo comando .......................................................... 237 If (Si) ...................................................................................................... 238 Sintaxis del modo comando .......................................................... 238 Import (Importar) ................................................................................ 239 Importación de Datos externos .................................................... 239 Sintaxis del modo comando .......................................................... 239 Index (Indexar) ..................................................................................... 240 Indexar frente a Ordenar ............................................................... 240 Criterio de ordenamiento ............................................................. 241 Activar índices ............................................................................... 241 Sugerencia sobre índices ............................................................... 242 Filtros y condiciones ..................................................................... 242 Parámetros ..................................................................................... 242 Cuadro de diálogo Indexar ........................................................... 243 Sintaxis del modo comando .......................................................... 246 Join (Unir) ............................................................................................ 247 Contenido Unir frente a Relaciones ................................................................ 247 Opciones de salida del comando Unir ......................................... 248 Nombres del campo del archivo de salida .................................... 250 Ubicaciones del archivo de origen ................................................ 250 Preparación de campos clave ........................................................ 250 Cuadro de diálogo Unir ................................................................ 251 Parámetros .................................................................................... 252 Sintaxis del modo comando ......................................................... 255 List (Lista) ............................................................................................. 257 Parámetros .................................................................................... 257 Sintaxis del modo de comando .................................................... 258 Locate (Localizar) ................................................................................. 260 Parámetros .................................................................................... 260 Sintaxis del modo comando ......................................................... 260 Loop (Ciclo) ......................................................................................... 262 Parámetros .................................................................................... 262 Cuadro de diálogo Ciclo ............................................................... 262 Sintaxis del modo comando ......................................................... 263 Merge (Combinar) ............................................................................... 264 Prerrequisitos ................................................................................ 264 Parámetros .................................................................................... 265 Cuadro de diálogo Combinar ....................................................... 265 Sintaxis del modo comando ......................................................... 267 Notify (Notificar) ................................................................................. 268 Parámetros .................................................................................... 268 Cuadro de diálogo Notificar ......................................................... 269 Sintaxis del modo comando ......................................................... 270 Open (Abrir) ........................................................................................ 271 Ventana Panorama ....................................................................... 271 Cuadro de diálogo Seleccione la definición del archivo de entrada ...................................................................................... 271 Parámetros .................................................................................... 271 Sintaxis del modo comando ......................................................... 273 Password (Contraseña) ........................................................................ 275 Sintaxis del modo comando ......................................................... 275 Pause (Pausa) ........................................................................................ 276 Parámetros .................................................................................... 276 Sintaxis del modo comando ......................................................... 276 Print (Imprimir) ................................................................................... 277 xi xii Contenido Sintaxis del modo comando .......................................................... 277 Profile (Perfil) ....................................................................................... 278 Parámetros ..................................................................................... 278 Cuadro de diálogo Perfil ............................................................... 279 Sintaxis del modo comando .......................................................... 280 Quit (Salir) ............................................................................................ 281 Sintaxis del modo comando .......................................................... 281 Random (Aleatorios) ............................................................................ 282 Parámetros ..................................................................................... 282 Cuadro de diálogo Aleatorio ......................................................... 283 Sintaxis del modo comando .......................................................... 285 Refresh (Actualizar) .............................................................................. 286 Parámetros ..................................................................................... 286 Actualizar a partir del botón de Archivo de Origen ..................... 286 Sintaxis del modo comando .......................................................... 286 Relations (Relaciones) .......................................................................... 288 Archivos padre e hijo .................................................................... 288 Prerequisitos de los archivos relacionados ................................... 289 Seleccionar campos clave .............................................................. 289 Normalizar campos clave .............................................................. 290 Elegir archivos relacionados ......................................................... 290 Planificar relaciones entre archivos de datos ................................ 290 Cuadro de diálogo Relaciones ....................................................... 293 Relacionar archivos ....................................................................... 294 Acceder a campos relacionados .................................................... 295 Modificar relaciones ...................................................................... 297 Eliminar relaciones ........................................................................ 297 Sintaxis del modo comando .......................................................... 298 Rename (Renombrar) ........................................................................... 301 Prerrequisitos ................................................................................ 301 Parámetros ..................................................................................... 301 Sintaxis del modo comando .......................................................... 302 Report (Reporte) .................................................................................. 304 Personalizando reportes ................................................................ 304 Prerrequisitos ................................................................................ 304 Parámetros ..................................................................................... 305 Cuadro de diálogo Reporte ........................................................... 306 Sintaxis del modo comando .......................................................... 308 Sample (Muestreo) ............................................................................... 309 Contenido Desviación de muestreo ................................................................ 309 Tipo de muestra ............................................................................ 310 Muestreo de intervalo fijo ............................................................. 311 Muestreo de celda ......................................................................... 311 Muestreo aleatorio ........................................................................ 311 Parámetros .................................................................................... 314 Cuadro de diálogo Muestreo ........................................................ 317 Sintaxis del modo comando ......................................................... 321 Save (Guardar) ..................................................................................... 322 Parámetros .................................................................................... 322 Sintaxis del modo comando ......................................................... 322 Search (Buscar) ..................................................................................... 324 Parámetros .................................................................................... 324 Cuadro de diálogo Buscar ............................................................. 326 Sintaxis del modo comando ......................................................... 329 Seek (Hallar) ......................................................................................... 330 Prerrequisitos ................................................................................ 330 Sintaxis del modo comando ......................................................... 330 Sequence (Secuencia) ........................................................................... 331 Parámetros .................................................................................... 331 Cuadro de diálogo Secuencia ....................................................... 333 Sintaxis del modo comando ......................................................... 336 Set (Definir) .......................................................................................... 337 Preferencias equivalentes .............................................................. 337 Sin preferencias equivalentes ........................................................ 338 Size (Tamaño) ...................................................................................... 344 Tamaños de muestras ................................................................... 344 Parámetros .................................................................................... 345 Cuadro de diálogo Tamaño .......................................................... 347 Sintaxis del modo comando ......................................................... 352 Sort (Ordenar) ...................................................................................... 353 Ordenamiento frente a indexación .............................................. 353 Requisitos de espacio en el disco .................................................. 354 Clasificar frente a ordenar y resumir ............................................ 354 Parámetros .................................................................................... 355 Cuadro de diálogo Ordenar .......................................................... 355 Sintaxis del modo comando ......................................................... 357 Statistics (Estadísticas) ......................................................................... 358 Parámetros .................................................................................... 358 xiii xiv Contenido Cuadro de diálogo Estadísticas ..................................................... 359 Sintaxis del modo comando .......................................................... 362 Stratify (Estratificar) ............................................................................. 363 Parámetros ..................................................................................... 363 Cuadro de diálogo Estratificar ...................................................... 364 Salida del comando ....................................................................... 367 Sintaxis del modo comando .......................................................... 368 Summarize (Resumir) .......................................................................... 369 Prerrequisitos ................................................................................ 369 Parámetros ..................................................................................... 370 Cuadro de diálogo Resumir .......................................................... 370 Sintaxis del modo comando .......................................................... 373 Tape (Cinta) .......................................................................................... 374 Parámetros ..................................................................................... 374 Sintaxis del modo comando .......................................................... 375 Top (Superior) ...................................................................................... 376 Sintaxis del modo comando .......................................................... 376 Total (Totalizar) .................................................................................... 377 Parámetros ..................................................................................... 377 Cuadro de diálogo Totalizar ......................................................... 377 Sintaxis del modo comando .......................................................... 379 Verify (Verificar) .................................................................................. 380 Parámetros ..................................................................................... 381 Cuadro de diálogo Verificar .......................................................... 381 Sintaxis del modo comando .......................................................... 383 Apéndice A: Como usar la utilidad ACL . . . . . . . . . . . . . . . . . . . . . 385 Convirtiendo del OS/390 for Windows ............................................... 385 Mensajes de conversión ................................................................ 387 Mensajes informativos .................................................................. 388 Mensajes de error .......................................................................... 388 Mensajes de error grave ................................................................. 389 Uso de archivos convertidos OS/390 ................................................... 389 Lotes ............................................................................................... 390 Archivos de formato ...................................................................... 390 Reporte .......................................................................................... 391 Apéndice B: Trabajar con la cinta . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 Adquisición de un sistema de unidad de cinta .................................... 393 Contenido Componentes del sistema de unidad de cinta .............................. 394 Antes de iniciar ..................................................................................... 395 Como están organizados los datos en la cinta ..................................... 396 Conjuntos de datos y marcas de archivo ...................................... 396 Colocación de la cinta ................................................................... 397 Alternancia entre una cinta y un disco ......................................... 398 Trabajo con archivos de cintas ............................................................. 398 Creación de una definición del archivo de entrada ..................... 399 Procesar archivos de la cinta ......................................................... 399 Solucionar problemas de la cinta ......................................................... 399 Apéndice C: Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 xv xvi Contenido 1 Acerca de este manual Este manual presenta informaciones detalladas sobre: ■ Tipos de campos de ACL ■ Funciones de ACL ■ Comandos de ACL El Manual de referencia de ACL para Windows está dirigido a los usuarios autorizados de ACL. Para adquirir copias adicionales, visite www.acl.com. Publicaciones relacionadas La guía del usuário de ACL para Windows La Guía del usuário de ACL para Windows lo ayudará en el uso inicial de ACL para Windows Versión 7. La presente guía muestra como: ■ Leer o importar datos de los archivos de datos de origen externo. ■ Ver, analizar y reportar datos. ■ Automatizar rutinas analíticas personalizadas. ■ Usar ACL para Windows juntamente con ACL for OS/390 en un ambiente cliente/servidor. La guía del usuário está dirigida a los usuarios autorizados de ACL. Para adquirir copias adicionales, visite www.acl.com. El libro de trabajo de ACL para Windows El libro de trabajo de ACL para Windows (ACL for Windows Workbook) es una guía auto explicativa. Aun siendo nuevo en el espacio de análisis de datos, o ya teniendo una experiencia con ACL, esta guía lo ayudará a dominar y aplicar los conocimientos de ACL para Windows a los problemas del mundo real. El libro de trabajo de ACL para Windows está dirigido a los usuarios autorizados de ACL. Para adquirir copias adicionales, visite www.acl.com. El libro de trabajo sólo está disponible en inglés. 2 ACL para Windows 7 Convenciones de la sintaxis de comando Las siguientes convenciones son usadas para describir la sintaxis de modo de comando, de las funciones y comandos del ACL. Monoespacios Indican la sintaxis de comando usada en la línea de comando o en un lote. Itálica con Monoespacios Indica los elementos especificados por el usuario, por ejemplo, los nombres de campos. Angulares < > Designan los parámetros o selecciones de comandos opcionales. Llaves { } Incluyen un grupo de opciones, de las cuales debe elegirse sólo una. Barras | | | Puntos suspensivos ... Barras verticales separan opciones. Indica que el elemento precedente puede repetirse. ¿Necesita ayuda? Recursos Cuando necesite ayuda en el uso de ACL, consulte estos recursos adicionales: ■ Guía del usuário de ACL para Windows ■ Ayuda en línea de ACL para Windows ■ El libro de trabajo de ACL para Windows ■ El centro de soporte técnico de ACL de su compañía, si está disponible Póngase en contacto con nosotros Cuando no consiga encontrar la solución para su problema y siendo un usuario con derecho a soporte, póngase en contacto con ACL, para obtener asistencia. Antes de ponerse en contacto con ACL, asegúrese de tener en manos las siguientes informaciones: ■ ■ El número de serie de su ACL. Es posible encontrar el número en el reverso del portaCD, o seleccionar Ayuda en ACL para Windows en la barra de menú seleccionando Sobre ACL. El tipo de hardware que está utilizando y si está conectado a una red de área local (LAN). Acerca de este manual ■ ■ 3 Una descripción de lo sucedido y qué estaba haciendo cuando se produjo el problema. El mensaje de error, en caso de haber alguno, presentado por ACL. Centro de soporte en línea Si tiene acceso a Internet (World Wide Web), conéctese al sitio de ACL y haga clic sobre Soporte en línea. Encontrará herramientas y recursos útiles para perfeccionar el uso del ACL. Soporte técnico internacional Las Américas ■ Teléfono: +1-604-669-4997 ■ Fax: +1-604-689-4209 ■ E-mail: [email protected] Europa, Medio Oriente y Africa ■ Teléfono: +32-2-642-22-90 ■ Fax: +32-2-642-22-91 ■ E-mail: [email protected] Asia y Costa del Pacífico ■ Teléfono: +65-6299-3365 ■ Fax: +1-604-689-4209 ■ E-mail: [email protected] ¡Queremos escucharlo! ACL se compromete con el suministro de productos y servicios de calidad para el acceso, análisis y reporte de datos. Para garantizar su continua satisfacción, esperamos recibir sugerencias acerca de las mejoras de ACL para Windows, la documentación de usuarios y Ayuda en línea, que serán bienvenidas. Envíe sus comentarios a nuestro equipo de administración de productos. ■ Teléfono: +1-604-669-4225 ■ Fax: +1-604-669-3557 ■ E-mail: [email protected] 4 ACL para Windows 7 También puede enviar correspondencia a: ACL Services Ltd. 1550 Alberni Street Vancouver, BC Canadá V6G 1A5 Capítulo 1 T IPOS DE CAMPOS ACL reconoce todos los tipos de datos de origen más común, asignando automáticamente un tipo de campo ACL correspondiente. Cada tipo de campo ACL tiene una categoría de datos correspondiente. Categorías de datos Se han desarrollado muchos diseños para representar categorías de datos con el código binario. Estos diseños de codificación se agrupan ampliamente en cuatro categorías: Carácter, Numérico, Lógico y Fecha. En ACL, estas categorías son representadas muchas veces por las letras C, N, L y D. Datos del carácter Los datos del carácter normalmente se utilizan para representar las cadenas de texto o informaciones sobre datos. Cuando los dígitos aparecen en un campo de carácter, ellos son tratados como caracteres de texto, no como números. Datos numéricos Un gran número de tipos de datos se ha desarrollado para representar los datos numéricos. ACL lee cualquier tipo de datos numéricos y tipos de datos, e interpreta la mayoría de los datos no propietarios automáticamente. Datos lógicos Los datos lógicos tienen sólo dos valores, uno para representar Verdadero y otro para representar Falso. Los datos lógicos normalmente están almacenados en un campo de carácter, en un formato igual a T/F, Y/N o On/Off. A veces éste se almacena en un campo numérico o un carácter, donde cero significa Falso y cualquier otro valor significa Verdadero. ACL reconoce la mayoría de los datos lógicos automáticamente. Datos de fecha Normalmente son almacenadas las informaciones sobre fecha, como datos de carácter y a veces como datos numéricos. 5 6 ACL para Windows 7 Tipos de campo ACL Manual de Referencia No existen tipos de datos diseñados específicamente para representar fechas y no hay ninguna convención universal para representar informaciones sobre fechas. ACL reconoce los datos de fecha más legibles. Sin embargo, es necesario especificar manualmente el formato de fecha, cuando los datos estén en un formato comprimido, tal como, un campo compactado. Tipos de campo ACL Dentro de cada categoría de datos, existen diversos tipos de datos, que corresponden a los tipos de campos ACL. Algunos tipos de datos son definidos por los estándares industriales, tal como ASCII. Otros fueron desarrollados para tratar de las necesidades específicas de un fabricante de computadoras o de un desarrollador de programas (software), como IBMFloat o ACCPAC. Categorías de datos y tipos de campo ACL Categoría de datos Tipos de campo ACL Character (Carácter) ASCII EBCDIC Custom (Personalizada) PCASCII Numeric (Numérico) ACL ACCPAC Basic Binary (Binario) Float (Flotante) Halfbyte (Medio byte) IBMFloat Micro Numeric (Numérico) Capítulo 1 Tipos de campos Tipos de datos y tipos de campo ACL Categoría de datos 7 Tipos de campo ACL Packed (Compactado) Print (Imprimir) Unisys Unsigned (Sin signo) Vaxfloat Zoned (Zonado) Logical (Lógico) Logical (Lógico) Date (Fecha) Date (Fecha) Tipos de datos y tipos de campo ACL Al utilizar el Asistente de Definición de Datos para crear una nueva definición del archivo de entrada, ACL asigna un tipo de campo ACL para el tipo de dato de origen. Aunque este proceso es normalmente automático, en algunos casos, se puede definir el tipo de dato de origen utilizando los campos y funciones computados. La tabla mostrada abajo hace una referencia entre de una serie de tipo de datos, de origen común con sus tipos de campo ACL correspondientes. Además de los tipos de datos listados en esta tabla, ACL soporta varios tipos de datos propietarios, tales como, los campos compactados VAXfloat y Unisys, así como, los tipos de datos numéricos exclusivos para el sistema contable ACCPAC. ACL también tiene un tipo de campo propio para almacenar los resultados de los campos computados y los valores de las variables en archivos de datos de salida. Tipos de datos de origen y tipos de campo ACL Tipo de dato de origen Tipos de campo ACL Character (Carácter) ASCII o EBCDIC PIC X (COBOL) ASCII o EBCDIC String (Cadena) (BASIC) ASCII o EBCDIC 8 ACL para Windows 7 ACCPAC Manual de Referencia Tipo de dato de origen Tipos de campo ACL Computational-1 (Computacional-1) (COBOL) Binary (Binario) Computational-3 (Computacional-3) (COBOL) Packed (Compactado) PIC 999 (COBOL) Zoned (Zonado) Fixed Binary (Binario fijo) (PL/1) Binary (Binario) Fixed Decimal (Decimal fijo) (PL/1) Compactado Integer (Número entero) (más micros) Micro (longitud 2) Integer (Número entero) (más mini/unidades centrales) Binary (Binario) o Micro (longitud 2) Long (Largo) Integer (Número entero) o Micro (longitud 4) Real Float (Flotante) Single Precision (Precisión única) (BASIC) BASIC (longitud de 4) Double Precision (Precisión doble) (BASIC) BASIC (longitud de 8) ACCPAC Lee campos numéricos en archivos de datos ACCPAC. Este tipo de campo se refiere al formato numérico utilizado en las secuencias ACCPAC de los paquetes de contabilidad. La longitud de este campo de datos es siempre 6 bytes (ACL anula cualquier otra longitud especificada). ACL Lee los valores de los campos computados generados por ACL y las variables almacenadas en un archivo de datos. El tipo de campo ACL es un campo de 8 ó 12 bytes que almacena los resultados computados de ACL. Está diseñado para almacenar números grandes y no es un campo imprimible. No es necesario definir un tipo de campo ACL, ya que ACL lo hace automáticamente. Capítulo 1 Tipos de campos ASCII 9 ASCII Lee los datos codificados según el Código Estándar Americano para Intercambio de información (ASCII, American Standard Code for Information Interchange). ASCII es una convención de codificación especial para caracteres. Es el conjunto de caracteres nativos de la mayoría de las microcomputadoras y de todas las computadoras personales. La longitud máxima de un campo ASCII es de 32767 bytes. Un campo ASCII corresponde a una “X” en una cláusula COBOL PICTURE. Para obtener una descripción de otro formato principal de datos de caracteres, consulte la sección “EBCDIC” on page 15. BASIC Lee los datos numéricos generados por el intérprete BASIC. Este tipo de campo especifica el estándar del intérprete BASIC (IBM PC) adoptado por la mayoría de los lenguajes BASIC para software de microcomputadoras para la representación de números de coma flotante. No obstante, diverge de los coprocesadores matemáticos 8087 y 80287, de las UCP 486 y Pentium y de otro software para PC. Como norma de tipos de campo numéricos para microcomputadoras, el byte menos significativo del significando (mantisa) se almacena en forma secuencial en primer lugar a través del byte más significativo del exponente. En otras palabras, los bytes se almacenan en orden inverso. La longitud de este tipo de campo es de 4 u 8 bytes, como es definido por el estándar. Consulte “Float (Flotante)” on page 16 para obtener una descripción del formato 8087 del Institute of Electrical and Electronic Engineers (IEEE). Binary (Binario) Lee datos numéricos binarios sin signo, correspondientes al tipo de campo PL/1, Fixed Binary o al tipo de datos COBOL, COMPUTATIONAL-1. El tipo de dato Binary se interpreta en primer lugar como un número con el byte más significativo a la izquierda y el byte menos significativo al final, al igual que la norma para datos en un servidor principal. Este tipo de campo es inadecuado para campos Micro Binario enteros) que suelen almacenar el byte menos significativo en primer lugar. Micro Binario es compatible con el tipo de campo MICRO. 10 ACL para Windows 7 Custom (Personalizada) Manual de Referencia La longitud del tipo de campo binario es de 8 bytes como máximo. El número de posiciones decimales es el número implícito de dígitos decimales y no puede sobrepasar el número de dígitos especificado por la longitud. Los campos binarios de longitud par se tratan como campos binarios con signo (complemento a dos) y los de longitud impar, como campos sin signo (se añaden bytes cero de mayor orden implícito). Custom (Personalizada) Lee conjuntos de caracteres no estándar. El tipo de dato Custom puede ser útil en aplicaciones en lenguajes extranjeros en las que se implantan ciertos caracteres de forma no estándar o no compatibles. De forma predeterminada, el tipo de dato Custom es ASCII. No obstante, es posible crear un archivo especial denominado CUSTOM.DAT que contenga valores sustitutos para alguno o para todos los valores de caracteres estándar ASCII. Se puede realizar el reemplazo de los caracteres sin ninguna restricción. Es posible crear el archivo CUSTOM.DAT utilizando cualquier editor de texto. Se debe incluir dicho archivo en el mismo directorio que todos los archivos ejecutables ACL. CUSTOM.DAT es un archivo de texto estándar con dos valores en cada línea. El primero es el carácter que va a reemplazarse, el segundo, es el carácter con el que se reemplaza. Los valores pueden especificarse como caracteres, valores decimales o hexadecimales: ■ ■ ■ Los valores decimales se especifican como números simples, como 65 para el carácter “A”. Los valores hexadecimales son dos dígitos hexadecimales precedidos por una X, como X41 para el carácter “A”. Se especifican Los valores del carácter como el propio carácter, precedido por una C, como CA para el carácter “A”. Estas tres convenciones pueden utilizarse indistintamente o combinadas. El archivo CUSTOM.DAT se lee cuando se da inicio al ACL, por lo tanto no podrá editar dicho archivo mientras se encuentre ejecutando el ACL. Ninguno de los valores especificados en CUSTOM.DAT debe sobrepasar 255, que es el mayor valor que se puede almacenar en un byte. Puede utilizar cualquier editor de texto para visualizar el archivo CUSTOM.DAT. Por ejemplo, si el campo de datos que va a leer es ASCII, pero el sistema utiliza un hexadecimal A4 para un signo de dólar ($), un hexadecimal A5 para una coma y el valor Capítulo 1 Tipos de campos Date (Fecha) 11 decimal 5 para un punto decimal, es posible definir el campo como campo Custom. El contenido del archivo CUSTOM.DAT será: XA4C$ XA5C, 5C. Date (Fecha) Interpreta las informaciones sobre la fecha y las convierte para el tipo de campo de fecha ACL. Para que ACL reconozca las informaciones sobre la fecha, estas deben almacenarse en un formato no comprimido y ser reconocidos como informaciones sobre fecha en el archivo de datos de origen. Las informaciones sobre fecha son almacenadas de diversas maneras. Las fechas generalmente son representadas por una combinación de caracteres, números y caracteres de puntuación. A veces las fechas se representan solamente con números. ACL reconoce automáticamente las informaciones sobre fecha en la mayoría de los archivos de datos. ACL utiliza un formato de fecha para identificar las posiciones de los bytes en el archivo de datos de origen que representa informaciones sobre día, mes y año. El formato de fecha es creado automáticamente cuando los datos son definidos por medio del Asistente de definición de datos. ACL ofrece su atribución del formato de fecha y permite confirmarla y modificarla. El formato de fecha no afecta la forma como se presentan las fechas en ACL. Para cambiar la forma de presentación de fechas en ACL, consulte “Opciones de fecha” on page 329 of the ACL for Windows User Guide. Fechas en blanco o no válidas ACL asigna el valor “19000101” a los campos de fecha que contienen espacios en blanco o fechas no válidas. Para localizar campos de fecha en blanco: 1. Haga clic en (Editar el filtro de vista) vista, para mostrar el cuadro de diálogo Editar el filtro de vista. 2. En el cuadro de texto Expresión, escriba el Campo de fecha = `19000101`, luego haga clic en [Aceptar]. La vista presentará sólo los registros que tienen un campo de fecha en blanco. Sugerencia: Las fechas escritas manualmente por medio del teclado, deben colocarse entre comillas invertidas. 12 ACL para Windows 7 Date (Fecha) Manual de Referencia Año de dos dígitos Muchos archivos de datos utilizan dos dígitos para representar el año. El año utilizado para denotar la fecha más reciente del último siglo varía de una definición de archivos de datos para el siguiente. El año de dos dígitos que indica el registro más antiguo del último siglo generalmente es llamado de fecha de principio del siglo o la fecha dinámica. La forma enque ACL lee los años de dos dígitos depende de la definición de preferencia del Principio del Siglo. Con la definición predeterminada de 40, ACL interpreta los años 40 a 99 como 1940 a 1999, y los años 00 a 39 como 2000 a 2039. ACL utiliza esta definición siempre que encuentra datos que utilizan dos dígitos para representar el año en un archivo de entrada. Esto no afectará los datos que utilizan tres o cuatro dígitos para representar el año. Para cambiar la definición predeterminada, consulte “Principio del siglo” on page 331 of the ACL for Windows User Guide. Consulte “Set (Definir)” on page 337. Fechas en serie Las fechas, muchas veces, son representadas por un número en serie. Los diseños de fecha en serie representan la fecha como el número de días transcurridos a partir de alguna fecha inicial arbitraria, tal como, 1 de enero de 1900. Cuando se crea una definición del archivo de entrada, ACL reconoce el número en serie como datos numéricos. Las fechas en serie, no pueden convertirse automáticamente para el tipo de campo de fecha ACL. Es necesario utilizar las funciones ACL para convertir posteriormente el número de serie en una fecha, en un nuevo campo computado. Consulte “Fechas en serie” on page 302 of the ACL for Windows User Guide. Fechas en campos numéricos comprimidos ACL no puede reconocer automáticamente las fechas almacenadas en campos numéricos comprimidos, tales como, campos de datos compactados. Al crearse una definición del archivo de entrada, ACL reconoce los datos compactados como datos numéricos compactados. Para que ACL reconozca los datos numéricos compactados como informaciones sobre fecha, es necesario editar la definición del archivo de entrada, seleccionar el campo, seleccionar los parámetros de datos y especificar el formato de fecha. El formato de fecha indica los números en el archivo de origen que representan el día, el mes y el año. Capítulo 1 Tipos de campos Date (Fecha) 13 Ejemplo Es necesario especificar el formato de fecha cuando las fechas estén almacenadas en campos numéricos comprimidos, tales como, campos compactados. 1. Seleccione Edición en la barra de menús y elija Definición del archivo de entrada. ACL muestra la ventana Definición de archivo de antrada. 2. Debajo de la ficha [Editar campos/expresiones] en la vista de la lista de campos, haga doble clic en el campo numérico compactado que desea editar. ACL presenta las opciones de formato de campo. 3. Haga clic en el cuadro de verificación de parámetro Fecha. 4. Especifique el formato de la fecha en el formato de la lista desplegable. Atributos de campo Designa el modificador del campo fecha Parámetros Por ejemplo, si la fecha en el archivo de datos de origen tiene el formato AAMMDD, se selecciona el mismo formato en la lista desplegable. Observe que los campos numéricos no pueden contener puntuación en el formato. 14 ACL para Windows 7 Date (Fecha) Manual de Referencia Formatos de fecha Cuando se define el formato de un campo de fecha, se informa al ACL los caracteres que representan el día, mes y año. ACL utiliza los siguientes caracteres de formato para representar los elementos de un campo de fecha: Caracteres de formato Elemento de fecha DD Día (1 – 31) DDD Día julian (1 – 366) MM Mes (1 – 12) MMM Nombre del mes (Ene. – Dic.) AA Formato abreviado de año (1 – 99) AAAA Formato por extenso del año (1900 – 1999) Coloque separadores como el símbolo de barra (/) en la misma posición relativa que se encuentren en el archivo de datos de origen. Si esto no se hace, ACL no interpretará la fecha correctamente. El formato que usted define debe corresponder al formato de fecha almacenada. La siguiente tabla muestra las diferentes maneras que una fecha puede almacenarse en un archivo de entrada y la forma como se describe el formato para ACL. Fecha almacenada Formato de fecha ACL 991231 AAMMDD 12311999 MMDDAAAA 31/dic/99 DDMMMAAAA 12/31/99 MM/DD/AA 99365 AADDD 31 Diciembre, 1999 MMM DD, AAAA Capítulo 1 Tipos de campos EBCDIC 15 Convenciones de formato de fecha Existen muchas convenciones de formato de fecha en uso. Las más comunes son mostradas en la siguiente tabla. Formato de fecha común Tipo Ejemplo utilizando diciembre 31, 1999 AAAA-MM-DD ISO 1999-12-31 DD/MM/AA, DD.MM.AA, o DD-MM-AA Europea 31/12/99 MM/DD//AA Norteamericana 12/31/99 AADDD Juliana 99365 Sintaxis del modo comando Se puede describir el formato de las fechas almacenadas en campos numéricos utilizando el modificador de campo de fecha NDATE seguido por el formato de fecha. Por ejemplo, para describir un campo con números en la forma de 991231 como una fecha, se utiliza el modificador de campo NDATE conforme se muestra a continuación: DEFINE FIELD Campo_de_fecha NUMERIC 1 6 0 NDATE PIC "AAMMDD" Nota: NDATE es la línea de comando, equivalente al parámetro de fecha en la pantalla de definición de campo, de la ventana de definición del archivo de entrada. Normalmente es utilizado para definir fechas en campos de fecha numérica compactados. Códigos de siglo para años de dos dígitos en campos compactados Para obtener más información, consulte “Códigos de siglo en campos de fecha compactados” on page 19. EBCDIC Lee datos codificados según el Código de Intercambio Decimal Codificado Binario Extendido (EBCDIC, Extended Binary Coded Decimal Interchange Code). Como en ASCII, EBCDIC hace referencia a caracteres imprimibles. Este tipo de campo es la norma para todos los servidores principales y las minicomputadoras de IBM. La longitud de este tipo de campo es de 32767 bytes como máximo. 16 ACL para Windows 7 Float (Flotante) Manual de Referencia Para obtener más información, consulte “ASCII” on page 9 para obtener una descripción de las otras formas principales de datos del carácter. Float (Flotante) Lee información codificada según el estándar IEEE para números de coma flotante de doble precisión, como los datos generados con el coprocesador 8087 o las UCP 486 y superiores. Flotante es el estándar adoptado para la mayor parte del software de microcomputadoras, sin embargo, no es el utilizado por el intérprete BASIC. El Flotante almacena el byte de menor importancia del significador (mantisa) primero (extremo izquierdo) y el de mayor importancia do al extremo derecho. La longitud de este tipo de campo es de 4 u 8 bytes. Halfbyte (Medio byte) Lee datos compactados alineados por medio byte, que generalmente son encontrados en los ambientes Unisys/Burroughs. Los números con signo deben seguir la convención Unisys/Burroughs. A diferencia de los demás tipos de campo admitidos por ACL, el comienzo y la longitud de este tipo de campo se especifica en medio bytes en vez de bytes. Por ejemplo, para definir un campo Halfbyte que comienza a mitad del camino a través del byte 3 y con una longitud de 10, debe hacer clic y arrastrar para resaltar el campo en la ventana Definición del archivo de entrada, de la forma habitual. Debe convertir manualmente la posición de inicio del campo en bytes (n) a medio bytes, utilizando la fórmula (n*2)-1: (3*2)-1=5 En nuestro ejemplo, debe escribir 5 en el cuadro de texto Inicio y seleccionar Halfbyte en el menú desplegable Tipo de campo antes de hacer clic para finalizar la definición del campo. Si los datos están alineados en bytes, es más conveniente utilizar los tipos de campo UNSIGNED o UNISYS. Capítulo 1 Tipos de campos IBMfloat 17 IBMfloat Lee datos de coma flotante de IBM. El tipo de campo IBMfloat es poco común, se encuentra principalmente en las aplicaciones científicas para el servidor principal. Los campos IBMfloat pueden tener 4 u 8 bytes de longitud. Logical (Lógico) Lee datos ASCII o EBCDIC que tienen un valor lógico de verdadero o falso. El tipo Logical hace referencia a un campo de un byte de longitud cuyo valor puede ser cero (falso) o no-cero (verdadero). Nota: ACL trata los campos ASCII y EBCDIC “F” (como Falso), “0” (como cero) o “N” (como No) - tanto en mayúsculas como en minúsculas- como falso, aunque habitualmente evalúa el valor no-cero como verdadero. Esto es para adaptar el uso de los caracteres “T” y “F”, “0 y 1” o “Y” y “N” como valores lógicos. ACL también considera un carácter ASCII en blanco (hexadecimal 20) como falso por razones de compatibilidad con los productos dBASE. Micro Lee datos numéricos binarios sin signo creados en PC y microcomputadoras DEC. MICRO hace referencia a un número binario que almacena el byte menos significativo en primer lugar y el más significativo en último lugar. Este tipo de campo no se utiliza para los campos binarios del servidor principal y minicomputadoras, que suelen almacenar el byte más significativo en primer lugar. Para obtener más información, consulte “Binary (Binario)” on page 9. La longitud del tipo de campo MICRO es de 8 bytes como máximo. El número de decimales es el número implícito de dígitos decimales y no puede ser superior al número de dígitos de la longitud. Los campos MICRO con longitudes pares se tratan como campos binarios con signo (complemento a dos) y los campos con longitudes impares se tratan como campos sin signo (se añaden ceros de mayor orden implícito). Este tipo de campo es el adecuado cuando se representan datos de microcomputadoras INTEGER o LONG. 18 ACL para Windows 7 Numeric (Numérico) Manual de Referencia Numeric (Numérico) Lee datos numéricos ASCII o EBCDIC que pueden imprimirse y que corresponden al tipo de campo COBOL DISPLAY. Numérico se refiere a los números que se imprimen en ASCII o EBCDIC, como opuesto a compactados o Zonados. Este tipo de campo puede incluir cualquier signo de puntuación, aunque casi siempre incluye blancos de relleno al principio y al final, un signo opcional también al principio o al final, comas y un punto decimal explícito. Numeric trata los ceros de relleno al principio como espacios en blanco. Tiene una longitud máxima de 40 bytes (hasta 22 dígitos). Nota: Las posiciones decimales hacen referencia a dígitos decimales implícitos. Si una definición de campo incluye decimales pero no hay un punto decimal explícito, se supone que existe un punto decimal. Por ejemplo, en un campo con dos posiciones decimales, ACL interpreta 123 como 1.23; 12.3 como 12.30; y 12. como 12.00. Si el número de posiciones decimales especificado difiere de los decimales explícitos del campo, el campo se redondea al número adecuado de decimales. ACL interpreta correctamente los paréntesis y “CR” como negativo, pero ignora las comas y otros signos de puntuación (como el $). Los signos pueden situarse al principio o al final y ser fijos o flotantes. Packed (Compactado) Lee el tipo de campo numérico compactado generado por el servidor principal. Packed (compactado) se refiere al tipo de campo numérico compactados por el servidor principal que almacena dos dígitos numéricos por byte. El byte de la derecha contiene una indicación de signo en la mitad inferior del byte (normalmente HEX ‘C’ para positivo y HEX ‘D’ para negativo). La mitad superior del byte de la derecha, y cada mitad de todos los demás bytes, contienen un dígito HEX que representa el dígito decimal de esa posición en el número. Este tipo de campo tiene una longitud máxima de 12 bytes (23 dígitos), no obstante, ACL genera un mensaje de error si encuentra un número mayor que 22 dígitos. Consecuentemente, cuando se define un campo numérico compactado en la ventana Definición del archivo de entrada, el número de decimales que se especifica en el cuadro de texto Formato no debe resultar en un número mayor que 22 dígitos. Por ejemplo, si los datos contienen siete valores de dígitos, no se podrá especificar más de 15 posiciones decimales (22 dígitos – 7 dígitos). Capítulo 1 Tipos de campos Packed (Compactado) 19 El tipo de campo numérico compactado corresponde a los tipos de datos PL/1 decimales fijos y computacionales COBOL -3. Nota: Aunque la especificación de IBM para este tipo de campo indica que los signos hexadecimales “B” y “D” representan valores negativos, casi todo el software utiliza únicamente la “D” para los negativos. Por tanto, ACL trata la “B” como positivo por compatibilidad con algún hardware no-IBM. Si esto causa un problema en el ambiente, entre en contacto con el Soporte técnico para obtener ayuda. Para obtener más información sobre los datos compactados Unisys, consulte “Unisys” on page 22. Las fechas en campos numéricos compactados Se debe especificar manualmente, el formato de la fecha cuando estas se almacenan en campos numéricos comprimidos, tales como campos compactados. Para obtener más información, consulte “Para conseguir que ACL reconozca el código de siglo” on page 20. Códigos de siglo en campos de fecha compactados Dos dígitos han sido utilizados para representar el año en campos numéricos compactados utilizados para almacenar fechas. Algunos sistemas agregan ahora un tercer dígito llamado código de siglo para indicar el siglo al cual el año de dos dígitos pertenece. Los códigos de siglo más comunes, utilizan un “0” inicial o un “1” inicial, para indicar el vigésimo siglo: ■ Cuando se utilizando un “0” inicial en el campo compactado para representar 1900, cualquier otro número, generalmente “1”, representa 2000. 0990101 representa 01.01.99. 1000101 representa 1 de enero de 2000. ■ Cuando se utilizando un “1” inicial en el campo compactado para representar 1900, cualquier otro número, generalmente “2”, representará 2000. 1990101 representa 01.01.99. 2000101 representa 1 de enero de 2000. 20 ACL para Windows 7 Packed (Compactado) Manual de Referencia Para conseguir que ACL reconozca el código de siglo Después de utilizar el Asistente de definición de datos para definir un campo numérico compactado, es necesario modificar manualmente el formato de fecha como se muestra a continuación: 1. Seleccione Edición en la barra de menús y elija Definición del archivo de entrada. ACL muestra la ventana Definición del archivo de entrada. 2. En la ficha [Editar campos/expresiones] vista, de la lista de campos, haga doble clic en el campo numérico que desea editar. ACL presenta las opciones de formato de campo. 3. Haga clic en el cuadro de verificación Fecha. 4. Especifique un formato de fecha en el Formato de la lista desplegable. Enseguida, en el cuadro de texto Formato, agregue un “0” o un “1” en el inicio del formato del campo de fecha compactados para especificar el dígito que representa los años de 1900. Por ejemplo, el formato “0AAMMDD” indica que 0991231 es 31 de diciembre de 1999. De igual forma, “1AAMMDD” indica que 1991231 es 31 de diciembre de 1999. 5. Haga clic en cambio. (Aceptar entrada), luego haga clic en [Aceptar] para guardar el Puede ver el campo con formato en la ventana de Vista. Capítulo 1 Tipos de campos PCASCII Haga clic para aceptar el cambio Especificar el formato de fecha 21 Fecha presentada como 1990101 Haga clic en formato guardar PCASCII Lee datos codificados según el American Standard Code for Information Interchange (Código americano de normas para el intercambio de información). El tipo de campo PCASCII es prácticamente el mismo que el tipo de campo ASCII. Puede utilizarse cuando los datos de un archivo han sido creados en una aplicación DOS y el archivo incluye caracteres de lenguaje extranjero. El tipo de campo PCASCII asegura que se interpreten correctamente los caracteres de lenguaje extranjero. El formato de este tipo de campo es idéntico al formato del tipo de campo ASCII. Print (Imprimir) Lee datos numéricos para impresión ASCII o EBCDIC. Este campo es exactamente igual al Numeric, salvo por su tratamiento de los campos sin punto decimal explícito. Si una definición de campo incluye posiciones decimales pero ningún punto decimal explícito, Print asume que no hay decimales para ese registro. 22 ACL para Windows 7 Unisys Manual de Referencia Por ejemplo, en un campo con dos posiciones decimales, 123 se interpreta como 123,00; 12,3 como 12,30; y 12, Como 12,00. La longitud máxima de este tipo de campo es de 40 bytes como máximo, no obstante, ACL genera un mensaje de error si encuentra un número de más de 22 dígitos. El tipo de campo Print corresponde a un tipo de campo COBOL DISPLAY, con punto, signo y comas. No sólo ignora las comas, sino que PRINT interpreta correctamente los paréntesis y “CR” como negativo. Los signos pueden ir al principio y al final, ser fijos o flotantes, y se ignora cualquier otra puntuación (como el $). Unisys Lee datos Compactados alineados a bytes de Unisys/Burroughs. Los campos Unisys/Burroughs compactados, a diferencia de los campos IBM PACKED, tienen el signo a la izquierda en lugar de a la derecha. El tipo de campo UNISYS se refiere a los tipos de campo Compactados de los servidores principales Unisys/Burroughs que almacenan dos dígitos decimales por byte. Este campo no puede imprimirse. El byte que está más a la izquierda contiene un indicador de signo en la parte superior del byte, que suele ser un hexadecimal “C” o “F” para positivo y un hexadecimal “D” para negativo. Cada mitad del resto de los bytes contiene un dígito hexadecimal que es el valor del número en esa posición. La longitud máxima de este tipo de campo es de 12 bytes, pero ACL genera un mensaje de error si encuentra un número mayor de 22 dígitos. El número de decimales es el número implícito de dígitos decimales y no puede sobrepasar el número de dígitos de la longitud. Los datos sin signo y empaquetados UNISYS deben especificarse como Sin signo, ya que su formato es el mismo que en el caso de IBM. Nota: Las computadoras Unisys soportan datos alineados de medio byte y datos de longitud medio byte, pero el tipo de campo UNISYS es incompatible con ellos. Para leer estos datos, utilice el tipo de campo MEDIO BYTE, tal como se describe en “Halfbyte (Medio byte)” on page 16. Unsigned (Sin signo) Lee datos Compactados del servidor principal sin signo. Capítulo 1 Tipos de campos VAXfloat 23 Sin signo, se refiere a un tipo de campo sin signo Compactado para datos de un servidor principal, que almacena dos dígitos decimales por byte. A diferencia del tipo compactado, el que está sin signo, no contiene una indicación señalizada inferior del byte al extremo derecho. Cada mitad de un byte contiene un dígito HEX que representa el dígito decimal de esa posición del número. La longitud máxima de este tipo de campo es de 11 bytes, es decir, 22 dígitos decimal. El número de posiciones decimales no puede exceder el número máximo posible de dígitos para este campo. VAXfloat Lee datos de coma flotante tipo DEC VAX, que es la más común de las cuatro representaciones de coma flotante VAX. La longitud de este tipo de campo es de 4 u 8 bytes. Zoned (Zonado) Lee datos numéricos ASCII o EBCDIC del tipo de campo zonado decimal (IBM) o PIC S9(n) (COBOL). En otras palabras, lee cualquier dato zonado, incluidos los generados por máquinas DEC, Honeywell e IBM. Zoned se refiere a campos numéricos zonados del servidor principal, un dígito por byte, ya sea codificado en ASCII o EBCDIC. Deben mantenerse los ceros al principio. La mitad superior del byte que está más a la derecha incluye el signo menos. La longitud máxima de un campo zonados es de 22 bytes. El tipo de campo zonado decimal IBM y el tipo de campo PIC S9(n) de COBOL se muestran normalmente como un número de dígitos seguidos por una letra que indica el signo. El tipo de campo zonado soporta tipos de campo DEC DIBOL, en los cuales una letra en minúsculas entre “p” e “y” indica valores negativos. ACL detecta y ajusta automáticamente los campos zonados de acuerdo con los formatos de IBM, Honeywell y DEC. 24 ACL para Windows 7 Zoned (Zonado) Manual de Referencia Capítulo 2 F UNCIONES Las funciones de ACL se dividen en ocho categorías diferentes para ayudarle a identificar sus propósitos. Cuando esté trabajando en el Generador de expresiones, es posible ver las funciones en la lista desplegable de Funciones. Para ver todas las funciones, seleccione Todos en la lista. Para ver un subconjunto de funciones, seleccione la categoría en la lista. Resumen de funciones Funciones de bits/caracteres ASCII( ) Devuelve el valor decimal de ASCII del primer carácter de una expresión. BIT( ) Regresa una cadena de ceros y unos que representan una posición de byte especificada en el registro actual. BYTE( ) Devuelve el byte a la posición especificada en el registro actual. CHR( ) Devuelve el carácter correspondiente al valor decimal ASCII que se especifica. DIGIT( ) Regresa el dígito superior o inferior de un byte compactado especificado. HEXADECIMAL( ) Regresa una cadena de valores hexadecimales que representan el contenido de un campo. MASK( ) Extrae bits individuales del primer byte de una expresión de caracteres. SHIFT( ) Desplaza el primer carácter de una expresión a la izquierda o a la derecha en un número especificado de bits. Funciones de conversión DECIMALS( ) Devuelve una expresión numérica con un número especificado de posiciones decimales. EBCDIC( ) Convierte una cadena en caracteres EBCDIC. PACKED( ) Convierte datos numéricos en un tipo de dato compactado de una longitud específica. 25 26 ACL para Windows 7 Resumen de funciones Manual de Referencia STRING( ) Convierte una expresión numérica en una cadena de caracteres. UNSIGNED( ) Convierte datos numéricos en tipos de datos sin signo con una longitud específica. VALUE( ) Convierte una expresión de caracteres en su equivalente numérico. ZONED( ) Convierte los datos numéricos en formato de datos zonados. Funciones de fecha y hora AGE( ) Regresa la antigüedad de una fecha (en días) comparada con una fecha de corte especificada o la fecha actual del sistema. CDOW( ) Devuelve el nombre del día de la semana para una fecha especificada. CTOD( ) Convierte una expresión de caracteres o numérica en una expresión de fecha válida, con fines de comparación, con valores de campo de fecha. DATE( ) Convierte una expresión de fecha, la fecha actual del sistema o un valor de campo de fecha en una cadena de caracteres legible como fecha. DOW( ) Regresa un valor numérico representando el día de la semana para una fecha especificada. TIME( ) Regresa la fecha y hora a partir del reloj del sistema. Funciones lógicas BETWEEN( ) Comprueba si los valores de entrada se ajustan a un intervalo especificado. FIND( ) Encuentra una cadena en un campo o registro. ISBLANK( ) Comprueba si un valor de entrada está totalmente en blanco. MAP( ) Compara una cadena con un formato especificado. MATCH( ) Compara una expresión o valor de campo a expresiones especificadas o valores de campo, con el fin de determinar si existe al menos una coincidencia. SOUNDSLIKE( ) Indica si dos cadenas son fonéticamente similares. Capítulo 2 Funciones Resumen de funciones TEST( ) Busca las cadenas de caracteres especificados en lugares especificados de un registro. VERIFY( ) Busca datos inválidos. Funciones matemáticas ABSOLUTE( ) Devuelve el valor entero de una expresión numérica. EXPONENT( ) Devuelve el valor exponencial (base 10) de una expresión numérica. FREQUENCY( ) Devuelve la frecuencia Benford esperada para dígitos numéricos positivos interlineados secuenciales con una precisión de ocho dígitos. INTEGER( ) Devuelve el valor entero de una expresión numérica. LOGARITHM( ) Devuelve el logaritmo (base 10) de una expresión numérica. MAXIMUM( ) Devuelve el mayor de dos parámetros numéricos. MINIMUM( ) Devuelve el menor de dos parámetros numéricos. MOD( ) Devuelve el resto de una división. RANDOM( ) Devuelve un número aleatorio comprendido entre cero y el valor de una expresión numérica. ROOT( ) Devuelve la raíz cuadrada de una expresión numérica. ROUND( ) Devuelve un número redondeado de una expresión numérica. ZSTAT( ) Calcula la estadística Z estándar para utilizarse en muchas tareas de solución de problemas, incluyendo el análisis digital. Funciones financieras EFFECTIVE( ) Devuelve el tipo de interés anual efectivo de un préstamo. FVANNUITY( ) Da como resultado el valor futuro de una serie de pagos. FVLUMPSUM( ) Da como resultado el valor futuro de suma global. NOMINAL( ) Da como resultado la tasa de interés nominal anual. NPER( ) Da como resultado los períodos requeridos para devolver un préstamo. 27 28 ACL para Windows 7 Resumen de funciones Manual de Referencia PMT( ) Da como resultado los pagos periódicos requeridos para devolver un préstamo. PVANNUITY( ) Da como resultado el valor actual de una serie de pagos. PVLUMPSUM( ) Da como resultado el valor actual de una suma global a abonar en un número de períodos. RATE( ) Devuelve el tipo de interés por período. Funciones miscelánea FILESIZE( ) Da como resultado el tamaño, en bytes, de un archivo especificado. FTYPE( ) Devuelve el tipo de campo de un campo específico. LEADING( ) Devuelve una cadena de caracteres que contiene un número específico de dígitos iniciales. OFFSET( ) Ajusta la posición inicial de un campo en el registro actual. RECLEN( ) Devuelve la longitud del registro actual. RECNO( ) Devuelve el número de registro lógico actual. RECOFFSET( ) Devuelve el valor de un campo en un número específico de registros desde el registro actual. Funciones de Acceso de la Cadena ALLTRIM( ) Elimina los espacios en blanco a la izquierda y los espacios de fin de línea de una cadena de caracteres. No afecta los espacios en blanco en la cadena. AT( ) Localiza donde empieza una incidencia especificada de una cadena de caracteres, en otra cadena de caracteres. BLANKS( ) Crea una cadena de caracteres de longitud especificada, consistiendo exclusivamente de espacios en blanco. Compare con “REPEAT( )”, a continuación. CLEAN( ) Descubre todos los caracteres no válidos de una cadena y los reemplaza junto con todos los caracteres subsiguientes por espacios en blanco. Capítulo 2 Funciones Resumen de funciones EXCLUDE( ) Compara dos cadenas y devuelve una cadena que contiene sólo los caracteres no comunes a ambas. INCLUDE( ) Compara dos cadenas y devuelve una cadena que contiene sólo los caracteres comunes a ambas. INSERT( ) Inserta caracteres o espacios en blanco en un lugar especificado en una cadena de caracteres. LAST( ) Captura un número especificado de caracteres del final de una cadena. LENGTH( ) Calcula el número de caracteres en una cadena especificada. LOWER( ) Convierte todos los caracteres alfabéticos de una expresión a minúsculas. LTRIM( ) Elimina los espacios en blanco del principio de una cadena. OCCURS( ) Cuenta el número de veces que ocurre una cadena de caracteres en una cadena mayor. PROPER( ) Convierte los caracteres alfabéticos de una cadena a mayúsculas y minúsculas de forma correcta para nombres propios. REMOVE( ) Elimina caracteres indeseables de una cadena de caracteres. REPEAT( ) Crea una cadena de caracteres que repite un valor constante un número especificado de veces. Compare con los “BLANKS( )” de arriba. REPLACE( ) Reemplaza todas las incidencias de una cadena de caracteres por otra. REVERSE( ) Invierte el orden de los caracteres en una cadena. RJUSTIFY( ) Justifica a la derecha una cadena para una longitud especificada y mueve cualquier espacio en blanco arrastrados hacia delante de la cadena. SOUNDEX( ) Devuelve un valor de cuatro caracteres para una cadena que puede compararse con el valor de otra y ver si ambas son fonéticamente similares. SPLIT( ) Devuelve un segmento especificado de una cadena de caracteres delimitada por separadores, tales como espacios y comas. SUBSTRING( ) Devuelve una subcadena de una expresión de caracteres. TRANSFORM( ) Permite que caracteres hebreos sean mostrados de manera adecuada en una cadena. 29 30 ACL para Windows 7 ABSOLUTE( ) Manual de Referencia TRIM( ) Elimina los espacios en blanco al final de la cadena. UPPER( ) Convierte todos los caracteres alfabéticos de una expresión en mayúsculas. ABSOLUTE( ) ABS( ) devuelve el valor absoluto de una expresión numérica. Utilice ABS( ) para determinar el valor absoluto de una población antes de generar una muestra aleatoria. Formato de función ABS(N) La función ABS( ) devuelve el valor absoluto de la expresión numérica especificada N. Ejemplos ABS(-7,2) = 7,2 ABS(88,2) = 88,2 ABS(5) = 5 Para crear un campo que sea la diferencia entre dos campos (AMT1 y AMT2), especifique: ABS(CANT1 - CANT2) AGE( ) AGE( ) devuelve la antigüedad, en días, de una fecha específica comparada con una fecha de corte específica. Utilice AGE( ) cuando compare dos fechas para determinar cuentas vencidas o para realizar análisis de saldos por antigüedad. Formato de función AGE(C|D <;C|D>) AGE( ) devuelve un valor numérico que es la diferencia de la antigüedad (en días) entre las dos fechas. Al omitir el segundo parámetro, ACL utiliza la fecha del sistema actual. Sin embargo, cuando se incluye el segundo parámetro, ACL calcula el vencimiento relativo al final del año fiscal u otras fechas de corte. Capítulo 2 Funciones ALLTRIM( ) 31 Independientemente del formato en el que se pueda almacenar un campo de fecha cuando se usan constantes, éstas pueden ser: ■ Una cadena de caracteres o expresión en la forma AAMMDD o AAAAMMDD ■ Una constante de fecha de forma AAMMDD o AAAAMMDD ■ Una expresión de fecha ACL válida Las fechas anteriores a la fecha de corte regresan al valor positivo. Las fechas posteriores a la fecha de corte regresan con un valor negativo. Las fechas aceptables están en el intervalo comprendido entre el 1 de enero, 1900 y el 31 de diciembre, 9999. Ejemplos Supongamos que la fecha actual del sistema es el 1 de enero, 1996: AGE(`951220`) = 12 AGE(`19960108`) = -7 AGE(`19941220`;`950101`) = 12 AGE(Campo_Fecha) = 65 AGE(Fecha_de_Vencimiento;`961231`) = 80 Para extraer el nombre, el importe y la fecha de la factura de todos los elementos de más de 180 días (por ejemplo al final del año fiscal), especifique: AGE(DATE;`961231`)>180 ALLTRIM( ) ALLTRIM( ) devuelve una cadena de longitud variable, con todos los espacios en blanco a la izquierda y espacios de fin de línea eliminada. Los espacios en blanco en el interior de la cadena de caracteres no son eliminados. ALLTRIM( ) es similar a LTRIM( ), que elimina los espacios en blanco precedentes y a TRIM( ), que elimina los espacios en blanco de fin de línea. Formato de función ALLTRIM(C) Ejemplos ALLTRIM(" ALLTRIM(" abc a bc ") = "abc" ") = "a bc" 32 ACL para Windows 7 ASCII( ) Manual de Referencia ASCII( ) ASCII( ) devuelve el valor decimal de ASCII del primer carácter de una expresión de caracteres o de un campo de caracteres específico. Esta función es lo contrario de la función CHR( ). Utilice ASCII( ) para comprobar los valores de los campos de caracteres cuando no sean caracteres imprimibles, como tabuladores. Formato de función ASCII(C) ASCII( ) analiza el primer carácter de la expresión de caracteres C y devuelve un número decimal que representa el valor. Asegúrese de que C va entre comillas si es una constante (cadena). Ejemplos ASCII("A") = 65 ASCII("1") = 49 Para extraer registros que contienen un carácter Tabulador (valor decimal=9) al inicio del campo DESC, especifique: ASCII(DESC) = 9 AT( ) AT( ) regresa a la posición de una cadena de caracteres en otra cadena de caracteres. Es necesario especificar que incidencia de la cadena debe buscarse. Se devuelve un valor cero si no se encuentra la cadena. Para la mayoría de las aplicaciones que solamente se encargan de verificar si hay una cadena, la función FIND( ) es la alternativa más sencilla. AT( ) continúa siendo necesaria si precisa la ubicación de la cadena o si busca incidencias múltiples. Utilice AT( ) para buscar un valor concreto en un cuadro de texto libre; por ejemplo, una descripción, un nombre o una dirección. Formato de función AT(N;C1;C2) AT( ) busca cadenas dentro de otras cadenas y toma tres argumentos: N, C1 y C2. N especifica que incidencia de cadena C1 debe buscarse. Capítulo 2 Funciones AT( ) 33 C1 especifica la cadena de caracteres que debe buscarse. C2 especifica la cadena de caracteres que será buscada. El valor devuelto es una posición dentro de la cadena C2. AT( ) puede interpretarse como: “¿En qué posición se encuentra el enésimo incidente de la cadena C1 en la cadena C2?”. Si C1 se encuentra N veces en C2, AT( ) devuelve la posición del primer carácter de la incidencia N en C2. Si C1 no ocurre N veces en C2, AT( ) devuelve cero. Nota: AT( ) distingue entre mayúsculas y minúsculas, por lo tanto, “a” no es igual a “A.” Si está buscando valores en datos conteniendo mayúsculas y minúsculas, deberá intentar convertir los datos en mayúsculas, con la función UPPER( ). Para obtener más información, consulte FIND( ) en la página 305. Ejemplos AT(1;"ABC";"ABCDEFG") = 1 AT(2;"ABC";"ABCDEFGABCDEFG") = 8 AT(2;"A";"ABCDEFGH") = 0 AT(3;"ABC";"ABCDEFGABCDEFG") = 0 Para extraer todos los registros cuya dirección sea Wild Street, especifique: AT(1;"WILD";UPPER(ADDRESS))>0 Extraer registros Condición Nombre del archivo extraído 34 ACL para Windows 7 BETWEEN( ) Manual de Referencia La función UPPER( ) se utiliza para que la búsqueda no distinga entre mayúsculas y minúsculas. Si la expresión AT( ) devuelve un valor mayor que cero, “Wild” fue encontrado en el campo Dirección y el registro será extraído. Nota: Esta prueba también encuentra “Wilder St.” y “Swilden Ave.” Para ser más específico, se puede incluir un espacio en blanco después de “Wild”. Para contar los registros de número en un archivo en el que el nombre es Doe, especifique: AT(1;"DOE";NAME)>0 O si los datos aparecen en mayúsculas y minúsculas, especifique: AT(1;"DOE";UPPER(NAME))>0 BETWEEN( ) BETWEEN( ) devuelve Verdadero o Falso, dependiendo si un valor especificado está entre un valor mínimo o máximo, inclusive de los puntos finales. Utilice BETWEEN( ) para comprobar los intervalos de los valores, como si una cantidad estuviera entre 20.000 y 60.000, inclusive. También es posible utilizarlo para comprobar intervalos de fechas o de caracteres alfabéticos. Formato de función BETWEEN(valor;mínimo;máximo) O BETWEEN(valor;máximo;mínimo) Los tres parámetros deben ser del mismo tipo: numérico, de fecha o de carácter. BETWEEN( ) regresa Verdadero si el valor está entre el mínimo y el máximo inclusive, y Falso si no lo está. Los valores iguales al mínimo y al máximo regresan también a Verdadero. Cuando los campos numéricos tienen diferente precisión decimal, la comparación utiliza el nivel más alto de precisión encontrado en cualquiera de los campos. Los formatos de fecha pueden ser diferentes para los tres parámetros, porque ACL evalúa la fecha independientemente de como es almacenada en un archivo de datos o presentado en una vista. Las comparaciones de caracteres distinguen las mayúsculas de minúsculas. La orden de clasificación de caracteres depende del idioma seleccionado en la ficha [Opciones del Capítulo 2 Funciones BIT( ) 35 archivo de entrada] del cuadro de diálogo Editar preferencias de ACL. Las opciones de Comparaciones de caracteres exactos de ACL rigen la forma como ACL compara las cadenas de caracteres. Si la opción SET EXACT está en OFF, “A” es considerado igual a “ABC” y “ABXYZ.” Si la opción SET EXACT está en ON, “A” no es considerado igual a “ABC.” La configuración predeterminada para esta opción es OFF. Para obtener más información sobre los cambios de los opciones de Comparaciones “Comparaciones de caracteres exactos” on page 323 of the ACL for Windows User Guide. Ejemplos BETWEEN(5;4;7) = T BETWEEN(5;5;7) = T BETWEEN(5;6;7) = F BETWEEN("abc";"A";"B") = F Nota: Un valor Falso es devuelto, porque la comparación distingue entre mayúsculas y minúsculas. BETWEEN("ABC";"A";"B") = T BETWEEN("BCD";"ABC";"BB") = F BETWEEN(`20011131`;`20011031`;`20011131`) = T BIT( ) BIT( ) devuelve la cadena de bits que representa una posición de byte específica en el registro actual. Utilice BIT( ) para examinar los bits individuales de un byte. BIT( ) opera de modo semejante a la función “BYTE( )” on page 37. Formato de función BIT(N) BIT( ) convierte el byte de la posición N del registro actual en una cadena de ocho caracteres formada por ceros y unos que representan el byte. Ejemplos Para asignar los valores de bit para los bytes 8, 9 y 17 a las variables b8, b9 y b17, especifique: ASSIGN b8 = BIT(8) ASSIGN b9 = BIT(9) ASSIGN b17 = BIT(17) 36 ACL para Windows 7 BIT( ) Manual de Referencia Encontrará: ■ b8 = 00110001 si el 8° byte contiene ‘1’ ■ b9 = 01000001 si el 9° byte contiene ‘A’ ■ b17 = 01100001 si el 17° byte contiene ‘a’ Supongamos que la posición 17 del byte contiene un conjunto de 8 indicadores de crédito. Para extraer todos los registros de clientes que tienen configurado el tercer bit como 1 (que significa “no enviar”), especifique: SUBSTR(BIT(17);3;1)="1" Extraer registros Condición Nombre del archivo extraído En este ejemplo, SUBSTR( ) se utiliza para ver el tercer bit. Capítulo 2 Funciones BLANKS( ) 37 BLANKS( ) BLANKS( ) crea una cadena de caracteres de longitud especificada consistente, exclusivamente, en espacios en blanco. Utilice BLANKS( ) para hacer el formato de un campo con espacios en blanco, con el fin de iniciar una variable o tornar un campo mayor, añadiendo un número fijo de espacios en blanco. Formato de función BLANKS(#) BLANKS( ) regresa una cadena conteniendo un número especifico de espacios en blanco. La longitud de la cadena # debe ser una constante numérica. Ejemplos BLANKS(5) = " BLANKS(10) = " " " En el siguiente ejemplo, se añaden espacios en blanco a la cadena de caracteres abc: "abc" + BLANKS(5) = "abc " BYTE( ) BYTE( ) devuelve la interpretación de los caracteres ASCII de un byte en una posición específica en el registro actual. Utilice BYTE( ) para examinar el contenido de una posición en un registro sin tener que definir un campo al efecto. Si utiliza esta función con datos EBCDIC, el valor devuelto también será EBCDIC. Es posible que tenga problemas al compararlo con valores de caracteres. Formato de función BYTE(N) La función BYTE( ) permite acceder a bytes individuales del registro de entrada. El valor N hace referencia a una posición en el registro (a contar a partir de 1), independientemente de las definiciones de cualquier otro campo. La función accede al byte en la posición N y devuelve el contenido como una sola cadena de caracteres. 38 ACL para Windows 7 CDOW( ) Manual de Referencia Ejemplos Dado un registro que contiene: 10072DOE JOHN 123188 ....|....1....|....2....|....3....|....4....| BYTE(4) = "7" BYTE(25) = "H" BYTE(30) = " " CDOW( ) CDOW( ) devuelve el nombre del día de la semana para una fecha especificada. Para mostrar el día de la semana como número, utilice la función DOW( ). Formato de función CDOW(D;#) D especifica la fecha. # especifica la longitud del campo. Para mostrar nombres abreviados, especifique una longitud de campo más corto. Ejemplos Para mostrar el nombre del día de la semana: CDOW(`20000801`;7) = "Martes" CDOW(`20000802`;9) = "Miércoles" CDOW(`20000801`;3) = "Mar" CHR( ) CHR( ) devuelve el carácter correspondiente al valor decimal ASCII que se especifica. Permite consultar cualquier carácter ASCII, especialmente los que no pueden insertarse directamente con el teclado o que no pueden imprimirse. CHR( ) es la función inversa de ASCII( ). Capítulo 2 Funciones CLEAN( ) 39 Formato de función CHR(N) CHR( ) devuelve el carácter ASCII correspondiente al valor decimal N. El valor de N debe permanecer entre 1 y 256. Nota: ACL utiliza el carácter de valor cero como delimitador de cadena generando resultados imprevisibles cuando se usa. Ejemplos Es posible utilizar CHR( ) para agregar el Símbolo de la Moneda Libra Esterlina £ (carácter ASCII 163) a los valores constantes de un campo de moneda, para fines de formato: CHR(163)+"123,45"= "£123,45" Es posible también, utilizar CHR( ) como parte de una prueba para encontrar campos o registros, para la existencia de un carácter específico no imprimible. CLEAN( ) CLEAN( ) busca todos los caracteres no válidos de una cadena y los reemplaza, junto con los caracteres posteriores, por espacios en blanco. Utilice CLEAN( ) para asegurarse de que se imprimen correctamente los campos con datos no válidos. Es posible utilizar CLEAN( ) para aislar partes de un campo, como el último nombre del campo de clientes que incluye tanto el primero como el último apellido del cliente. Formato de función CLEAN(C1 <;C2>) La función CLEAN( ) examina un campo o una expresión de caracteres C1 de izquierda a derecha y busca los caracteres no válidos. Si encuentra uno, CLEAN( ) reemplaza los datos no válidos y el resto de la cadena por espacios en blanco. El segundo parámetro opcional C2 permite especificar valores adicionales de caracteres que deberán considerarse no válidos para la finalidad de la prueba. Los valores de estos parámetros deben ir entre comillas. Es posible aplicar la función CLEAN( ) automáticamente a todos los campos de caracteres al activar la preferencia Datos no válidos en blanco. Para hacerlo, seleccione Edición en la barra de menús y elija Preferencias, haga clic en la ficha [Opciones numéricas] y active la casilla de verificación de Datos no válidos en blanco. 40 ACL para Windows 7 CTOD( ) Manual de Referencia Ejemplos CLEAN("ABC%DEF";"%") = "ABC " CLEAN("1234,56.111.2";".") = "1234,56 " En el siguiente ejemplo, # representa los datos de caracteres no válidos: CLEAN("DOE, JOHN##102891231") = "DOE, JOHN " CLEAN("DOE, JOHN##102891231";",") = "DOE " CTOD( ) CTOD( ) convierte una expresión de caracteres o numérica en una expresión de fecha válida. Utilice CTOD( ) para crear una fecha para la comparación con valores de campos, sobre todo si la fecha no es una constante. Por ejemplo, para identificar todas las fechas anteriores a una fecha determinada se puede utilizar la prueba: DATE) La función CTOD( ) (abreviatura de “Carácter A Fecha”) convierte cadenas de caracteres o valores numéricos en fechas válidas. CTOD( ) es el nombre de función estándar que se utiliza en muchos otros paquetes de software. A diferencia de otros paquetes de software, ACL también convierte expresiones numéricas en fechas. Si el primer parámetro es un número, éste se convierte automáticamente en una cadena antes de la conversión. Capítulo 2 Funciones DATE( ) 41 Se supone que el primer parámetro se almacena como “AAAAMMDD” o “AAMMDD”. De no ser así, ACL le permite especificar una cadena de formato opcional. Por ejemplo, para convertir una fecha juliana al formato “AADDD”, especifique: CTOD(FECHA_JULIANA;"AADDD") Nota: La cadena de formato tiene el mismo formato que Configurar fecha y el tipo de campo Fecha. Se puede incluir puntuación en la cadena que se va a convertir. Ya que la cadena de formato en realidad posee una cadena de caracteres (más que una fecha) deberá ponerse entre comillas dobles o sencillas (no invertidas). Ejemplos Suponga que tiene un archivo de transacciones de cuentas a cobrar que incluye un campo de fecha de vencimiento denominado Vencimiento. Desea ver todas las transacciones con una fecha de vencimiento anterior a la fecha 1 de julio, 1995. Para hacerlo, es necesario comparar el campo Vencimiento con el valor 1 de julio, 1995. Ya que ACL interpreta el campo Vencimiento como un número único, no es posible compararlo con 07/01/95 o 950701. Es necesario convertir 1 de julio, 1995, en otro número. Para hacerlo, utilice la prueba IF o un filtro de la siguiente manera: Due) Si no se proporciona ningún parámetro, se convertirá la fecha del sistema. De lo contrario, se convertirá la fecha D especificada. La fecha se devuelve como cadena de caracteres de 12 bytes en el formato especificado por SET DATE (fecha del conjunto). Si SET DATE especifica un formato inferior a 12 bytes, el valor devuelto se rellena con espacios en blanco. Para obtener más información sobre el comando Definir fecha, consulte “Set (Definir)” on page 337. Ejemplos Al utilizar la configuración de fechas predeterminada MM/DD/AA, una fecha de sistema Nov 22, 1995 y un valor de campo de fecha Dic. DATE() = "11/22/95 " DATE(DATEFLD) = "12/31/95 " DECIMALS( ) DEC( ) permite especificar el número de posiciones decimales para una expresión numérica o un valor de campo proporcionado. Utilícelo cuando desee ajustar las posiciones decimales en cálculos matemáticos o cuando desee redondear un resultado a un número especificado de posiciones decimales. Formato de función DEC(N;#) Donde # es una constante numérica que representa los dígitos decimales que no pueden cambiarse de un registro a otro. DEC( ) toma el valor de la expresión numérica N y ajusta el número de decimales al especificado por #. Si es reducido el número de decimales, ACL redondea el resultado. No se puede utilizar la función DEC( ) después de realizar un cálculo para revertir el redondeo. Por ejemplo, DEC(3/2;4) = 1,0000, y no 1,5000. Nota: El número de decimales es una constante y no se puede cambiar durante el procesamiento. Ejemplos DEC(7;2) = 7,00 DEC(7,5647;3) = 7,565 Capítulo 2 Funciones DIGIT( ) 43 Para crear un campo tipo de interés diario (con seis posiciones decimales) desde un campo de tipo anual, especifique: DEC(ANNUAL_RATE;6)/365 DIGIT( ) DIGIT( ) devuelve el valor superior o inferior de un byte compactado, en una posición especificada en el registro. Utilice DIGIT( ) cuando requiere el acceso a medio bytes individuales en aplicaciones como Unisys y NCR, los cuales utilizan campos compactados alineados por medio bytes. Formato de función DIGIT(N;1|2) La función DIGIT( ) separa las mitades individuales de un byte. El primer parámetro permite especificar una posición de byte en el registro y el segundo parámetro permite especificar 1 para devolver la mitad superior del byte o 2, devolver la mitad inferior del byte. En ambos casos, el valor del medio byte es devuelto en la forma de un dígito entre 0 y 15. Ejemplos Un campo compactado con el valor 123,45 (00 12 34 5C), conteniendo dos decimales e iniciando en la posición 10 de byte aparece en el registro de datos en el siguiente formato: Byte 10 Byte 11 Byte 12 Byte 13 UPPER (1) 0 1 3 5 LOWER (2) 0 2 4 C Para encontrar que dígito aparece en la 12ª de la mitad superior del byte utilice: DIGIT(12;1) = 3 Para encontrar que dígito aparece en la 12ª posición de la mitad inferior del byte, utilice: DIGIT(12;2) = 4 Para obtener más información sobre como trabajar con datos UNISYS, consulte “Unisys” on page 22. 44 ACL para Windows 7 DOW( ) Manual de Referencia DOW( ) DOW( ) devuelve un valor numérico que contiene un dígito de 1 a 7, el cual representa el día de la semana. El dígito “1” representa el Domingo. Para mostrar el nombre del día de la semana, utilice la función CDOW( ). Formato de función DOW(D) Ejemplo Para mostrar el día de la semana como un número de un único dígito: DOW(`19991124`) = 4 EBCDIC( ) Convierte una cadena a caracteres EBCDIC. Use EBCDIC( ) para convertir datos para exportación para aplicaciones o plataformas no basadas en ASCII, tales como, OS/390 o AS400. Formato de función EBCDIC(C) EBCDIC( ) convierte el valor de la cadena C a EBCDIC. Ejemplo Para crear un campo que contenga el valor EBCDIC del campo Nombre para cargarlo en un mainframe (unidad central), especifique: EBCDIC(NOMBRE) EFFECTIVE( ) EFFECTIVE( ) calcula el tipo de interés anual efectivo de un préstamo. Utilice EFFECTIVE( ) para determinar el tipo de interés anual efectivo cuando se conoce el tipo de interés declarado y el número de períodos compuestos. Por ejemplo, si sabe que el tipo de interés cargado a su tarjeta de crédito es compuesto mensualmente, pero desea conocer el tipo anual equivalente teniendo en cuenta el interés compuesto, utilice esta función. Para obtener más información, consulte “Funciones financieras” on page 27. Capítulo 2 Funciones EXCLUDE( ) 45 Formato de función EFFECTIVE(tasa_nominal; períodos) tasa_nominal es la tasa de interés anual nominal. períodos es el número de períodos compuestos por año. Los períodos son truncados en un entero. Esta función es la opuesta a NOMINAL( ). El resultado aparecerá con una precisión de ocho posiciones decimales, es decir, 0,12345678 ó 12,345678%. Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplo Si sabe que a su tarjeta de crédito se le carga un 18%, compuesto mensualmente sobre saldos deudores, para calcular el tipo anual efectivo, especifique: EFFECTIVE(,18;12) = ,19561817 Esto indica que el tipo anual efectivo es del 19,561817%. EXCLUDE( ) EXCLUDE( ) devuelve una cadena de longitud variable excluyendo del resultado los caracteres especificados. EXCLUDE( ) es lo opuesto a la función INCLUDE( ). Formato de función EXCLUDE(C1;C2) EXCLUDE( ) devuelve una cadena que contiene los caracteres de C1, excluidos todos los caracteres que aparezcan en C2, en el mismo orden en el que aparece en C1. Ejemplos EXCLUDE("123 any street";"0123456789")=" any street" Para eliminar una coma, una barra diagonal y un signo numérico del campo Prodno, especifique: EXCLUDE(Prodno;"/#") 46 ACL para Windows 7 EXPONENT( ) Manual de Referencia EXPONENT( ) EXP( ) devuelve el valor exponencial (base 10) de una expresión numérica. Utilice EXP( ) para aplicaciones financieras que requieran cálculos matemáticos complejos. EXP( ) realiza una operación semejante al operador exponencial “^”, pero puede ser útil en aplicaciones que también utilizan la función LOG( ). EXP( ) es lo opuesto a la función LOG( ). Formato de función EXPONENT(N;#) Donde # es una constante numérica que representa los dígitos decimales que no pueden cambiarse de un registro a otro. EXP( ) devuelve el valor exponencial (base 10) de la expresión numérica o el valor de campo N con # posiciones decimales. El valor exponencial de un número es definido como 10 elevado a la enésima potencia. Por lo tanto, el exponencial de 3 es 1000. Lo inverso de un exponencial es su logaritmo. Ejemplos EXP(3;2) = 1000,00 EXP(4,86;6) = 72443,596007 Para crear un campo que es la raíz cúbica del campo X con hasta dos lugares decimales, especifique: EXP(LOG(X;6)/3;2) Nota: Puede determinarse la raíz N dividiendo el logaritmo del valor por N y tomando el exponente del resultado. FILESIZE( ) FILESIZE( ) devuelve el tamaño de un archivo. Utilice FILESIZE( ) para determinar el tamaño de un archivo en bytes, o bien para saber si el archivo existe. La función FILESIZE( ) devuelve el tamaño de un archivo en bytes, o bien -1 si el archivo no existe. Normalmente, esta función se utiliza para comprobar la existencia de un archivo con el fin de controlar la ejecución de un lote, o bien para utilizar el tamaño obtenido para algún cálculo útil. Capítulo 2 Funciones FIND( ) 47 Formato de función FILESIZE(nombre_del_archivo) nombre_del_archivo, es el nombre del archivo cuyo tamaño se desea determinar. Si el archivo está en el mismo directorio que el Proyecto de ACL, no es necesario especificar la ruta de acceso completa. En el caso de archivos de otros directorios, especifique una ruta de acceso relativa como datos\nombredearchivo.fil, o bien una ruta de acceso absoluta, como c:\acl\datos\nombredearchivo.fil. Ejemplos Para ejecutar el lote TEST sólo si existe el archivo Demo.fil: DO TEST IF FILESIZE("Demo.fil")>0 En el Generador de expresiones es posible seleccionar FILESIZE( ) en la lista desplegable Funciones, haciendo clic en aquellos elementos de la lista. La función seleccionada es insertada en el cuadro de texto Expresión. Si el archivo cuyo tamaño se desea especificar no está en el mismo directorio, debe insertar una ruta de acceso al archivo relativa o absoluta. FILESIZE("c:\directorio\subdirectorio\demo.fil") Para ver el tamaño de DEMO.FIL, utilice el comando Calcular en el Log de comandos. calculate FILESIZE("Demo.fil") FIND( ) Es posible utilizar FIND( ) para probar la presencia de una cadena de caracteres en un campo o registro. Esta función no distingue entre mayúsculas y minúsculas (busca tanto en mayúsculas como en minúsculas), como tampoco entre caracteres ASCII y EBCDIC. FIND( ) devuelve Verdadero si encuentra la cadena, de lo contrario devuelve Falso. Formato de función FIND(C<;campo>) FIND( ) buscando las cadenas C en el campo especificado por el campo. Si se omite el campo, FIND( ) busca la cadena C en todo el registro. Ejemplos FIND("New York";City) FIND("New York") 48 ACL para Windows 7 FIND( ) Manual de Referencia Encontrando caracteres en un campo Utilice la función FIND ( ) para encontrar cualquier cadena de caracteres dentro del campo especificado. Nota: La función Buscar está diseñada para buscar varios caracteres en un campo o registro. Dado que FIND( ) busca caracteres ASCII y EBCDIC, esta función devuelve Verdadero cuando encuentra el equivalente hexadecimal de un carácter ASCII o EBCDIC. Para buscar el campo City para las empresas de New York, haga lo siguiente: 1. Haga clic en (Editar el filtro de vista), en la ventana de Vista. ACL muestra el cuadro de diálogo Editar el filtro de vista. 2. Escriba FIND("New York";City) en el cuadro de texto Expresión. Función Buscar Si considera que podría volver a utilizar este filtro, escriba un nombre en el cuadro de texto Guardar como para guardar este filtro y poder volver a utilizarlo en el futuro. 3. Haga clic en [Aceptar]. Ya que esta función devuelve Verdadero si se encuentra la cadena y Falso en el caso contrario, ACL filtra los registros en los que no aparece New York. Encontrando caracteres en un registro Si deja el parámetro de campo en blanco, la función FIND( ) buscará la cadena de caracteres en todo el registro. Capítulo 2 Funciones FREQUENCY( ) 49 Por ejemplo, para buscar las palabras “New York” en algún lugar del registro, haga lo siguiente: 1. En la ventana de Vista, escriba FIND("New York") en el cuadro de texto del filtro. 2. Haga clic en (Definir filtro). ACL busca el archivo de entrada e identifica los registros en los que aparece “New York” en alguna parte. FREQUENCY( ) FREQUENCY( ) devuelve la frecuencia esperada Benford de dígitos numéricos anteriores secuenciales a una precisión de ocho dígitos. Permite ejecutar pruebas Benford limitados para situaciones específicas. Utilice FREQUENCY( ) en lugar de un análisis completo Benford, cuando desee concentrarse sólo en combinaciones de dígitos específicos. Por ejemplo, al auditorear la reclamaciones de seguro que tengan límites de aprobación con valores de pedido especificados, es posible utilizar la función FREQUENCY( ) para encontrar valores inmediatamente inferiores al límite aprobado. Para investigar pedidos con valor próximo a un límite de $5.000, es posible seleccionar el intervalo entre $4.900 y $4.999. En primer lugar, cuente el número total de registros y, a continuación, utilice un filtro para contar los registros para los cuales LEADING( ) devuelve ‘49’ y compare el cociente de los dos recuentos con el valor obtenido para FREQUENCY(49). Esto es más rápido que la ejecución de un análisis completo del archivo de datos y un millón de registros, sin generar un gran archivo de datos o entradas voluminosas en el registro de comando. Formato de función FREQUENCY(C) C es una cadena de caracteres que consiste sólo en los dígitos de 0 a 9 y tiene un valor global mayor que cero. FREQUENCY( ) ignora la cantidad de ceros anteriores en la cadena de caracteres. Nota: La especificación de cadenas mayores que seis dígitos puede resultar en valores cero. Los cálculos de cadenas mayores que seis dígitos pueden exigir mayor precisión que el límite de ACL, que es de ocho posiciones decimales. Ejemplos FREQUENCY("43") = ,00998422 FREQUENCY("87654321") = 0,00000000 La frecuencia de 87654321 es 0,00000000495. ACL computa con una precisión de ocho posiciones decimales y, por lo tanto, devuelve un valor cero. 50 ACL para Windows 7 FTYPE( ) Manual de Referencia FTYPE( ) FTYPE( ) devuelve un valor que identifica un tipo de campo u otro elemento. Utilice FTYPE( ) para probar los tipos de campo cuando se está ejecutando un lote. Formato de función FTYPE(C) Si C es el nombre del campo actual, en valor devuelto es “C”, “N”, “L” o “D” en mayúsculas, lo que indica que el campo es de caracteres, numérico, lógico o de fecha respectivamente. Si C es un nombre de variable, el valor devuelto es “c”, “n”, “l” o “d” en minúsculas, lo que indica que el campo es de caracteres, numérico, lógico o de fecha, respectivamente. Si C es el nombre de un lote, se devuelve una “b”. De igual modo, FTYPE( ) devuelve una “f ” para una definición del archivo de entrada, una “w” para un espacio de trabajo, una “i” para un índice y una “r” para un reporte. Si C no corresponde a ninguno de ellos, el valor devuelto será “U” (no se ha definido). Si C es un campo, una variable o un nombre de lote, asegúrese que lo que especifica vaya entre comillas simples o dobles. Nota: FTYPE( ) solamente funciona con los nombres de los elementos o de campos y no con su contenido. Ejemplos Si Letter representa un campo de carácter y Number representa un campo numérico: FTYPE("Letter") = "C" FTYPE("Number") = "N" Si tiene una aplicación estándar que utiliza el campo “CANTIDAD” para calcular totales, tal vez desee asegurarse de que haya realmente un campo CANTIDAD y que éste sea numérico antes de iniciar la aplicación estándar. El siguiente lote solamente es ejecutado, sólo si, CANTIDAD es un campo numérico: DO STDAPP IF FTYPE("AMOUNT") = "N" Capítulo 2 Funciones FVANNUITY( ) 51 FVANNUITY( ) FVANNUITY( ) calcula el valor futuro de una serie de pagos. Utilice FVANNUITY( ) para determinar a cuánto asciende una anualidad acumulada durante un período. El valor futuro de una serie de pagos es el importe total que sumará dicha serie de pagos, con interés compuesto. Por ejemplo, cuando deposita automáticamente el mismo importe de dinero en el banco cada mes, el saldo final es el valor futuro que supone para usted; es decir, la suma de los pagos más el interés compuesto acumulado. Para obtener más información, consulte “Funciones financieras” on page 293 of the ACL for Windows User Guide. Formato de función FVANNUITY(tasa;períodos;valor) tasa es el tipo de interés por período. períodos es el número total de períodos de pago en una anualidad. valor es el pago abonado al final de cada período. No puede cambiar durante la anualidad. El resultado se devuelve con dos posiciones decimales. FVANNUITY( ) asume un valor actual (PV) de cero y calcula el resultado basado en los pagos al final del período. Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplos Para calcular el valor futuro que se acumularía si depositase $1.000 mensuales durante un año en una cuenta con un interés del 1% mensual, especifique: FVANNUITY(,01;12;1000) = 12.682,50 Para calcular la cantidad de dinero que se acumularía si depositase $2.000 mensuales durante tres años en una cuenta con un interés del 7% anual compuesto mensualmente, especifique: FVA(,07/12;36;2000) = 79.860,20 52 ACL para Windows 7 FVLUMPSUM( ) Manual de Referencia FVLUMPSUM( ) FVLUMPSUM( ) calcula el valor futuro de una suma global después de muchos períodos. Utilice FVLUMPSUM( ) para determinar el valor futuro de una inversión. El valor futuro es el importe total que se acumulará, con interés compuesto. Por ejemplo, si deposita una suma global en el banco y la deja, el valor futuro es el saldo final del banco. Para obtener más información, consulte “Funciones financieras” on page 293 of the ACL for Windows User Guide. Formato de función FVLUMPSUM(tasa;períodos;valor) tasa es el tipo de interés por período. períodos es el número total de períodos. valor es el pago abonado al comienzo del primer período. El resultado se devuelve con dos posiciones decimales. Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplo Digamos que el banco puede darle un interés del 1% mensual, compuesto mensualmente. Si deposita $1.000, para calcular cuánto habrá acumulado tras un período de 12 meses, especifique: FVLUMPSUM(,01;12;1000) = 1126,83 HEXADECIMAL( ) HEX( ) devuelve una cadena hexadecimal equivalente a una expresión o a un valor de campo especificado. Utilice HEX( ) cuando no esté seguro del contenido exacto de un campo. Formato de función HEXADECIMAL(F) HEX( ) convierte el valor de un campo o de una expresión F en una cadena hexadecimal. La cadena resultante es el doble de la longitud de F. Los dígitos de 0 a 9 y las letras de A hasta F (para los dígitos de 10 a 15) representan los 16 valores hexadecimales. Capítulo 2 Funciones INCLUDE( ) 53 En general, debe aplicar esta función a campos en vez de aplicarla a expresiones, ya que HEX( ) muestra una representación del formato interno de almacenamiento de expresiones que aparentemente no es muy útil. La operación de esta función es similar al BIT( ), porque convierte datos en una cadena de texto de forma inferior. Sin embargo, acepta un campo o expresión como su parámetro y no una ubicación de byte. Ejemplos Para buscar el valor hexadecimal del campo X que contiene la cadena 12345: HEX(X) = "3132333435" Para agregar a la vista un campo que es el valor hexadecimal del campo Count, especifique: HEX(COUNT) INCLUDE( ) INCLUDE( ) devuelve una cadena de longitud variable e incluye solamente los caracteres especificados en el resultado. INCLUDE( ) es lo opuesto a la función EXCLUDE( ). Formato de función INCLUDE(C1;C2) INCLUDE( ) devuelve una cadena que está formada sólo por los caracteres de C1 que aparecen en C2, en el mismo orden en el que aparecen en C1. Ejemplos INCLUDE("123 cualquier calle";"0123456789")="123" Para crear un campo PROD que conserve sólo los dígitos del campo Prodno, especifique: INCLUDE(Prodno;"123456789") 54 ACL para Windows 7 INSERT( ) Manual de Referencia INSERT( ) INSERT( ) inserta caracteres o espacios en blanco en una cadena de caracteres, en cualquier posición. Utilice INSERT( ) para uniformizar los datos para un formato, equivalencia en duplicados y para los comandos Unir y Relaciones, los cuales requieren campos idénticos. Por ejemplo, los números de piezas en un archivo pueden estar en un formato “12345” y en otro archivo, “12-345.” Se puede utilizar INSERT( ) para insertar un guión (-) en la posición 3. Formato de función INSERT(C1;C2;N) INSERT( ) devuelve una cadena donde la cadena C2 es insertada en la cadena C1, en la posición N. Si N es mayor que la longitud de la cadena C1, la cadena C2 es colocada al final de la cadena C1. Si N es menor o igual a C1, la cadena C2 es colocada delante de la cadena C1. Ejemplos INSERT("abcde";"XXX";2) = "aXXXbcde" INSERT("abcde";"XXX";8) = "abcdeXXX" INSERT("abcde";"XXX";0) = "XXXabcde" INTEGER( ) INT( ) devuelve el valor entero de una expresión numérica o el valor de campo. Utilice INT( ) para ignorar o aislar la parte fraccionario de una expresión. Formato de función INTEGER(N) La función INT( ) devuelve el valor entero de la expresión numérica o el valor del campo N. Nota: Por definición, se truncan los números seguidos de decimales. Nota: Algunos paquetes de software definen el valor negativo de INT como el valor inmediato inferior, es decir, INT(-7,9) = -8. Éste no es el caso con ACL, ya que los valores negativos tienden a representar la contabilización de créditos en datos financieros y no son cifras realmente negativas. Capítulo 2 Funciones ISBLANK( ) 55 Ejemplos INT(7,9) = 7 INT(-7,9) = -7 Para crear el campo Cents, que es la parte del campo Amount que le interesa, especifique: Valor-INT(Amount) ISBLANK( ) ISBLANK( ) devuelve Verdadero o Falso, dependiendo si una cadena consiste enteramente en espacios en blanco. Utilice ISBLANK( ) para buscar registros con ausencia de informaciones. Esta función busca entradas de espacios en blanco en los campos que no deberían contenerlas y fue prevista para pruebas lógicas. Formato de función ISBLANK(C) ISBLANK( ) devuelve Verdadero si la cadena C consiste enteramente en espacios en blanco y Falso si no consiste enteramente en espacios en blanco. ISBLANK( ) sólo identifica los espacios reales en blanco posibles de imprimirse, sin caracteres inválidos que aparecen como los espacios en blanco en una vista. ISBLANK( ) puede no devolver resultados útiles con campos de caracteres que contengan caracteres nulos (ceros binarios). ACL y algunos idiomas de programación utilizan el carácter nulo para indicar el final de una cadena. Por consiguiente, ISBLANK( ) no realiza la lectura de cualquier dato de carácter que venga a continuación de un carácter nulo, incluyendo espacios en blanco. Ejemplos ISBLANK(" A") = F ISBLANK(" ") = T ISBLANK("") = T 56 ACL para Windows 7 LAST( ) Manual de Referencia LAST( ) LAST( ) devuelve un número especifico de caracteres desde el final de una cadena. Formato de función LAST(C;#) Donde C es la cadena de origen y # es una constante numérica. LAST( ) devuelve una cadena conteniendo el último # de caracteres del final de la cadena C. Cuando los caracteres son insuficientes para completar la cadena resultante, se agregan espacios en blanco a la izquierda de la cadena. Ejemplos LAST("abcdefghi";5) = "efghi" LAST("abcdefghi ";5) = "ghi " LAST("abc";6) = " abc" LEADING( ) LEADING( ) devuelve una cadena de caracteres que contiene una cantidad específica de dígitos iniciales. Utilice LEADING( ) para filtrar elementos que no sean dígitos, como ceros iniciales, dígitos no numéricos y signos de puntuación, como por ejemplo, el signo de decimales o el símbolo del dólar. Formato de función LEADING(N;#) # especifica el número de dígitos iniciales que deben devolverse. Ejemplos Si un campo numérico llamado Valor contiene el valor $-6.234,56, el valor analizado es: LEADING(Valor;3) = "623" LEADING(Valor;5) = "62345" Si un campo numérico llamado Valor contiene el valor $0,00, el valor analizado es: LEADING(Valor;3) = "000" LEADING(Valor;5) = "00000" Capítulo 2 Funciones LENGTH( ) 57 Si un campo numérico llamado Valor contiene el valor $3.55, el valor analizado es: LEADING(Valor;3) = "355" LEADING(Valor;5) = "35500" LENGTH( ) LENGTH( ) devuelve la longitud de una cadena específica. Formato de función LENGTH(C) LENGTH( ) cuenta el número de caracteres en C y devuelve ese número. Nota: ACL cuenta los espacios en blanco finales de la longitud. Si no desea contarlos, utilice la función TRIM( ) para eliminarlos. Para obtener más información, consulte “TRIM( )” on page 87. Por definición, la longitud de un campo de caracteres siempre es constante. Ejemplos LENGTH("ABCDE")=5 Para crear un campo que tenga la longitud del campo NOMBRE con los espacios en blanco finales excluidos, especifique: LENGTH(TRIM(Nombre)) LOGARITHM( ) LOG( ) devuelve el logaritmo (base 10) de una expresión numérica o un valor de campo con una cantidad específica de posiciones decimales. LOG( ) es la función opuesta de EXP( ). Utilice LOG( ) para las aplicaciones financieras que requieren cálculos matemáticos complejos. Formato de función LOGARITHM(N;#) Donde # es una constante numérica que representa los dígitos decimales que no pueden cambiarse de un registro a otro. 58 ACL para Windows 7 LOWER( ) Manual de Referencia LOG( ) devuelve el logaritmo común (base 10) de la expresión numérica o del valor de campo N con # posiciones decimales. El logaritmo de un número es el exponente (o potencia) de diez necesario para generar ese número. Por lo tanto, el logaritmo de 1.000 es 3. Lo opuesto a un logaritmo es su exponencial. Ejemplos LOG(1000;4) = 3,0000 LOG(72443;2) = 4,86 Para crear un campo que es la raíz cúbica del campo X con hasta dos lugares decimales, especifique: EXP(LOG(X;6)3;2) Nota: Puede determinarse la raíz N dividiendo el logaritmo del valor por N y tomando el exponente del resultado. LOWER( ) LOWER( ) convierte todos los caracteres alfabéticos de una expresión o de un campo a minúsculas. Utilice LOWER( ) cuando busque datos escritos con mayúsculas y minúsculas combinadas o sin especificar, o bien cuando desee hacer un formato con sus datos en minúscula. LOWER( ) es la función opuesta de UPPER( ). Formato de función LOWER(C) La función LOWER( ) convierte todos lo caracteres alfabéticos de una cadena C a minúsculas. Todos los caracteres no alfabéticos permanecen igual. Para obtener más información, consulte “PROPER( )” on page 70, que convierte caracteres alfabéticos en mayúsculas y minúsculas y “UPPER( )” on page 88, convierte caracteres alfabéticos en mayúsculas. Ejemplos LOWER("ABC")= "abc" LOWER("abc 123 DEF") = "abc 123 def" LOWER("AbCd 12") = "abcd 12" Para crear un campo Nombre en minúsculas, especifique: LOWER(Nombre) Capítulo 2 Funciones LTRIM( ) 59 LTRIM( ) LTRIM( ) devuelve una cadena de longitud variable con todos los espacios en blanco iniciales eliminados. LTRIM( ) es similar a la función TRIM( ), que elimina cualquier espacio anterior de una cadena en blanco y ALLTRIM( ), que elimina los espacios anteriores finales en blanco. Formato de función LTRIM(C) La cadena C se copia al resultado y se omiten todos los espacios en blanco. Consulte “TRIM( )” on page 87. Ejemplos LTRIM(" AB C ") = "AB C " LTRIM("ABC") = "ABC" LTRIM(" A ") = "A " MAP( ) MAP( ) ejecuta una comparación carácter por carácter de una cadena de origen con un formato especificado y devuelve un valor Verdadero o Falso. La cadena de formato puede contener cualquier carácter comodín, caracteres literales o ambos. Utilice MAP( ) para ejecutar comparaciones de comodín o literales en ACL, especialmente para crear filtros que no estén basados en texto literal. Formato de función MAP(C1;C2) Donde C1 es la cadena de origen que será comparada y C2 es la cadena de formatos. Si C2 es más extenso que C1, el resultado será Falso. Si C2 es menos extenso, MAP( ) compara sólo los caracteres con la extensión de C2. Los caracteres remanentes en la cadena C1 no afectarán el valor retornado. MAP( ) devuelve Verdadero si C1 es equivalente a C2. Devuelve Falso si C1 no es equivalente a C2. 60 ACL para Windows 7 MAP( ) Manual de Referencia La cadena de formato (C2) pueden contener caracteres literales que sólo son equivalentes a los caracteres existentes en la misma posición de la cadena de origen. También es posible especificar los siguientes tipos de caracteres: Utilice esto: Para hacer: X,x Equiparar cualquier carácter alfabético (a-z, A-Z, caracteres europeos). 9 Equiparar cualquier número (0-9). ! Equiparar cualquier carácter que no sea espacio en blanco. ? Equiparar cualquier carácter.s \ Especifique que el siguiente carácter es literal, independientemente de su valor. El tipo de carácter alfabético no distingue entre mayúsculas y minúsculas. Utilice “X” o “x.” Los espacios en blanco pueden insertarse como espacios en blanco, sin “\” adelante. Utilice “\” antes de cualquier carácter de formato que debe estar, literalmente, en la cadena de formatos. Por ejemplo, para especificar “X” como literal, ingrese con “\X” en la cadena de formatos. Para especificar una barra invertida como literal, ingrese con “\\\\”.Una única “\\” como el último carácter en la cadena C2 es ignorada. Ejemplos MAP("ABC123";"xxx999") = T MAP("ABC123";"XX999") = F MAP("A bc123";"X XX999") = T MAP("A bc123";"XXX999") = F MAP("ABC123";"ABC999) = T MAP("ABC123";"XXC999") = T MAP("WXY123";"W\XY999") = T MAP("ABC123";"XXX 9999") = F MAP("A1 B23";"XXXX") = F MAP("A1 B23";"!!!!") = F Capítulo 2 Funciones MASK( ) 61 MASK( ) MASK( ) extrae bits individuales del primer byte de una expresión de caracteres. Utilice MASK( ) para identificar los patrones de bit específicos en un byte de datos. Formato de función MASK(C1;C2) MASK( ) realiza una operación AND lógica relativa al bit en los primeros caracteres de C1 y C2, devolviendo una cadena de un carácter. Si alguno de estos parámetros es mayor que 1 byte se ignorará los caracteres siguientes. El uso habitual es tener el byte en cuestión como C1 y un valor enmascarado como C2. Una operación AND lógica basada en el bit compara los dos bytes, uno por uno. El resultado para cada posición de bit es 1, si ambos bits son 1. De lo contrario, el resultado para ese bit es 0. Ejemplo MASK("A";CHR(15)) = CHR(1) (donde A = 65 = 01000001; 15 = 00001111; A y 15 = 00000001) MATCH( ) MATCH( ) compara una expresión o un valor de campo de cualquier tipo con una serie de expresiones o valores de campo específicos para determinar si al menos existe una coincidencia. El valor devuelto es verdadero o falso. Utilice MATCH( ) para evitar tener que repetir argumentos en una prueba. Formato de función MATCH(valor_de_la_comparación;prueba_1;prueba_2 <;prueba_3...>) MATCH( ) devuelve un valor Verdadero o Falso, dependiendo del valor de la comparación puede ser igual a cualquiera de las pruebas subsiguientes. Una cantidad de pruebas puede incluirse, cada una de ellas consistiendo en una constante, valor de 62 ACL para Windows 7 MATCH( ) Manual de Referencia campo o expresión. Las pruebas pueden ser de cualquier tipo (carácter, numérico o lógico), desde que sean del mismo tipo. Por ejemplo: IF LOC = 7 O LOC = 9 OR LOC = 13 OR LOC = 21 OR LOC = 44 puede reemplazarse por: IF MATCH(LOC;7;9;13;21;44) Ejemplos MATCH(7;1;3;5;7;9) = T porque 7 se incluye en 1, 3, 5, 7, 9 MATCH(7;2;4;6;8;10) = F porque 7 no se incluye en 2, 4, 6, 8, 10 MATCH('BILL';'JOHN';'ANDY') = F Si las posiciones 01, 02, y 22 representan su división de búsqueda, con el fin de recrear un filtro “Research” que excluya los demás departamentos, especifique: MATCH(LOC;"01";"02";"22") Para extraer todos los registros para la división de la búsqueda, ingrese con “Research” en el cuadro de texto condición. Capítulo 2 Funciones MAXIMUM( ) 63 Extraer registros Condición Nombre del archivo extraído MAXIMUM( ) MAXIMUM( ) devuelve el mayor de dos números. MAXIMUM( ) es lo opuesto de la función MINIMUM( ). Formato de función MAXIMUM(N1;N2) Si N1 es mayor que N2, MAXIMUM( ) devuelve N1. De lo contrario, devuelve N2. Si la cantidad de decimales en los dos parámetros de número es diferente, el resultado se ajustará al mayor número de decimales. Ejemplos MAX(4;7) = 7 MAX(7,5;4) = 7,5 MAX(7;4,55) = 7,00 64 ACL para Windows 7 MINIMUM( ) Manual de Referencia Si tiene un archivo de cuentas vencidas no cobradas, para crear un campo INTERES_DUE que contenga un valor mínimo de $1,00 especifique: MAXIMUM(BALANCE * ANNUAL_RATE;1) Si el saldo multiplicado por el tipo de interés es inferior a 1 dólar, MAX( ) devuelve 1. De lo contrario, MAX( ) devuelve el importe del interés calculado. MINIMUM( ) MINIMUM( ) devuelve el menor valor de dos números especificados. MINIMUM( ) es lo opuesto de la función MAXIMUM( ). Formato de función MINIMUM(N1;N2) Si N1 es menor que N2, MINIMUM ( ) devuelve N1. De lo contrario, devuelve N2. Si el número de decimales en los dos números es diferente, MINIMUM( ) ajuste el resultado al mayor número de decimales. Ejemplos MIN(4;7) = 4 MIN(7,5;4) = 4,0 MIN(7;4,55) = 4,55 En un archivo de inventario, para crear un campo que contenga el valor más bajo del precio de COST y de SALE, especifique: MINIMUM(Cost;Salepr) MOD( ) MOD( ) divide dos números y devuelve el resto. Utilice MOD( ) para probar si la división entre dos números es exacta o para identificar el resto de una división. Formato de función MOD(N1;N2) MOD( ) devuelve el resto después de dividir el segundo número N2 por N1. El resto tiene el mismo número de decimales que el número que tenga más decimales. Capítulo 2 Funciones NOMINAL( ) 65 Ejemplos MOD(93;10) = 3 MOD(66;16,00) = 2,00 MOD(53,45;10) = 3,45 En un archivo de planillas, para definir un campo que presente el número de meses desde el último aniversario, especifique: MOD(Meses_de_Servicio;12) NOMINAL( ) NOMINAL( ) calcula el tipo de interés anual nominal de un préstamo. Utilice NOMINAL( ) para determinar el tipo de interés nominal anual, dados el tipo efectivo y el número de períodos compuestos por año. Por ejemplo, si conoce el tipo anual efectivo de su tarjeta de crédito pero desea saber el tipo que se utiliza realmente para calcular el interés sobre una base mensual, utilice esta función.Para obtener más información, consulte “Funciones financieras” on page 293 of the ACL for Windows User Guide. Formato de función NOMINAL(tasa_efectiva;períodos) tasa_efectiva es la tasa de interés anual efectiva. períodos es el número de períodos compuestos por año. Los períodos son truncados en un entero. El resultado será devuelto para ocho posiciones decimales, 0,12345678 ó 12,345678%. Esta función es la opuesta a EFFECTIVE( ). Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplo Si sabe que el tipo anual efectivo de su tarjeta de crédito es del 19,56%, para calcular el tipo mensual, especifique: NOMINAL(0,1956;12) = 0,17998457 Esto indica que el tipo mensual es del 18%. 66 ACL para Windows 7 NPER( ) Manual de Referencia NPER( ) NPER( ) calcula el número de períodos requeridos para amortizar un préstamo. Utilice NPER( ) para determinar el tiempo que se tardará en pagar una deuda. Por ejemplo, si está pagando $500 mensuales en concepto del préstamo para la compra del automóvil, puede utilizar esta función para saber cuándo se cancelará la deuda. Para obtener más información, consulte “Funciones financieras” on page 293 of the ACL for Windows User Guide. Formato de función NPER(tasa;pago;valor) tasa es el tipo de interés por período. pago es el pago efectuado en cada período. valor es el importe sobre el que se basan los pagos. NPER( ) asume que los pagos se hacen efectivos al final del período. El resultado se devuelve con dos posiciones decimales. Por ejemplo, 8,33 períodos indicaría que el saldo pendiente tras ocho períodos es de un tercio del importe del pago, aproximadamente. Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplo Para calcular el número de períodos requerido para devolver un préstamo de $1.000 con pagos mensuales de $50 al 8%: NPER(0,08/12;50;1000) = 21,54 Esto muestra que el préstamo se devolverá en 22 meses. OCCURS( ) OCCURS( ) cuenta la cantidad de veces que una cadena de caracteres aparece en otra cadena de caracteres. Por ejemplo, puede utilizar OCCURS( ), para encontrar la cantidad de veces que “New York” aparece en un campo de dirección. Capítulo 2 Funciones OFFSET( ) 67 Formato de función OCCURS(C1;C2) OCCURS( ) devuelve la cantidad de veces que la cadena C2 aparece en la cadena C1. Ninguna de las comparaciones distingue entre las mayúsculas y minúsculas. Ejemplos OCCURS("abc/abc/a";"ab") = 2 OCCURS("abc/abc/a";"a") = 3 OFFSET( ) OFFSET( ) ajusta la posición inicial de un campo en el registro actual. Use OFFSET( ) para procesar datos de apariciones variables, como aquellos definidos con la cláusula COBOL OCCURS. También es posible, utilizar OFFSET( ) en estructuras de registro muy complejas (como archivos IBM SMF), en las cuales un bloque de datos tiene una posición inicial variable o en un arreglo que contenga un número de valores variables. Formato de función OFFSET(F;N) La función OFFSET( ) desplaza la posición inicial de un campo N posiciones, siendo N una expresión numérica válida. Nota: Tenga cuidado cuando use la función OFFSET( ) con campos condicionales, ya que los campos relacionados con la prueba IF también serán desplazados. Ejemplos Dado un registro “01234567890” y un campo numérico X que comienza en la posición 1 con una longitud de 3 y sin decimales: X = 12 OFFSET(X;1) = 123 OFFSET(X;6) = 678 Si un registro contiene un campo de longitud variable seguido por otro campo X, utilice OFFSET( ) para definir la ubicación del campo. Suponga que el campo L es la longitud del campo variable y que ya ha utilizado la ventana Definición del archivo de entrada 68 ACL para Windows 7 PACKED( ) Manual de Referencia para definir el campo X como inicio en la posición 54 si L es cero. Para leer el contenido del campo X, defina el siguiente campo: OFFSET (X;L) PACKED( ) PACKED( ) convierte un número en un tipo de campo compactado con una longitud específica. Use PACKED( ) para crear datos numéricos en formato compactado. Esto puede ser necesario cuando se crea datos para leer por medio de aplicaciones externas. Para obtener más información sobre el tipo de campo compactado consulte “Packed (Compactado)” on page 18. Consulte “UNSIGNED( )” on page 88 para un método alternativo de conversión de datos numéricos. Formato de función PACKED(N1;#) PACKED( ) convierte N1 en datos compactados con la longitud, en bytes, especificada por #. Si # es demasiado corto para almacenar todos los N1, se truncarán los dígitos significativos. Nota: Ya que la salida de esta función no puede imprimirse, debe incluirla solamente junto con la creación de un archivo. Una vista no mostrará los datos de la forma esperada. Ejemplos PACKED(75;3) = 00075C (hex) PACKED(7,5;3) = 00075C (hex) PACKED(-12,456;6) = 00000012456D (hex) PACKED(-12,456;2) = 456D (hex) Para crear un campo de 8 bytes que contenga el salario de cada empleado en forma de número COMPACTADO con el fin de cargarlo en un servidor principal, especifique: PACKED(SALARIO;8) PMT( ) PMT( ) calcula los pagos periódicos requeridos para devolver una deuda. Capítulo 2 Funciones PMT( ) 69 Utilice PMT( ) para determinar el pago requerido para devolver una inversión o un préstamo, asumiendo pagos constantes y un tipo de interés constante. Por ejemplo, si solicita un préstamo de dinero tendría que utilizar esta función para determinar el importe de los pagos. Para obtener más información, consulte “Funciones financieras” on page 293 of the ACL for Windows User Guide. Formato de función PMT(tasa;períodos;valor) tasa es el tipo de interés por período. períodos es el número total de períodos de pago en una anualidad. valor es el valor actual; el importe de la inversión que debe devolverse. El pago que devuelve PMT( ) incluye sólo el capital y los intereses, y asume que los pagos se abonan al final de cada período. El resultado se devuelve con dos posiciones decimales. Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplo Si desea determinar los pagos mensuales necesarios para devolver un préstamo de $10.000 en un período de 24 meses y a un interés compuesto mensual del 8%, especifique: PMT(0,08/12;24;10000) = 452,27 70 ACL para Windows 7 PROPER( ) Manual de Referencia PROPER( ) PROPER( ) convierte los caracteres alfabéticos de una cadena o de un campo para combinar mayúsculas y minúsculas. PROPER( ) es útil para tareas como la creación de cartas de confirmación. Formato de función PROPER(C) La función PROPER( ) toma una sola cadena de caracteres (C) y la convierte a mayúsculas y minúsculas, de la forma apropiada para la representación de nombres propios. PROPER( ) utiliza la regla según la cual el primer carácter alfabético se convierte en mayúscula y los siguientes se convierten en minúsculas. Consulte, “UPPER( )” on page 88 y “LOWER( )” on page 58, que convierte caracteres alfabéticos en mayúsculas y minúsculas, respectivamente. Ejemplos PROPER("JOHN DOE")= "John Doe" PROPER("john doe")= "John Doe" PROPER("123 Cualquier Calle.") = "123 Cualquier Calle." PROPER("BILL O'HARA") = "Bill O'Hara" PVANNUITY( ) PVANNUITY( ) calcula el valor actual de un flujo de pagos. Utilice PVANNUITY ) cuando desee determinar el valor que tienen ahora una serie de futuros pagos. Por ejemplo, al pedir un préstamo, el importe del mismo es el valor actual para el prestamista. Para obtener más información, consulte “Funciones financieras” on page 293 of the ACL for Windows User Guide. Formato de función PVANNUITY(tasa;períodos;valor) tasa es el tipo de interés por período. períodos es el número total de períodos de pago en una anualidad. valor es el pago abonado al final de cada período, y no puede cambiar durante la anualidad. El resultado se devuelve con dos posiciones decimales. Capítulo 2 Funciones PVLUMPSUM( ) 71 PVANNUITY( ) asume un valor futuro (FV) de cero y calcula el resultado basándose en los pagos al final del período. Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplo A un tipo de interés del 8% anual, para calcular el valor de recibir $500 mensuales durante los próximos 20 años, especifique: PVA(0,08/12;12*20;500) = 59.777,15 PVLUMPSUM( ) PVLUMPSUM( ) calcula el valor actual de una suma global a abonar en muchos períodos. Utilice PVLUMPSUM( ) para determinar el valor actual de un importe a recibir o a pagar en el futuro. El valor actual es el importe que vale hoy un pago que se abonará en el futuro, basado en un tipo de interés supuesto. Por ejemplo, si debe dinero en una fecha futura, el valor presente es el importe necesario para depositarse ahora en el banco, con interés compuesto para cubrir la deuda en el día de vencimiento. Para obtener más información, consulte “Funciones financieras” on page 293 of the ACL for Windows User Guide. Formato de función PVLUMPSUM(tasa;períodos;valor) tasa es el tipo de interés por período. períodos es el número total de períodos. valor es el pago abonado al final del último período. El resultado se devuelve con dos posiciones decimales. Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplo Asumiendo un tipo de interés del 11% anual, compuesto mensualmente, el valor actual de $10.000 que deben pagarse en tres años es de: PVLUMPSUM(,11/12;3*12;10000) = 7.200,05 72 ACL para Windows 7 RAND( ) o RND( ) Manual de Referencia RAND( ) o RND( ) RAND( ) o RND( ) devuelve un número aleatorio comprendido entre cero y el valor especificado de una expresión numérica o una valor de campo. Utilice RAND( ) cuando deba generar un número aleatorio para utilizarlo dentro o fuera de ACL. Formato de función RAND(N) o RND(N) RAND( ) o RND( ) devuelve un número aleatorio mayor o igual a 0 y menor que la expresión numérica o valor del campo N.El número aleatorio generado, tiene la misma cantidad de decimales que N. Nota: Si usa RND( ) o RAND( ) dos veces consecutivamente con el mismo valor, obtendrá diferentes resultados. La secuencia no se elimina en tanto que ACL no haya generado el segundo resultado. Para regenerar la secuencia, use el comando RANDOM. Ejemplos RAND(1000,00)= 278,61 RND(10000)= 3781 RATE( ) RATE( ) calcula el tipo de interés por período que implica una anualidad. Utilice RATE( ) para determinar el tipo de interés que se paga sobre una anualidad. Por ejemplo, si tiene la opción de arrendar o comprar, podrá utilizar esta función para determinar el tipo de interés que conlleva el alquiler. Para obtener más información, consulte “Funciones financieras” on page 293 of the ACL for Windows User Guide. Formato de función RATE(períodos;pago;valor) períodos es el número total de períodos. pago es el pago efectuado en cada período. valor es el importe sobre el que se basan los pagos. RATE( ) asume que los pagos se hacen efectivos al final del período. El resultado se devuelve con ocho posiciones decimales, es decir, 0,12345678 ó 12,345678%. Capítulo 2 Funciones RECLEN( ) 73 Si ingresa con un parámetro obviamente inválido, tal como un tipo de interés negativo, ACL devuelve un error. Ejemplo Para calcular el tipo implicado un préstamo de $8.000 a 4 años, con pagos mensuales de $200, especifique: RATE(48;200;8000) = 0,00770147 Éste es el tipo mensual, ya que el período es mensual. El tipo anual es de 0,0077*12, lo que equivale al 9,24% compuesto mensual o a un tipo anual efectivo del 9,64% (utilizando la función EFFECTIVE( )). RECLEN( ) RECLEN( ) devuelve la longitud del registro actual. Utilice RECLEN( ) para probar registros cortos o registros con una longitud determinada. Es especialmente útil con archivos CR/LF (reporte) porque representa una manera sencilla de examinar la longitud de los registros. Formato de función RECLEN() RECLEN( ) devuelve la longitud del registro actual. Para obtener más información sobre como determinar el registro actual, consulte “RECNO( )” on page 74. Para registros de longitud fija, el resultado es una constante (la longitud del registro). Para registros de longitud variable, el resultado cambia para cada uno de los registros. 74 ACL para Windows 7 RECNO( ) Manual de Referencia Ejemplo Para extraer todos los registros cuya longitud sea exactamente 110 (suponiendo que sea el tipo de registro que le interesa), especifique: RECLEN( ) = 110 Extraer registros Condición Extraer Nombre del archivo extraído RECNO( ) RECNO( ) devuelve el número de registro lógico actual, contando a partir de 1. Utilice RECNO( ) para extraer números de registro a un archivo o cuando examine un archivo por primera vez a fin de determinar la ubicación relativa de un registro en concreto dentro de un archivo. Formato de función RECNO() RECNO( ) devuelve el número de registro lógico actual. Si el archivo no está indexado, RECNO( ) empieza con un valor de 1 y se incrementa en uno para cada registro dentro del archivo. Los números de registro lógico y físico son idénticos. Si el archivo está indexado, RECNO( ) se comporta de manera similar pero en orden lógico y no en orden físico. Si se usan los comandos Seek o Find, el número de registro vuelve a iniciarse en 1 después de que se ejecute el comando. Capítulo 2 Funciones RECOFFSET( ) 75 Ejemplo Para el registro 99: RECNO() = 99 RECOFFSET( ) RECOFFSET( ) devuelve un valor de campo de un registro que es un número específico de registros del registro actual. Puede utilizar RECOFFSET( ) en una expresión que compara un campo del registro actual con un campo de otro registro. Por ejemplo, puede añadir un campo computado que calcula la diferencia entre una cantidad en el registro actual y una cantidad en el registro anterior. Si llega al final o al principio del archivo, entonces RECOFFSET( ) devuelve cero para los campos numéricos, una cadena vacía para los campos de caracteres o 01/01/1900 para los campos de fecha. Formato de función RECOFFSET(campo;número_registros) campo es el nombre del campo desde el cual se recupera un valor. número_registros especifica el número de registro del registro actual. Un número positivo especifica el registro posterior al registro actual; un número negativo especifica el registro anterior al registro actual. Ejemplos Puede utilizar RECOFFSET( ) para recuperar el valor del campo Importe del registro siguiente: RECOFFSET(Cantidad;1) También puede utilizar RECOFFSET( ) en un campo computado. El campo computado Importe_siguiente muestra el valor del campo Importe en el registro siguiente sólo si el registro siguiente tiene el mismo número de cliente. Para definir este campo computado en un lote, utilice la sintaxis siguiente: DEFINE FIELD Importe_siguiente COMPUTED↵ ↵ RECOFFSET(Importe;1) IF RECOFFSET(Cliente;1) = Cliente↵ 0 76 ACL para Windows 7 REMOVE( ) Manual de Referencia Importe_siguiente es el valor del campo Importe del siguiente registro sólo si el número de cliente del siguiente registro es el mismo que el número de cliente del registro actual; de lo contrario, Importe_siguiente sería cero. Puede definir el mismo campo computado mediante la definición del archivo de entrada. Para obtener información sobre cómo crear un campo computado adicional, consulte “Campos computados condicionales” on page 167 of the ACL for Windows User Guide. Para obtener información sobre cómo utilizar el comando Define (Definir) para crear un campo computado en un lote, consulte “Campos computados” on page 160. REMOVE( ) REMOVE( ) elimina los caracteres no deseados de una cadena de caracteres o de un valor de campo. Use REMOVE( ) para “normalizar” los campos de datos que no tengan un formato coherente, como los campos de direcciones. Esta función también es útil para eliminar signos de puntuación u otra información no válida de los campos que no han sido correctamente editados o a los que no se han aplicado ediciones de entrada. Es posible Capítulo 2 Funciones REPEAT( ) 77 que se necesite REMOVE( ) antes de ejecutar los comandos Ordenar y Unir para regularizar estos datos antes de hacer un formato o para duplicarlos. Nota: Esta función fue superada por las funciones INCLUDE( ) y EXCLUDE( ). Aún está disponible en la versión actual para compatibilizar con las versiones anteriores de ACL para Windows. Formato de función REMOVE(C1;C2) La función REMOVE( ) elimina los caracteres no deseados de la cadena C1 y retiene solamente los caracteres C2 especificados. Es similar a la opción CLEAN( ), pero su funcionamiento es muy diferente. CLEAN( ) rellena el resto de un campo con espacios en blanco, mientras que REMOVE( ) mueve cualquier carácter válido hacia el lado izquierdo del campo, manteniendo su orden y añadiendo espacios en blanco al resultado final de modo que la longitud sea la misma que en C1. Asumiendo que tiene un archivo de transacción de inventario, en que el número del producto, Prodno, no tiene el contenido de campo limpio. Desea ordenar el archivo por números de productos similares. El archivo puede contener “AB/123Q”, “AB123 Q” y “AB 123-Q”, y todos ellos hacen referencia al mismo producto, pero se ordenan de manera muy distinta. La función REMOVE( ) permite normalizar el campo para que el comando Ordenar pueda actuar correctamente, convirtiendo cada uno de los ejemplos anteriores en “AB123Q”. Para obtener más información sobre la inclusión y exclusión de caracteres en una cadena, consulte “INCLUDE( )” on page 53 y “EXCLUDE( )” on page 45. Ejemplos REMOVE("ABC 123 XX4";"ABC123") = "ABC123 " REMOVE("zABC 123 XX4";"ABCX123") = "ABC123XX " REMOVE("ABC 123 XX4";"1234567890") = "1234 " Para crear un campo con el fin de ordenar o buscar coincidencias que contenga sólo los números de un campo número de producto, especifique: REMOVE(Prodno;"123456789") REPEAT( ) REPEAT( ) devuelve una cadena que repite un valor constante por el número de veces especificado. 78 ACL para Windows 7 REPLACE( ) Manual de Referencia Use REPEAT( ) para inicializar una variable con valores constantes o espacios en blanco, o para configurar un valor predeterminado para un campo calculado. Es útil para aplicaciones de programación avanzada. Formato de función REPEAT(C;#) REPEAT( ) devuelve una cadena en el cual C es repetido un determinado número de veces especificado por #, donde # es una constante numérica fija. La longitud máxima de la cadena devuelta, es la longitud de la cadena C multiplicado por #. Ejemplos REPEAT("ABC";3) = "ABCABCABC" REPEAT("0";9) = "000000000" REPLACE( ) REPLACE( ) reempleza todas las instancias de una cadena de caracteres especificado por una nueva cadena de caracteres. Utilice REPLACE( ) para normalizar campos de datos con formatos inconsistentes, tales como, campos de dirección, o para reemplezar informaciones inválidas en campos con edición deficiente. También es posible utilizar REPLACE( ) para la coincidencia en el formato, para la equivalencia duplicada y para los comandos Unir y Relación, los cuales requieren campos idénticos. Igualmente, es posible utilizar REPLACE( ) para eliminar una cadena de caracteres específica de una cadena de origen, reemplazándola por una cadena de caracteres vacíos(“”). Formato de función REPLACE(C1;C2;C3) Donde C1 es la cadena de origen, C2 es la cadena a ser reemplazada y C3 es la nueva cadena. Las comparaciones de caracteres distinguen las mayúsculas de minúsculas. REPLACE( ) devuelve una cadena de longitud fija en el cual cada aparición de C2 en C1 se reemplaza por C3. ACL aumenta, automáticamente, la longitud del campo, con el fin de recibir un sólo reemplazo. La longitud máxima del campo es mayor que la longitud de C1 o de la longitud (C1 - C2 + C3). Si la cadena resultante es menor que la cadena de origen C1, se agregan al final de la cadena, para compensar la diferencia. Sin embargo, con diversos reemplazos, el nuevo contenido del campo de datos puede exceder la longitud del campo. Cuando esto ocurre, ACL trunca los datos al final del Capítulo 2 Funciones REVERSE( ) 79 campo. Con el fin de evitar la pérdida de informaciones, asegúrese que el campo es suficientemente largo para recibir un posible incremento en la longitud de los datos. En la siguiente sección se describen dos métodos para aumentar la longitud de los campos. Ejemplos REPLACE ("abcdefg";"bcd";"12345") = "a12345efg" REPLACE("Road";"Road";"Rd.") = "Rd. " REPLACE("abc";"b";"") = "ac " En el ejemplo mostrado a continuación, la cadena devuelta es truncada, porque diversos reemplazos tornaron la cadena devuelta C3, mayor que la cadena C2: REPLACE("abc/abc/abc";"b";"12") = "a12c/a12c/a1" En este caso, ACL aumentó la longitud del campo de 11 bytes para 12 bytes, con el fin de permitir una substitución (11 - 1 + 2 = 12). Después de tres reemplazos, la cadena devuelta es 2 bytes más larga (11 - 1 + 2 - 1 + 2 - 1 + 2 = 14) y los 2 últimos bytes de la cadena devuelta son truncados. Existen diversas maneras de aumentar la longitud del campo para recibir la longitud incrementado de la cadena devuelta. Uno de los caminos es utilizar la nueva función BLANKS( ) para agregar espacios en blanco para la cadena de origen, antes de utilizar REPLACE( ): "abc/abc/abc"+BLANKS(2) = "abc/abc/abc " Ahora REPLACE("abc/abc/abc ";"b";"12") = "a12c/a12c/a12c" Otra manera de aumentar la longitud del campo es agregar espacios al final de un campo utilizando la expresión: + " " REVERSE( ) REVERSE( ) revierte el orden de los caracteres en una cadena. Formato de función REVERSE(C) REVERSE( ) devuelve una cadena en el cual los caracteres de la cadena C están invertidos. Ejemplo REVERSE("ABCD E") = "E DCBA" 80 ACL para Windows 7 RJUSTIFY( ) Manual de Referencia RJUSTIFY( ) RJUSTIFY( ) devuelve una cadena justificada para la derecha, con la misma longitud que la cadena especificada, sin ningún espacio posterior en blanco, movido hacia adelante de la cadena. Utilice RJUSTIFY( ) para justificar un campo a la derecha. Formato de función RJUSTIFY(C) Ejemplo RJUSTIFY("ABC ") = " ABC" ROOT( ) ROOT( ) devuelve la raíz cuadrada de una expresión numérica o el valor de un campo. Debe especificar el número de dígitos decimales del resultado. Formato de función ROOT(N;#) Donde # es una constante numérica que representa los dígitos decimales que no pueden cambiarse de un registro a otro. ROOT( ) devuelve la raíz cuadrada de una expresión numérica o el valor de campo N con # posiciones decimales. El resultado se redondea de manera apropiada. Esta función devuelve cero para los valores negativos de N. Para ejecutar otras funciones de raíz (tal como la raíz cúbica), consulte “LOGARITHM( )” on page 57. Ejemplos ROOT(100;2) = 10,00 ROOT(1000;4) = 31,6228 ROUND( ) ROUND( ) devuelve un número entero redondeado de una expresión numérica o un valor de campo. Use ROUND( ) siempre que desee redondear una expresión al valor entero más cercano. Capítulo 2 Funciones SHIFT( ) 81 Formato de función ROUND(N) ROUND( ) devuelve un número equivalente a la expresión numérica o al valor de campo N redondeado al entero más próximo. Esta función redondea 0,5 hacia arriba (por ejemplo, lejos de cero). Esta función es igual a DECIMAL(N;0). Ejemplos ROUND(7,2) = 7 ROUND(7,5) = 8 ROUND(-7,5) = -8 Para crear un campo que sea igual al saldo redondeado al valor dólar más cercano, especifique: ROUND(Balance) SHIFT( ) SHIFT( ) mueve bits en el primer carácter de una expresión o de un valor de campo a la izquierda o a la derecha según la cantidad especificada de bits. Utilice SHIFT( ) junto con las funciones BYTE( ), CHR( ) y MASK( ) para aislar y mover bits individuales en un registro. Formato de función SHIFT(C;N) La función SHIFT( ) toma el primer carácter de C y desplaza los bits a la izquierda o a la derecha N bits. Devuelve una cadena con una longitud de un bit. Si C es más larga que 1, se ignoran los caracteres extra. Si N es positivo, se mueve el carácter a la izquierda; si es negativo, se mueve el carácter a la derecha. Todos los bits desplazados son ceros. Si N es mayor que 7 o menor que -7 el resultado es un cero binario, CHR(0). Ejemplos SHIFT(CHR(22);2) = CHR(88) 10011011 se convierte 01100000 SHIFT(CHR(16);-1) = CHR(8) 00010000 se convierte 00001000 SHIFT(CHR(155);5) = CHR(96) 10011011 se convierte 01100000 82 ACL para Windows 7 SOUNDEX( ) Manual de Referencia SOUNDEX( ) SOUNDEX( ) devuelve un valor de cuatro caracteres para una cadena específica que se puede comparar con el valor de toda cadena para ver si ambas cadenas son parecidas fonéticamente. Esta función es útil si desea buscar elementos con entradas duplicadas o elementos deletreados de forma inconsistente. El primer carácter del valor representa la primera letra de la cadena. Los tres caracteres siguientes del valor representan grupos consonantes fonéticamente similares de la cadena. SOUNDEX( ) ignora tanto las mayúsculas y minúsculas como las vocales de la cadena y solamente usa los tres primeros grupos consonantes en argumentos largos. Para obtener un método alternativo de cadenas de comparación fonéticas, consulte “SOUNDSLIKE( )” on page 82. Formato de función SOUNDEX(C) Ejemplos SOUNDEX("Fairview Ind") = "F615" SOUNDEX("Fairview Media") = "F615" SOUNDEX("Fairviews Media") = "F612" SOUNDSLIKE( ) SOUNDSLIKE( ) devuelve Verdadero o Falso para indicar si dos cadenas son fonéticamente similares. SOUNDSLIKE( ) convierte primero las cadenas en códigos de cuatro caracteres, conforme descrito en SOUNDEX( ). A continuación, compara el código del SOUNDEX de cada cadena ( ) retornando Verdadero si los códigos son iguales y Falso cuando son desiguales. Esta función no distingue entre mayúsculas y minúsculas, por lo tanto “SMITH” equivale a “smith”. Use SOUNDSLIKE( ) para identificar elementos con un sonido similar con fines de coincidencia. Capítulo 2 Funciones SPLIT( ) 83 Formato de función SOUNDSLIKE(C1;C2) Ejemplos SOUNDSLIKE("Fairview Media";"fairview ind") = T SOUNDSLIKE("Fairviews Media";"fairview ind") = F Para crear un filtro que identifique todos los nombres que suenan como “Smith”, especifique: SOUNDSLIKE(NAME;"Smith") SPLIT( ) SPLIT( ) divide una cadena de caracteres en segmentos separados por caracteres como espacios o comas y devuelve un segmento especificado. Cualquier carácter o cadena puede utilizarse como separador. Formato de función SPLIT(C1;C2;N) Donde C1 es la cadena de origen, C2 es el carácter (o la cadena de caracteres) utilizado como separador y N es el segmento que será devuelto. SPLIT( ) devuelve el segmento N.Si N no existe o es menor que 1, SPLIT( ) devuelve una cadena vacía. Los caracteres entre, pero no incluyendo dos separadores, constituyen un segmento. Cuando la cadena de origen empieza con un separador, el segmento siguiente es llamado de segmento dos. La comparación de las cadenas distingue entre mayúsculas y minúsculas. Ejemplos SPLIT("abc,def,ghijkl";",";2) = "def" SPLIT("abc,def,ghijkl";",";3) = "ghijkl" SPLIT("abc/*def/*ghijkl";"/*";3) = "ghijkl" SPLIT("Jane Doe";" ";2) = "Doe" SPLIT("/abc/efg/";"/";2) = "abc" SPLIT("abc,def,,ghi";",";3) = "" STRING( ) STRING( ) convierte una expresión numérica o valor de campo en una cadena de caracteres. 84 ACL para Windows 7 SUBSTRING( ) Manual de Referencia Utilice STRING( ) para convertir una expresión numérica o un valor de campo en formato de carácter para utilizarlo como campo clave en un comando de ACL, por ejemplo Resumen o Unir. Formato de función STRING(N;# <;C>) STRING( ) convierte la expresión numérica o el valor de campo N en una cadena de longitud #. La cadena resultante tendrá un signo menos si N es negativo y el mismo número de posiciones decimales que N (a menos que el formato óptimo de C lo especifique de otro modo, como se detalla a continuación). Se puede especificar un formato numérico opcional como tercer parámetro para hacer un formato el resultado numérico de la función. Asegúrese que ésta sea una expresión de caracteres válida. Para obtener detalles sobre el formato, consulte “Campos numéricos” on page 161 of the ACL for Windows User Guide. Si la cadena resultante es más corta que #, se agregan espacios en blanco al principio. Si la cadena resultante es más larga que #, se truncan los caracteres del final sin aviso, comenzando con el signo menos, si lo hubiese. STRING( ) es lo opuesto de VALUE( ). Ejemplos STRING(125,2;7) = " 125,2" STRING(25;20;4) = " -125,2" STRING(-125,2;7) = " -125,2" Estos ejemplos muestran el uso de parámetros de formatos numéricos opcionales: STRING(-125,2;10;"(9.999,99)") = " (125,20)" STRING(-125,2;6;"(9.999,99)") = "25,20)" Para crear un campo que convierta el campo PACKED en un Coste de tal forma que una cadena pueda utilizarse como un campo llave, especifique: STRING(Coste;8) SUBSTRING( ) SUBSTR( ) devuelve una subcadena de una expresión de caracteres o de un valor de campo. Capítulo 2 Funciones TEST( ) 85 Use SUBSTR( ) para aislar una parte de una expresión de caracteres o un valor de campo. Formato de función SUBSTRING(C;N1;N2) SUBSTR( ) devuelve una subcadena de la expresión de caracteres o valor de campo C. El resultado es con N2 caracteres, iniciando en la posición N1 en C. Ejemplos SUBSTR("ABCDEF";2;3)="BCD" Para extraer el año de un campo de caracteres que contiene una fecha en formato “MM/DD/AAAA”, especifique: SUBSTR(DATE;7;4) TEST( ) TEST( ) devuelve Verdadero si una cadena de texto específica comienza en una ubicación de bytes especificada dentro de un registro. De lo contrario, TEST( ) devuelve Falso. TEST( ) se utiliza automáticamente cuando se crea un filtro en la ventana Crear filtro de datos. Ésta es la forma más apropiada de referirse a la función TEST( ). Formato de función TEST(N;C) TEST( ) examina un registro con el fin de verificar si una cadena de caracteres C comienza en la posición especificada N. En este caso, TEST( ) devuelve Verdadero. De lo contrario, devuelve Falso, aunque C aparezca en otra posición de la línea. Nota: Los parámetros en TEST( ) distinguen entre las mayúsculas y minúsculas. La especificación “DEPT” no encuentra “Dept.” Si existe una posibilidad que el tamaño se encuentre combinado, utilice en primer lugar la función UPPER( ) para convertir todos los caracteres en mayúsculas. Si C no es una expresión de caracteres, asegúrese que vaya entre comillas. 86 ACL para Windows 7 TIME( ) Manual de Referencia Ejemplos Dado un registro que contiene: Nombre Dept: Marketing ....|....1....|....2... TEST(5;'Dept') = T TEST(6;'Dept') = F (Dept comienza en la posición 5, no en la 6) TEST(5;'DEPT') = F (mayús/minús incorrecta) Para crear un filtro después de identificar los encabezados de página, especifique: TEST(1;"Página:") TIME( ) TIME( ) devuelve la hora y fecha del reloj del sistema. Use TIME( ) para determinar la hora actual o la duración de tareas específicas. Formato de función TIME() TIME( ) devuelve la hora según el reloj del sistema con el formato HH:MM:SS, como una cadena con una longitud de ocho bytes. Su valor no se ve afectado por el contenido del campo o del registro. Ejemplo TIME() = "15:38:52" A continuación se presenta un ejemplo mucho más complejo. Para determinar el tiempo transcurrido para un comando, se puede convertir el resultado de esta función a un número de segundos antes de que comience el comando, repita el proceso al finalizar y reste los dos valores, de la siguiente forma: ASSIGN T=TIME()↵ ASSIGN T1=VALUE(SUB(T;1;2);0)*3600 + VALUE(SUB(T;4;2);0)*60 + VALUE(SUB(T;7;2) ↵ COMMENT ACL aquí comando ↵ ASSIGN T=TIME()↵ ASSIGN T2=VALUE(SUB(T;1;2);0)*3600 + VALUE(SUB(T;4;2)*60 + VALUE(SUB(T;7;2);0) ↵ ASSIGN SECONDS=T2-T1 Estos cálculos toman las partes separadas de la hora y calculan la cantidad de segundos desde la medianoche, antes y después de la operación. Capítulo 2 Funciones TRANSFORM( ) 87 TRANSFORM( ) TRANSFORM( ) revierte el orden de muestra de los datos bidireccionales en una cadena de caracteres o campo. Use TRANSFORM( ) para conseguir que los caracteres hebreos sean mostrados correctamente. Formato de función TRANSFORM(C) TRANSFORM( ) identifica los datos bidireccionales y los muestra correctamente en vista, de derecha hacia la izquierda. Todos los caracteres son mostrados de izquierda hacia la derecha. Ejemplo TRANSFORM("ABC ZYX 123") = "ABC XYZ 123" Donde XYZ son los únicos caracteres hebreos bidireccionales en la cadena. TRIM( ) TRIM( ) devuelve una cadena de longitud variable de la que se han eliminado los espacios en blanco finales. TRIM( ) es similar a la función LTRIM( ), que elimina los espacios anteriores en blanco de una cadena y ALLTRIM( ), elimina los espacios en blanco anteriores y finales. Formato de función TRIM(C) La cadena C se copia al resultado y se omiten todos los espacios en blanco finales. Para obtener más información, consulte “Funciones” on page 25. Ejemplos TRIM(" AB C ") = " TRIM("ABC") = "ABC" TRIM(" A ") = " A" AB C" Dados los dos campos Primero y Último, para crear un nombre de campo de la forma “Último, Primero”, especifique: TRIM(Último) + ',' + TRIM(Primero) 88 ACL para Windows 7 UNSIGNED( ) Manual de Referencia UNSIGNED( ) UNSIGNED( ) convierte un número a un tipo de datos UNSIGNED con una longitud específica. Use UNSIGNED( ) para crear datos numéricos en formato sin signo. Esto puede ser necesario cuando se crea datos para leer por medio de aplicaciones externas. Para obtener más información sobre el campo sin signo, consulte “Unsigned (Sin signo)” on page 22. Consulte “PACKED( )” on page 68. Para un método alternativo de conversión de datos numéricos. Formato de función UNSIGNED(N1;#) UNSIGNED( ) convierte N1 a datos UNSIGNED con la longitud de bytes especificada por #. Si la longitud es demasiado corta para almacenar el número completo, se truncarán los dígitos significativos. Si N1 es negativo, se elimina el signo menos. Por ejemplo: UNS(-12,456;6)= 000000012456 (hex) Nota: Ya que la salida de esta función no puede imprimirse, debe incluirla solamente junto con la creación de un archivo. Una vista no mostrará los datos de la forma esperada. Ejemplos UNS(75;3) = 000075 (hex) UNS(-75;3)= 000075 (hex) UNS(7,5;3) = 000075 (hex) UNS(12456;2) = 2456 (hex) UPPER( ) UPPER( ) convierte todos los caracteres alfabéticos de una expresión o un valor de campo en mayúsculas. Use UPPER( ) cuando busque datos con tipos de letras mayúsculas o desconocidas. Formato de función UPPER(C) La función UPPER( ) convierte todos los caracteres alfabéticos de C a mayúsculas. Todos los caracteres no alfabéticos permanecen igual. Capítulo 2 Funciones VALUE( ) 89 Consulte también“PROPER( )” on page 70, que convierte caracteres alfabéticos en mayúsculas y minúsculas y “LOWER( )” on page 58, convierte caracteres alfabéticos en minúsculas. Ejemplos UPPER("ABC") = "ABC" UPPER("abc 123 DEF") = "ABC 123 DEF" UPPER("AbCd 12") = "ABCD 12" Si desea analizar la capitalización, puede identificar a todos los clientes apellidados “Smith” especificando: UPPER(NAME) = "SMITH" VALUE( ) VALUE( ) convierte una expresión de caracteres o un valor de campo en un equivalente numérico. Use VALUE( ) si necesita convertir una expresión de caracteres o un valor de campo a un formato numérico para su uso en comandos de ACL. VALUE( ) devuelve el equivalente numérico de una expresión de carácter o valor de campo con un número especificado de posiciones decimales. Si el ajuste decimal da como resultado una pérdida de decimales, se redondea el resultado. VALUE( ) acepta números en cualquier formato. Es posible usar cualquier formato numérico aceptado por el tipo de campo de impresión, señales anteriores y de final y paréntesis, como entradas. Si una cadena como “123” no contiene decimales, ACL considerará el número como entero. Por ejemplo, al convertir (“123”; 2), al especificar dos posiciones decimales, ACL interpreta “123” como 123,00 y no 1,23. Compare VALUE( ) a STRING( ). Formato de función VALUE(C;#) Donde # es una constante numérica que no puede cambiar de registro para registro. Ejemplos VALUE("123,4-";3) = -123,400 VALUE("$123.456";2) = 123456,00 VALUE("77,45CR";2) = -77,45 VALUE(" (123.456,78)";0) = -123457 90 ACL para Windows 7 VERIFY( ) Manual de Referencia VERIFY( ) VERIFY( ) determina si un campo contiene datos válidos y, si es así, devuelve Verdadero. Ya que el comando Verificar y la opción de preferencias Verificar datos no permiten un control muy preciso, es posible utilizar la función VERIFY( ) para detectar errores en campos individuales y proceder de una manera específica de acuerdo con la situación. Para obtener más información, consulte “Verify (Verificar)” on page 380 y “Verificar datos” on page 334 of the ACL for Windows User Guide. Formato de función VERIFY(Campo) La función VERIFY( ) devuelve Verdadero o Falso dependiendo de si el campo contiene datos válidos. Como los campos computados y las expresiones siempre contienen datos válidos, VERIFY( ) siempre devuelve Verdadero para los campos computados y las expresiones. Ejemplo Para crear un filtro que identifique los datos no válidos en el campo PRODNO (y que podrá entonces utilizar para extraer los registros erróneos), especifique: VERIFY(PRODNO) = F ZONED( ) ZONED( ) convierte una expresión numérica o un valor de campo a formato de datos ASCII ZONED. Use ZONED( ) para exportar datos a otras aplicaciones (como programas de trabajo en papel) que requieran archivos de datos ZONADOS como entrada. También es posible utilizar ZONED( ) para convertir un valor numérico positivo en un valor de carácter conteniendo ceros anteriores. Esto es útil para la uniformizar los datos en campos cuando se utilizan como campos clave. Por ejemplo, si un archivo contiene número de facturas en el formulario 100 en un campo numérico, y otro archivo contiene números de facturas en el formulario 00100 en un campo de caracteres, se puede utilizar ZONED( ) para convertir el valor numérico 100 en el valor de carácter 00100. Esto permite comparar números de facturas semejantes. Capítulo 2 Funciones ZSTAT( ) 91 Formato de función ZONED(N;#) N especifica la expresión numérica o valor de campo. # especifica la longitud del campo de caracteres ASCII ZONED. Este formato de datos no incluye un punto decimal explícito. Los ceros anteriores son agregados cuando la longitud del campo es mayor que el número de dígitos en el campo numérico. Si el valor es negativo, el carácter más a la derecha es presentado como “}” para cero o una letra entre “J” y “R” para los dígitos de uno a nueve. Ejemplo ZONED(-6448,95;11) = "0000064489N" Si número contiene más dígitos que longitud, ACL trunca los ceros anteriores, porque la longitud de la entrada (número) excede la longitud de la salida (longitud). Por ejemplo: ZONED(-6448,95;4) = "489N" ZSTAT( ) ZSTAT( ) calcula el Z estadístico para el uso en muchas tareas de soluciones de problemas, incluyendo análisis digital. Devuelve una respuesta con tres posiciones decimales. Use ZSTAT( ) para evaluar la posibilidad de frecuencia de incidencia de un determinado resultado en un período o categoría especificada. Cuanto más sea la estadística resultante de Z, menor la probabilidad de incidencia. Por ejemplo, una estadística Z de 1,96 tiene una significación de 0,05, representando la posibilidad de una en 20 incidencias, mientras una estadística Z de 2,57 tiene una significación de 0,01, representando la posibilidad de una en 100 incidencias. Para obtener información sobre estadísticas Z, consulte un libro de estadística. Es posible especificar los parámetros para ZSTAT( ) como números o proporciones: ■ ■ Al especificar ambos parámetros como números, la función calcula la estadística Z utilizando una aritmética de coma flotante. Al especificar ambos parámetros como proporciones, la función calcula la estadística Z utilizando aritmética de coma fija y no es necesario utilizar un multiplicador decimal para controlar el redondeado. 92 ACL para Windows 7 ZSTAT( ) Manual de Referencia Función formato para parámetros expresados como números ZSTAT(v1;v2;v3) v1 representa el recuento real, como un dígito anterior o una combinación de dígitos anteriores. v2 representa el recuento previsto, como um dígito anterior o una combinación de dígitos anteriores. v3 representa el número total de elementos siendo probados y debe ser un número entero positivo mayor que 0. Ejemplo con parámetros expresados como números Tomando con base 10 años de datos anteriores, se sabe que la distribución de reclamaciones laborales por mes es equilibradamente creciente. En abril, mayo y junio de este año, las reclamaciones fueron superiores en, 10% aproximadamente, consiguiendo un promedio de 220 por mes en vez de 200. Las reclamaciones en julio y agosto fueron ligeramente inferiores, de 193 y 197. El total de reclamaciones del año fueron de 2.450. Para verificar si los resultados altos y bajos fueron significativos, utilice la estadística Z. Resultados altos. El número real de incidencias de abril a junio fue de 660. El número previsto para este período es 25% de las incidencias anuales, 2.450, es decir, 612,5. La estadística Z para estos recuentos es: ZSTAT(660;612,5;2450) = 2,193 Una estadística Z de 1,96 tiene un valor significativo de 0,05, y 2,57 tiene un valor significativo de 0,01. Por lo tanto, la probabilidad de que las tasas superiores de reclamación sean debidas a eventualidades es de 1:20 y 1:100. Resultados bajos. El número real de incidencias en julio y agosto fue de 390. El número previsto de incidencias para este período es un sexto de las incidencias anuales de 2,450, es decir, 408,33. La estadística Z para estas proporciones es: ZSTAT(390;408,33;2450) = 0,967 Este no es un resultado muy significativo. Las estadísticas Z de 1.000 y menores son muy comunes y pueden ser normalmente ignoradas. Función formato para parámetros expresados como proporciones ZSTAT(v1;v2;v3) v1 representa la proporción real del valor, siendo probado y debe estar entre 0 y 1, inclusive. v2 representa la proporción prevista del valor que será probado y debe permanecer entre 0 y 1, exclusivo. Capítulo 2 Funciones ZSTAT( ) 93 v3 representa el número total de elementos siendo probados y debe ser un número entero positivo mayor que 0. Multiplicador decimal ACL, por lo general, evalúa expresiones utilizando la aritmética de la coma fija y redondeando el resultado. Al utilizar una expresión dentro de otra expresión para v1 y v2, se debe especificar el nivel de precisión deseado en el resultado utilizando un multiplicador decimal. ACL tiene una precisión de 8 dígitos, por lo tanto, un multiplicador de 1,00000000 devolverá una precisión mayor. Para obtener más información, consulte “Aritmética de punto fijo” on page 290 of the ACL for Windows User Guide. Ejemplo con parámetros expresados como proporciones Tomando con base 10 años de datos anteriores, se sabe que la distribución de reclamaciones laborales por mes es equilibradamente creciente. En abril, mayo y junio de este año, las reclamaciones fueron superiores en, 10% aproximadamente, consiguiendo un promedio de 220 por mes en vez de 200. Las reclamaciones en julio y agosto fueron ligeramente inferiores, de 193 y 197. El total de reclamaciones del año fueron de 2.450. Para verificar si los resultados altos y bajos fueron significativos, utilice la estadística Z. Resultados altos. El número real de reclamaciones para abril a junio es representado por la proporción 660/2450. El número de reclamaciones esperado para este período, debe ser de 25% de las reclamaciones anuales de 2.450. La estadística Z para estas proporciones es: ZSTAT((1,00000000*660/2450);0,25;2450) = 2,193 Una estadística Z de 1,96 tiene un valor significativo de 0,05, y 2,57 tiene un valor significativo de 0,01. Por lo tanto, la probabilidad de que las tasas superiores de reclamación sean debidas a eventualidades es de 1:20 y 1:100. Resultados bajos. El número real de reclamaciones para julio y agosto es 390. El número de reclamaciones esperado para este período debe ser un sexto o 16,6667 porcentaje de las 2.450 reclamaciones anuales. La estadística Z para estas proporciones es: ZSTAT((1,00000000*390/2450);0,16667;2450) = 0,967 Este no es un resultado muy significativo. Las estadísticas Z de 1,000 y menores son muy comunes y pueden ser normalmente ignoradas. 94 ACL para Windows 7 ZSTAT( ) Manual de Referencia Capítulo 3 PARÁMETROS DE COMANDOS COMUNES Los parámetros aquí descritos son comunes a varios comandos en el ACL. La mayoría pueden especificarse a través de un Cuadro de diálogo de comando o en la sintaxis del modo de comando. Los comandos se encuentran descritos en Chapter 4: “Comandos”. Cada descripción de comando incluye parámetros de lista. All (Todos) Todos se usa para especificar hasta qué punto un comando se ejecuta en campos o registros.  Sintaxis del modo comando En un modo de comando, Todos especifica que un comando deberá ejecutarse en todos los campos, expresiones o variables de un tipo apropiado, generalmente numéricos. En el siguiente ejemplo, Todos permite que el comando Total sea ejecutado en todos los campos o expresiones. Como el comando Total sólo puede usarse para campos numéricos, únicamente campos de este tipo son totalizados. TOTAL ALL  Cuadros de diálogo de comandos El botón de opción Todos está disponible en la ficha [Más]. La opción Todos está predeterminada. En el Cuadro de diálogo de comando, Todos especifica que todos los registros deben procesarse. 95 96 ACL para Windows 7 Append (Anexar) Manual de Referencia Append (Anexar) Anexar es un parámetro de ámbito que añade la salida producida por un comando al final de un archivo existente, en vez de sobreescribirlo. Este parámetro sólo es válido cuando el comando crea un archivo de salida. Nota: Antes de usar esta opción, asegúrese de que la estructura de los dos archivos es idéntica. ACL anexa una salida a un archivo existente, sea cual sea su estructura.  Sintaxis del modo comando En el siguiente ejemplo, la salida del comando Extract (Extraer) es anexada al archivo existente Xtract.txt EXTRACT RECORD TO XTRACT.TXT APPEND  Cuadros de diálogo de comandos La casilla de verificación Anexar a un archivo existente está disponible en la ficha [Más]. As (Como) Es un modificador de campo usado para especificar un nombre de sustitución a un campo existente o expresión ad hoc. Si se utiliza Como en un comando que crea otro archivo, el nombre especificado en la cláusula Como se convierte en el nombre del campo, en la nueva definición del archivo de entrada. Como el nombre es una cadena de caracteres, cualquier expresión de carácter es valida, siempre que se adhiera a las convenciones designadas por el campo ACL. Como puede usarse sólo en el modo comando. Capítulo 3  Parámetros de comandos comunes Ascending (Ascendente) 97 Sintaxis del modo comando AS "Nombre de sustitución" Las siguientes presentaciones de comando resultan en un campo llamado “Valor de inventario” (el punto y coma provoca el Corte de línea): DISPLAY QtyOH*UnCst AS "INVENTORY;VALUE" Ascending (Ascendente) Ascendente es un modificador de campo que especifica el criterio de ordenamiento predeterminado para campos clave incluyendo campos computados y expresiones ad hoc Ascendente, puede usarse sólo en los comandos Duplicates (Duplicados), GAPS (Faltantes), Index (Indexar), Sequence (Secuencia) y Sort (Ordenar).  Sintaxis del modo comando El orden ascendente es implícito. No hay notación para Ascendente. En el siguiente ejemplo, el comando Sort (Ordenar) se ejecuta en los campos Localización (Loc), Clase de Producto (ProdCls) y Cantidad (QtyOH) disponible. La salida se envía a un archivo de salida, “Archivo2”. El criterio de ordenamiento del archivo de salida es ascendente para los campos: Loc, ProdCls y QtyOH. SORT ON Loc ProdCls QtyOH TO "Archivo2"  Cuadros de diálogo de comandos Haga clic en [Indexar en], [Secuencia en] o [Ordenar por] y seleccione los campos. El botón de criterio de ordenamiento se presenta con el nombre del campo en la caja de lista de Campos Seleccionados. El criterio de ordenamiento es ajustado por un predeterminado ascendente. Haga clic en el botón para cambiar el criterio de ordenamiento. Botón criterio de ordenamiento 98 ACL para Windows 7 Break (Salto) Manual de Referencia Break (Salto) Salto especifica los campos de corte en un comando ocasionando que los datos del reporte se interrumpan cada vez que el valor del campo especificado se cambie. Son generados subtotales para cada valor en el campo de corte. Salto también puede usarse como una expresión que consiste en una concatenación de más de un campo. Los campos de Salto deben ser campos de caracteres. Para usar el Salto con un campo numérico, conviértalo en un campo de carácter usando la función STRING( ). El Salto puede utilizarse sólo con los siguientes comandos: Age (Antigüedad), Classify (Clasificación), Histogram (Histograma) y Stratify (Estratificar). Nota: Para resultados significativos, su archivo debe ordenarse o indexarse en el campo de salto especificado. Para obtener más información sobre el uso de salto de columnas en vistas y reportes, consulte “Modificar columnas” on page 205 of the ACL for Windows User Guide y “Cómo especificar saltos de columna” on page 207 of the ACL for Windows User Guide. Para obtener más información sobre la inserción de una Salto de página en un reporte, después de los totales para el campo de Salto especificado, consulte “Page (Página)” on page 112. Sintaxis del modo comando Consulte “Key (Clave)” on page 107.  Cuadros de diálogo de comandos Las opciones de Salto están disponibles en la ficha [Más]. Para especificar un campo clave, escriba un nombre de campo en el cuadro de texto Salto o haga clic en [Salto] y seleccione un campo. Para especificar más de un campo clave, haga clic en [Salto] y enseguida en [Expr] para llamar al Generador de expresiones. Es posible construir una expresión que consista en más de un campo haciendo clic en los nombres de los campos y uniéndolos con una señal de más (+). Los nombres de los campos deben estar entre comillas. Para obtener más información, consulte “Generador de expresiones” on page 281 of the ACL for Windows User Guide. Capítulo 3 Parámetros de comandos comunes Descending (Descendente) 99 Descending (Descendente) Descendente es un modificador de campo que especifica el criterio de ordenamiento para campos clave, incluyendo campos computados y expresiones ad hoc. Descendente puede usarse sólo en comandos de Gaps (Faltantes), Duplicates (Duplicados), Index (Índice), Sequence (Secuencia) y Order (Ordenar). El criterio de ordenamiento predeterminado es ascendente. Para obtener más información, consulte “Ascending (Ascendente)” on page 97.  Sintaxis del modo comando Descendente se abrevia con una “D”. Campos_seleccionados D En el siguiente ejemplo, el comando Sort (Ordenar) se ejecuta en los campos Localización (Loc), Clase de producto (ProdCls) y Cantidad disponible (QtyOH). La salida se envía a un archivo de salida, “Archivo2”. El criterio de ordenamiento del archivo de salida es ascendente para Loc y ProdCls, y descendente para QtyOH. SORT ON Loc ProdCls QtyOH D TO "Archivo2"  Cuadros de diálogo de comandos Haga clic en [Indexar en], [Secuencia en] o [Ordenar por] y seleccione los campos. El botón de criterio de ordenamiento se presenta con el nombre del campo en la caja de lista de Campos seleccionados. El criterio de ordenamiento es ajustado por un predeterminado ascendente. Haga clic en el botón para cambiar el criterio de ordenamiento. 100 ACL para Windows 7 End of File (Fin de archivo) Manual de Referencia Botón criterio de ordenamiento End of File (Fin de archivo) Fin de archivo permite que el comando completo sea ejecutado una vez más, después de llegar al fin del archivo. El fin de archivo se utiliza generalmente en lotes, al procesar un archivo que usa el comando Group (Grupo).  Sintaxis del modo comando Fin de archivo es abreviado como “EOF”. En el siguiente ejemplo, el lote completará variables para cada registro con la información del campo y enseguida, extraerá las variables cuando sea encontrado un registro en blanco. El lote repite el proceso para cada direccíón. Este proceso funciona si el estándar de espacios en blanco continúa y la última línea en el lote también está en blanco. Sin embargo, si la última línea no está en blanco, la dirección final puede perderse. En este caso, el uso del EOF hará que el comando Extract (Extraer) sea ejecutado una vez más cuando sea alcanzado el final del archivo, evitando la pérdida de la última dirección. ADDRESS1=ADDRESSMAIN ADDRESS2=ADDRESSMAIN ADDRESS3=ADDRESSMAIN ADDRESS4=ADDRESSMAIN COUNTER=0 GROUP IF ADDRESSMAIN= "" EXTRACT ADDRESS1 ADDRESS2 ADDRESS3 ADDRESS4 TO OUT EOF COUNTER=0 Capítulo 3 Parámetros de comandos comunes End of File (Fin de archivo) ELSE IF COUNTER=0 ADDRESS1=ADDRESSMAIN ADDRESS2= "" ADDRESS3= "" ADDRESS4= "" COUNTER=1 ELSE IF COUNTER=1 ADDRESS2=ADDRESSMAIN COUNTER=2 ELSE IF COUNTER=2 ADDRESS3=ADDRESSMAIN COUNTER=3 ELSE IF COUNTER=3 ADDRESS4=ADDRESSMAIN COUNTER=4 FIN  Cuadros de diálogo de comandos La casilla de verificación EOF está disponible en la ficha [Más]. 101 102 ACL para Windows 7 File (Archivo) Manual de Referencia File (Archivo) El Archivo especifica que la salida de un comando debe guadarse en un archivo separado. Para obtener más información, consulte “To (A)” on page 115.  Sintaxis del modo comando El parámetro File (Archivo) generalmente se omite, siempre que se adopte como predeterminado. TO "Nombre_de_archivo" TO FILE "Nombre_de_archivo" En el siguiente ejemplo, el comando Statistics (Estadística) produce un archivo de salida llamado Stattest.txt STATISTICS ON CstDte QtyOH SalePr TO "Stattest.TXT" NUMBER 5  Cuadros de diálogo de comandos La opción Archivo está disponible en la ficha [Salida]. Para guardar la salida en un archivo, seleccione la opción Archivo, seleccione el tipo desde la caja desplegable Tipo de archivo. Escriba un nombre en el cuadro de texto Nombre o haga clic en [Nombre] y escriba un nombre en el cuadro de texto Nombre del archivo. File Type ( Tipo de archivo) El tipo de archivo especifica el formato de salida de un archivo. Dependiendo del comando, el formato de salida puede ser texto (.txt) o un archivo de datos de ACL (.fil). Sintaxis del modo comando Consulte “To (A)” on page 115. El tipo de archivo se especifica por la extensión del archivo. Cuadros de diálogo de comandos Consulte “File (Archivo)” on page 102. Capítulo 3 Parámetros de comandos comunes First (Primero) 103 First (Primero) Primero, es un parámetro de ámbito que permite que un comando sea ejecutado en un número consecutivo de registros, comenzando con el registro 1. El proceso se cierra después de alcanzar el número especificado de registros. Primero no depende de la posición actual del registro. Después de la ejecución de un comando que contiene un parámetro Primero, la posición de registro se establece en el registro que sigue inmediatamente el número de registros especificado en el comando. Si el fin del archivo es alcanzado durante la ejecución, la posición del registro se reprograma al registro 1. Primero, también puede usarse en conjunto con Si o Mientras. Después de la ejecución de un comando, en el cual, tanto Primero como Mientras están especificados, la posición de registro se determina por el parámetro Mientras.  Sintaxis del modo comando FIRST N En el siguiente ejemplo, First (Primero) determina que el comando Total se cierre después de 10 registros: TOTAL ALL FIRST 10 La posición de registro será siempre 11, después de que el comando de arriba se ejecute, sea cual sea la posición en el inicio de comando.  Cuadros de diálogo de comandos El botón de opción Primero está disponible en la ficha [Más]. 104 ACL para Windows 7 Footer (Pie de página) Manual de Referencia Footer (Pie de página) Pie de página especifica un texto en la parte inferior de cada página de un reporte. Esto ignora cualquier valor establecido por una variable de pie de página.  Sintaxis del modo comando FOOTER "Texto_pie_de_página" En el siguiente ejemplo, el comando Stratify (Estratificar) produce un archivo que contiene un pie de página. STRATIFY ON UnCst ACCUMULATE QtyOH MINIMUM 10,00 MAXIMUM 100 INTERVALS 10 TO "UnitCost.TXT" HEADER "***START DATA***" FOOTER "***END DATA***"  Cuadros de diálogo de comandos El botón Pie de página está disponible en la ficha [Salida]. Para incluir un pie de página en el reporte, escriba el texto directamente en el cuadro de texto del Pie de página o haga clic en [Pie de página] y escriba el texto en el Cuadro de diálogo Pie de página. Capítulo 3 Parámetros de comandos comunes Graph (Gráfico) 105 Graph (Gráfico) Gráfico especifica que una salida de un comando debe presentarse en un gráfico. Para obtener más información, consulte “Salida del gráfico” on page 269 of the ACL for Windows User Guide. Sintaxis del modo comando Utilice este parámetro para dirigir la salida de comando a un gráfico. En el siguiente ejemplo, la salida del comando Stratify (Estratificar) se presenta en un gráfico: STRATIFY ON UnCst ACCUMULATE QtyOH MINIMUM 10,00 MAXIMUM 100 INTERVALS 10 TO GRAPH Consulte “To (A)” on page 115. Para especificar un tipo de gráfico, utilice el comando para definir gráficos antes de crear el gráfico: SET GRAPH Consulte “Set Graph (Definir gráfico)” on page 340 para obtener una lista de tipos de gráficos. Para imprimir un gráfico, utilice Graph con el comando Print (Imprimir). PRINT GRAPH Consulte “Print (Imprimir)” on page 277. Para guardar un gráfico como archivo de imagen bitmap de Windows (.bmp), utilice Graph con el comando Save (Guardar): SAVE GRAPH Consulte “Save (Guardar)” on page 322.  Cuadros de diálogo de comandos La opción Gráfico está disponible en la ficha [Salida]. 106 ACL para Windows 7 Header (Encabezado) Manual de Referencia Header (Encabezado) Encabezado introduce texto en la parte superior de cada página de un reporte. Esto ignora cualquier valor establecido por una variable de encabezado.  Sintaxis del modo comando HEADER "texto_de_encabezado" En el siguiente ejemplo, el comando Stratify (Estratificar) produce un archivo que contiene un encabezado. STRATIFY ON UnCst ACCUMULATE QtyOH MINIMUM 10,00 MAXIMUM 100 INTERVALS 10 TO "UnitCost.TXT" HEADER "***START DATA***" FOOTER "***END DATA***"  Cuadros de diálogo de comandos El botón Encabezado está disponible en la ficha [Salida]. Para incluir un encabezado en un reporte, escriba el texto directamente en el cuadro de texto Encabezado o haga clic en [Encabezado] y escriba el texto en el cuadro de diálogo Encabezado. Capítulo 3 Parámetros de comandos comunes If (Si) 107 If (Si) Si es un parámetro de ámbito el cual permite que un comando sea ejecutado en registros que satisfacen una determinada prueba. Si, filtra todos los registros que no han superado la prueba. Si, no depende de la posición actual del registro. Después de la ejecución de un comando que contiene una cláusula Si, la posición de registro es establecida en el registro que sigue inmediatamente al número de registros especificado en el comando. Si el fin del archivo es alcanzado durante la ejecución, la posición del registro se reprograma al registro 1. Si, también puede usarse en conjunto con While (Mientras), Next (Seguiente) o First (Primero). Después de la ejecución de un comando en el cual tanto Si como Mientras están especificados, la posición del registro se determina por el parámetro Mientras. Nota: Cuando se aplica un filtro global, la condición [Si] se aplica en conjunto con el filtro y no en vez del filtro.  Sintaxis del modo comando IF Prueba En el siguiente ejemplo, los registros que tienen un valor menor a 50, en el campo QtyOH, son contados: COUNT IF QtyOH < 50  Cuadros de diálogo de comandos El botón [Si] está disponible en la ficha [Principal]. Especifique la condición directamente en el cuadro de texto Si, o haga clic en [Si] para mostrar el Generador de expresiones. Para obtener más información, consulte “Generador de expresiones” on page 281 of the ACL for Windows User Guide. Key (Clave) Clave especifica campos de Salto en un comando y hace que datos de reporte sean equilibrados, siempre que se cambie el valor del campo especificado. Son generados subtotales para cada valor en el campo de salto. Clave también puede usarse como una expresión que consiste en más de un campo. 108 ACL para Windows 7 Local (Lugar) Manual de Referencia Los campos-clave deben ser campos de caracteres. Para usar el Salto con un campo numérico, conviértalo en un campo de carácter usando la función STRING( ). La clave puede usarse sólo con los siguientes comandos: Age (Antigüedad), Classify (Clasificar), Histogram (Histograma) y Stratify (Estratificar). Nota: Para resultados significativos, su archivo debe ordenarse o indexarse en el campo de salto especificado.  Sintaxis del modo comando KEY Campos_de_corte En el siguiente ejemplo, los resultados del comando Stratify (Estratificar) son presentados por clase de producto. Se generan totales separados para cada clase de producto en el archivo de origen. STRATIFY ON QtyOH ACCUMULATE SalePr Value MINIMUM 25 MAXIMUM 100 INTERVALS 10 KEY ProdCls TO SCREEN Cuadros de diálogo de comandos Consulte “Break (Salto)” on page 98. Local (Lugar) Este parámetro sólo se aplica a archivos procesados, usando el Sistema ACL Cliente/Servidor. Lugar especifica que un archivo de salida debe guadarse en la unidad local o del cliente. Cuando Lugar es verificado, los comandos graban la salida en la localización del archivo de proyecto actual, a menos que se proporcione una ruta.  Sintaxis del modo comando En el siguiente ejemplo, la salida del comando Classify (Clasificar) se graba en la unidad local. CLASSIFY ON Part_No TO "Parts Summary" LOCAL OPEN Cuadros de diálogo de comandos Opciones de salida están disponibles en la ficha [Salida]. Capítulo 3 Parámetros de comandos comunes Name (Nombre) 109 Name (Nombre) Nombre se usa para especificar el nombre del archivo de salida creado por un comando. Sintaxis del modo comando Consulte “To (A)” on page 115.  Cuadros de diálogo de comandos Opciones de salida están disponibles en la ficha [Salida]. Next (Siguiente) Siguiente, es un parámetro de ámbito que permite que un comando sea ejecutado en un número de registros, comenzando en el registro actual. El procesamiento se cierra después de alcanzar un número especificado de registros. Siguiente, depende de la posición actual del registro. Después de la ejecución de un comando que contiene un parámetro Siguiente, la posición de registro es establecida en el registro que sigue inmediatamente el número de 110 ACL para Windows 7 Nodups (Sin duplicados) Manual de Referencia registros especificado en el comando. Si el fin del archivo es alcanzado durante la ejecución, la posición del registro se reprograma al registro 1. Nota: Como Next (Siguiente) permite que el procesamiento cierre anticipadamente, no puede usarse en un grupo, a pesar de que pueda usarse en el comando más externo del Group (Grupo) de un conjunto de grupos anidados. Siguiente, también puede usarse en conjunto con If (Si) o con While (Mientras). La cláusula Siguiente es aplicada en primer lugar, independientemente de la prueba Si. Si Mientras y Siguiente, se encuentran especificados en el mismo comando, la posición de registro es determinada por la primera de las dos cláusulas al finalizar el proceso.  Sintaxis del modo comando NEXT N En el siguiente ejemplo, NEXT (Siguiente) determina que el comando finalice después de 10 registros: TOTAL ALL NEXT 10 La posición del registro se configura en el primer registro después de 10 registros procesados. Por ejemplo, si la posición del registro era 2 al inicio del comando arriba, el registro se posicionará en 12, después de que el comando se ejecute.  Cuadros de diálogo de comandos El botón de opción Siguiente está disponible en la ficha [Más]. Nodups (Sin duplicados) Nodups (Sin duplicados) es un modificador de campo que permite que valores repetidos en un campo se muestren con espacios en blanco en un reporte. Nodups puede usarse sólo en el modo comando. Capítulo 3  Parámetros de comandos comunes Nozeros (Sin ceros) 111 Sintaxis del modo comando ficha_de_campos NODUPS Por ejemplo, el siguiente comando de Report (Reporte) suprime los valores repetidos en el campo ProdCls. REPORT ON Loc ProdCls NODUPS ACCUMULATE QtyOH Nozeros (Sin ceros) Nozeros (Sin ceros), es un modificador de campo que permite que los valores cero en un campo sean presentados como espacios en blanco en un reporte. Nozeros puede usarse sólo en el modo comando.  Sintaxis del modo comando Nombres_de_campos NOZEROS Por ejemplo, el siguiente comando de Report (Reporte) suprime los ceros en el campo QtyOH: REPORT ON Loc ACCUMULATE QtyOH NOZEROS Open (Abrir) Abrir es un parámetro de ámbito, utilizado para abrir un archivo creado por un comando. Si un archivo de entrada ya está abierto, ACL cierra el archivo antes de ejecutar el comando. El archivo recién creado se usa como archivo de entrada. Este parámetro es sólo válido cuando el comando crea un archivo de salida. Para obtener más información de como utilizar Abrir como un comando, consulte “Open (Abrir)” on page 271.  Sintaxis del modo comando "Nuevo_archivo" OPEN En el siguiente ejemplo, el comando Extract (Extraer) crea un archivo, “Inventario disponible” (QtyOH) y abre el archivo automáticamente. EXTRACT FIELDS Loc QtyOH TO "Stockonhand" OPEN Cuadros de diálogo de comandos Consulte “Use Output File (Usar archivo de salida)” on page 116. 112 ACL para Windows 7 Page (Página) Manual de Referencia Page (Página) Page (Página), es un modificador de campo que inserta un salto de página después de los totales para el campo clave especificado. Page puede usarse sólo en el modo comando.  Sintaxis del modo comando Campos_seleccionados PAGE Por ejemplo, el comando siguiente produce un reporte con dos niveles de subtotales: por localización y otro por clase de producto en la localización. Después de cada línea de subotal por localización, el reporte continúa en la parte superior de una nueva página. REPORT ON Loc PAGE ProdCls ACCUMULATE QtyOH Picture (Figura) Figura es un modificador de campo que especifica cómo ejecutar el formato de un campo de fecha o numérico. Este modificador puede usarse sólo en el modo comando. Para obtener un cuadro de diálogo equivalente, consulte “Campos numéricos” on page 161 of the ACL for Windows User Guide y “Campos de fechas” on page 162 of the ACL for Windows User Guide.  Sintaxis del modo comando Figura es abreviada como “PIC”. PIC "Formato" Por ejemplo, el siguiente comando determina que un archivo de salida, Negfile, se produzca: EXTRACT Valor PIC "$9,999,999.99" IF Valor < 0 TO "Negfile" En el Negfile, las cantidades en el campo Valor son presentadas con un símbolo de dólar delante, separadas por comas y un punto decimal. Print (Imprimir) Imprimir especifica que la salida de un comando sea imprimida.  Sintaxis del modo comando Consulte “To (A)” on page 115. Capítulo 3 Parámetros de comandos comunes Record (Registro) 113 En el siguiente ejemplo, se imprime la salida del comando Stratify (Estratificar): STRATIFY ON UnCst ACCUMULATE QtyOH MINIMUM 10 MAXIMUM 100 INTERVALS 10 TO PRINT  Cuadros de diálogo de comandos La opción Imprimir está disponible en la ficha [Salida]. Record (Registro) Registro se refiere a un registro como unidad, sin referencia a los campos en el registro. Registro, especifica que el registro entero (aunque el registro entero esté o no definido) deberá colocarse en el archivo de salida, en vez de colocarse sólo en campos seleccionados. Esto significa que el archivo de salida contiene una copia exacta del registro de entrada, incluyendo toda y cualquier definición de campo computado.  Sintaxis del modo comando En el siguiente ejemplo, el comando Extract (Extraer) produce un archivo de salida conteniendo todos los registros en el cual, la Unidad Coste (UnCst) es mayor que cero. EXTRACT RECORD IF UnCst > 0 TO "EXTR_1"  Cuadros de diálogo de comandos La opción Registro está disponible en la ficha [Principal]. 114 ACL para Windows 7 Screen (Pantalla) Manual de Referencia Screen (Pantalla) Pantalla, especifica que la salida de un comando debe presentarse en el Log de comandos para revisión en pantalla.  Sintaxis del modo comando Consulte “To (A)” on page 115. En el siguiente ejemplo, la salida del comando Stratify (Estratificar) se presenta en el log del comando: STRATIFY ON UnCst ACCUMULATE QtyOH MINIMUM 10 MAXIMUM 100 INTERVALS 10 TO SCREEN  Cuadros de diálogo de comandos La opción Pantalla está disponible en la ficha [Salida]. Suppress (Suprimir otros) Suprimir otros excluye cantidades fuera de un intervalo de salida especificado. Por ejemplo, el comando Estratificar requiere que los usuarios especifiquen intervalos de salida. Como predeterminado, el comando analiza dos intervalos adicionales: el intervalo de valores bajo el mínimo especificado y el intervalo de valores sobre el máximo especificado. Suprimir otros ignora tal comportamiento. Suprimir otros también puede usarse como modificador de campo, para suprimir la totalización de campos numéricos específicos, principalmente en la salida de reportes. Para obtener más información, consulte “Campos numéricos” on page 161 of the ACL for Windows User Guide. Capítulo 3  Parámetros de comandos comunes To (A) 115 Sintaxis del modo comando Sólo datos situados en el intervalo especificado de 25 a 100 aparecen en la salida del siguiente comando Stratify (Estratificar): STRATIFY ON QtyOO MINIMUM 25 MAXIMUM 100 INTERVALS 10 SUPPRESS TO SCREEN  Cuadros de diálogo de comandos Desde la ficha [Más], verifique Suprimir otros, para limitar la acción del comando en el intervalo de valores especificado en la ficha [Principal]. To (A) A, se usa para especificar el formato de salida de un comando. Dependiendo del comando, la salida puede ser: ■ Presentada en la pantalla ■ Impresa ■ Presentada en un gráfico ■ Guardado en un archivo Para obtener más información, consulte “Graph (Gráfico)” on page 105, “Print (Imprimir)” on page 112, y “Screen (Pantalla)” on page 114.  Sintaxis del modo comando TO SCREEN TO PRINT TO GRAPH TO "Nombre_ de archivo" 116 ACL para Windows 7 Use Output File (Usar archivo de salida) Manual de Referencia En el siguiente ejemplo, la salida del comando Stratify (Estratificar) se graba en un archivo llamado “Rept1.txt”. STRATIFY ON UnCst ACCUMULATE QtyOH MINIMUM 10,00 MAXIMUM 100 INTERVALS 10 TO "Rept1.TXT"  Cuadros de diálogo de comandos Opciones de salida están disponibles en la ficha [Salida]. Use Output File (Usar archivo de salida) Al escoger la casilla de verificación, Usar Archivo de salida, ACL abre el archivo creado por un comando. Si un archivo de entrada ya está abierto, ACL cierra el archivo abierto antes de abrir el archivo recién creado, el cual, a su vez, se convierte en archivo de entrada actual. Sintaxis del modo comando Consulte “Open (Abrir)” on page 111.  Cuadros de diálogo de comandos La casilla de verificación Usar archivo de salida está disponible en la ficha [Principal]. Capítulo 3 Parámetros de comandos comunes While (Mientras) 117 While (Mientras) Mientras es un parámetro de ámbito que permite la ejecución de un comando siempre que una condición sea verdadera. Mientras determina que el procesamiento de comandos termine, así que la prueba especificada lo evalúe como falso, o cuando se alcance el fin del archivo. Mientras depende de la posición actual del registro. Para iniciar el proceso, el registro actual debe evaluarse como verdadero. Mientras es usado generalmente con bloques de elementos, donde la condición es evaluada como verdadera. Si el fin del archivo es alcanzado durante la ejecución, la posición del registro se reprograma al registro 1. Mientras también puede usarse en conjunto con Si, Siguiente o Primero. Después de la ejecución de un comando que contiene Mientras, Si o Primero, la posición del registro se determina por el parámetro Mientras. Después de la ejecución de un comando en el que, tanto Mientras como Próximo están especificados, la posición del registro se determina por la primera de las dos cláusulas que finaliza el procesamiento. Nota: Como el parámetro WHILE (Mientras) puede anticipar el cierre de un procesamiento, no puede ser especificado en un grupo (a pesar de que puede usarse en el comando Group (Grupo) más externo). 118  ACL para Windows 7 Width (Ancho) Manual de Referencia Sintaxis del modo comando WHILE prueba En el siguiente ejemplo, el comando Count (Contar) se ejecuta iniciando en la posición actual del registro, en el campo Cantidad disponible, siempre que la Clase de producto (ProdCls) sea 07: COUNT WHILE ProdCls = "07" Cuando el comando falle en la prueba While, el procesamiento se interrumpe y la posición del registro se establece en el primer registro que falle en la prueba.  Cuadros de diálogo de comandos El botón [Mientras] está disponible en la ficha [Más]. Especifique la condición directamente en el cuadro de texto Mientras, o haga clic en [Mientras] para mostrar el Generador de Expresiones. Para obtener más información, consulte “Generador de expresiones” on page 281 of the ACL for Windows User Guide. Width (Ancho) Width (Ancho), es un modificador de campo que especifica el ancho de la presentación de un campo o expresión en un reporte. El ancho de la muestra predeterminada es el tamaño definido del campo. Utilizando el parámetro Width anulará el valor predeterminado. Width sólo puede usarse en el modo comando. Para obtener más información, consulte “Cómo cambiar el ancho de columna” on page 207 of the ACL for Windows User Guide. Capítulo 3  Parámetros de comandos comunes Width (Ancho) 119 Sintaxis del modo comando FIELDS Nombre_de_campo WIDTH Valor En el siguiente ejemplo, el comando Export (Exportar) genera un reporte que contiene los campos “Descripción de producto y Cantidad disponible”, con anchos de 50 y 25, respectivamente. EXPORT FIELDS ProdDesc WIDTH 50 QtyOH WIDTH 25 ASCII TO "ProdQty" 120 ACL para Windows 7 Width (Ancho) Manual de Referencia Capítulo 4 C OMANDOS Esta sección contiene una completa descripción de cada comando ACL. Esta descripción incluye una explicación de la acción del comando y de sus parámetros. Los ejemplos son proporcionados con propósitos ilustrativos. Accept (Aceptar) El comando Aceptar permite crear lotes interactivos que pausan para mostrar un cuadro de diálogo, con la finalidad de pedir información al usuario. Este comando sólo puede ejecutarse en modo comando. No puede usarse en un comando Grupo. Es recomendable colocar todos los comandos Aceptar en el inicio de un lote. Use Aceptar para crear lotes que indiquen al usuario que entre algunas informaciones, tales como: intervalos de muestreo, nombres de archivos, números de departamentos o reportes de encabezados y pie de página. ACL almacena las entradas del usuario en una variable de carácter. Cuando la entrada del usuario es un valor numérico necesario para un comando ACL subsiguiente, el comando interpreta la entrada del usuario como un valor de carácter. Tal vez sea necesario que convierta los datos de un carácter en una variable para el formato numérico o de datos, antes de usarlo en otras operaciones. Para usar el contenido literal de una variable en un comando u operación subsiguiente, puede referirse a la variable por el nombre. Para que ACL interprete el contenido de una variable como nombre de un campo o el nombre de un archivo, use el carácter de porcentaje (%) antes y después del nombre de la variable. Esto convierte el nombre de la variable en un macro, dando instrucciones al ACL para tratar el contenido de una variable como referencia para un campo o un archivo específico. Para obtener más información, consulte “Variables” on page 351 of the ACL for Windows User Guide, “Lotes interactivos” on page 349 of the ACL for Windows User Guide, y “Sustitución de macros” on page 357 of the ACL for Windows User Guide. Para crear cuadros de diálogo más complejos, use el comando Diálogo. Para obtener más información, consulte “Dialog (Diálogo)” on page 168. 121 122 ACL para Windows 7 Accept (Aceptar) Manual de Referencia Cuadros de diálogo creados con Aceptar Cuando ACL se encuentra con el comando Aceptar, suspende temporalmente el lote y muestra un cuadro de diálogo instruyendo al usuario para que introduza las informaciones. Si hace clic en [Aceptar] en el cuadro de diálogo estará instruyendo a ACL para aceptar las informaciones y continuar el procesamiento ejecutar lote. Si hace clic en [Cancelar] estará cancelando la ejecución del lote. Existen dos modos de solicitar entradas de un usuario. El usuario puede escribir el texto en un cuadro de texto, o hacer una selección a desde de una lista desplegable. Las listas desplegables pueden contener los nombres de los campos, variables o elementos del Proyecto, como lotes, DAEs, índices, modos de vistas y reportes. Para crear una lista desplegable, use el parámetro opcional Campos, con uno o más identificadores de tipo de campo. Para obtener más información, consulte “Sintaxis tipo de campo” on page 123. Si un DAE está abierta cuando son emitidos los comandos Aceptar o Diálogo, la lista desplegable debe contener sólo los elementos especificados por la DAE abierto en el momento. Si ninguna DAE está abierto cuando el comando es emitido, las listas desplegables estarán en blanco. Parámetros El comando Accept (Aceptar) tiene los siguientes parámetros: Fields (Campos), To (A). Fields (Campos) Permite el uso de listas desplegables, en vez de los cuadros de texto para la entrada del usuario. Las listas desplegables pueden contener uno o más tipos de campo. To (A) Asigna al usuario la respuesta de una variable de carácter específico.  Sintaxis del modo comando Cada comando Accept (Aceptar) individual genera un cuadro de diálogo de mensaje diferente. Para crear un cuadro de diálogo con mensajes diferentes, use sólo un comando Accept, con cadenas de mensaje múltiples y nombres de variables separadas por comas. ACCEPT "cadena_de_mensaje" TO nombre_de_variable <; .... > cadena_de_mensaje especifica el mensaje que indica al usuario sobre informaciones de la ejecución del lote. El mensaje debe estar entre comillas y debe ser breve. Capítulo 4 Comandos Accept (Aceptar) 123 nombre_de_variable, especifica el nombre del carácter variable que almacena la respuesta del usuario y no requiere comillas. Si una variable proporcionada ya contiene un valor, el cuadro de diálogo lo muestra. tipos_de_campos, especifican los tipos de campo que serán presentados en la lista desplegable. Los tipos de campos deben estar obligatoriamente entre comillas. Nombres de campo y nombres de variables pueden aparecer en la misma lista desplegable. Por ejemplo, FIELDS "CNLD" genera una lista desplegable conteniendo los nombres de todos los campos y FIELDS "CNLDcnld" genera una lista desplegable conteniendo los nombres de todos los campos y de todas las variables. Nota: No combine elementos “xixrxbxfxw” con elementos “CcNnLlDd”. Asimismo, no puede tener tipos de elementos de Proyecto, en la misma lista con nombres de campo o nombres de variables. Esto puede resultar en opciones inadecuadas para el usuario, causando errores de procesamiento. Sintaxis tipo de campo Tipo de campo Genera una lista desplegable conteniendo C Campos de caracteres c Variables de caracteres N Campos numéricos n Variables numéricas L Campos lógicos (filtros) l Variables lógicas D Campos de fecha d Variables de fecha xb Lotes xf Archivos de entrada xi Índices xr Vistas y reportes xw Espacios de trabajo 124 ACL para Windows 7 Accept (Aceptar) Manual de Referencia Cuadros de diálogo de aviso único Para crear un cuadro de diálogo con un sollo aviso único, use sólo una cadena indicadora para cada instancia del comando Accept (Aceptar). Use la siguiente sintaxis, para crear un lote denominado Random_sample, que genera avisos separados para un nombre de archivo, una lista desplegable de los campos que pueden servir de muestra, intervalos de muestreo y valores de iniciales aleatorios. Observe que el carácter % es usado para referirse al nombre de la variable, al representar el nombre de un archivo o el nombre de un campo. El símbolo de retorno de carro (↵) marca el final de cada línea de un texto de múltiples líneas. ACCEPT "Asigna el nombre del archivo para analizar" TO FILENAME ↵ OPEN %FILENAME% ↵ ACCEPT "Selecciona el campo para el muestreo de" FIELDS "N" to SAMFIELD ↵ ACCEPT "Ingresa el intervalo de muestreo" TO SAMINT ↵ ACCEPT "Ingresa un valor inicial aleatorio" to RANSTART ↵ SAMPLE ON %SAMFIELD% INTERVAL SAMINT FIXED RANSTART RECORD TO INVSAMP Cuando procesa el lote, el primer cuadro de diálogo presentado le solicita el nombre del archivo. El segundo cuadro de diálogo, le pideel nombre del campo que será presentado como muestra. La sintaxis para ese aviso, mostrado en la tercera línea del comando de encima, usa la palabra clave FIELDS "N". Como resultado, ese cuadro de diálogo contiene una lista desplegable de los campos numéricos disponibles. El tercer cuadro de diálogo, pide el valor del intervalo. Capítulo 4 Comandos Accept (Aceptar) 125 Y el cuarto pide el valor inicial aleatorio. ACL muestra el resultado de la ejecución del lote en el Log de comandos. Observe que ACL evalúa el macro %FILENAME% en la línea dos, del lote y abre el archivo Inventory (inventarios). El Log de comandos muestra que los registros se extraen de un archivo llamado Inventory_sample. Para ver los registros verificados, seleccione Inventory_sample en el cuadro de diálogo Seleccionar archivo de entrada. 126 ACL para Windows 7 Accept (Aceptar) Manual de Referencia Cuadro de diálogo avisos múltiples Para crear un cuadro de diálogo de avisos múltiples, entre con diversos conjuntos de parámetros de comandos, separados por comas para una instancia del comando Accept (Aceptar) y todos en la misma línea como se muestra a continuación: ACCEPT 'Seleccione el campo para muestra ' FIELDS 'N' TO SAMFIELD, 'Especifique el intervalo de muestreo' TO SAMINT, 'Especifique el valor de inicio aleatorio' TO RANSTART El comando Accept presentado encima, produce un cuadro de diálogo con una lista desplegable de nombres de campos y dos cuadros de texto. Capítulo 4 Comandos Activate (Activar) 127 Activate (Activar) El comando Activate (Activar) sirve para que las definiciones de campos de espacios de trabajo estén disponibles en el archivo de entrada actual. Una vez que se haya activado un espacio de trabajo, sus definiciones de campo están disponibles sólo para la sesión actual. Para añadir campos de espacios de trabajo a la definición del archivo de entrada, añada primero los campos a la vista y, a continuación, especifique un comando Save (Guardar) en el cuadro de texto del log de comandos. Nota: Si efectúa modificaciones en los campos del espacio de trabajo o en cualquier otro campo mientras un espacio de trabajo esté activado, los campos del espacio de trabajo se guardarán automáticamente en la definición del archivo de entrada. Para obtener más información sobre cómo crear y utilizar espacios de trabajo, consulte “Save (Guardar)” on page 322 y “Espacios de trabajo” on page 364 of the ACL for Windows User Guide. Ventana Panorama Puede activar el espacio de trabajo a través de la ventana Panorama. Para obtener más información, consulte “Ventana Panorama” on page 32 of the ACL for Windows User Guide. Parámetros El comando Activate (Activar) tiene los siguientes parámetros: OK (Aceptar) y Workspace (Espacio de trabajo). OK (Aceptar) Indica que un campo del archivo de entrada, con un nombre idéntico a uno del espacio de trabajo activado, se sobrescribirá sin confirmación. No es posible reemplazar un campo si un campo computado hace referencia a éste. Valor predeterminado: confirmar antes de reemplazar el campo. Workspace (Espacio de trabajo) Indica que se activará un espacio de trabajo. 128 ACL para Windows 7 Activate (Activar) Manual de Referencia Sintaxis del modo comando ACTIVATE nombre-espacio-trabajo nombre-espacio-trabajo especifica el nombre del espacio de trabajo que se desea activar para el proyecto actual. Ejemplo El comando Activate (Activar) se utiliza en este ejemplo para activar un espacio de trabajo, Inventory_Margin (INVMARG) que contiene campos computados que calculan los márgenes unitarios y los márgenes porcentuales unitarios de los artículos de un archivo de inventario. Para mostrar el contenido del archivo antes de activar el espacio de trabajo, escriba DISPLAY en el cuadro de texto del log de comandos. ACL muestra el contenido del archivo en el log de comandos. Para activar el espacio de trabajo mediante el comando Activate, especifique lo siguiente en el cuadro de texto del log de comandos: ACTIVATE WORKSPACE INVENTORY_MARGIN Emita nuevamente el comando Display (Mostrar) para ver el contenido del archivo después de activar Inventory_margin, y desplácese hasta el final de la ventana. Los dos campos activados, Loc05 y City, aparecen como los dos últimos campos mostrados. Capítulo 4 Comandos Activate (Activar) 129 130 ACL para Windows 7 Age (Antigüedad) Manual de Referencia Age (Antigüedad) Utilice el comando Antigüedad para generar resúmenes de datos por antigüedad. Los ejemplos incluyen la evaluación de tendencias de ventas, observación de volúmenes de transacciones y la clasificación de facturas por el número de días vencidos, iniciando en una fecha en particular. A no ser que especifique una fecha de ruta, el período es basado en los datos actuales del sistema. Puede especificar puntos de partida, tales como, 0, 90, 120 y así sucesivamente para cada período, o puede aceptar las definiciones predeterminadas de 0, 30, 60, 90, 120, y 10.000 días. El número de registros en cada período es mostrado en el Log de comandos en una columna de ACL generada, titulada COUNT y vista en “Ejemplo” on page 132. También puede acumular la totalización de los campos numéricos para cada período. Parámetros Además de los parámetros descritos a continuación, el comando Age (Antigüedad) tiene los siguientes parámetros: All (Todos), Append (Anexar), Break (Salto), File (Archivo), File Type (Tipo de archivo), First (Primero), Footer (Pie de página), Graph (Gráfico), Header (Encabezado), If (Si), Local (Lugar), Name (Nombre), Next (Siguiente), Print (Imprimir), Screen (Pantalla), Suppress (Suprimir otros), While (Mientras). Para obtener una descripción de esos parámetros consulte Chapter 3: “Parámetros de comandos comunes”. Accumulate Fields (Acumular campos) Permite que seleccione campos numéricos que serán totalizados. Seleccione los campos desde el modo de vista de la lista Acumular campos, o haga clic en [Acumular campos] para mostrar el cuadro de diálogo Campos seleccionados. Entonces puede seleccionar los campos desde el modo de vista de la lista de Campos disponibles. Age On (Antigüedad en) Permite que seleccione el campo de fecha o expresión para clasificarlo por antigüedad. Seleccione el campo desde la lista desplegable antigüedad en, o haga clic en [Antigüedad en] para mostrar el cuadro de diálogo Campos seleccionados, en la cual puede seleccionar un campo en el modo vista de la lista de Campos disponibles. Capítulo 4 Comandos Age (Antigüedad) 131 Aging Periods (Periodos de expiración) Permite que especifique el inicio de cada período de vencimiento. La última entrada representa el final del período de cierre. Especifique un valor por línea en el cuadro de texto Períodos. Utilice 10.000 días para aislar elementos con fechas inválidas. Las definiciones predeterminadas son 0, 30, 60, 90, 120, 10.000 días. Estos valores predeterminados son definidos en el cuadro de diálogo Editar las preferencias de ACL. Para informaciones sobre cambios de esos predeterminados, consulte “Periodos de expiración” on page 332 of the ACL for Windows User Guide. Cutoff Date (Fecha límite) Permite que especifique la fecha con la que se comparan las fechas del campo [Antigüedad en]. Para seleccionar la fecha, puede usar el calendario interno del cuadro de diálogo Antigüedad. En el modo comando necesita especificar la fecha límite en caracteres de formato AAMMDD o AAAAMMDD, independientemente del formato del campo de fecha. La fecha límite predeterminada es la fecha actual del sistema.  Cuadro de diálogo Antigüedad Haga clic en (Antigüedad) o seleccione Analizar, desde la barra de menús, y elija Antigüedad para mostrar el cuadro de diálogo Antigüedad. 132 ACL para Windows 7 Age (Antigüedad) Manual de Referencia Salida del comando La salida del Log de comandos para ese comando tiene columnas para intervalos de vencimiento, el número de registros en cada intervalo y el porcentaje del total de registros, representado para cada uno de los intervalos. Si uno o más campos son acumulados, se mostrarán las columnas añadidas: Otra columna de porcentaje y la totalización del campo acumulado para cada intervalo. Cada columna porcentual apunta para la columna que ella representa. La columna porcentual a la derecha apunta para la columna del campo acumulado más cercano y muestra el porcentaje del valor total representado por ese intervalo. Los porcentajes no son proporcionados para columnas añadidas del campo acumulado. Fechas anteriores a las fechas límite caen en uno de los períodos de expiración especificados. ACL crea otro período <0, para fechas más actuales que la fecha límite. Ejemplo Analice los registros en un archivo de cuentas por cobrar, para determinar el número y valor de los registros entre 30 a 59 días después de la fecha de vencimiento. Ordene los registros de acuerdo con la fecha de vencimiento en el campo fecha de vencimiento y acumule en un campo de valores debidos, usando como fecha límite el 31 de diciembre de 1997. Para los períodos de expiración, utilice las definiciones predeterminadas. 1. Con el archivo Ar abierto, haga clic en [Antigüedad] en la barra de botones, o seleccione Analizar en la barra de menús y elija Antigüedad para mostrar el cuadro de diálogo Antigüedad. 2. Seleccione el campo Vencido desde la lista desplegable Antigüedad en. También puede hacer clic en [Antigüedad en] para mostrar el cuadro de diálogo Campos seleccionados, que proporciona más información sobre los campos que está seleccionando. Capítulo 4 Comandos Age (Antigüedad) Haga clic para seleccionar el campo y a continuación use la flecha O Haga doble clic en el campo O 133 Haga clic para mostrar el Generador de expresiones Existen tres maneras para seleccionar los campos utilizando el cuadro de diálogo Campos seleccionados: ■ ■ ■ Haga clic en el nombre del campo para seleccionarlo y enseguida, utilice la (flecha) para moverse entre los cuadros de lista. Haga doble clic en el nombre del campo seleccionado y muévalo del modo de vista de la lista de Campos disponibles, para el cuadro de lista de Campos seleccionados. Haga clic en [Expr] para mostrar el Generador de expresiones, de manera que pueda construir una expresión de fecha. Seleccione en la lista el campo denominado vencido y haga clic en [Aceptar] para retornar al cuadro de diálogo Antigüedad. 3. Especifique la fecha límite. Haga clic en la flecha de la lista desplegable Fecha límite para mostrar el calendario desde el cual podrá seleccionar su fecha límite. Luego, haga clic en las flechas, en el mes o en el año para seleccionar otra fecha. 134 ACL para Windows 7 Age (Antigüedad) Haga clic para mostrar el calendario Haga clic en las flechas o en el mes para cambiar el mes Manual de Referencia Acumula ese campo Haga clic en año para cambiar el año 4. Seleccione los campos que serán totalizados. Seleccione los nombres de los campos en el cuadro de lista Acumular campos o haga clic en [Acumular campos] para mostrar el cuadro de diálogo Campos seleccionados. Después de seleccionar los campos, haga clic en [Aceptar] para regresar al cuadro de diálogo Antigüedad. 5. Nuevamente haga clic en [Aceptar] para cerrar el cuadro de diálogo y ejecute el comando Antigüedad. Los resultados aparecen en el Log de comandos. Capítulo 4 Comandos Age (Antigüedad) 135 La columna COUNT muestra el número de registros en cada categoría. O Log de comandos muestra que el valor de las transacciones vencidas entre 30 y 59 días es 54.676,94. Ese valor representa 22,02% del número total de registros y el 11,66% del total de cuentas por cobrar. Elementos vencidos encima de los 10. 000 días, probablemente constituyen campos de fecha inválidos  Sintaxis del modo comando AGE nombre_del_campo_de_fecha Punto_inicio_intervalo <; ....> Punto_final_de_intervalo <+....>