Ejemplo para PowerCobol.


Desarrollado por José Holzmann*, este ejemplo demuestra  la utilización de Rpv en PowerCobol. Descargar archivo ZIP con el ejemplo.

* José Holzmann es un gurú del PowerCobol que ofrece valiosos recursos on-line. Recomendamos ampliamente visitar su página en http://ar.geocities.com/pcobolar

WORKING-STORAGE SECTION.
77 columna pic 9(5).
77 idx pic 9(4).
77 ciclo pic 9(4).
77 ptr pic s9(5) comp-5.
77 intp pic 9(4).
77 remp pic 9.
77 nro pic s9(9)v99.

01 lineas.
   02 part1.
      03 pic x(9) value "Linea N° ".
      03 l-01n pic 9(4).
   02 part2.
      03 pic x(38) value "Detalle correspondiente a la linea N° ".
      03 l-02n pic 9(4).
*> ---------------------------------------------------------------
   02 nro-e pic $$$.$$$.$$9,99. *> CHANGE THIS EDIT FIELD ACCORDING
                                   YOUR REGIONAL SETTINGS
*> ---------------------------------------------------------------
PROCEDURE DIVISION.
   move "Text" OF titulo to wtitulo
   move "Text" OF CmCombo1 to ciclo
* Initialization
   open output rpv-file
   move "report_title=From PowerCOBOL - by Jose Holzmann" to rpv-line
   write rpv-rcd
   move "papersize=letter" to rpv-line *> A4, letter, legal, Ejecutive
   write rpv-rcd
   move "spacing=250" to rpv-line
   write rpv-rcd

   move spaces to rpv-line
   move "Caption" OF CmStatic6 to columna
   string "$c1=" delimited by size
   columna delimited by " " into rpv-line
   write rpv-rcd
   move "Caption" OF CmStatic7 to columna
   string "$c2=" delimited by size
   columna delimited by " " into rpv-line
   write rpv-rcd
   move "Caption" OF CmStatic8 to columna
   string "$c3=" delimited by size
   columna delimited by " " into rpv-line
   write rpv-rcd

* Header
   move "[Header]" to rpv-line
   write rpv-rcd
   move "{f=arial;s=8}" to rpv-line
   write rpv-rcd
   move "{pic=bar.bmp,400,400,750,490}" to rpv-line
   write rpv-rcd
   move "{\n;a=r;10400} Pagina {a=r;11000;pag}" to rpv-line
   write rpv-rcd
   string "{s=16;\n;11000;c=3;b=y;a=r}" delimited by size
   wtitulo delimited by size
   "{spacing=420;c=0;\n}" delimited by size into rpv-line
   write rpv-rcd
   move "{LINE=400,11000}{spacing=60;\n}" to rpv-line
   write rpv-rcd
   move
   "{s=8;b=y;a=l;$c1}Numero{$c2}Descripcion{a=r;$c3}Importe{a=l;b=n;spacing=250;\n}"
   to rpv-line
   write rpv-rcd
   move "{LINE=400,11000;\n}" to rpv-line
   write rpv-rcd

* Data
   move "[Data]" to rpv-line
   write rpv-rcd
   move 0 to idx
   perform ciclo times
      add 1 to idx
      divide idx by 2 giving intp remainder remp
      compute nro = idx * 100 / 3
      move nro to nro-e
      move idx to l-01n l-02n
      move spaces to rpv-line
      move 1 to ptr
      string "{a=l;$c1}" delimited by size into rpv-line pointer ptr
      string part1 delimited by size into rpv-line pointer ptr
      string "{$c2}" delimited by size into rpv-line pointer ptr
      string part2 delimited by size into rpv-line pointer ptr
      if remp = 0
         if lp-d
            string "{a=r;c=0;$c3}" delimited by size into rpv-line pointer
            ptr
         end-if
         if lp-r
            string "{a=r;c=12;$c3}" delimited by size into rpv-line
            pointer ptr
         end-if
         if lp-g
            string "{a=r;c=10;$c3}" delimited by size into rpv-line
            pointer ptr
         end-if
         if lp-b
            string "{a=r;c=9;$c3}" delimited by size into rpv-line pointer
            ptr
         end-if
      else
         if li-d
            string "{a=r;c=0;$c3}" delimited by size into rpv-line pointer
            ptr
         end-if
         if li-r
            string "{a=r;c=12;$c3}" delimited by size into rpv-line
            pointer ptr
         end-if
         if li-g
            string "{a=r;c=10;$c3}" delimited by size into rpv-line
            pointer ptr
         end-if
         if li-b
            string "{a=r;c=9;$c3}" delimited by size into rpv-line pointer
            ptr
         end-if
      end-if
      string nro-e delimited by size into rpv-line pointer ptr
      string "{c=0;\n}" delimited by size into rpv-line pointer ptr
      write rpv-rcd
   end-perform
   close rpv-file
   INVOKE CmDDE1 "Execute" USING "C:\Archivos de programa\Rpv\RPV pwc.rpv"
   POW-SWSHOWMAXIMIZED