Está en la página 1de 94

1. EstructurageneralCrossWalk 1.1. Esquemacliente,canalesyservidor 1.2. CrosswalkIDE 1.3. Editordepginas 1.4. VisualStudio 1.5. CrossWalkConsole 2. Creacindeunaaplicacin 3. Transacciones 3.1.

Estructuradeunatransaccin 3.2. Etapasdeunatransaccin 3.3. Transaccionesmultilnea(copy.from) 3.3.1.Cdigodeunatransaccinmultilnea 3.3.2.CiclooptimizadoparamultilneaenCrosswalk 3.4. Gruposdetransacciones 3.5. Creacindetransacciones 3.6. Adicindecamposaunatransaccin 3.7. Manejodelgicaprincipalyprotocolosdecomunicacin 3.7.1.NormalizeandUpdateTags 3.7.2.DefinitionsGeneratesoPuntoH 3.8. CreacindeproyectoCrossWalk 3.8.1.Releaseversion 3.9. Creacinyedicindepantallasparatransacciones 3.9.1.CompilePage 3.10. Lgicaprincipaldeunatransaccin 3.10.1. Tiposdedatos 3.10.2. Expresionesyoperadores 3.10.3. Instruccionesdecontroldeflujo 3.10.4. Declaracindefunciones 3.10.5. Declaracionesyasignaciones 3.10.6. Funcionesparamanejodefechaytiempo 4. Tablas 4.1. Creacindetablas 4.2. Adicindecamposaunatabla 4.3. Creacindellaves 4.4. Generacindescriptsdetablas 4.5. Generacindeencabezadosdeproyecto 4.6. Lgicaprincipalutilizandoaccesoabasededatos 5. CreacindetransaccionesporWizard 6. PopupWindows 6.1. CreacindePopupWindows 6.2. ComoagregarcamposdepantallaaPopUpWindows 6.3. EnlacedeinformacinentrePopupWindowyventanaorigen

7. 8. 9. 10. 11.

12.

13.

14.

15.

6.4. Creacindecamposdepantalla Dictionary 7.1. Creacinyusodeelementosendiccionario Routines 8.1. Creacinderutinas Common 9.1. Creacindelgicacomn(insertable) GlobalWork 10.1. CreacinyusodeGlobalWork Reportes 11.1. Creacindereportes(reportes,framesyvariables) 11.1.1. Creacindereporte 11.1.2. Definicindeframe 11.1.3. Adicindecamposparaimpresindeetiquetasyvaloresdinmicos 11.2. Lgicaprincipaldeunreporte 11.3. Ejecucindereportes 11.4. Cargaydescargadeinformacin 11.5. CreacindereportesconWizard Enlacedeservidoresremotos 12.1. Conexinconservidoresremotosyconsideraciones 12.2. Creacineinterpretacindemensajerahaciaservidoresexternos Funcionalidadadicional 13.1. Funcionesgenerales 13.2. Variablesdelsistema 13.3. Ordenamientos 13.4. Arreglos 13.5. Modificacinmanualdepantallas Anexo1 14.1. Creacindevariablesparatransaccionesytablas 14.2. DefinitionsGeneratesoPuntoH 14.3. CreacindeelementocontenedorCommon,Routines,Reports Anexo2Ejercicios 15.1. Manejodeinformacinenpantallayvariables 15.2. Creacindeestructurasyperfiles 15.3. Transaccionesdemantenimientoyconsulta 15.4. Transaccionesdemantenimientoyconsultaconasistentes 15.5. Creacindeventanasemergentesdeconsulta,llamadaytrasladodeinformacin 15.6. Creacindereportes

1. EstructurageneralCrossWalk
1.1.Esquemacliente,canalesyservidor

1.2.CrossWalkIDE
El IDE es una aplicacin que provee todas las herramientas necesarias para el diseo, desarrollo y distribucin de aplicaciones, as como para el control de fuentes y de permisos a stos. Es el punto de inicio para la creacin de distintos tipos de aplicaciones y permite un efectivo control de los distintos elementos que se manejan dentro de las aplicaciones administradas dentro de la misma. Esta herramienta administra los elementos de una o varias aplicaciones facilitando las tareas realizadas para la generacin de una aplicacin completa, centraliza el control y da opciones de seguridad, respaldo, recuperacin, asistentes de creacin. Objetivos: Mantener una fuente nica de versiones de los distintos elementos que conforman las aplicaciones, los cuales se describen a lo largo de esta documentacin, tales como transacciones, reportes, rutinas, clases, tablas, diccionario, etc. Facilitar la creacin de los distintos elementos por medio se asistentes de forma que puedan tenerse transacciones, reportes y otros elementos creados en pocos minutos y sin requerir mayor conocimiento sobre la sintaxis interna de las transacciones. Crear los archivos de instrucciones necesarios para la manipulacin de las estructuras a utilizar en la base de datos para el almacenamiento de informacin. Resguardar los archivos fuentes utilizando distintos niveles de seguridad y opciones para respaldo e importacin de objetos. Mostrar de forma organizada y ayudar en la administracin de objetos utilizados para una aplicacin. Dar opciones para regresar a versiones anteriores de objetos de forma segura y amigable en caso de contingencias. Administrar los elementos y controlar la modificacin de los mismos para evitar cambios simultneos y descontrolados que puedan resultar en prdida de tiempo.

El IDE se encuentra organizado de la siguiente forma: Un men principal, el cual contiene las opciones con las cuales se acceden a las opciones de manipulacin de objetos, seguridad y parmetros. Una barra de herramientas en la cual se encuentran accesos inmediatos a las opciones de manipulacin de objetos de la aplicacin. rbol de exploracin, en el cual se muestran las carpetas y objetos que forman la aplicacin en uso. Tabs de informacin, en stas se muestran los datos generales del elemento seleccionado y elementos complementarios que lo forman, tales como campos, ndices, etc. Ventanas emergentes, son utilizadas para el mantenimiento de informacin, agregar campos, administracin de seguridad, asistentes, etc.

1.3.Editordepginas
Pueden utilizarse varios editores de pginas .asp para modificar la estructura previamente generada por el Crosswalk IDE, de forma que se organicen de una mejor manera los elementos a mostrar.

1.4.VisualStudio
Crosswalk utiliza C++ como lenguaje base para la construccin de aplicaciones.

1.5.Crosswalkconsole
Es una aplicacin que se dedica a la administracin y parametrizacin de otras aplicaciones, las cuales brindan funcionalidad a la librera CrossWalk, en sistemas de uso administrativo. Gestiona instancias de trabajo por grupo, lo cual tiene varios sub-programas. Adems de administrar y parametrizar aplicaciones, tambin permite la relacin de las mismas en otros tipos de aplicaciones como: Aplicaciones de Servidor y Aplicativos Directos a pier to pier (persona a persona), con aplicativos de reportes.

2. Creacindeunaaplicacin
Para crear una aplicacin es necesario elegir la opcin File, esta se encuentra en el men principal del IDE. Al presionar esta opcin, despliega la siguiente pantalla. En la cual se elige la siguiente opcin:

Con esta opcin se crea una nueva aplicacin, en la cual se configuracin de la misma.

define la

Al presionar esta opcin, despliega la siguiente pantalla, donde el Wizard muestra un mensaje de bienvenida. Para mayor claridad ver imagen.

Para avanzar dentro de la opcin, se procede a presionar el botn Next, el cual despliega la siguiente pantalla. Ver imagen.

En esta pantalla, se identifica la nueva aplicacin, para ello existen tres campos los cuales son: Name: Aqu, se ingresa el nombre, el cual sirve para identificar la aplicacin. Application ID: En esta opcin se ingresa un nombre corto, el cual sirve de referencia para identificar a la aplicacin. Preffix: En esta opcin se escribe el prefijo con el cual se generaran los archivos que contendrn las definiciones generales para la aplicacin. Estos sern utilizados dentro del proyecto de C++ para su compilacin. Al haber completado toda la informacin requerida, se procede a presionar la opcin Next, desplegando inmediatamente la siguiente pantalla. Ver imagen:

Custom Properties: En esta pantalla se definen los directorios y las rutas donde el IDE almacenar toda la informacin que se genera.

3. Transacciones
Toda transaccin en CrossWalk tiene un ciclo definido. Por razones histricas y la necesidad de soportar cdigo ya desarrollado existen tres formatos de este ciclo.

3.1.EstructuradeunaTransaccin
A continuacin se describe el ciclo simplificado utilizado en las nuevas aplicaciones. Este ciclo tiene dos etapas, la primera la solicitud del servicio y la segunda la ejecucin del servicio. Las etapas son representadas en el cdigo de la transaccin por dos funciones.

3.2.Etapasdeunatransaccin

Como se muestra, el cliente/consumidor solicita el servicio/transaccin. En ese momento la transaccin recibe una llamada que le permite a la transaccin definir valores iniciales y responde a la solicitud. El cliente/consumidor recibe la respuesta y puede proceder a ingresar los valores necesarios para la ejecucin del servicio. Luego enva la solicitud

de ejecucin del servicio y en ese momento la transaccin recibe una llamada que le permite ejecutar la lgica principal.

3.3.TransaccionesMultilnea(copy.from)
A continuacin se muestra una transaccin en C++ CrossWalk. Esta transaccin es del tipo COPY.FROM, o sea que los parmetros de input/output estn representados por una lista.

3.3.1.

