Progress

Páginas: 14 (3379 palabras) Publicado: 1 de noviembre de 2012
+ Progrees
Ees un lenguaje de 4ta generación, tal como lo es ABAP. Las instrucciones fundamentales son: FOR EACH FIND DISPLAY MESSAGE OUTPUT DEFINE Hay muchísimas más instrucciones, naturalmente, pero con esas pocas que te digo se hace "casi" todo. Un buen (y casi el único) recurso progress en la web es la página oficial, la cual cambiaron recientemente, y es: psdn.com Pero debo decir que elmotor de búsqueda de esa página de Progress es malo. Los resultados que trae no son óptimos, trae muchos temas que a uno no le interesan cuando haces una búsqueda. Pero, es lo que hay. Lo mejor sería conseguir los manuales originales, los cuales te los dan en los cursos oficiales. Pero lo bueno es la ayuda que tiene el editor de progress. Al tocar F1 sobre una palabra reservada la ayuda que temuestra es muy buena. Y viene con ejemplos. Para la parte web se usa WebSpeed. Hay algo que se llama Broker, que es el responsable de mantener viva la aplicación y mediante el cual compilas las fuentes. A diferencia de otros lenguajes como PHP o ASP, todo código WebSpeed se compila. Muy importante: extensiones: .p: programa sin ventanas .w: programa con ventanas .i: programa include (no se compilasuelto) .r: programa compilado (resultado de compilar un .p ó .w ó .HTML) Esas son las extensiones más comunes de programas progress. También están los .h que en general se usan para declarar datos como variables o tablas temporales. Los .i son porciones de código re-usables que no se pueden compilar sueltos. Siempre son parte de otros programas.

+ ¿Cómo evitar registros duplicados en un reporteProgress (equivalente al SELECT DISTINCT)? Lo que tenemos que hacer es lo siguiente: FOR EACH tabla BREAK BY campo. IF (LAST-OF (campo)) THEN DISPLAY tabla. END. También podemos reemplazar el LAST-OF por FIRST-OF si queremos quedarnos con la primera ocurrencia. Esto tiene un comportamiento más o menos similar a un SELECT DISTINCT de SQL. + Creando una query dinámica en Progress /* declaro lavariable como handle */ DEF VAR hQuery AS HANDLE NO-UNDO. /* defino mi consulta */ DEF VAR cSQL AS CHAR NO-UNDO. cSQL = "FOR EACH tabla1 NO-LOCK, EACH tabla2 NO-LOCK, EACH tabla3 NO-LOCK". /* creo la query */ CREATE QUERY hQuery ./* debemos agregar 1 buffer por tabla usada o referenciada */ hquery:SET-BUFFERS(BUFFER tabla1:HANDLE, BUFFER tabla2:HANDLE, BUFFER tabla3:HANDLE). /* inicializo la query */hquery:QUERY-PREPARE(cSQL). /* abro la query para recorrerla */ hQuery:QUERY-OPEN().

/* obtengo el primer registro a partir de la query dinamica */ hQuery:GET-FIRST(). /* mientras tenga registros... */ DO WHILE NOT hQuery:QUERY-OFF-END: /* podemos acceder a los campos de las tablas de la forma: tablai.campoj */ /* avanzo el puntero */ hQuery:GET-NEXT(). END.

+ DISPLAY versus MESSAGE :distintas formas de presentar información por pantalla Para información por pantalla en un programa Progress 4GL tenemos básicamente 2 instrucciones DISPLAY y MESSAGE. El DISPLAY se usa mas bien para armar reportes e imprimir filas, el MESSAGE es usado para mostrar carteles de información, alertas, advertencias o para pedir una confirmación al usuario. Sintaxis del MESSAGE: MESSAGE [ COLOR color-phrase ]{ expression | SKIP [ ( n ) ] } ... [ VIEW-AS ALERT-BOX [ alert-type ] [ BUTTONS button-set ] [ TITLE title-string ] ] [ { SET | UPDATE } field { AS datatype | LIKE field } [ FORMAT string ] [ AUTO-RETURN ]

] [ IN WINDOW window ] ejemplo de mensaje simple MESSAGE "hola" VIEW-AS ALERT-BOX BUTTONS OK. ejemplo de mensaje de advertencia MESSAGE "hola" VIEW-AS ALERT-BOX WARNING BUTTONS OK. ejemplode mensaje de error MESSAGE "hola" VIEW-AS ALERT-BOX ERROR BUTTONS OK. ejemplo de mensaje de información MESSAGE "hola" VIEW-AS ALERT-BOX INFO BUTTONS OK. ejemplo de mensaje de confirmación (prompt) MESSAGE "Es cierto que Argentina clasificó para Sudafrica 2010" view-as alert-box question buttons yes-no update w_confirma as logical. if not w_confirma then return no-apply. Nota: si no ponemos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Progress Check
  • progress bar
  • Progresso
  • Estándar código progress
  • Progresso
  • The progress paradox
  • Cuestionario sobre surviving progress
  • Fibrodisplasia Osificante Progressiva

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS