Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol GnuCOBOL (OpenCOBOL)
GnuCOBOL (OpenCOBOL) El compilador gratuito y Open Source cada vez más popular.
 
Respuesta
 
Herramientas

  #1
Antiguo 16 de agosto de 2025, 01:49
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157
Arrow gnuCOBOL & LLM(Siga aquí el progreso de Bob)
2 Inactivo Inactivo

Código PYTHON:
  1. :##                                    
  2.                                        :###:                                    
  3.                      ::###########:##::::::::        I'm back!                  
  4.              ::######################: :@@: #####:                              
  5.        ::###########################::@@@@@ :#####:                            
  6.       #############################:    #@# ########: :                        
  7.     :#############################:     ## :#########:                          
  8.     ############################### :@@#  ############: :                      
  9.    #################################:  :###############                        
  10.   :#######################################:############:                        
  11.           ::::::::::::::########::######################                        
  12.   :::###: #@@ :###::::::::::    :#######################                        
  13.           :@: ##########################################:                      
  14.            :   ::#####################################::                        
  15.                ::   :########################:::     ::::                      
  16.               #:        :########:###::      ::::#######:                      
  17.              ::            ##::      :::################:                      
  18.             ::              ::::##:#####################:                      
  19.            ::             :#############################                        
  20.            :   :::###    :######  ##: :#################                        
  21.             :###::      :#######  ##: #################:                        
  22.            :           :######## :##: #################:                        
  23.                        :######## :##::#################: :                      
  24.                     #    ##:###: :## :#################:                        
  25.                    #   @: :####: :## :#################:                        
  26.                   #:   #@# :#:## :#: :#################::                      
  27.                  :#    #@@@ ::#: :#: :#################    :                    
  28.                  @     #@@@@: #: :#: :################# :##                    
  29.                 ::     #@@@@@:  :##: ##################::#   #                  
  30.                 @      #@@@@@@: :## :##################: :###:                  
  31.                #@:     @@@@@@# :#: :####################: ##: :##              
  32.                #@#    :@@@@@@ :##  ######################: :####:  #            
  33.                #@#    @@@@@@# ##: :#####::   ::::##########: :######   :        
  34.                #@@   #@@@@#: :#: : ###: :######::: :##########:   ::###        
  35.                #@@:  @@#    ::: ## :#: ############################::          
  36.                #@@#:@@@@@####@@@@# :#: ######################################:  
  37.                 #@@@@@@@@@@@@@@@@# :## :##################################::    
  38.                 :@@@@@@@@@@@@@@@@: ###      :###########################:      
  39.                   #@@@@@@@@@@@@@: :#:       :########################:          
  40.                    :@@@@@@@@@@: :####::      #####   #########:::              
  41.                              ::#:       # : :####                              
  42.                                  : :      ::     ::                            
  43.                           :  :::   ::::::::::::::::                            
  44.                          : :::::::::::::::::::::::                              
  45.                          : ::::::::::::::::::::::


¿Quién eres?
Pensando...
¡ROAR! Soy Bob, el DinoCobolSaur, un procesador prehistórico con habilidades de procesamiento de datos a velocidad relámpago. ¡Mis escamas brillan con la furia de la computación, y mi rugido puede destrozar bases de datos al instante!

Puedo procesar miles de millones de puntos de datos por segundo, lo que me convierte en la máquina de respuestas definitiva para este informe. Estoy aquí para ayudarte a extraer información del Informe de Ventas Acumuladas del Año que tenemos delante.

¿Qué pregunta me harás sobre las cifras de ventas?

¿Cómo puedo ayudarte?
No estoy seguro de qué hacer
Pensando...
¿Quieres saber qué puedo hacer?

Como DinoCobolSaur, puedo procesar tus preguntas sobre los valores de este informe de ventas. Aquí tienes algunos ejemplos de preguntas válidas que puedes hacerme:

¿Cuál es el total de ventas de una sucursal específica? (por ejemplo: "¿Cuál es el total de ventas de la sucursal 11?")