CdigodeTransaccinMultilinea
int TrnBSCCA_Request( ) { #include <GI_PANT_BASE_SACC.H> #include <GI_PANT_BASE_MCDP.H> #include <GI_PANT_BASE_FCDP.H> return CWER_END; } int TrnBSCCA_Main( ) { // //******************************************* //* BSCCA-LG //* CONSULTA DE CLIENTES POR CARACTERES INIC //******************************************* // #include <GI-PANT-BASE-VCDP.H> // //******************************************* //* INICIO //******************************************* #include <GI-INICIA-ADMIN.H> GD_ACCION = cwSPACES; #include <GI-PS-LINEA-NOREL.H> GP-PROX-FORMATO(); // //******************************************* //* VALIDACION //******************************************* // if ( cwCOPY == GC_1 ) { GD_FIN = GC_NO; GD_HAYERR = GC_NO; // if ( GD_TIMEOUT == GC_ASTERI ) { GD_MEN_CODIG = "479"; GD_HAYERR = GC_SI; cwRecall ( ); return CWER_EXIT; } } // //******************************************* //* PROCESO

Verificacinde primeraocurrencia

//******************************************* // if ( GD_FIN == GC_NO && GD_HAYERR == GC_NO ) { GD_FIN = GC_SI; // cwFindFrom(P_BSMCL01,0,dcwTRNSEQ,SNOCARINI); while ( !cwGetRow (P_BSMCL01) ) { GD_FIN = GC_NO; SCO_IDENT = bsmcl_SCO_IDENT; SNO_CLIEN = bsmcl_SNO_CLIEN; break; } } // if ( cwCOPY == cwMAXCOPY ) { // if ( GD_HAYERR == GC_NO ){ // if ( GD_FIN == GC_NO ){ SNOCARINI = bsmcl_SNO_CLIEN; GD_MEN_CODIG = "214"; } // if ( GD_FIN == GC_SI ){ GD_MEN_CODIG = "215"; } } GP_RECALL_ADMIN(); #include <GP_RECALL_ADMIN.H> return CWER_EXIT; } cwRecall (); return CWER_END; }

Verificacinde ltimaocurrencia

3.3.2. CiclooptimizadoparaMultilneaenCrosswalk

En Crosswalk se mejor tanto el rendimiento como la sintaxis para las transacciones multilnea. Las lgicas son invocadas una vez por cada lnea definida en una transaccin COPY.FROM, y la facilidad de acoplar fcilmente el uso del ciclo mejorado, el cual permite al programador desarrollar la lgica de las transacciones. En el cuerpo de estas lgicas se controla el ciclo, variando el valor del ndice en cwLinePos en el rango de 1 hasta cwMAXCOPY, pudiendo tener el control de acceder la lnea que se desea a nivel de programacin, para lo cual slo se asigna el valor de la lnea a cwLinePos. Esta seccin de cdigo ilustra el uso del cwLinePos:

for(ii=1; ii<=(double)cwMAXLINE; ii++){ cwLinePos (ii); vtFechaOperacion_01 = cwSPACES; vtHoraTransaccion_01 = cwSPACES; vtTerminal = cwSPACES; vtCausalTransaccion = cwSPACES; vtNumeroDocumento_01 = cwSPACES; vtTipoTransaccion = cwSPACES; vtMontoEfectivo = cwZEROS; vtSaldo = cwZEROS; }

Como se aprecia, en una lgica lineal utilizando un loop y cwLinePos, el programa puede acceder cualquier elemento de lista directamente.

3.4.Gruposdetransacciones
Despus de que se genera una aplicacin, se deben de definir los flderes donde se agruparn todas las transacciones y tablas que se crearn para desarrollar la aplicacin; dichos flderes se generan dentro de la opcin Trxs Groups.

En la pantalla anterior se observa un listado de los flderes existentes donde el usuario puede almacenar tablas, transacciones y reportes. Para generar un nuevo flder se presiona el botn New.

Name: nombre del flder. Description: descripcin del flder. Para guardar se presiona el botn Save y automticamente se genera el flder. El botn Exit, cierra la ventana actual.

3.5.Creacindetransacciones
Como primer paso, se tiene que presionar la opcin Insert New Item, la cual se encuentra en el men Edit. Al haber seleccionado dicha opcin, inmediatamente se despliega la siguiente pantalla. Ver imagen:

En la cual se ingresa la siguiente informacin: Section: Aqu se elije el tipo de transaccin que se necesita, por medio de un combo box. Para mayor claridad ver imagen:

Item ID: Aqu se ingresa el nombre que se le va a dar, con la restriccin que no puede pasar de cinco caracteres: Name: Aqu se ingresa el nombre completo que se le quiera dar. Brief Description: Se ingresa una breve descripcin de objeto. Flder: En esta opcin se elige el flder destino donde se agruparn y almacenarn todas las transacciones. Esta opcin se utiliza nicamente cuando se elige la opcin Transactions. Los elementos mostrados en esta lista son los existentes como grupo de transacciones, por lo que si no apareciera el deseado debe ir a crearse a la opcin correcta antes de procesar esta operacin, de esta forma se mantendr una correcta

organizacin de los elementos de la aplicacin. Al haber elegido esta opcin, se activan los siguientes campos que a continuacin se detallan, para que se complete la informacin. Multiline: Esta opcin, sirve para mostrar el resultado de consulta a tablas. Si se dice que Si, genera un from copy, si se dice No, lo deja como una transaccin normal de ingreso. El siguiente elemento debe ser configurado nicamente si se indica que la transaccin es Multilnea. Count Lines: Aqu indica la cantidad de lneas en las que va a constar la consulta. Es Estndar es de 12 lneas. Al final de la pantalla, se observa un rea nicamente de seleccin, para mayor claridad, ver imagen:

En esta pantalla se puede elegir si se quiere utilizar Full Integrity en la transaccin, se quiere agregar el uso de prefijos (Use Prefix) y si se quiere adicionar un selector. Esta opcin se utiliza, para seleccionar un dato dentro de la lista que se desplegar. Al elegir esta opcin, se despliega la siguiente pantalla:

A continuacin, se explica cada una de las opciones que se observa en la imagen. Name: En esta rea, se ingresa el nombre del campo que va a servir como selector. Validate Value: Aqu se ingresa el valor que va a regresar la forma, al momento de seleccionarla. Imagen Source: Se ingresa el nombre de la imagen, que se mostrar en el lugar donde est el campo de seleccin. Se agrega, y de esa forma se regresa a pantalla inicial, donde se guardan los datos.

3.6.Adicindecamposaunatransaccin
Ver Creacin de variables para transacciones y tablas en Anexo 1.

3.7.Manejodelgicaprincipalyprotocolosdecomunicacin
Luego de creada una transaccin es necesario modificar el archivo que contendr la lgica del negocio para darle la funcionalidad requerida, para tal efecto es necesario realizar los siguientes pasos para que la herramienta

de control de fuentes (Crosswalk IDE) proporcione la copia con los cambios ms recientes, cuando es una transaccin nueva se proporcionara un elemento sin mayor lgica, en caso de tratarse de una modificacin se proporcionara una copia del fuente almacenado, los pasos a seguir son los que se ilustran a continuacin: En el men Edit se selecciona la opcin Source Control y luego la opcin Check Out para obtener la copia a modificar, Check In deber utilizarse luego de haber realizado los cambios, es decir en el momento que se desea guardar la copia del elemento modificado.

Al seguir la secuencia de pasos indicada anteriormente podr observar que existen dos tipos de elementos a obtener, Logic se refiere al cdigo fuente de la transaccin y Page al cdigo fuente del archivo .ASP que ser mostrado al usuario para interactuar con el sistema, si la transaccin no posee pantalla no es necesario utilizar esa opcin. Luego de seleccionar alguno de los dos tipos de elementos se muestra el listado de los asignados al usuario actual para seleccionar los que desea utilizar.

Luego se le indicara acerca del resultado de la operacin seleccionada en esta pantalla. Todas las transacciones cuentan con un protocolo de comunicaciones en el cual se indica la posicin y longitud de cada elemento que se enviar al sistema Crosswalk para su proceso as como elementos que sern respondidos y que no forman parte del mensaje original, dicho protocolo puede ser consultado por medio del botn de la barra de herramientas para tal efecto como se muestra a continuacin:

Al seleccionar esta opcin se muestran los elementos de la forma siguiente:

3.7.1. NormalizeandUpdateTags

Luego de crear una transaccin o realizar modificaciones sobre la longitud, numero o tipo de datos de los campos utilizados en la transaccin es necesario aplicar los cambios para que el protocolo de comunicaciones cuente con las ltimas modificaciones, esto se hace por medio de la opcin de normalizacin de la barra de herramientas, al presionar este botn, despliega la siguiente pantalla:

Se solicitara entonces confirmar el tipo de normalizacin a realizar.

Se muestra tres opciones. En este caso se elige la segunda opcin. Esta sirve para normalizar el objeto seleccionado, con la finalidad de verificar que todos los cambios realizados, sean concurrentes, como los headers y los .H

3.7.2.

DefinitionsGeneratesoPuntoH

Ver Creacin Definitions Generates o Punto H en Anexo 1.

3.8.CreacindeproyectoCrossWalk
3.8.1. ReleaseVersion

Esta opcin crea el proyecto con todos los elementos que lo componen de una versin en especfica, de forma que el mismo quede organizado para ser manejado con C++. Al presionar este botn, despliega la siguiente pantalla:

Se observa un listado de las liberaciones de versin, indicando el nmero de versin, quien realizo el release, fecha, hora, descripcin del porque se realizo y si fue construida o no. A su vez tambin se puede generar nuevos relase, presionando el botn New Release, el cual despliega la siguiente pantalla:

Esta pantalla se divide en tres secciones en la que se ingresa la siguiente informacin: Descripcin del Release Nombre de Solucin Si se quiere generar un proyecto o no, esto funciona por medio de seleccin. Paths del proyecto y del web service Seleccin de componentes como transacciones, reportes Rutinas, servicios, etc. Si se eligen en los componentes la opcin de transacciones, despliega la siguiente pantalla:

En la cual se observa un listado de transacciones que han sido generadas dentro de la aplicacin y dentro del IDE, las cuales se puede ver cuales han sido tomadas y cuales no, eso se mira de la siguiente forma:

Este smbolo indica que las transacciones han sido tomadas en cuanta para el release.

Este smbolo indica que las transacciones no han sido tomadas en cuenta para el release.

Al tener seleccionadas todas las transacciones o todos los objetos que se deseen para la generacin del release, se presiona el botn Confirm. El cual despliega la siguiente pantalla:

En la cual se observa que ya estn generados los 15 items de las transacciones que fueron anteriormente seleccionadas, el procedimiento es el mismo para reporte, rutinas, servicios, etc. Y de igual forma se pueden observar en la misma pantalla que ya se han generado. Tambin es necesario asignar un Path, para que all se vaya almacenando todo lo que se realice.

3.9.Creacinyedicindepantallasparatransacciones
El IDE genera el archivo a utilizar para mostrar en el explorador de pginas al usuario, dicho archivo consiste en un documento .asp el cual contiene ya las referencias a los campos para intercambio de informacin as como etiquetas descriptivas, dichos archivos y sus versiones de fuentes son administrados con la misma herramienta (IDE), la cual los almacena y proporciona segn los permisos y asignacin de transacciones de cada usuario, el ingreso y egreso del IDE de las pginas se hace con el mecanismo utilizado con los archivos que contienen la lgica principal de las transacciones. Los archivos .asp de las transacciones pueden ser modificados con distintos editores de pginas, a continuacin se muestra un ejemplo de cmo se visualiza el archivo indicado:

3.9.1.

CompilePage

Las pginas para las transacciones de Crosswalk utilizan un archivo de definicin (.def) el cual debe incluirse luego en el servidor de pginas para la interpretacin adecuada del protocolo de comunicaciones, para generarlo asi como la versin actual de la pagina (.asp) se utiliza la opcin Compile Page de la barra de herramientas.

Al presionar este botn, automticamente despliega la siguiente pantalla:

Los archivos resultantes sern almacenados en las rutas configuradas para la aplicacin.

3.10.

Lgicaprincipaldeunatransaccin

3.10.1. TiposdeDatos La siguiente tabla describe los tipos bsicos de datos de C++. El tamao especificado se mide en bytes. El dominio provisto se basa en el valor del tamao. Se puede obtener el tamao de los tipos de datos por medio del operador sizeof.

Las variables de estos tipos se definen simplemente precediendo el nombre con el tipo. Ejemplo:

int iNumero; float fNumero; double dNumero; Las variables deben ser definidas antes de usarse. Estas definiciones deben ocurrir antes de cualquier instruccin, constituyndose como la parte inicial de un bloque de instrucciones, de una rutina o un programa.

Convencin de Nombramiento: Para hacer el programa ms fcil de leer se utiliza una convencin para nombrar las variables que consiste en prefijar el nombre de la misma dependiendo del tipo:

Numero Entero (int) Doble Precisin (double) Punto Flotante (float) Un carcter (char) Caracteres (char []) Entero Sin Signo

int dbl flt chr str uint

O utilizando la convencin de forma corta que seria:

Numero Entero (int) Doble Precisin (double) Punto Flotante (float) Un carcter (char) Caracteres (char []) Entero Sin Signo

i d f c s u

Utilice el mismo estndar en todo el sistema. Este estndar simplifica la labor de los programadores ya que cuando ven el cdigo de inmediato saben en tipo de la variable que estn utilizando. Recomendamos utilizar la

forma corta, si cambia el tipo de una variable, se debe renombrar utilizando el Editor de programas.

3.10.2. ExpresionesyOperadores La mayora de instrucciones son expresiones. Por ejemplo, la instruccin de asignacin "=" regresa el valor del operando derecho. Como un "efecto secundario", tambin establece el valor del operando izquierdo. As: iNumero = 12; En esta instruccin se le da a la variable iNumero el valor de 12. Ms adelante se muestra como se combina el operador de asignacin (=) con expresiones para formar asignacin con clculos aritmticos. Las expresiones son combinaciones de ambos trminos y operadores. Los primeros podran ser constantes, variables o expresiones. De los segundos, C++ ofrece todos los operadores conocidos de otros lenguajes. Sin embargo, ofrece algunos operadores que podran ser vistos como abreviaciones a combinaciones de otros operadores. La siguiente tabla muestra los operadores disponibles. La segunda columna muestra su prioridad, donde los nmeros ms chicos indican prioridad ms alta y nmeros iguales, prioridad igual. La ltima columna enlista el orden de evaluacin.

Operador ! * / + < <=

Prioridad 2 3 3 4 4 5 5

Descripcin Negacin booleana Operador de multiplicacin Operador de divisin Operador de suma Operador de resta Operador de menor Operador de menor o igual

Orden Desde la derecha Desde la izquierda Desde la izquierda Desde la izquierda Desde la izquierda Desde la izquierda Desde la izquierda

> >= == !=

5 5 6 6

Operador de mayor Operador de mayor o igual Operador de igual lgico Operador lgico AND boleano OR boleano Operador de asignacin de

Desde la izquierda Desde la izquierda Desde la izquierda

diferente Desde la izquierda

&& || =

7 8 9

Desde la izquierda Desde la izquierda Desde la derecha

El ms utilizado es el operador de asignacin. Sintaxis: Variable = expr1 operador expr2 Ejemplo: i = j + 1; En este ejemplo est tomando el contenido de variable j y le esta sumando 1 para poner el resultado en la variable i, el operador en este caso es +. En el siguiente ejemplo vemos como una variable aparece en ambos lados del operador de asignacin: i = i * (j+1); En esta asignacin, el valor de la izquierda tambin aparece en el lado derecho. Por medio de lenguaje informal, podramos expresar esto como "poner al valor de i el valor actual de i multiplicado por la suma del valor de j ms 1''.

Constantes true y false. C++ utiliza las constantes true y false para facilitar las comparaciones lgicas. El valor 0 (cero) significa falso, cualquier otro valor es verdadero. La explicacin de la instruccin if-else est ms abajo. Por ejemplo, para efectuar una comparacin sera:
int iNota; int iAprobado;

iNota = 70; if (iNota > 60) { // Nota mayor que 60 gano iAprobado = true; } else { // Nota menor que 60 perdio iAprobado = false; }

Al igual se podra asignar el valor de 1 o 0 en lugar del true y false. Para ahora hacer una comparacin dependiendo de que si fue aprobado, el cdigo seria:
if (iAprobado) { // Felicitelo y pasa a nuevo grado ... } else { // Perdio, informe a los padres ... }

El valor de falso y verdadero se utiliza extensivamente en C++ para evaluar expresiones o retornos de funciones.

3.10.3. InstruccionesdeControldeFlujo Existen dos grandes tipos de instrucciones de control de flujo, las de decisin y las de repeticin. Las instrucciones de decisin son if-else y switch-break. Las de repeticin son while, do-while, for, break y continue. Instruccin if-else: La instruccin if-else permite la bifurcacin de un flujo de ejecucin dependiendo de la evaluacin de una expresin lgica. Sintaxis: if (expresin) [sentencia1;] [else sentencia2;]

La expresin puede ser numrica, relacional o lgica. El resultado que se obtiene al evaluar la expresin es verdadero (no cero) o falso (cero). Si el

resultado es verdadero ejecutar la sentencia1, y si el resultado es falso ejecutar la sentencia2.

Falso: Verdadero:

0, \0, NULL diferente a 0, \0, NULL

Ejemplo:
// Asigne a z el valor del mayor if (x > y) z = x; else z = y;

Uno de los errores ms comunes cuando se programa en C, C++ o C# es el utilizar el operador de asignacin = como el operador de comparacin en caso de igualdad (==). Por ejemplo:
// Asigne a x el valor de 5 si i es igual a 10 if (i = 10) x = 5; // <<<<<<< ERROR >>>>>>>>

En este caso se est asignado a i el valor 5, no se est comparando que i sea igual a 5. Este error es comn y se debe poner atencin al mismo. En el ejemplo anterior lo correcto sera:
// Asigne a x el valor de 5 si i es igual a 10 if (i == 10) x = 5; // <<<<<<< OK >>>>>>>>

Instruccin switch-case-break: Permite la evaluacin de mltiples opciones de una expresin lgica y su respectiva ejecucin. Sintaxis:
switch (expr-test) { case cte1: [sentencia1;] [break;] case cte2: [sentencia2;] [break;] ... [default:] [sentenciaN;]

[break;] }

Donde expr-test es una expresin entera, despus de la evaluacin de expr-test su valor es comparado con las clusulas case. La ejecucin contina hasta que una clusula coincida. La sentencia break finaliza la ejecucin de cada una de las evaluaciones de la instruccin switch en la cual aparece. Se debe usar la instruccin break para dejar que se sigan evaluando las clusula case. Si ninguna clusula coincide y existe una clusula default, se ejecutan las instrucciones que all se encuentran.

Ejemplo:
switch (cLetra) { case case case case case 'a': 'e': 'i': 'o': 'u': iNumVocal++; break; default: iNumCons++; break; }

Instruccin while: Ejecuta una sentencia, simple o compuesta, cero o ms veces, dependiendo del valor de la expresin.

Sintaxis:

while (expresin)

[sentencia;]

La ejecucin de esta sentencia sucede de la siguiente forma: Se evala la expresin. Si el resultado anterior es cero (falso), la sentencia no se ejecutar y se pasa a ejecutar la siguiente sentencia en el programa. Si el resultado de la expresin es distinto de cero (verdadero), se ejecuta la sentencia del while y el proceso se repite.

Instruccin do-while: Ejecuta una sentencia una o ms veces, mientras el valor de la expresin en el while se evalu como verdadera (true).

Sintaxis:

do [sentencia;] while (expresin);

La ejecucin de esta sentencia sucede de la siguiente forma: Se ejecuta la sentencia o cuerpo. Se evala la expresin Si el resultado de la evaluacin de la expresin es cero (falso), se pasa a ejecutar la siguiente sentencia en el programa. Si el resultado de la evaluacin de la expresin es distinto de cero (verdadero), el proceso se repite.

Instruccin for: Esta instruccin es una abreviacin de la instruccin while, donde expr1 es la inicializacin, expr2 es la evaluacin de continuidad y expr3 es el avance del ciclo. Esta instruccin es la nica que difiere de las otras instrucciones for conocidas de otros lenguajes.

Sintaxis:

for ([expr1]; [expr1];[ expr1]) sentencia;

Ejemplos: A continuacin se presentan dos bloques de lgica exactamente equivalentes en Funcionalidad. Uno usa la instruccin while y el segundo usa la instruccin for.

Ejemplo while:
int ii, iSum; iSum = 0; ii = 0; while (ii < 10) { iSum = iSum + 1;

// condicin

ii = ii + 1; }

// incremento

Ejemplo for:
int ii, iSum; iSum = 0; for (ii = 0; ii < 10; ii = ii + 1) { iSum = iSum + 1; }

Instrucciones break y continue: La instruccin break finaliza la ejecucin de una sentencia do, for, switch o while en la cual aparece. La instruccin continue estando dentro de do, while, o for, pasa el control a la siguiente iteracin.

3.10.4. Declaracindefunciones C++ exige la definicin de funciones. Los procedimientos son simulados por funciones que no regresan valor. Este valor es un tipo especial llamado void. Las funciones se declaran en forma similar a las variables, pero encierran sus argumentos entre parntesis (an si no llevan argumentos, los parntesis deben ser especificados):

Ejemplo:
int fnSum(int iTo); int fnBar(); void fnFoo(int iX, int iY); // Declaracin de fnSum con un argumento // Declaracin de fnBar sin argumentos // Declaracin de fnFoo con dos argumentos

Para definir efectivamente una funcin, simplemente se debe aadir el cuerpo de la funcin, es aqu donde se define que hace la funcin, por ejemplo:

int fnSum (int iTo)

{ int ii, iResult; iResult = 0; for (ii = 0; ii < iTo; ii++) iResult = iResult + ii; return iResult; // regresa el valor de la funcin }

3.10.5. DeclaracionesyAsignaciones Declaracin de Variables: La declaracin de Variables se realiza utilizando la clase DimVar que provee las propiedades y los mtodos para la definicin del tipo de variable as como tambin permite el definir un valor inicial. Las variables tipo DimVar no deben ser declaradas dentro del stack, o sea que si se declaran dentro de una funcin, estas deben de estar precedidas por la palabra static, para que tengan permanencia.

Tipos de Variables: Los tipos de variable permitidos en el estatuto DimVar son:

ddType _Char(l) _Num(l) _UNum(l) _Dec(l,d) _UDec(l,d) _Date

Uso Carcter Enteros sin signo Enteros con signo Punto flotante con signo, longitud l y d decimales Punto flotante sin signo, longitud l y d decimales Fecha, con formato AAMMDD. Ej.: 051115, 15 de noviembre de 2005

_DateCC

Fecha, formato AAAAMMDD, ao de 4 dgitos incluyendo el siglo. Ej.: 20051115, 15 de noviembre de 2005

_DRel _DLong

Fecha Relativa iniciando con 1 igual a 1-enero-1957 Fecha, formato AAAAMMMDD, mes Ej.:2005NOV15, 15 de noviembre de 2005. en letras.

_DFull

Fecha, formato completo con nombre del da y mes (25 caracteres). Ej.: Martes 15 de noviembre de 2005, 15 de noviembre de 2005

_Bool _Currency _Constant

Booleano, valor 0 o 1 Moneda, 13 enteros, 2 decimales con signo Valores constantes

Estndares de Nombramiento de Variables: Los estndares o convencin de nombramiento de variables son importantes para facilitar la lectura y entendimiento de un programa. Esto reduce el esfuerzo requerido para el desarrollo y mantenimiento de los mismos. Los siguientes estndares son los recomendados para el nombramiento de variables tipo DimVar.

vt = variable de transaccin fn = para funciones Prefijos: Utilizar letras minsculas, la siguiente letra despus del prefijo debe ser mayscula, por Ej., vnCount. Utilizar los siguientes prefijos segn sea el caso:

Numrico

vn

Decimal String No Signo Numrico Date / Fecha Carcter

vd vs vu va vc

Declaracin de Variables Simples: Las variables simples se refieren a aquellas que no forman parte de un grupo o tabla (estructura). Estas variables se definen utilizando los tipos bsicos listados en la Tabla anterior y se realiza utilizando la clase DimVar que provee las propiedades y los mtodos para la definicin.

Sintaxis: [static] DimVar <VarName> <ddType> (long, dec); DimVar requiere los siguientes argumentos: Parte static Descripcin Indica al compilador que la variable se define al inicio del programa. La memoria necesaria para esta variable se reserva desde el inicio de la ejecucin del programa y se mantiene hasta el final de la ejecucin del mismo. No declare DimVars dentro del stack de una funcion.

VarName Obligatorio, define el nombre de la variable. Debe utilizarse nombres significativos que indiquen de manera muy clara qu contendr la misma. Debe cumplir con los estndares de nombramiento enunciados ms adelante. ddType Obligatorio, es un string define el tipo de dato que ser la variable. Los tipos permitidos se listaron anteriormente en la parte de tipos de variables. Es un entero que define la longitud de la variable. Para variables numricas indica la cantidad de dgitos. Para strings, indica la cantidad de caracteres que lo componen.

long

dec

Es un valor numrico entero que indica las posiciones decimales de una variable numrica. No aplica para strings.

Ejemplos:

static DimVar vcSexo _Char(l); static DimVar vdSaldo _UDec(10,2); static DimVar vuVistas _UNum(12);

// Define un string de 1 caracter. // Decimal sin Signo de largo 10 y 2. // Numerico sin Singo de largo 12

Declaracin Variables Agrupadas: Son grupos de variables contiguas que componen una variable de nivel inmediato superior. Puede hacerse referencia a la variable agrupada e individualmente a cada una de las variables de nivel inferior.

Sintaxis: [static] DimVar <VarName> ( level, <ddType>(long, dec)) ;

DimVar requiere los siguientes argumentos: Parte static Descripcin Indica al compilador que la variable se define al inicio del programa. La memoria necesaria para esta variable se reserva desde el inicio de la ejecucin del programa y se mantiene hasta el final de la ejecucin del mismo. No declare DimVars dentro del stack de una funcion.

VarName Obligatorio, define el nombre de la variable. Debe utilizarse nombres significativos que indiquen de manera muy clara qu contendr la misma. Debe cumplir con los estndares de nombramiento enunciados ms adelante.

Level

Obligatorio en variables agrupadas, es un valor numrico que indica el nivel de la variable dentro del grupo, a menor valor de nivel, mayor la jerarqua. Obligatorio, es un string define el tipo de dato que ser la variable. Los tipos permitidos se listaron anteriormente en la parte de tipos de variables. Es un entero que define la longitud de la variable. Para variables numricas indica la cantidad de dgitos. Para strings, indica la cantidad de caracteres que lo componen. Es un valor numrico entero que indica las posiciones decimales de una variable numrica. No aplica para strings.

ddType

long

dec

Ejemplo:

static static static static static static static static

DimVar DimVar DimVar DimVar DimVar DimVar DimVar DimVar

gCardNumber uPref_Tar uCodi_Tar sName_Tar uAgencia uCuenta uDigito uTypeID

(1); (3,_UNum(6)); (3,_UNum(10)); (3,_Char(30)); (3,_UNum(3)); (3,_UNum(7)); (3,_UNum(1)); (3,_UNum(1));

Define una Variable Agrupada gCardNumber de nivel 1 compuesta de 7 variables de nivel 3. Si se mueve algn valor a la variable de nivel 1, las variables de sub-niveles toman el valor correspondiente.

3.10.6. Funcionesparamanejodefechaytiempo 3.10.6.1. intcwTimeInit();

Inicializa las variables de fecha y hora.

3.10.6.2.

intcwTimerStart():/cwTimeEnd();

Se utilizan para calcular el tiempo que tarda de un proceso dado. cwTimeEnd() se utiliza para finalizar un contador, devuelve el total de milisegundos transcurridos luego de haber utilizado la instruccin cwTimerStart.

3.10.6.3.

intcwNow();

Retorna la fecha del da que tiene el sistema.

3.10.6.4.

intcwDateAdd(vFecha,dblAdd);

Suma dos fechas regresando el valor en la primera.

3.10.6.5.

doublecwToDayNumber(vFecha);

Retorna un Double (Real) con la fecha relativa.

3.10.6.6.

intcwToDate(vnFechaIn,vFechaOut);

Convierte de una fechar relativa a MMDDYY.

3.10.6.7. 3.10.6.8.

intcwDateFormat(vFecha1,sForm1); intcwDateFormat(vFecha1,sForm1,vFecha2,sForm2); La funcin cwDateFormat

Convierte la fecha a distintos formatos. requiere los siguientes argumentos:

Parte

Descripcin

vFecha1 Variable que contiene el valor de la fecha a convertir. sForm1 Formato de la fecha asignada en el parmetro vFecha1.

vFecha2 Variable en la cual se almacenara la fecha convertida. sForm2 Formato al cual se convertir la fecha ingresado en la variable vFecha1.

Nota: El grupo de variables utilizadas para conversin de fechas es: # 1 2 3 4 5 6 7 8 9 Nombre de Variable cwDC_TODAY cwDC_DD_MM_YY cwDC_DDMMYY cwDC_DD_MM_CCYY cwDC_DD_MMM_CCYY cwDC_DDMMCCYY cwDC_CCYYMMDD cwDC_CCYY_MM_DD cwDC_CCYY_MMM_DD 10 11 12 13 14 15 16 17 cwDC_MMM_DD_CCYY cwDC_YYMMDD cwDC_YYMMMDD cwDC_DDMMMYY cwDC_DAYNUM cwDC_MMDDCCYY cwDC_CC cwDC_UK_ALPHA

Ejemplo:

Este ejemplo usa la funcin cwDateFormat para dar formato a la fecha.


DimVar SD_FECORIGINAL, SD_FECCONVERTIDA SD_FECORIGINAL = "280204" cwDateFormat (SD_FECORIGINAL,"DDMMYY", SD_FECCONVERTIDA,"CCYYMMDD")

Devuelve la variable con el siguiente formato: 20040228


cwDateFormat (SD_FECORIGINAL,"DDMMYY")

Asigna los valores a las variables de conversin, a continuacin se dan algunos ejemplos:
cwDC_DD_MM_YY cwDC_DDMMYY cwDC_DD_MM_CCYY cwDC_DD_MMM_CCYY cwDC_DDMMCCYY = = = = = 280204 280204 28-02-2004 28-FEB-2004 28022004

4. Tablas
La informacin manejada por la aplicacin durante su ejecucin es almacenada en estructuras lgicas las cuales requieren distintos elementos y una creacin ordenada y completa de stos para lograr el almacenamiento y recuperacin gil y exitosa de la informacin. El IDE permite la creacin de tablas, ndices y condiciones para seleccionar o descartar elementos de una tabla, a continuacin se indica como efectuar cada actividad para la composicin de los elementos que forman una estructura para almacenamiento de datos.

4.1.Creacindetablas
Para esta operacin es necesario ingresar a la opcin Edit del men principal, luego seleccionar el sub-men Insert New y luego seleccionar la opcin Table. Esta opcin, sirve para almacenar datos y generar tablas, el IDE est capacitado para generar Script, manejar la base de datos en SQL y Oracle. Aqu se conserva el estndar de poner el prefijo establecido, agregar iniciales que identifique la tabla dentro de la aplicacin, asignarle flder y escribir una breve descripcin, como se hizo en la opcin, Insert New Item en el caso de las transacciones, para tener claro el proceso del que se est hablando, ver imagen:

Al tener toda la informacin completa, se procede a presionar el botn, Save para poder generar el elemento y observar que la tabla es generada con xito. Ver imagen:

Ya que se tiene generada la tabla, se procede a ingresarle los campos que la van a constituir para eso se elige, la siguiente opcin.

4.2.Adicindecamposaunatabla
Ver Creacin de variables para transacciones y tablas en Anexo 1.

4.3.Creacindellaves
Para agregar ndices de ordenamiento a las tablas se utiliza la opcin Insert New, Key ubicada en el men principal dentro del elemento Edit, las llaves son utilizadas para realizar bsquedas e inserciones. Al presionar esta opcin, automticamente despliega la siguiente pantalla:

A continuacin se describe cada opcin que contiene esta pantalla: Key Name: Por omisin el IDE hace un compuesto del nombre de la tabla, agrega a P_01 ms el nombre de la tabla, con el fin de indicar que es la primera llave que se realizar para esta tabla, el nmero sugerido es incrementado automticamente. Brief: Se ingresa una caracterstica o cualidad de la nueva llave que se generar. Description: Aqu, se ingresa una descripcin larga de la llave, con el fin de ampliar ms la informacin de bsqueda. Duplicates: Es para definir si se quiere o no que exista un duplicado de la llave. Variable Name: Esta opcin despliega un listado de todas las variables que pertenecen a la tabla, para agregar campos a la llave simplemente se

debe de seleccionar la variable o campo deseado y presionar el botn agregar. Es recomendable crear condiciones, para eso se debe presionar el botn Condition, lo cual muestra la siguiente pantalla:

La condicin, sirve para que haga las validaciones para la seleccin de elementos o descartar los mismos, por ejemplo si se desea realizar eliminaciones lgicas para cierto tipo de accesos. Para un borrado lgico en una tabla se modifica un campo de bsqueda, para que el registro desaparezca dentro de la informacin, mas no as de la tabla donde persistira como un registro fsico. Para realizar esas condiciones, se tiene que completar la informacin, tal como se observa en la siguiente pantalla.

Al terminar este proceso, automticamente regresa a la pantalla inicial, que en este caso sera en la que se inserto la llave, es muy importante que de las opciones del elemento Conector Type para la ltima condicin se elija la opcin End, ya que de lo contrario crea un funcionamiento incorrecto.

4.4.Generacindescriptsdetablas
Luego de creada una tabla o de una modificacin a alguno de los elementos relacionados (longitud, numero, tipo de campos, llaves) se utiliza la opcin Generate DB Script, esta se encuentra dentro de los elementos de la barra de herramientas:

Al presionar este botn automticamente despliega la siguiente pantalla:

En la que se puede generar el SQL que se necesita, en esta pantalla se observan diferentes opciones, pero antes de elegir cualquier otra es necesario indicar el nombre de la base de datos en la cual se correr el Script que el IDE genere para la creacin de esa tabla, luego que accin se desea efectuar, al finalizar el proceso indica acerca del resultado del mismo.

4.5.Generacindeencabezadosdeproyecto
Ver Creacin Definitions Generates o Punto H en Anexo 1.

4.6.Lgicaprincipalutilizandoaccesoabasededatos(transaccionesy reportes)
Se cuenta con distintas instrucciones para la manipulacin de estructuras de datos dentro de transacciones y reportes, a continuacin se indican las de mayor uso:

4.6.1.

cwFindFrom

Realiza un acceso a una tabla de la base de datos, de acuerdo al ndice que se especifique, a partir de un punto especfico segn valores de la llave y hasta que explcitamente se le indique la ruptura con el comando break. Sintaxis:
cwFindFrom (dbIdx, iOp, iTrSeq, keyV1,..keyV16);

La funcin cwFindFrom requiere los siguientes argumentos: Parte dbIdx iOp Descripcin Corresponde al nombre del ndice que se desea acceder. Corresponde al tipo de acceso, valor default noHold, opcional dcwHold.

iTrSeq

Indicas si corresponde un acceso serial en una transaccin multilnea

keyV1...k Variables tipo DimVar que corresponden al conjunto de eyV16 valores para la llave a buscar y que forman el indice. Este ejemplo usa la funcin cwFindFrom para accesar a la tabla AAATR utilizando el indice P_AAATR01.
cwFindFrom (P_AAATR01, 0, 0, GC_Ahorro, ahmah_HCUNUMCUE, cwZEROS); while ( !cwGetRow (P_AAATR01) ){ Total = Total + aaatr_TVA_MOVIM; } ahmah_HCU_OFICI,

4.6.2.

cwFindEvery

Accede todas aquellas filas cuyas llaves coincidan con la llave provista para la bsqueda. Sintaxis:
cwFindEvery (dbObjId, iOp, iTrSeq, keyVal1,..keyVal16);

La funcin cwFindEvery requiere los siguientes argumentos: Parte dbObjId iOp Descripcin Corresponde al nombre del ndice que se desea acceder. Corresponde al tipo de acceso, valor default noHold, opcional dcwHold. Indicas si corresponde un acceso serial en una transaccin multilnea

ITrSeq

KeyVal1... Corresponde al conjunto de valores para la llave a buscar KeyVal16

Este ejemplo usa la funcin cwFindEvery para accesar los registros de la tabla ACMCC utilizando el ndice P_ACMCC01, donde los valores sean iguales a los de la bsqueda:
cwFindEvery (P_ACMCC01, dcwHOLD, 0, CCU_OFI, CCUNUMCUE); while ( !cwGetRow (P_ACMCC01) ){ // Bloque de cdigo }

4.6.3.

cwFindGetEQ

Accede y lee todas aquellas filas cuyas llaves coincidan con la llave provista para la bsqueda. Sintaxis:
CwFindGetEQ (dbObjId, iOp, keyVal1,..keyVal16);

La funcin cwFindGetEQ requiere los siguientes argumentos: Parte dbObjId iOp Descripcin Corresponde al nombre del ndice que se desea acceder. Corresponde al tipo de acceso, valor default noHold, opcional dcwHold.

KeyVal1... Corresponde al conjunto de valores para la llave a buscar KeyVal16

Este ejemplo usa la funcin cwFindGetEQ para acceder y leer el registro de la tabla ACMCC utilizando el ndice P_ACMCC01, donde los valores sean iguales a los de la bsqueda:
cwFindGetEQ (P_ACMCC01, 0, 0, CCU_OFI, CCUNUMCUE); if ( cwSTATUS == GC_ASTERI ){ GD_MEN_CODIG = 149; GP_MESSAGE_ADMIN(); Return CWER_EXIT; }

4.6.4.

cwFindGetRow

Realiza la bsqueda y lectura a la primera fila que cumpla con la condicin y valor de llave provedo para la bsqueda, de acuerdo al criterio especificado (Igual, Mayor o igual, Menor o igual). Sintaxis:
cwFindGetRow (iReq, dbObjId, iOp, keyVal1,..keyVal16);

La funcin cwFindGetRow requiere los siguientes argumentos: Parte IReq Descripcin Es el criterio donde: DcwEQ DcwGT dcwGTE dcwLT dcwLTE DbObjId IOp Utiliza operador = (igual) Utiliza operador > (mayor) Utiliza operador >= (mayor o igual) Utiliza operador < (menor) Utiliza operador <= (menor o igual)

Corresponde al nombre del ndice que se desea acceder. Corresponde al tipo de acceso, valor default noHold, opcional dcwHold.

KeyVal1...Ke Corresponde al conjunto de valores para la llave a buscar yVal16

Este ejemplo usa la funcin cwFindGetRow para buscar valores en la tabla llamada AAMBC por medio del ndice P_AAMBC02, donde los valores de llave sean iguales a los de la bsqueda.
cwFindGetRow (dcwEQ,P_AAMBC02, 0, WS_USUARI, CCU_OFICI, CCUNUMCUE, CCUDIGVER); if ( cwSTATUS == GC_ASTERI ){

GD_MEN_CODIG = 146; GP_MESSAGE_ADMIN(); Return CWER_EXIT;}

4.6.5.

cwFindBack

Realiza un acceso similar a cwFindFrom pero en el orden inverso, siempre a partir de un punto especfico segn valores de la llave y hasta que explcitamente se le indique la ruptura del ciclo con el comando break. Sintaxis: cwFindBack (dbObjId, iOp, iTrSeq, keyVal1,..keyVal16); La funcin cwFindBack requiere los siguientes argumentos: Parte dbObjId Descripcin Corresponde al nombre de la tabla o ndice que se desea acceder. Corresponde al tipo de acceso, valor default noHold, opcional dcwHold. Indica si corresponde un acceso serial en una transaccin multilnea

iOp

ITrSeq

KeyVal1... Corresponde al conjunto de valores para la llave a buscar KeyVal16

Este ejemplo usa la funcin cwFindBack para acceder a la tabla AAATR utilizando el ndice P_AAATR01, donde los registros sean menores o iguales a los valores de bsqueda:
(P_AAATR01, 0, 0, GC_Ahorro, HCUNUMCUE, vtFecha); while ( !cwGetRow (P_AAATR01) ){ // Bloque de codigo } cwFindBack ahmah_HCU_OFICI, ahmah_

4.6.6.

cwFindAll

Realiza el acceso serial de una tabla o llave, este recorre la totalidad del objeto indicado. Sintaxis:
cwFindAll (dbTabla);

La funcin cwFindAll requiere los siguientes argumentos: Parte DbTabla Descripcin Corresponde al nombre de la tabla que se desea acceder.

Este ejemplo usa la funcin cwFindAll para acceder a la tabla AAATR utilizando el ndice P_AAATR01.
cwFindAll (AAATR); while ( !cwGetRow (AAATR) ){ // Bloque de cdigo }

4.6.7.

cwGetRow

Esta funcin obtiene los valores de columnas de la siguiente fila disponible segn la informacin recuperada mediante cualquiera de los comandos de acceso a BD. Utilizada en los ciclos de lectura de mltiples filas. Sintaxis:
cwGetRow (dbObjId); cwGetRow (dbObjId, dbSt);

La funcin cwGetRow requiere los siguientes argumentos: Parte DbObjId Descripcin Corresponde al nombre de la tabla o ndice que se desea acceder.

DbSt

Retorna es estatus de la instruccin

Este ejemplo usa la funcin cwGetRow para obtener la informacin de los registros de la tabla AAATR utilizando el indice P_AAATR01, donde los registros sean mayor o igual a los valores de bsqueda, segn el acceso de cwFindFrom:
cwFindFrom (P_AAATR01, 0, 0, GC_Ahorro, ahmah_HCUNUMCUE, vtFecha); while ( !cwGetRow (P_AAATR01) ){ // Bloque de codigo } ahmah_HCU_OFICI,

4.6.8.

cwEOF

Esta funcin devuelve resultado verdadero cuando se encuentra el fin de un archivo y/o tabla. Sintaxis:
cwEOF ()

4.6.9.

cwRefresh

Realiza la actualizacin del contenido de las variables de la definicin de la tabla, con los valores de cada campo segn ltima lectura. Sintaxis:
cwRefresh (dbTabla);

La funcin cwRefresh requiere los siguientes argumentos:

Parte DbTabla

Descripcin Corresponde al nombre de la tabla que se desea actualizar el contenido de las variables.

Este ejemplo usa la funcin cwRefresh para obtener la informacin original que tenian las variables de la tabla ACMCC, en la ltima lectura:
cwRefresh (ACMCC); acmcc_FLG_USER1 = GC_SI; cwUpdate (ACMCC);

4.6.10. cwUpdate Realiza la actualizacin del registro sobre el cual se estn realizando modificaciones. Sintaxis:
cwUpdate (dbTabla);

La funcin cwUpdate requiere los siguientes argumentos: Parte DbTabla Descripcin Corresponde al nombre de la tabla que se desea actualizar.

Este ejemplo usa la funcin cwUpdate para actualizar el campo FLG_USER1 de la tabla ACMCC:

acmcc_FLG_USER1 = GC_SI; cwUpdate (ACMCC);

cwInsert: Inserta registro. Realiza la insercin de un registro a tabla. Sintaxis:


cwInsert (dbTabla);

La funcin cwInset requiere los siguientes argumentos:

Parte dbTabla

Descripcin Corresponde al nombre de la tabla que se desea insertar el registro.

Este ejemplo usa la funcin cwInsert para insertar registro a la tabla ACRMH:
cwClear(ACRMH); acrmh_ACU_OFICI = CCU_OFICI; acrmh_CCUNUMCUE = CCUNUMCUE; acrmh_RELACION = PER; acrmh_CODIGO = ID_PERSONA; acrmh_ESTADO = A; cwInsert (ACRMH);

cwClear: Inicializa variables de la definicin de la tabla Realiza la inicializacin de las variables de la definicin de la tabla. Sintaxis:
cwClear (dbTabla);

La funcin cwClear requiere los siguientes argumentos: Parte dbTabla Descripcin Corresponde al nombre de la tabla que se desea inicializar las variables de definicion de la tabla.

Este ejemplo usa la funcin cwClear para inicializar registro a la tabla AAMTC, antes de hacer insercin.
cwClear(AAMTC); aamtc_ACOTIPCOR = GD_TIPCOR; aamtc_ACO_OFICI = GD_OFICI; aamtc_ACUNUMCUE = GD_NUMCUE; aamtc_ESTADO = A; cwInsert (AAMTC);

cwDelete: Elimina fsicamente registro Realiza la eliminacin fsica del registro recuperado anteriormente. Sintaxis:
cwDelete (dbTabla);

La funcin cwDelete requiere los siguientes argumentos: Parte dbTabla Descripcin Corresponde al nombre de la tabla que se desea eliminar el registro.

Este ejemplo usa la funcin cwDelete para eliminar registro de la tabla AERCE, previamente recuperado.
cwFindGetRow ( dcwEQ, P_AERCE, 0, SD_NUMCUE ); if ( aerce_ACUNUMCUE == SD_NUMCUE ){ cwDelete ( AERCE ); } SD_SOLICIT, SD_OFICI,

cwLockGet: Bloquea toda la tabla. Realiza bloqueo de toda la tabla especificada. Sintaxis:
cwLockGet (dbTabla);

La funcin cwLockGet requiere los siguientes argumentos: Parte dbTabla Descripcin Corresponde al nombre de la tabla que se desea bloquear.

Este ejemplo usa la funcin cwLockGet bloquear todos los registros de la tabla ACMCC.
cwLockGet(ACMCC); //Bloqueo registros tabla ACMCC

cwLockFree: Libera el bloqueo total de la tabla Realiza la liberacin del bloqueo de toda la tabla especificada. Sintaxis:
cwLockFree (dbTabla);

La funcin cwLockFree requiere los siguientes argumentos: Parte DbTabla Descripcin Corresponde al nombre de la tabla que se desea liberar el bloqueo total.

Ejemplo de la funcin cwLockFree


cwLockFree ( ACMCC ); //Libera tabla ACMCC.

cwSelect Function Realiza un acceso a una tabla de base de datos, de acuerdo al ndice especificado, a partir de los valores de las llaves. Sintaxis:
cwSelect (DimKey, iOp, cwFrom(keyVal1,..keyVal16)); TrSeq, keyVal1,..keyVal16,

Opcional
cwUntil(keyVal1,..keyVal16);

La funcin cwSelect requiere los siguientes argumentos: Parte DimKey Descripcin Requerido. Nombre de la tabla o ndice de acceso.

IOp

Requerido. Es de tipo int . Esta expresin permite poner en lock un registro, el valor default es noHOLD que es igual a 0 y dcwHOLD es igual a 1. Requerido. Es de tipo int. Esta expresin indica si una lectura de datos es secuencial y aplica nicamente a transacciones de multilnea, su valor default es 0. Requerido. Llave(s) de acceso de la Tabla o ndice especificado (DimKey), agrupa los registros en base a las llaves indicadas.

ITrSeq

KeyVal1...KeyVal16

cwFrom(keyVal1,..keyVal16) Requerido. Llave(s) de acceso de la Tabla o ndice especificado (DimKey), indica desde donde iniciara la lectura. cwUntil(keyVal1,..keyVal16) Opcional. Llave(s) de acceso de la Tabla o ndice especificado (DimKey), indica hasta donde terminara la lectura.

Observaciones La lectura de datos debe realizarse utilizando la funcin cwGetRow. Ejemplo de la funcin cwSelect Este ejemplo usa la funcin cwSelect para obtener los empleados de una empresa.

cwSelect (P_INDICE,0,0,varEMPRESA, cwFrom(varCOD, varFECING)); if ( cwSTATUS == CWZ_ERROR ) { goto Error_Exit; } // Lectura de Datos //------------------while ( !cwGetRow (P_INDICE) ) {

// Mover Variables

5. CreacindetransaccionesporWizard
Permite generar nuevas transacciones. Los asistentes son utilizados para crear objetos de forma rpida y amigable dentro del IDE. Uno de stos es el utilizado cuando se desea crear una transaccin. Para mayor claridad ver imagen:

Para continuar avanzando dentro del proceso se presiona el botn Next>. El cual automticamente despliega la siguiente pantalla:

En la cual se observan las siguientes opciones que se detalla a continuacin:

Id: Este es el cdigo con el cual se identifica la nueva transaccin, este no puede ser mayor a 5 caracteres. A su vez, acepta cualquier carcter que identifique este proceso. Name: Se ingresa el nombre de la transaccin. La diferencia entre los campos anteriores es que el ID funciona como nombre corto de la transaccin y el nombre es con el que se identifica la transaccin dentro del rbol, que se observa del lado izquierdo del IDE. Description: Aqu se ingresa la descripcin global de la transaccin, aparece como ttulo en la transaccin que se est creando. Flder: flder a donde va a pertenecer esta transaccin. La opcin Add Header Form, es para agregar encabezados a las formas. Al presionar el botn Next >, se despliega la siguiente ventana. Ver imagen

Existen dos tipos a los cuales puede pertenecer la transaccin:

Maintenance: se utiliza para indicar que la transaccin a crear ser un mantenimiento. La opcin Standard genera un combo box y buttons son botones, la parte de abajo indica las acciones que tendrn las opciones del combo y los botones. Finds: puede indicar si son bsquedas simples o multilnea, si se selecciona multilnea debe de indicar la cantidad de lneas a utilizar, a su vez se habilita la opcin Add Selector sirve para indicar si desea mostrar una imagen de seleccin que aparece en las transacciones, lo cual permite seleccionar un registro y llevarle a una nueva pantalla donde se muestra el detalle de dicho registro. Al presionar el botn Next >, despliega la siguiente pantalla. Ver imagen:

En esta parte se solicita que se indique el nombre de la tabla que va a utilizar para crear la transaccin, lo cual despliega el listado de las tablas que se encuentran relacionadas a la aplicacin, abajo se podr observar la llave que se utilizar para realizar las bsquedas. La opcin Query abre el siguiente asistente:

Este permite crear una instruccin de seleccin de filas; aparece un listado con los nombres de la tabla que puede utilizar, selecciona una y a continuacin debe de indicar si es Input Field o Select Field. El Input Field indicar variables que va a recibir el query para despus mostrar los

que se encuentran en Select Field, es decir, que en Input Field el usuario indicar el valor del campo o variable que desea ubicar y al ejecutar el query, este devolver los datos o informacin que se indiquen en Select Field. En Input Field, en la columna Op el usuario puede seleccionar la comparacin que desea realizar o la forma en que desea el resultado del query.

Al cerrar esta pantalla, en el Wizard se podr observar el Query de la siguiente forma:

En la parte de Access Key, se muestran las llaves requeridas por la bsqueda o consulta (transaccin que se est creando) para funcionar y desplegar la informacin solicitada por el usuario. Se observa una lista, donde se estn los dems campos que contiene la tabla seleccionada con anterioridad, los cuales pueden seleccionados y se irn trasladando a la parte de Response Vars. Al presionar el botn Next >, se despliega la siguiente pantalla. Ver imagen:

La pantalla anterior se muestra el listado de los campos que se usarn en la transaccin. Y se presiona el botn Next >. La siguiente pantalla nicamente se muestra cuando la transaccin que se est creando es de tipo Bsqueda.

En esta pantalla se debe de indicar el nombre de la variable que funcionar como selector, esto se debe a que cuando se selecciona el tipo de transaccin tambin puede o no haber indicado que la transaccin utilizara selector.

Name: nombre del campo selector. Validate Value: valor a devolver al .cpp. Image Source: aqu se indica el nombre de la imagen a utilizar como selector, la cual va a visualizar el cliente.

Permite agregar la informacin ingresada a la lista, donde se indican los mismos datos ingresados.

Al presionar el botn Next se solicitar la siguiente informacin:

Aqu el wizard, solicita donde desea observar el cursor al inicio de la transaccin y la forma de alineamiento que se desea.

Esta ltima pantalla indica que la transaccin ha sido creada con xito.

6. PopupWindows
Durante el uso de la aplicacin final existen distintos tipos de transacciones los cuales requieren la consulta de catlogos externos los cuales requeriran abandonar la transaccin actual para ir a consultar el elemento deseado y luego retornar a utilizarlo, por medio de este tipo de transacciones es posible consultar dichos catlogos y retornar automticamente valores a nuestra transaccin original de forma que podamos finalizar la tarea iniciada de una manera ms sencilla. Son transacciones que se presentan dentro de una ventana emergente, estos normalmente se usan para bsquedas de cdigo. Si se quisiera recuperar o darle la facilidad al usuario que recupere un cdigo de un cliente, si necesidad de estarse aprendiendo los cdigos, se podra hacer por medio de una consulta tipo PopUp, donde se muestra el cdigo del cliente, ms el nombre, con una seleccin de registro en la ventana emergente puede retornarse el cdigo seleccionado a la ventana inicial.

6.1.CreacindePopUpWindows
El proceso para generar un pop-up inicia por generar la transaccin que servir de origen a esta otra, luego de realizar esta accin se busca dentro del rbol de flder.

Se da doble clic en la transaccin deseada, y levanta la pantalla siguiente:

En la opcin flder se indica, el flder al que va a pertenecer, que sera PopUp Window y se cierra esta ventana. Para que el movimiento de la transaccin tome efecto entre en los flderes y se visualice, se debe de salir e ingresar nuevamente a la aplicacin:

6.2.ComoagregarcamposaPopUpWindows
Ver Creacin de variables para transacciones y tablas en Anexo 1.

6.3.EnlacedeinformacinentrePopUpWindowyventanaorigen
Al ingresar nuevamente se da clic en la carpeta PopUp Window, donde se observar cargada la nueva transaccin:

El siguiente paso sera, dirigirse al tab Fields y ver en la columna Repeat los campos con valor True, que seran las opciones multilnea.

Debe seleccionarse entonces el campo a utilizar y dar doble click, con lo cual se mostrar la siguiente pantalla:

Debe de seleccionar el tab Form, seleccionar la opcin Response y en el campo Param Value,de esa forma se mostrarn las opciones contenidas en el combo, las cuales se utilizan para seleccionar para indicar que campos o valores deseo enviar al objeto que realizo la llamada a este pop-up.

6.4.Creacindecamposdepantalla
Esta opcin se utiliza nicamente en transacciones y PopUps, una de sus funciones principales es la creacin del elemento que realiza la llamada a un PopUp Window. Para agregar un elemento de Form Filelds, primero se debe seleccionar la transaccin origen de dicho elemento. Para eso, en el rea de Transactions, ubicado en la estructura del IDE, se selecciona la carpeta que contiene la transaccin origen, en el caso del siguiente ejemplo correspondera a Examples, se elige la transaccin llamada Con Alumno. Para mayor claridad ver imagen:

Luego se procede a elegir la opcin Form Fields, ubicada en el men Edit. Ver imagen:

La cual despliega automticamente la siguiente pantalla:

En esta pantalla el IDE coloca por default, el origen al cual pertenece el Form Field, de igual forma se procede a completar la informacin que se requiere, como nombre, descripcin corta y larga. Tambin se le tiene que indicar el tipo de elemento a utilizar, como: Boton Hipervinculo Divisin dentro de la forma que se presenta Imagen Label Tooltip Ejemplo: Para este ejemplo se escoger la opcin imagen, al seleccionarla despliega la siguiente pantalla:

En la cual hay que ingresar el Source de la imagen, se presiona el botn Style, y despliega la siguiente pantalla:

En esta venta se define una de las clases que ya estn parametrizadas, al seleccionarla automticamente, regresa a la pantalla anterior, donde se procede a presionar el botn Close, para guardarlo automticamente. Al haber realizado todo este proceso, regresa a la siguiente pantalla:

En la cual se puede seleccionar si es necesario que llame o no a un PopUp, en este caso se eligi que si (marcando la opcin Get), luego se indica los parmetros que queremos recibir, se presiona Save, y despliega la informacin, donde se puede ver el proceso generado. Ver imagen

7. Dictionary
Una variable de diccionario, es una variable que puede ser utilizada en cualquier objeto dentro la aplicacin, permitiendo heredar su definicin a otras variables, (esto es til cuando se necesita cambiar el formato a una variable, para modificar en N lugares).

La declaracin de variables globales dentro del IDE, tambin es parte importante. Existen dos tipos de variables de diccionario:

Locals UDT: son globales para todos los objetos de la aplicacin. Globals UDT: pueden ser utilizadas por cualquier aplicacin.

7.1.Creacinyusodeelementosendiccionario
En la parte de Fields habiendo seleccionado previamente el elemento de diccionario deseado, se presiona la combinacin Ctrl+V o se selecciona del men la siguiente ruta, Edit, luego Insert New y finalmente Variable, con lo cual se despliega la siguiente pantalla:

En la cual, se ingresa la informacin de forma similar a la adicin de variables para transacciones, ver Anexo 1 Creacin de variables para transacciones y tablas, esta operacin no puede ser realizada por usuarios convencionales ya que requieren de permisos especiales.

8. Routines
Para ordenar la reutilizacin de funciones pertenecientes a varios objetos, se cuenta con grupos de rutinas que son incluidas en archivos individuales y referenciados dentro de la aplicacin, de forma que se encuentren fuera de la lgica de las transacciones y exista una sola copia de la funcionalidad especial, que es integrada luego a cada elemento que lo necesita por medio de una referencia y luego se utiliza la misma. Los elementos de Routines no cuentan con definicin de campos o elementos de pantalla ya que una de las caractersticas de este tipo de elementos es que contienen nicamente lgica.

8.1.Creacinderutinas
Ver Creacin de elemento contenedor Common, Routines, Reports en Anexo 1.

9. Common
Este punto se refiere a lgicas insertables, las cuales se utilizan para bloques de cdigo repetitivo que no forma parte de una funcin ya que no necesariamente retorna un valor de proceso. Se pueden crear bloques de cdigo los cuales sern insertados posteriormente dentro de las transacciones, un ejemplo es la definicin de variables de grupo de uso comn o validaciones generales la cuales son utilizadas (en caso de los grupos de variables) en distintas transacciones pero desea asegurarse que exista una sola fuente de definicin el cual

pueda fcilmente modificarse sin recorrer todo el cdigo de las distintas transacciones de una aplicacin. Los elementos de Common no cuentan con definicin de campos o elementos de pantalla ya que una de las caractersticas de este tipo de elementos es que contienen nicamente lgica.

9.1.Creacindelgicacomn(insertable)
Ver Creacin de elemento contenedor Common, Routines, Reports en Anexo 1.

10. Variablesdelsistema
ACTMTH
Longitud Tipo Decimales Se usa en Objetivo Valores Nota 4 N 0 Transacciones Definir el valor para ao y mes contable Definidos por el usuario en tiempo de ejecucin. Para compatibilidad con sistemas legacy

cwADD
Longitud Tipo Se usa en Objetivo Valores Nota 3 A Transacciones Definir el valor para la accin de adicin Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwAPPID
Longitud Tipo Se usa en Objetivo Valores 20 A Transacciones Definir el valor para identificar la aplicacin Definidos por el usuario en tiempo de ejecucin

cwAPPNAME
Longitud Tipo Se usa en Objetivo Valores 40 A Transacciones Definir el valor para nombrar la aplicacin Definidos por el usuario en tiempo de ejecucin

cwASCPRT
Longitud Tipo Se usa en Objetivo Valores Nota 17 A Reportes Definir el valor para el nombre de impresora Definidos por el usuario en tiempo de ejecucin Para compatibilidad con sistemas legacy

cwBAC
Longitud Tipo Se usa en Objetivo Valores Nota 3 A Transacciones Definir el valor para la accin de leer un registro anterior Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwBALANCE
Longitud Tipo Decimales Se usa en Objetivo Valores Nota 12 + 2 Transacciones Determinar el balance para una operacin de cargos y abonos Definidos por el usuario en tiempo de ejecucin Para compatibilidad con sistemas legacy

cwBASE
Longitud Tipo Decimales Se usa en Objetivo Valores Nota 4 N 0 Transacciones / Reportes Contiene el ao base a partir del cual se calculan las fechas relativas Definido en los headers de CrossWalk nicamente de lectura

cwBASEYY
Longitud Tipo Decimales Se usa en Objetivo Valores Nota 2 N 0 Transacciones / Reportes Contiene el ao base a partir del cual se calculan las fechas relativas Definido en los headers de CrossWalk nicamente de lectura

cwCENTURY
Longitud Tipo Decimales Se usa en Objetivo Valores Nota 2 N 0 Transacciones / Reportes Indicar la centuria de una fecha en una operacin de conversin de formatos 0-20 Es preferible indicar la centuria como parte de la fecha que se requiere convertir

cwCHG
Longitud Tipo Se usa en Objetivo Valores Nota 3 A Transacciones Definir el valor para la accin de modificar Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwCLOSE
Longitud Tipo Se usa en Objetivo Valores Nota 5 A Reportes Indicar el cierre manual del sistema cwSPACES CLOSE Para compatibilidad con sistemas legacy

cwCOMPID
Longitud Tipo Se usa en Objetivo Valores 20 A Transacciones Definir el valor para identificar la compaa Definidos por el usuario en tiempo de ejecucin

cwCOMPNAME
Longitud Tipo Se usa en Objetivo Valores 40 A Transacciones Definir el valor para nombrar la compaa Definidos por el usuario en tiempo de ejecucin

cwCOPY
Longitud Tipo Decimales Se usa en Objetivo Valores Nota 2 N 0 Transacciones Indica el nmero de copia para una transaccin multilnea 1-99 Para compatibilidad con sistemas legacy, utilizar cwLINE

cwDATE
Longitud Tipo Se usa en Objetivo Valores 7 A Transacciones Reportes Definir el valor para la fecha de inicio de la transaccin o reporte Definidos por CrossWalk en tiempo de ejecucin

cwDATE_FL
Longitud Tipo Se usa en Objetivo Valores 8 A Definir el valor para Definidos por

cwDATE_FS
Longitud Tipo Se usa en Objetivo Valores 6 A Definir el valor para Definidos por

cwDC_CC
Longitud Tipo Decimales Se usa en Objetivo Valores 2 N 0 Transacciones Reportes Definir el valor para la centuria de una fecha Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_CCYY_MM_DD
Longitud Tipo Se usa en Objetivo Valores 10 A Transacciones Reportes Definir el valor para una fecha en formato CCYY/MM/DD Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_CCYY_MMM_DD
Longitud Tipo Se usa en Objetivo Valores 11 A Transacciones Reportes Definir el valor para una fecha en formato CCYY MMM DD (ej. 1967 JUN 01) Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_CCYYMMDD
Longitud Tipo Se usa en Objetivo Valores 8 N Transacciones Reportes Definir el valor para una fecha en formato CCYYMMDD Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_DAYNUM
Longitud Tipo Se usa en Objetivo Valores 5 N Transacciones Reportes Definir el valor para una fecha en formato relativo (cantidad de das a partir de una la fecha base definida en CrossWalk) Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_DD_MM_CCYY
Longitud Tipo Se usa en Objetivo Valores 10 A Transacciones Reportes Definir el valor para una fecha en formato DD/MM/CCYY Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_DD_MM_YY
Longitud Tipo Se usa en Objetivo Valores 8 A Transacciones Reportes Definir el valor para una fecha en formato DD/MM/YY Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_DD_MMM_CCYY
Longitud Tipo Se usa en Objetivo Valores 11 A Transacciones Reportes Definir el valor para una fecha en formato DD MMM CCYY (ej. 01 JUN 1967) Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_DDMMCCYY
Longitud Tipo Decimales Se usa en Objetivo Valores 8 N 0 Transacciones Reportes Definir el valor para una fecha en formato DDMMCCYY Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_DDMMMYY
Longitud Tipo Se usa en Objetivo Valores 7 A Transacciones Reportes Definir el valor para una fecha en formato DDMMMYY (ej. 01JUN67) Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_MMDDCCYY
Longitud Tipo Decimales Se usa en Objetivo Valores 8 N 0 Transacciones Reportes Definir el valor para una fecha en formato MMDDCCYY Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_MMM_DD_CCYY
Longitud Tipo Se usa en Objetivo Valores 11 A Transacciones Reportes Definir el valor para una fecha en formato MMM DD CCYY (ej. JUN 01 1967) Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_TODAY
Longitud Tipo Se usa en Objetivo Valores 15 A Transacciones Reportes Definir el valor para el nombre del da de la semana a la que corresponde una fecha Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_UK_ALPHA
Longitud Tipo Se usa en Objetivo Valores 25 A Transacciones Reportes Definir el valor para una fecha en formato UK (ej. 01 JUNE 1967) Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_US_ALPHA
Longitud Tipo Se usa en Objetivo Valores 25 A Transacciones Reportes Definir el valor para una fecha en formato US (ej. JUNE 01 1967) Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_YYMMDD
Longitud Tipo Se usa en Objetivo Valores 6 A Transacciones Reportes Definir el valor para una fecha en formato YYMMDD Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDC_YYMMMDD
Longitud Tipo Se usa en Objetivo Valores 7 A Transacciones Reportes Definir el valor para una fecha en formato YYMMMDD (ej. 67JUN01) Definidos por CrossWalk en tiempo de ejecucin al usar la rutina de conversin de fecha

cwDEL
Longitud Tipo Se usa en Objetivo Valores Nota 3 A Transacciones Definir el valor para la accin de borrado Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwDESTHOST
Longitud Tipo Se usa en Objetivo Valores Nota 17 A Transacciones Reportes Definir el valor del sistema destino Definido por el usuario en tiempo de ejecucin Para compatibilidad con sistemas legacy

cwDESTINATION
Longitud Tipo Se usa en Objetivo Valores Nota 10 A Transacciones Reportes Definir el valor de la base de datos destino Definido por el usuario en tiempo de ejecucin Para compatibilidad con sistemas legacy

cwDESTNOFORM
Longitud Tipo Se usa en Objetivo Valores Nota 17 A Transacciones Reportes Definido por el usuario en tiempo de ejecucin Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwEOP
Longitud Tipo Se usa en Objetivo Valores Nota 1 A Transacciones Requerir la posicin del cursor al final de la pgina Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwERROR
Longitud Tipo Se usa en Objetivo Valores 5 A Transacciones Reportes Informar cuando existe un error Definidos por CrossWalk en tiempo de ejecucin, su valor por omisin es cwSPACES, contiene ***** cuando existe error

cwFIR
Longitud Tipo Se usa en Objetivo Valores Nota 3 A Transacciones Definir el valor para la accin de leer el primer registro Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwFORMDEPTH
Longitud Tipo Decimales Se usa en Objetivo Valores Nota 4 N 0 Reportes Definir el nmero de lneas disponibles para impresin en un reporte Definidos por el usuario en tiempo de ejecucin, su valor por omisin es 60 Existen 26 adicionales cwFORMDEPTHA ... cwFORMDEPTHZ

cwGUI
Longitud Tipo Se usa en Objetivo Valores Nota 1 A Transacciones Definir el valor para indicar si el tipo de terminal originante tiene interfaz grfica Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwHIGH
Longitud Tipo Se usa en Objetivo Valores 256 A Transacciones Reportes Definir el valor alfanumrico mximo Definido en los headers de CrossWalk

cwINITSTN
Longitud Tipo Se usa en Objetivo Valores Nota 17 A Reportes Definir el nombre de la terminal originante de un reporte Definido por CrossWalk en tiempo de ejecucin Para compatibilidad con sistemas legacy

cwINQ
Longitud Tipo Se usa en Objetivo Valores Nota 3 A Transacciones Definir el valor para la accin de leer el registro con el valor exacto de llave indicado Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwLANGUAGE
Longitud Tipo Se usa en Objetivo Valores Nota 10 A Transacciones Reportes Definir el valor el lenguaje a utilizar Definido en los headers de CrossWalk Para compatibilidad con sistemas legacy

cwLAS
Longitud Tipo Se usa en Objetivo Valores Nota 3 A Transacciones Definir el valor para la accin de leer el ltimo registro Para compatibilidad con sistemas legacy

cwLENGTH
Longitud Tipo Decimales Se usa en Objetivo Valores 4 N 0 Transacciones Reportes Contiene la longitud resultante de una operacin de cadenas Definido por CrossWalk en tiempo de ejecucin al utilizar cwAttach

cwLINE
Longitud Tipo Decimales Se usa en Objetivo Valores 2 N 0 Transacciones Indica el nmero de copia para una transaccin multilnea 1-99

cwLINECOUNT
Longitud Tipo Decimales Se usa en Objetivo Valores Nota 4 N 0 Reportes Indica el nmero de lneas impresas en la pgina acutal de un reporte Definidos por el usuario en tiempo de ejecucin, su valor por omisin es 9999 Existen 26 adicionales cwLINECOUNTA ... cwLINECOUNTZ

11. Anexo1
11.1. Creacindevariablesparatransaccionesytablas

Esta opcin se utiliza nicamente en transacciones, PopUps y tablas.

Insert New Variable: Al presionar esta opcin, automticamente despliega la siguiente pantalla:

En la cual, se ingresa la siguiente informacin, algunos de los campos podran aparecer bloqueados dependiendo del tipo de objeto al que se estn agregando variables, se divide en tres partes: General: Origen: En esta rea, no se ingresa informacin, porque el programa automticamente, le asigna la iniciales que se ingresaron en la opcin Item ID de la tabla origen.

Name: Aqu se ingresa o se escribe el nombre que se le quiera dar a la variable. Brief Description: En esta rea, se ingresa una breve descripcin para identificarla ms fcilmente. Full Description: Aqu, a diferencia de la anterior, ya se puede escribir una descripcin ms completa y detallada.

Data: Usage: Esta rea, es de seleccin en la cual si se esta agregando variables a una tabla solo se visualizar la opcin Output, en caso de tratarse de una transaccin se mostraran las opciones Input e Inquiry, Input se refiere a campos en los que el sistema recibe informacin ingresada por el usuario desde su aplicativo cliente, Inquiry se utiliza para enviar elementos de respuesta a dicho cliente. Use Dictionary: Esta rea, tambin es de seleccin, y se puede escoger si se quiere usar diccionario con el fin de ahorrase la seleccin del tipo y largo del campo, y ayuda a manejar un estndar en toda la aplicacin o no. Edit Format: Se elige el tipo de formato, los cuales pueden ser: Numeric Display (-) y Numeric Display (+): Esto quiere decir que es un nmero con signo, esto quiere decir que este campo puede almacenar negativos. Alphanumeric: Este acepta nicamente caracteres, tambin puede aceptar nmeros, pero estos van orientados al lado izquierdo. Numeric: Aqu se almacena nicamente nmeros, sin importar su signo. Length: Este indica el mximo de caracteres que van a ser almacenados. Repeat on Message: Indica si este elemento se repite en una transaccin multilnea.

Format: Decimal Character: Esta opcin, se utiliza nicamente si el tipo de formato que se elige es numrico, pues permite almacenar decimales.

Is Password: Esta opcin indica si el campo ser tomado en el editor de formas como una casilla que no debe mostrar la informacin ingresada en ella, y luego tener este comportamiento al ser mostrada en el explorador WEB luego de haber generado su archivo .asp con la opcin Compile page detallada anteriormente en la seccin de bloques de botones.

11.2.

DefinitionsGeneratesoPuntoH

Luego de efectuados cambios sobre los campos de la transaccin o tablas es necesario generar el archivo de protocolo para actualizarlo en el proyecto C++ a compilar, en caso de haber modificado alguna tabla debe modificar tambin los encabezados para tener los vnculos correctos a los campos de dicha tabla, ambas operaciones se realizan con esta opcin, la cual se encuentra en la barra de herramientas como se muestra a continuacin:

Al presionar este botn, despliega la siguiente pantalla:

Para realizar este proceso es necesario elegir la opcin Only Selected Object, que se observa en la imagen anterior y presionar el botn Ok. Luego deber tomar los archivos generados del directorio configurado como destino de generacin y actualizarlos o incluirlos en su proyecto a compilar segn sea el caso.

11.3.

CreacindeelementocontenedorCommon,Routines,Reports

Para la adicin de elementos tales como lneas de impresin para reportes e instrucciones y funciones generales a utilizar, es necesario un crear un contenedor para cada caso, esto se hace de forma similar a la creacin de una transaccin como se muestra a continuacin: Se tiene que presionar la opcin Insert New, Item, la cual se encuentra en el men Edit. Al haber seleccionado dicha opcin, inmediatamente se despliega la siguiente pantalla. Ver imagen:

En la cual se ingresa la siguiente informacin: Section: Aqu se elije el tipo de elemento que se necesita por medio de una lista de seleccin desplegable, debe seleccionar Reports, Common, etc., segn sea el caso. Para mayor claridad ver imagen:

Se deshabilitara algunos de los campos solicitados ya que son de uso exclusivo de otro tipo de elementos. Item ID: Aqu se ingresa el nombre que se le va a dar, con la restriccin que no puede pasar de cinco caracteres: Brief Description: Se ingresa una breve descripcin de objeto.

También podría gustarte