RPV Reports / Usage Examples
 
Search in RpvSoftware.com
Go!                                         English    Español

What Rpv is

Rpv Reports 2024

Downloads

Training/Consultancy

Support

Purchase

Contact

 
Home > Usage Examples
C++
Este ejemplo muestra como preparar un reporte usando C++ & RPV Reports.

Este programa lee el archivo person.dat (puede encontrarlo en C:\Program Files\Rpv\Samples cuando RPV Reports es instalado) y genera el reporte "employees" que viene con la versión demo.

Este ejemplo pone en rojo todos los salarios menores a 1400; esa es la razon del if.

Información Adicional
- Note que en C++ se deben usar barras dobles. Por ejemplo, "{\n}" debe expresarse como "{\\n}". Verá esto también al especificar una ruta de acceso.
Code
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/*
 Autor: Racav 

 Este ejemplo muestra como crear el fichero "EMPLOYEES.RPV" utilizando C++.
 Tome en cuenta que el fichero "PERSON.DAT" se encuentra en "archivos de programa". 
 Si Ud. no cuenta con una versión de Windows en español, entonces deberá cambiarlo
 por el directorio correcto.

 El programador utiliza la rutina "*separate_words" para separar la linea utilizando
 la coma como delimitador.
*/
 
char *separate_words(char *word1,char separator,int num_word);

void main(void)
{
        FILE *in, *out;
        char buff[256];
        char sep_buff[256];

        out = fopen("C:\archivos de programa\rpv\samples\employees.rpv","wt");

        fputs("report_title=Reporte Employees utilizando C++n",out);
        fputs("orientation=2n",out);
        fputs("open_viewn",out);
        fputs("spacing=250n",out);
        fputs("$c0=400n",out);
        fputs("$c1=1000n",out);
        fputs("$c2=3400n",out);
        fputs("$c3=6800n",out);
        fputs("$c4=8400n",out);
        fputs("$c5=11000n",out);
        fputs("$c6=13000n",out);
        fputs("$c7=13200n",out);
        fputs("[header]n",out);
        fputs("{f=arial;s=8}n",out);
        fputs("{pic=c:\archivos de programa\rpv\samples\rpvlogo.bmp;400,400,1400,900}n",out);
        fputs("{\n;$c7} Page {12800;pag}n",out);
        fputs("{s=16;\n;1800;c=2;b=y} Sample Application Report {spacing=350;\n}n",out);
        fputs("{c=1;1800} Employees Report {\n}n",out);
        fputs("{c=0;b=n;\n;\n;\n}n",out);
        fputs("{line=400,14000;\n}n",out);
        fputs("{s=8;b=y;$c0} Id {$c1} Name {$c2} Address {$c3} Phone {$c4} E-Mail",out);
        fputs("{$c5} Birth Date {a=r;$c6} Monsalary {a=l;$c7} Schedule {b=n;spacing=375;\n}n",out);
        fputs("{line=400,14000;\n}n",out);
        fputs("[data]n",out);


        in = fopen("c:\archivos de programa\samples\person.dat", "rt");

        while (!feof(in))
{
fgets(buff,256,in);

strcpy(sep_buff,separate_words(buff,',',1));
fputs("{$c0}",out);
fprintf(out,"%s",sep_buff);
strcpy(sep_buff,separate_words(buff,',',2));
fputs("{$c1}",out);
fprintf(out,"%s",sep_buff);
strcpy(sep_buff,separate_words(buff,',',3));
fputs("{$c2}",out);
fprintf(out,"%s",sep_buff);
strcpy(sep_buff,separate_words(buff,',',4));
fputs("{$c3}",out);
fprintf(out,"%s",sep_buff);
strcpy(sep_buff,separate_words(buff,',',6));
fputs("{$c4}",out);
fprintf(out,"%s",sep_buff);
strcpy(sep_buff,separate_words(buff,',',7));
fputs("{$c5}",out);
fprintf(out,"%s",sep_buff);

strcpy(sep_buff,separate_words(buff,',',8));

/* si la palabra número 8 (mon salary) < que 1400 se torna rojo */
                 if (atoi(sep_buff) < 1400)
fputs("{a=r;$c6;c=12}",out);
else
fputs("{a=r;$c6}",out);

fprintf(out,"%s",sep_buff);

strcpy(sep_buff,separate_words(buff,',',10));
fputs("{c=0;a=l;$c7}",out);
fprintf(out,"%s",sep_buff);
fputs("{\n}n",out);

}

fclose(in);
fclose(out);
}

char *separate_words(char *word1,char separator,int num_word)
{
        char buff[256];
        int buff1;
        int cc=0;
        int j=0;

        for (int i=0;i<strlen(word1);i++)
{
                if (word1[i] != separator)
{
                        buff1 = word1[i];
                        buff[j] = buff1;
j++;
}
else
{
cc++;
                        if (cc == num_word)
break;
else
{
buff[0]='';
j=0;
}
}
}

        buff[j] = '';
        return buff;
}

Home
What Rpv is
Rpv Reports 2024

Products
Rpv Reports 2024
Personalized edition

More...
Downloads
Support
Rpv Reports Online help
Rpv Visual Editor online help
Examples
/temp section
Videos




Copyright (c) 2001-2024 - Rpv Software. All rights reserved.