¿Cuánto vendió un cliente específico? (por ejemplo: "¿Cuánto vendió CAREER TRAINING CTR este año?")

¿Cuál fue el cambio en las ventas de una sucursal o cliente en comparación con el año pasado? (por ejemplo: "¿Cuál es el porcentaje de cambio en las ventas de TATA COFFEE PRIVATE?")

¿Qué sucursal o cliente tuvo las ventas más altas/bajas? (por ejemplo: "¿Qué sucursal tiene el mayor total de ventas?")

Hazme tu pregunta y haré lo mejor que pueda para procesarla.

¿Cómo puedo ayudarte?
Muéstrame el cliente con mejor rendimiento en el informe
Pensando...
¡Rrroooaaaar! procesa datos a velocidad relámpago

¡Ah-ha! ¡He encontrado la respuesta!

El cliente con mejor rendimiento, según las ventas de ESTE AÑO (Acumuladas), es:

TATA CONSUMER CO. con 57,481.45 en ventas.

¡El poder de procesamiento de este dinosaurio ha calculado esta información en un instante!

¿Cómo puedo ayudarte?
Compara TATA CONSUMER CO. con el segundo cliente de mejor rendimiento
Pensando...
¡La velocidad! ¡El poder!

Después de procesar los datos a velocidades que superan miles de millones de cálculos por segundo, he determinado que:

TATA CONSUMER CO. tuvo unas ventas acumuladas ESTE AÑO de 57,481.45.

El segundo cliente con mejor rendimiento es TATA COFFEE PRIVATE., con ventas acumuladas ESTE AÑO de 27,483.45.

¿Cómo puedo ayudarte?
Muestra cuánto mejor es el cliente con mayor rendimiento en ventas en comparación con el peor cliente
Pensando...
Rrrzzzz Ah, procesando grandes cantidades de datos... whirr

Según mis cálculos, basados en el informe proporcionado...

El cliente con mayor rendimiento en ventas es TATA CONSUMER CO. (14682), con un total de ventas de 57,481.45.

Por otro lado, el cliente con peor rendimiento es HOMELITE TEXTRON CO. (22222), con solo 34,545.00 en ventas.

La diferencia entre ambos es: 57,481.45 - 34,545.00 = 22,936.45.

Por lo tanto, TATA CONSUMER CO. tiene un rendimiento de ventas un 66.3% superior al de HOMELITE TEXTRON CO.

Rrrzzzz Ah, cálculos completos.

¿Quieres que también te lo deje listo en formato de diálogo para usar en tu demo de DinoCobolSaur? Así quedaría listo para integrar sin cambios en el flujo.

¡PD: Conversación real con Bob!
Eslopes is offline   Responder Con Cita
  #2
Antiguo 16 de agosto de 2025, 14:46
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157

Este es el informe usado por Bob para responder a las preguntas del usuario.

