RPV Reports / Usage Examples
 
Search in RpvSoftware.com
Go!

What Rpv is

Rpv Reports 6

Downloads

Support

Purchase

Contact

 

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /home/rpvsoftw/public_html/viewexample.php on line 49
Home > Usage Examples
C++
This example shows how to prepare a report using C++ programming language & RPV Reports.

This C++ program reads the person.dat file (you can find this file at C:\Program Files\Rpv\Samples when RPV Reports is installed) and generates the same "employees" report that you can see on Sample application. This Sample application comes with the demo versions.

This example turns in red all those monthly salaries below 1400; that is the reason of the if.

Important aditional information
- Please observe that in "C++" we must use double backslash many times. For example "{\n}" must be expressed as "{\\n}". You will see this also when mentioning any path.
Code
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/*
 Author: Racav 

 This example shows how to create "EMPLOYEES.RPV" report using C++ language.
 Take into account that file "PERSON.DAT" is in "program files". If you don't have an ENGLISH
 version of Windows, you should change that by the right directory.

 Programmer uses "*separate_words" routine to separate the line using comma.
*/

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:\program files\rpv\samples\employees.rpv","wt");

        fputs("report_title=Employees report Example with 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:\program files\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:\program files\rpv\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));

/* If the word number 8 (mon salary) < than 1400 then turns red */
                 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 6

Products
Rpv Reports 6
Personalized edition
Rpv Business Reports
Rpv Reports Steel

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




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