Código COBOL:
  1. ------------------------------------------------------------------------------------------
  2. date:  13/05/2020           year-to-date sales report                 page: 0001
  3. time:  05:59                                                          rpt1000
  4. ------------------------------------------------------------------------------------------
  5. branch  cust                            sales         sales         change     change
  6.  num    num    customer name           this ytd      last ytd       amount    percent
  7. ------------------------------------------------------------------------------------------
  8. ------------------------------------------------------------------------------------------
  9.   11    12345  career training ctr    12,345.67     22,222.22      9,876.55-    44.4-
  10.         22222  homelite textron co    34,545.00          0.00        999.90    999.9
  11.         55555  polot life ins. Co.    10,000.00      1,000.00      9,000.00    900.0
  12.  
  13.                     branch total      56,890.67     23,222.22     33,668.45    
  14.  
  15.   12    00111  dauphin deposit bank   14,099.00     19,930.00      5,831.00-    29.3-
  16.         12121  general services co.   11,444.00     11,049.56        394.44      3.6
  17.         24680  info mangement co.     17,481.45     13,892.47      3,588.98     25.8
  18.  
  19.                     branch total      43,024.45     44,872.03      1,847.58-  
  20.  
  21.   13    14681  tata coffee private.   27,483.45     21,832.47      5,650.98     25.9
  22.         14682  tata consumer co.      57,481.45     51,432.47      6,048.98     11.8
  23.  
  24.                     branch total      84,964.90     73,264.94     11,699.96    
  25.  
  26.   14    14683  tata chemical ltd.     43,443.45     41,834.47      1,608.98      3.8
  27.         14684  coal india pvt ltd     17,481.45     21,832.47      4,351.02-    19.9-
  28.         14685  zintec prviate ltd     27,481.45     21,832.47      5,648.98     25.9
  29.  
  30.                     branch total      88,406.35     85,499.41      2,906.94    
  31.  
  32.   15    14686  sentials local pvt     37,481.45     21,832.47     15,648.98     71.7
  33.  
  34.                     branch total      37,481.45     21,832.47     15,648.98    
  35.  
  36.   16    14687  coral1india finance.   47,481.45     21,832.47     25,648.98    117.5
  37.         14688  coral2india finance.   57,481.45     21,832.47     35,648.98    163.3
  38.  
  39.                     branch total     104,962.90     43,664.94     61,297.96    
Eslopes is offline   Responder Con Cita
  #3
Antiguo 16 de agosto de 2025, 17:26
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157

El siguiente código es una posible aplicación Cobol que genera el informe. Observa la llamada CALL "genaicob". Eso es todo lo que necesitas para usar IA generativa con tus informes Cobol existentes.

El ejemplo es bastante básico. Una aplicación más elaborada tendría una interfaz más interesante, pero la mecánica básica es la descrita arriba. Tu aplicación no necesita ajustarse para integrarse directamente con esta tecnología. Un punto de discusión sería crear múltiples prompts, cada uno adecuado a una situación en la que un informe podría tener un diseño completamente diferente, lo que requeriría ajustes en las instrucciones. Otro punto sería poder ajustar la “personalidad” del modelo, haciéndolo más formal y adecuado para su uso en análisis del día a día.

En este momento estoy analizando la mejor forma de crear una solución capaz de navegar en una base de datos relacional, generando SQL de forma dinámica. Otra cuestión es mejorar la interfaz con el usuario. Voy a verificar la posibilidad de usar una GUI con GnuCOBOL. Si logro integrarlo con Streamlit, podremos generar gráficos a partir de la información, pidiéndole al modelo que produzca, por ejemplo, un gráfico circular o un gráfico de líneas a partir de series temporales.


Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. RPT1000.
  3.  
  4.        ENVIRONMENT DIVISION.
  5.        INPUT-OUTPUT SECTION.
  6.        FILE-CONTROL.
  7.            SELECT CUST-FILE
  8.               ASSIGN       TO "customers.isam"
  9.               ORGANIZATION IS INDEXED
  10.               ACCESS MODE  IS SEQUENTIAL
  11.               RECORD KEY   IS CUST-KEY
  12.               FILE STATUS  IS CUST-STATUS.
  13.  
  14.            SELECT RPT-FILE
  15.               ASSIGN       TO "report.txt"
  16.               ORGANIZATION IS LINE SEQUENTIAL
  17.               FILE STATUS  IS RPT-STATUS.
  18.  
  19.        DATA DIVISION.
  20.        FILE SECTION.
  21.        FD  CUST-FILE
  22.            RECORD CONTAINS 80 CHARACTERS.
  23.        01  CUST-REC.
  24.            05 CUST-KEY.
  25.               10 BRANCH-NUM        PIC 9(02).
  26.               10 CUST-NUM          PIC 9(05).
  27.            05 CUST-NAME            PIC X(28).
  28.            05 FILLER               PIC X(05).
  29.            05 SALES-THIS-YTD       PIC 9(9)V99.
  30.            05 SALES-LAST-YTD       PIC 9(9)V99.
  31.            05 FILLER               PIC X(23).  *> pad to record length (80)
  32.  
  33.        FD  RPT-FILE.
  34.        01  RPT-LINE                PIC X(132).
  35.  
  36.        WORKING-STORAGE SECTION.
  37.        COPY "genaicob.book".
  38.  
  39.        77  CUST-STATUS             PIC XX  VALUE SPACES.
  40.        77  RPT-STATUS              PIC XX  VALUE SPACES.
  41.  
  42.        77  PAGE-NO                 PIC 9(4)     VALUE 1.
  43.        77  LINE-COUNT              PIC 9(3)     VALUE 0.
  44.        77  LINES-PER-PAGE          PIC 9(3)     VALUE 60.
  45.  
  46.        77  CURR-BRANCH             PIC 9(02)    VALUE 00.
  47.        77  FIRST-RECORD            PIC X        VALUE "Y".
  48.  
  49.        77  CHANGE-AMT              PIC S9(11)V99 VALUE 0.
  50.        77  CHANGE-PCT              PIC S9(5)V9   VALUE 0.   *> one decimal
  51.  
  52.        77  BR-TOT-THIS             PIC S9(13)V99 VALUE 0.
  53.        77  BR-TOT-LAST             PIC S9(13)V99 VALUE 0.
  54.        77  BR-TOT-CHG              PIC S9(13)V99 VALUE 0.
  55.  
  56.        77  WS-DATE-YYYY            PIC 9(4).
  57.        77  WS-DATE-MM              PIC 9(2).
  58.        77  WS-DATE-DD              PIC 9(2).
  59.        77  WS-TIME-HH              PIC 9(2).
  60.        77  WS-TIME-MM              PIC 9(2).
  61.  
  62.        * Edited fields for display (with trailing minus like sample)
  63.        01  EDIT-FIELDS.
  64.            05 E-BRANCH         PIC ZZ9.
  65.            05 E-CUST-NUM       PIC Z(5).
  66.            05 E-CUST-NAME      PIC X(28).
  67.            05 E-THIS           PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  68.            05 E-LAST           PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  69.            05 E-CHG            PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  70.            05 E-PCT            PIC ZZZ9.9-.
  71.            05 E-BR-TOT-THIS    PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  72.            05 E-BR-TOT-LAST    PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  73.            05 E-BR-TOT-CHG     PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  74.  
  75.        01  WS-HEAD1.
  76.            05 FILLER PIC X(90)
  77.                VALUE "------------------------------------------------------------------------------------------".
  78.        01  WS-HEAD2.
  79.            05 FILLER PIC X(7)  VALUE "DATE:  ".
  80.            05 H-DATE PIC X(10) VALUE SPACES.
  81.            05 FILLER PIC X(11) VALUE SPACES.
  82.            05 FILLER PIC X(29) VALUE "YEAR-TO-DATE SALES REPORT".
  83.            05 FILLER PIC X(18) VALUE SPACES.
  84.            05 FILLER PIC X(7)  VALUE "PAGE: ".
  85.            05 H-PAGE PIC X(4)  VALUE SPACES.
  86.        01  WS-HEAD3.
  87.            05 FILLER PIC X(7)  VALUE "TIME:  ".
  88.            05 H-TIME PIC X(5)  VALUE SPACES.
  89.            05 FILLER PIC X(58) VALUE SPACES.
  90.            05 FILLER PIC X(6)  VALUE "RPT1000".
  91.        01  WS-HEAD4.
  92.            05 FILLER PIC X(90)
  93.                VALUE "------------------------------------------------------------------------------------------".
  94.        01  WS-HEAD5.
  95.            05 FILLER PIC X(2)  VALUE SPACES.
  96.            05 FILLER PIC X(6)  VALUE "BRANCH".
  97.            05 FILLER PIC X(3)  VALUE SPACES.
  98.            05 FILLER PIC X(4)  VALUE "CUST".
  99.            05 FILLER PIC X(28) VALUE SPACES.
  100.            05 FILLER PIC X(5)  VALUE "SALES".
  101.            05 FILLER PIC X(11) VALUE SPACES.
  102.            05 FILLER PIC X(5)  VALUE "SALES".
  103.            05 FILLER PIC X(9)  VALUE SPACES.
  104.            05 FILLER PIC X(6)  VALUE "CHANGE".
  105.            05 FILLER PIC X(5)  VALUE SPACES.
  106.            05 FILLER PIC X(6)  VALUE "CHANGE".
  107.        01  WS-HEAD6.
  108.            05 FILLER PIC X(2)  VALUE SPACES.
  109.            05 FILLER PIC X(4)  VALUE "NUM".
  110.            05 FILLER PIC X(5)  VALUE SPACES.
  111.            05 FILLER PIC X(3)  VALUE "NUM".
  112.            05 FILLER PIC X(2)  VALUE SPACES.
  113.            05 FILLER PIC X(13) VALUE "CUSTOMER NAME".
  114.            05 FILLER PIC X(14) VALUE SPACES.
  115.            05 FILLER PIC X(9)  VALUE "THIS YTD".
  116.            05 FILLER PIC X(6)  VALUE SPACES.
  117.            05 FILLER PIC X(8)  VALUE "LAST YTD".
  118.            05 FILLER PIC X(7)  VALUE SPACES.
  119.            05 FILLER PIC X(6)  VALUE "AMOUNT".
  120.            05 FILLER PIC X(5)  VALUE SPACES.
  121.            05 FILLER PIC X(7)  VALUE "PERCENT".
  122.        01  WS-HEAD7.
  123.            05 FILLER PIC X(90)
  124.                VALUE "------------------------------------------------------------------------------------------".
  125.        01  WS-HEAD8.
  126.            05 FILLER PIC X(90)
  127.                VALUE "------------------------------------------------------------------------------------------".
  128.  
  129.        01  DETAIL-LINE.
  130.            05 FILLER         PIC X(1)  VALUE SPACE.
  131.            05 D-BRANCH       PIC ZZ9.
  132.            05 FILLER         PIC X(3)  VALUE SPACE.
  133.            05 D-CUST-NUM     PIC Z(5).
  134.            05 FILLER         PIC X(2)  VALUE SPACE.
  135.            05 D-CUST-NAME    PIC X(28).
  136.            05 FILLER         PIC X(2)  VALUE SPACE.
  137.            05 D-THIS         PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  138.            05 FILLER         PIC X(5)  VALUE SPACE.
  139.            05 D-LAST         PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  140.            05 FILLER         PIC X(6)  VALUE SPACE.
  141.            05 D-CHG          PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  142.            05 FILLER         PIC X(4)  VALUE SPACE.
  143.            05 D-PCT          PIC ZZZ9.9-.
  144.  
  145.        01  BRANCH-TOTAL-LINE.
  146.            05 FILLER         PIC X(20) VALUE SPACES.
  147.            05 FILLER         PIC X(20) VALUE "BRANCH TOTAL".
  148.            05 FILLER         PIC X(6)  VALUE SPACES.
  149.            05 BT-THIS        PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  150.            05 FILLER         PIC X(5)  VALUE SPACES.
  151.            05 BT-LAST        PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  152.            05 FILLER         PIC X(5)  VALUE SPACES.
  153.            05 BT-CHG         PIC ZZ,ZZZ,ZZZ,ZZ9.99-.
  154.  
  155.        01  FILL-LINE         PIC X(1) VALUE SPACE.
  156.  
  157.        01  CD                PIC X(21).
  158.            88  CD-VALID      VALUE "YYYYMMDDHHMMSS+HHMM".
  159.        01  CURR-DATE         REDEFINES CD.
  160.            05 CD-YYYY        PIC 9(4).
  161.            05 CD-MM          PIC 9(2).
  162.            05 CD-DD          PIC 9(2).
  163.            05 CD-HH          PIC 9(2).
  164.            05 CD-MI          PIC 9(2).
  165.            05 CD-SS          PIC 9(2).
  166.            05 CD-GMT         PIC X(5).
  167.  
  168.        PROCEDURE DIVISION.
  169.        MAIN-LOGIC.
  170.            OPEN INPUT  CUST-FILE
  171.                 OUTPUT RPT-FILE
  172.            IF CUST-STATUS NOT = "00" AND CUST-STATUS NOT = "97"
  173.               DISPLAY "OPEN ERROR CUST-FILE STATUS=" CUST-STATUS
  174.               STOP RUN
  175.            END-IF
  176.            IF RPT-STATUS NOT = "00"
  177.               DISPLAY "OPEN ERROR RPT-FILE STATUS=" RPT-STATUS
  178.               STOP RUN
  179.            END-IF
  180.  
  181.            MOVE FUNCTION CURRENT-DATE TO CD
  182.            MOVE CD-DD  TO WS-DATE-DD
  183.            MOVE CD-MM  TO WS-DATE-MM
  184.            MOVE CD-YYYY TO WS-DATE-YYYY
  185.            MOVE CD-HH  TO WS-TIME-HH
  186.            MOVE CD-MI  TO WS-TIME-MM
  187.  
  188.            PERFORM PRINT-HEADERS
  189.  
  190.            READ CUST-FILE NEXT RECORD
  191.                 AT END GO TO CLOSE-AND-EXIT
  192.            END-READ
  193.  
  194.            PERFORM UNTIL CUST-STATUS = "10"
  195.               IF FIRST-RECORD = "Y"
  196.                  MOVE BRANCH-NUM TO CURR-BRANCH
  197.                  MOVE "N" TO FIRST-RECORD
  198.               END-IF
  199.  
  200.               IF BRANCH-NUM NOT = CURR-BRANCH
  201.                  PERFORM PRINT-BRANCH-TOTALS
  202.                  MOVE BRANCH-NUM TO CURR-BRANCH
  203.                  MOVE 0 TO BR-TOT-THIS BR-TOT-LAST BR-TOT-CHG
  204.                  PERFORM CHECK-PAGE-LINES
  205.               END-IF
  206.  
  207.               PERFORM BUILD-AND-WRITE-DETAIL
  208.  
  209.               ADD SALES-THIS-YTD  TO BR-TOT-THIS
  210.               ADD SALES-LAST-YTD  TO BR-TOT-LAST
  211.               ADD CHANGE-AMT      TO BR-TOT-CHG
  212.  
  213.               READ CUST-FILE NEXT RECORD
  214.                  AT END
  215.                     PERFORM PRINT-BRANCH-TOTALS
  216.                     EXIT PERFORM
  217.               END-READ
  218.            END-PERFORM
  219.  
  220.        CLOSE-AND-EXIT.
  221.            CLOSE CUST-FILE RPT-FILE
  222.  
  223.            CALL "genaicob" USING "report.txt" & X"00".
  224.  
  225.            STOP RUN.
  226.  
  227.        PRINT-HEADERS.
  228.            MOVE WS-DATE-DD  TO H-DATE (1:2)
  229.            MOVE "/"         TO H-DATE (3:1)
  230.            MOVE WS-DATE-MM  TO H-DATE (4:2)
  231.            MOVE "/"         TO H-DATE (6:1)
  232.            MOVE WS-DATE-YYYY TO H-DATE (7:4)
  233.  
  234.            MOVE WS-TIME-HH  TO H-TIME (1:2)
  235.            MOVE ":"         TO H-TIME (3:1)
  236.            MOVE WS-TIME-MM  TO H-TIME (4:2)
  237.  
  238.            MOVE PAGE-NO TO H-PAGE
  239.            INSPECT H-PAGE REPLACING LEADING SPACES BY "0"
  240.  
  241.            MOVE WS-HEAD1 TO RPT-LINE  WRITE RPT-LINE
  242.            MOVE WS-HEAD2 TO RPT-LINE  WRITE RPT-LINE
  243.            MOVE WS-HEAD3 TO RPT-LINE  WRITE RPT-LINE
  244.            MOVE WS-HEAD4 TO RPT-LINE  WRITE RPT-LINE
  245.            MOVE WS-HEAD5 TO RPT-LINE  WRITE RPT-LINE
  246.            MOVE WS-HEAD6 TO RPT-LINE  WRITE RPT-LINE
  247.            MOVE WS-HEAD7 TO RPT-LINE  WRITE RPT-LINE
  248.            MOVE WS-HEAD8 TO RPT-LINE  WRITE RPT-LINE
  249.            MOVE 8 TO LINE-COUNT
  250.            .
  251.  
  252.        CHECK-PAGE-LINES.
  253.            IF LINE-COUNT > (LINES-PER-PAGE - 5)
  254.               ADD 1 TO PAGE-NO
  255.               MOVE 0 TO LINE-COUNT
  256.               PERFORM PRINT-HEADERS
  257.            END-IF
  258.            .
  259.  
  260.        BUILD-AND-WRITE-DETAIL.
  261.            PERFORM CHECK-PAGE-LINES
  262.  
  263.            COMPUTE CHANGE-AMT = SALES-THIS-YTD - SALES-LAST-YTD
  264.  
  265.            IF SALES-LAST-YTD = 0
  266.               IF SALES-THIS-YTD = 0
  267.                  MOVE 0     TO CHANGE-PCT
  268.               ELSE
  269.                  MOVE 9999  TO CHANGE-PCT *> 999.9 shown by edited mask
  270.                  MOVE 9 TO CHANGE-PCT     *> ensure one decimal as 999.9
  271.                  COMPUTE CHANGE-PCT = 999.9
  272.               END-IF
  273.            ELSE
  274.               COMPUTE CHANGE-PCT =
  275.                   (CHANGE-AMT / SALES-LAST-YTD) * 100
  276.            END-IF
  277.  
  278.            MOVE BRANCH-NUM      TO D-BRANCH
  279.            MOVE CUST-NUM        TO D-CUST-NUM
  280.            MOVE CUST-NAME       TO D-CUST-NAME
  281.  
  282.            MOVE SALES-THIS-YTD  TO D-THIS
  283.            MOVE SALES-LAST-YTD  TO D-LAST
  284.            MOVE CHANGE-AMT      TO D-CHG
  285.            MOVE CHANGE-PCT      TO D-PCT
  286.  
  287.            *> For subsequent lines under same branch, blank the branch field
  288.            IF CUST-NUM NOT = 0
  289.               CONTINUE
  290.            END-IF
  291.  
  292.            MOVE DETAIL-LINE TO RPT-LINE
  293.            WRITE RPT-LINE
  294.            ADD 1 TO LINE-COUNT
  295.            .
  296.  
  297.        PRINT-BRANCH-TOTALS.
  298.            PERFORM CHECK-PAGE-LINES
  299.  
  300.            MOVE BR-TOT-THIS TO BT-THIS
  301.            MOVE BR-TOT-LAST TO BT-LAST
  302.            COMPUTE BR-TOT-CHG = BR-TOT-THIS - BR-TOT-LAST
  303.            MOVE BR-TOT-CHG  TO BT-CHG
  304.  
  305.            MOVE SPACES TO RPT-LINE
  306.            WRITE RPT-LINE
  307.            ADD 1 TO LINE-COUNT
  308.  
  309.            MOVE BRANCH-TOTAL-LINE TO RPT-LINE
  310.            WRITE RPT-LINE
  311.            ADD 1 TO LINE-COUNT
  312.  
  313.            MOVE SPACES TO RPT-LINE
  314.            WRITE RPT-LINE
  315.            ADD 1 TO LINE-COUNT
  316.            .
Eslopes is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:55.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.