978 lines
34 KiB
C++
978 lines
34 KiB
C++
/*************************************************************************\
|
||
|* *|
|
||
|* HERM_LST *|
|
||
|* *|
|
||
|* Descripci¢n: *|
|
||
|* Listados por pantalla e impresos (RAPIDOS) *|
|
||
|* *|
|
||
\*************************************************************************/
|
||
|
||
#include <stdlib.h>
|
||
#include <conio.h>
|
||
#include <alloc.h>
|
||
#include <string.h>
|
||
#include <graphics.h>
|
||
|
||
#include "..\libs\make_bot\make_bot.h"
|
||
#include "..\libs\bdatos\bdatos.hh"
|
||
#include "Herm.h"
|
||
|
||
#define AVANCES_DE_PAGINA 37
|
||
|
||
|
||
void ImprimeEtiquetas(void);
|
||
void ImprimeFacturas(void);
|
||
|
||
void OptenPaginasIniFin( int *Inicio, int *Fin, int NRegistros );
|
||
|
||
void ImprimeListaSitios(void);
|
||
void MuestraLinea(int Tipo_de_Listado);
|
||
void ImprimeLinea( int Tipo_de_Listado, FILE *file_out );
|
||
void ImprimePaginas( int Tipo_de_Listado );
|
||
void MuestraPagina( int adelante_atras, int Tipo_de_Listado );
|
||
void Escr_Mensaje(char *Encabezado, char lineas, char Mensaje[][50] );
|
||
|
||
extern void ImprimeFicha(void);
|
||
extern void CodigoImpresora( char *codigo );
|
||
extern int ComparaRegistros( const void *A, const void *B );
|
||
|
||
extern char FICHA_REGISTRO;
|
||
|
||
extern struct date FechaActual;
|
||
|
||
extern CONFIG Config;
|
||
extern BDatos BConfig;
|
||
|
||
extern BDatos BHerm;
|
||
extern HermStruct SHerm, BHtmp;
|
||
|
||
extern BDatos BHBorrados;
|
||
extern HERMBORRADOS HermanosBorrados;
|
||
|
||
void ListadosRapidos( int Tipo_de_Listado )
|
||
{
|
||
char Mensaje[][50] = { "La base de Datos", "esta vacia." };
|
||
char File[80];
|
||
int ok = 0, BPush;
|
||
True_Push = 0;
|
||
|
||
int HnoHna;
|
||
|
||
if ( Optar( 1, "BASE A LISTAR", "Aceptar: HERMANOS", "Cancelar: HERMANAS", NULL ) )
|
||
HnoHna = HERMANOS;
|
||
else
|
||
HnoHna = HERMANAS;
|
||
|
||
getdate( &FechaActual );
|
||
|
||
strcpy( BHerm.MyHeader.ProgName, "Hermadad" );
|
||
BHerm.MyHeader.VerHi = 1;
|
||
BHerm.MyHeader.VerLow = 0;
|
||
|
||
Imprime_Estaticos(60, "Herm.img");
|
||
|
||
settextstyle( SMALL_FONT, HORIZ_DIR, 4 );
|
||
|
||
// Base de Datos
|
||
if ( HnoHna == HERMANOS )
|
||
{
|
||
strcpy( File, "datos\\hermanos.dbf" );
|
||
FICHA_REGISTRO = 0;
|
||
} else {
|
||
strcpy( File, "datos\\hermanas.dbf" );
|
||
FICHA_REGISTRO = 1;
|
||
}
|
||
|
||
if ( BHerm.AbrirReg( File, sizeof( HermStruct ) ) != OK )
|
||
Error(BHerm.cError);
|
||
|
||
if ( BHerm.Registros() == 0 )
|
||
{
|
||
Escr_Mensaje( "ERROR", 2, Mensaje );
|
||
BHerm.CerrarReg();
|
||
} else {
|
||
if ( Tipo_de_Listado == TUNICA_HDAD && Config.item_ordenado[FICHA_REGISTRO] != 9 )
|
||
{
|
||
Imprime_Estaticos(20, "Herm.img");
|
||
|
||
settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
|
||
|
||
|
||
setcolor( 63 ); outtextxy( 172, 165, " Comando Ordenar" );
|
||
setcolor( ROJO );
|
||
|
||
outtextxy( 172, 200+20*1, " Preparando base de Datos" );
|
||
outtextxy( 172, 200+20*2, " Por favor, espere..." );
|
||
|
||
Config.item_ordenado[FICHA_REGISTRO] = 8;
|
||
if ( BConfig.EscribeReg((void *)&Config, 0) != OK )
|
||
Error(BConfig.cError);
|
||
BHerm.SortReg(ComparaRegistros);
|
||
|
||
Imprime_Estaticos(60, "Herm.img");
|
||
|
||
settextstyle( SMALL_FONT, HORIZ_DIR, 4 );
|
||
|
||
} else
|
||
if ( Tipo_de_Listado == FACTURAS )
|
||
{
|
||
ImprimeFacturas();
|
||
BHerm.CerrarReg();
|
||
return ;
|
||
} else
|
||
if ( Tipo_de_Listado == ETIQUETAS )
|
||
{
|
||
ImprimeEtiquetas();
|
||
BHerm.CerrarReg();
|
||
return ;
|
||
}
|
||
|
||
}
|
||
|
||
BHerm.LeeReg( (void *)&SHerm, 0 );
|
||
MuestraLinea(Tipo_de_Listado);
|
||
MuestraPagina( 1, Tipo_de_Listado);
|
||
|
||
while( !ok )
|
||
{
|
||
BPush = Comprueba_Secuencia( 4, NULL );
|
||
switch ( BPush )
|
||
{
|
||
case 0: // No se pulso ningun BOTON
|
||
while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER
|
||
// El raton todav¡a sigue pulsado
|
||
break;
|
||
case -2:
|
||
if ( (BPush = getch()) != 27 )
|
||
{
|
||
while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER
|
||
} else { ok = 1; }
|
||
break;
|
||
// Tecla Normal
|
||
case -1: // Hay una tecla especial en BUFFER
|
||
// La eliminamos
|
||
while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER
|
||
break;
|
||
|
||
// INICIO DE BOTONES
|
||
// Retroceso
|
||
case 1:
|
||
MuestraPagina( -1, Tipo_de_Listado );
|
||
break;
|
||
// Imprimir
|
||
case 2:
|
||
if ( Tipo_de_Listado == PAPELETAS_SITIO )
|
||
ImprimeListaSitios();
|
||
else
|
||
ImprimePaginas( Tipo_de_Listado );
|
||
break;
|
||
// Avance
|
||
case 3:
|
||
MuestraPagina( 1, Tipo_de_Listado );
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
BHerm.CerrarReg();
|
||
}
|
||
|
||
|
||
|
||
void MuestraPagina( int adelante_atras, int Tipo_de_Listado )
|
||
{
|
||
long i, CurrReg;
|
||
static long antigua_pos = 0;
|
||
int virtual_pos = 0;
|
||
char buffer[500];
|
||
|
||
CurrReg = BHerm.RegActual();
|
||
|
||
if ( (CurrReg == 0 && adelante_atras == -1) )
|
||
return;
|
||
setfillstyle(SOLID_FILL, BLANCO);
|
||
bar( 11, 66, 634, 449 );
|
||
setcolor( AZUL );
|
||
|
||
|
||
if ( adelante_atras == -1 )
|
||
{
|
||
CurrReg = antigua_pos;
|
||
virtual_pos = AVANCES_DE_PAGINA-1;
|
||
} else {
|
||
virtual_pos = 0;
|
||
antigua_pos = BHerm.RegActual();
|
||
}
|
||
|
||
|
||
for( i=CurrReg; ( virtual_pos >= 0 && virtual_pos < AVANCES_DE_PAGINA && i >= 0 && i < BHerm.Registros() ) ; i+= adelante_atras )
|
||
{
|
||
if ( BHerm.LeeReg( (void *)&SHerm, i ) != OK ) return;
|
||
switch( Tipo_de_Listado )
|
||
{
|
||
case VOTANTES:
|
||
// si cumple los requisitos
|
||
if ( SHerm.Varios.PuedVotar )
|
||
{
|
||
// 12345 123456789-12345 123456789-12345 123456789-12345 123456789-123456789- 12-12-1234 12-12-1234
|
||
sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
|
||
outtextxy( 10, 75+10*virtual_pos, buffer );
|
||
// Los apellidos seran unidos
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[21] = '\0';
|
||
outtextxy( 140, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
|
||
outtextxy( 265, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%02d-%02d-%04d %02d-%02d-%04d"
|
||
,(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, SHerm.Antig.da_year,
|
||
(int)SHerm.FechaN.da_day, (int)SHerm.FechaN.da_mon, SHerm.FechaN.da_year
|
||
);
|
||
outtextxy( 505, 75+10*virtual_pos, buffer );
|
||
|
||
|
||
virtual_pos +=adelante_atras;
|
||
}
|
||
break;
|
||
case PAPELETAS_SITIO:
|
||
if ( SHerm.Varios.RealPenit )
|
||
{
|
||
// si cumple los requisitos
|
||
// 12345 123456789-12345 123456789-12345 123456789-12345 123456789-123456789- 12-12-1234 12-12-1234
|
||
sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
|
||
outtextxy( 10, 75+10*virtual_pos, buffer );
|
||
// Los apellidos seran unidos
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[21] = '\0';
|
||
outtextxy( 140, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
|
||
outtextxy( 265, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%02d-%02d-%04d %s"
|
||
,(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, SHerm.Antig.da_year,
|
||
SHerm.Telefono1
|
||
);
|
||
outtextxy( 505, 75+10*virtual_pos, buffer );
|
||
virtual_pos +=adelante_atras;
|
||
}
|
||
break;
|
||
case GRAL_HERMANOS:
|
||
case GRAL_HERM_RAP:
|
||
// si cumple los requisitos
|
||
// 12345 123456789-12345 123456789-12345 123456789-12345 123456789-123456789- 12-12-1234 12-12-1234
|
||
sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
|
||
outtextxy( 10, 75+10*virtual_pos, buffer );
|
||
// Los apellidos seran unidos
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[21] = '\0';
|
||
outtextxy( 140, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
|
||
outtextxy( 265, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%02d-%02d-%04d %s"
|
||
,(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, (int)SHerm.Antig.da_year,
|
||
SHerm.Telefono1
|
||
);
|
||
outtextxy( 505, 75+10*virtual_pos, buffer );
|
||
virtual_pos +=adelante_atras;
|
||
break;
|
||
case RECIBE_NOTIFIC:
|
||
// si cumple los requisitos
|
||
if ( SHerm.Varios.Notific )
|
||
{
|
||
sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
|
||
outtextxy( 10, 75+10*virtual_pos, buffer );
|
||
// Los apellidos seran unidos
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[21] = '\0';
|
||
outtextxy( 140, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
|
||
outtextxy( 265, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%-15s", SHerm.Poblacion );
|
||
outtextxy( 505, 75+10*virtual_pos, buffer );
|
||
virtual_pos +=adelante_atras;
|
||
}
|
||
break;
|
||
case ACOGIDOS_CUOT:
|
||
// si cumple los requisitos
|
||
if ( SHerm.Varios.CuotaFam )
|
||
{
|
||
sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
|
||
outtextxy( 10, 75+10*virtual_pos, buffer );
|
||
// Los apellidos seran unidos
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[21] = '\0';
|
||
outtextxy( 120, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
|
||
outtextxy( 265, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%-15s", SHerm.Poblacion );
|
||
outtextxy( 505, 75+10*virtual_pos, buffer );
|
||
virtual_pos +=adelante_atras;
|
||
}
|
||
break;
|
||
case TUNICA_HDAD:
|
||
// si cumple los requisitos
|
||
if ( SHerm.Varios.TunicaHd )
|
||
{
|
||
sprintf( buffer, "%5ld %-15s", SHerm.NHno, SHerm.Nombre );
|
||
outtextxy( 10, 75+10*virtual_pos, buffer );
|
||
// Los apellidos seran unidos
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[21] = '\0';
|
||
outtextxy( 140, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? "," : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
|
||
outtextxy( 265, 75+10*virtual_pos, buffer );
|
||
sprintf( buffer, "%02d-%02d-%04d %4ld"
|
||
,(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, SHerm.Antig.da_year,
|
||
(int)SHerm.NTunica
|
||
);
|
||
outtextxy( 505, 75+10*virtual_pos, buffer );
|
||
virtual_pos +=adelante_atras;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
if ( adelante_atras == -1 )
|
||
antigua_pos = BHerm.RegActual();
|
||
|
||
}
|
||
|
||
void MuestraLinea(int Tipo_de_Listado)
|
||
{
|
||
char buffer[500];
|
||
|
||
buffer[0] = '\0';
|
||
switch( Tipo_de_Listado )
|
||
{
|
||
case VOTANTES:
|
||
sprintf( buffer, "N§Hno Nombre (completo) Direccion Antig<69>edad F.Nacimiento");
|
||
break;
|
||
case GRAL_HERMANOS:
|
||
sprintf( buffer, "N§Hno Nombre (completo) Direccion Antig<69>edad Telefono");
|
||
break;
|
||
case GRAL_HERM_RAP:
|
||
sprintf( buffer, "N§Hno Nombre (completo) Direccion Antig<69>edad Telefono");
|
||
break;
|
||
case ACOGIDOS_CUOT:
|
||
sprintf( buffer, "N§Hno Nombre (completo) Direccion Poblacion");
|
||
break;
|
||
case RECIBE_NOTIFIC:
|
||
sprintf( buffer, "N§Hno Nombre (completo) Direccion Poblacion");
|
||
break;
|
||
case TUNICA_HDAD:
|
||
sprintf( buffer, "N§Hno Nombre (completo) Direccion Antig<69>edad N§ Tunica");
|
||
break;
|
||
case PAPELETAS_SITIO:
|
||
sprintf( buffer, "N§Hno Nombre (completo) Direccion Antig<69>edad Telefono");
|
||
break;
|
||
}
|
||
outtextxy( 12, 45, buffer );
|
||
}
|
||
|
||
|
||
|
||
|
||
void ImprimePaginas( int Tipo_de_Listado )
|
||
{
|
||
long i, CurrReg, lineas_impresas = 0;
|
||
char buffer[500];
|
||
FILE *file_out;
|
||
|
||
|
||
CurrReg = BHerm.RegActual();
|
||
|
||
while ( !Comprueba_Impresora() )
|
||
{
|
||
if ( !Optar( 1, "ERROR IMPRESORA", "Encienda la impresora", "y pulse ACEPTAR para continuar", NULL ) )
|
||
return;
|
||
};
|
||
|
||
switch ( Tipo_de_Listado )
|
||
{
|
||
case ACOGIDOS_CUOT:
|
||
case VOTANTES:
|
||
// Miramos si desea mandar el informe a un archivo
|
||
if ( Config.ImpCompr[0] == '-' && Config.ImpCompr[1] == '>' )
|
||
{
|
||
strcpy( buffer, Config.ImpCompr );
|
||
strrev( buffer );
|
||
buffer[ strlen( buffer ) - 2 ] = '\0';
|
||
strrev( buffer );
|
||
if ( ( file_out = fopen( buffer, "w" ) ) == NULL )
|
||
return;
|
||
} else {
|
||
// Mandar codigo caracteres grandes
|
||
CodigoImpresora( Config.ImpCompr );
|
||
file_out = stdprn;
|
||
}
|
||
break;
|
||
default:
|
||
file_out = stdprn;
|
||
break;
|
||
}
|
||
|
||
|
||
ImprimeLinea( Tipo_de_Listado, file_out );
|
||
|
||
for( i=0; i < BHerm.Registros() && i >= 0; i++ )
|
||
{
|
||
if ( Config.LineasImpresion != 0 && lineas_impresas > Config.LineasImpresion )
|
||
{
|
||
fputc( 12, file_out ); lineas_impresas = 0;
|
||
while ( !Comprueba_Impresora() )
|
||
{
|
||
if ( !Optar( 1, "ERROR IMPRESORA", "Coloque la siguiente p gina", "y pulse ACEPTAR para continuar", NULL ) )
|
||
i = -1;
|
||
};
|
||
}
|
||
|
||
|
||
if ( BHerm.LeeReg( (void *)&SHerm, i ) != OK ) break;
|
||
switch( Tipo_de_Listado )
|
||
{
|
||
case VOTANTES:
|
||
// si cumple los requisitos
|
||
if ( SHerm.Varios.PuedVotar )
|
||
{
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[20] = '\0';
|
||
fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer);
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? ", " : "", SHerm.Piso );
|
||
buffer[34] = '\0';
|
||
fprintf( file_out, "%-34s %02d-%02d-%02d %02d-%02d-%02d\n\r", buffer,
|
||
(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, ( SHerm.Antig.da_year - (SHerm.Antig.da_year/100)*100 ) ,
|
||
(int)SHerm.FechaN.da_day, (int)SHerm.FechaN.da_mon, ( SHerm.FechaN.da_year - (SHerm.FechaN.da_year/100)*100 )
|
||
);
|
||
|
||
lineas_impresas++;
|
||
}
|
||
break;
|
||
case GRAL_HERMANOS:
|
||
// ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜ Ü Ü
|
||
// Û D i R e C t O ß ßÜßÜ
|
||
|
||
// si cumple los requisitos
|
||
ImprimeFicha();
|
||
lineas_impresas++;
|
||
break;
|
||
case PAPELETAS_SITIO:
|
||
// ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜ Ü Ü
|
||
// Û D i R e C t O ß ßÜßÜ
|
||
if ( SHerm.Varios.RealPenit )
|
||
{
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[20] = '\0';
|
||
fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer );
|
||
|
||
fprintf( file_out, "%02d-%02d-%04d %s\n\r",
|
||
(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, SHerm.Antig.da_year,
|
||
SHerm.Telefono1
|
||
);
|
||
}
|
||
break;
|
||
case GRAL_HERM_RAP:
|
||
// ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜ Ü Ü
|
||
// Û D i R e C t O ß ßÜßÜ
|
||
// si cumple los requisitos
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[20] = '\0';
|
||
fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? ", " : "", SHerm.Piso );
|
||
buffer[40] = '\0';
|
||
fprintf( file_out, "%-40s\n\r", buffer );
|
||
|
||
lineas_impresas++;
|
||
break;
|
||
case RECIBE_NOTIFIC:
|
||
// si cumple los requisitos
|
||
if ( SHerm.Varios.Notific )
|
||
{
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[20] = '\0';
|
||
fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? "," : "", SHerm.Piso );
|
||
buffer[32] = '\0';
|
||
fprintf( file_out, "%-30s %02d-%02d-%02d %s\n\r", buffer,
|
||
(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, ( SHerm.Antig.da_year - (SHerm.Antig.da_year/100)*100), SHerm.Telefono1
|
||
);
|
||
lineas_impresas++;
|
||
}
|
||
break;
|
||
case ACOGIDOS_CUOT:
|
||
// si cumple los requisitos
|
||
if ( SHerm.Varios.CuotaFam )
|
||
{
|
||
sprintf( buffer, "%s %s", SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[20] = '\0';
|
||
fprintf( file_out, "%4ld %-10s %-20s ", SHerm.NHno, SHerm.Nombre, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? ", " : "", SHerm.Piso );
|
||
buffer[33] = '\0';
|
||
fprintf( file_out, "%-33s %02d-%02d-%04d %s\n\r", buffer,
|
||
(int)SHerm.Antig.da_day, (int)SHerm.Antig.da_mon, ( SHerm.Antig.da_year - (SHerm.Antig.da_year/100)*100), SHerm.Telefono1
|
||
);
|
||
lineas_impresas++;
|
||
}
|
||
break;
|
||
case TUNICA_HDAD:
|
||
// ÜßÜßÜßÜßÜßÜßÜßÜßÜßÜ Ü Ü
|
||
// Û D i R e C t O ß ßÜßÜ
|
||
// si cumple los requisitos
|
||
if ( SHerm.Varios.TunicaHd )
|
||
{
|
||
sprintf( buffer, "%s %s %s", SHerm.Nombre, SHerm.Apellido1, SHerm.Apellido2 );
|
||
buffer[33] = '\0';
|
||
fprintf( file_out, "%4ld %-33s ", SHerm.NHno, buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, ( SHerm.Num[0] != '\0' ) ? ", " : "", SHerm.Num, ( SHerm.Piso[0] != '\0' ) ? ", " : "", SHerm.Piso );
|
||
buffer[32] = '\0';
|
||
fprintf( file_out, "%-32s ", buffer );
|
||
|
||
if ( SHerm.NTunica == 0 )
|
||
fprintf( stdprn, " %04ld\n\r", SHerm.NTunica );
|
||
else
|
||
fprintf( stdprn, " HDAD\n\r" );
|
||
lineas_impresas++;
|
||
}
|
||
break;
|
||
}
|
||
|
||
if ( kbhit() && getch() == 27 && Optar( 1, "CANCELAR IMPRESION", "Desea cancelar el trabajo", "de impresion actual?", NULL ) )
|
||
break;
|
||
|
||
}
|
||
|
||
// Nueva pagina
|
||
fputc( 12, file_out );
|
||
if ( Tipo_de_Listado != PAPELETAS_SITIO && Tipo_de_Listado != TUNICA_HDAD && Tipo_de_Listado != GRAL_HERM_RAP)
|
||
{
|
||
// Miramos si desea mandar el informe a un archivo
|
||
if ( Config.ImpCompr[0] == '-' && Config.ImpCompr[1] == '>' )
|
||
{
|
||
fclose( file_out );
|
||
} else
|
||
// Mandar codigo caracteres peque¤os
|
||
CodigoImpresora( Config.ImpNormal );
|
||
}
|
||
|
||
// Regresamos a la posicion original
|
||
if ( BHerm.LeeReg( (void *)&SHerm, CurrReg ) != OK ) return;
|
||
|
||
}
|
||
|
||
void ImprimeLinea( int Tipo_de_Listado, FILE *file_out )
|
||
{
|
||
char buffer[500];
|
||
|
||
switch( Tipo_de_Listado )
|
||
{
|
||
case VOTANTES:
|
||
fprintf( file_out, "Listado General de Votantes\n\r\n\r");
|
||
fprintf( file_out, "N§Hno Nombre (completo) Direccion Antig<69>edad F.Nacimiento\n\r\n\r");
|
||
break;
|
||
case GRAL_HERMANOS:
|
||
break;
|
||
case GRAL_HERM_RAP:
|
||
fprintf( file_out, "Listado R pido de hermanos\n\r\n\r");
|
||
fprintf( file_out, "N§Hn Nombre (completo) Direccion \n\r\n\r");
|
||
//123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-
|
||
// 123456789-123456789-123456789- 123456789-123456789-123456789-123456789-
|
||
break;
|
||
case ACOGIDOS_CUOT:
|
||
fprintf( file_out, "Listado de Hermanos acogidos a cuota\n\r\n\r");
|
||
fprintf( file_out, "N§Hno Nombre (completo) Direccion Antig<69>edad Tel‚fono\n\r\n\r");
|
||
break;
|
||
case RECIBE_NOTIFIC:
|
||
fprintf( file_out, "Listado de hermanos que reciben notificaciones\n\r\n\r");
|
||
fprintf( file_out, "N§Hno Nombre (completo) Direccion Antig<69>edad Tel‚fono\n\r\n\r");
|
||
break;
|
||
case TUNICA_HDAD:
|
||
fprintf( file_out, "Listado de hermanos que poseen tunica de la hermandad\n\r\n\r");
|
||
fprintf( file_out, "N§Hno Nombre (completo) Direccion T£nica\n\r\n\r");
|
||
//123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-
|
||
// 123456789-123456789-123456789-123 56789-123456789-123456789-123456789-
|
||
break;
|
||
case PAPELETAS_SITIO:
|
||
fprintf( file_out, "Listado de hermanos que Realizan la estacion de Penitencia\n\r\n\r");
|
||
fprintf( file_out, "N§Hno Nombre (completo) Antig<69>edad Telefono\n\r\n\r");
|
||
break;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
void ImprimeListaSitios(void)
|
||
{
|
||
char buffer[500];
|
||
BDatos Hnos, Hnas;
|
||
char CMen; struct textsettingstype texttypeinfo;
|
||
void *Imagen;
|
||
int ok = 0, enc, CtoVirgen, Insignia;
|
||
long i, j;
|
||
HermStruct A, B;
|
||
|
||
FILE *file_out;
|
||
file_out = stdprn;
|
||
|
||
|
||
if ( (Imagen = malloc( imagesize(170, 165, 470, 315) ) ) == NULL )
|
||
return;
|
||
|
||
getimage( 170, 165, 470, 315, Imagen );
|
||
|
||
Imprime_Estaticos(20, "Herm.img");
|
||
|
||
gettextsettings( &texttypeinfo );
|
||
|
||
settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
|
||
|
||
setcolor( BLANCO );
|
||
outtextxy( 172+((296 - textwidth( "Listado de P. Sitios" ) ) / 2 ), 165, "Listado de P. Sitios" );
|
||
setcolor( NEGRO );
|
||
|
||
outtextxy( 172, 200, "Reordenando Hermanos" );
|
||
|
||
Hnos.AbrirReg( "datos\\hermanos.dbf", sizeof( HermStruct ) );
|
||
FICHA_REGISTRO = 0;
|
||
if ( Config.item_ordenado[FICHA_REGISTRO] != 8 )
|
||
{
|
||
Config.item_ordenado[FICHA_REGISTRO] = 8;
|
||
if ( BConfig.EscribeReg((void *)&Config, 0) != OK )
|
||
Error(BConfig.cError);
|
||
Hnos.SortReg(ComparaRegistros);
|
||
}
|
||
|
||
outtextxy( 172, 225, "Reordenando Hermanas" );
|
||
Hnas.AbrirReg( "datos\\hermanas.dbf", sizeof( HermStruct ) );
|
||
FICHA_REGISTRO = 1;
|
||
if ( Config.item_ordenado[FICHA_REGISTRO] != 8 )
|
||
{
|
||
Config.item_ordenado[FICHA_REGISTRO] = 8;
|
||
if ( BConfig.EscribeReg((void *)&Config, 0) != OK )
|
||
Error(BConfig.cError);
|
||
Hnas.SortReg(ComparaRegistros);
|
||
}
|
||
outtextxy( 172, 250, "Fusionando Bases " );
|
||
|
||
////////////// Dos Recorridos 1§ Cribar CRISTO
|
||
////////////// 2§ Cribar VIRGEN
|
||
for ( CtoVirgen = 0; CtoVirgen < 2; CtoVirgen++ )
|
||
{
|
||
fprintf( file_out, "\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r");
|
||
fprintf( file_out, "> Listado de Hermanos que realizan penitencia" );
|
||
fprintf( file_out, "\n\r\n\r\n\r%s", (CtoVirgen==0) ? "C R I S T O" : "V I R G E N");
|
||
fprintf( file_out, "\n\r\n\r\n\r> Ordenado por antiguedad y seg£n insignia");
|
||
|
||
Insignia = -1;
|
||
i=0; j=0; ok = 0;
|
||
|
||
// Empezamos a comparar con los primeros datos validos
|
||
while( Hnos.LeeReg( (void *)&A, i ) == OK && ( A.Varios.RealPenit==0 || (A.Varios.RealPenit && A.Varios.CtoVirgen != CtoVirgen ) ) ) i++;
|
||
while( Hnas.LeeReg( (void *)&B, j ) == OK && ( B.Varios.RealPenit==0 || (B.Varios.RealPenit && B.Varios.CtoVirgen != CtoVirgen ) ) ) j++;
|
||
|
||
// Solo si es cierto que los datos de ambos son validos
|
||
if ( Hnos.LeeReg( (void *)&A, i ) == OK && Hnas.LeeReg( (void *)&B, j ) == OK )
|
||
while( !ok )
|
||
{
|
||
// Mientras A < B
|
||
if ( ComparaRegistros( (void *)&A, (void *)&B ) < 0 )
|
||
{
|
||
// Si es una nueva insignia. Digo cual...
|
||
if ( Insignia != A.Insignia )
|
||
{
|
||
Insignia = A.Insignia;
|
||
fputc( 12, file_out );
|
||
fprintf( file_out, "\n\r>Hermanos con insignia: %s\n\r\n\r", Config.Insignia[Insignia+20*CtoVirgen].NInsignia );
|
||
}
|
||
|
||
// Imprimo y avanzo hermanos
|
||
sprintf( buffer, "%s %s", A.Apellido1, A.Apellido2 );
|
||
buffer[22] = '\0';
|
||
fprintf( file_out, "%4ld %-15s %-22s %02d-%02d-%04d %-15s\n\r",
|
||
A.NHno, A.Nombre, buffer, (int)A.Antig.da_day, (int)A.Antig.da_mon, (int)A.Antig.da_year, A.Telefono1 );
|
||
|
||
i++;
|
||
// Me coloco en el siguiente registro valido de HERMANOS
|
||
while( ( enc = Hnos.LeeReg( (void *)&A, i ) ) == OK && ( A.Varios.RealPenit==0 || (A.Varios.RealPenit && A.Varios.CtoVirgen != CtoVirgen ) ) ) i++;
|
||
|
||
// que no hay, po fale, me salgo
|
||
if ( enc != OK ) ok = 1;
|
||
|
||
} else {
|
||
|
||
// Si es una nueva insignia. Digo cual...
|
||
if ( Insignia != B.Insignia )
|
||
{
|
||
Insignia = B.Insignia;
|
||
fputc( 12, file_out );
|
||
fprintf( file_out, "\n\rHermanos con insignia: %s\n\r\n\r", Config.Insignia[Insignia+20*CtoVirgen].NInsignia );
|
||
}
|
||
|
||
// Imprimo y avanzo hermanas
|
||
sprintf( buffer, "%s %s", B.Apellido1, B.Apellido2 );
|
||
buffer[22] = '\0';
|
||
fprintf( file_out, "%4ld %-15s %-22s %02d-%02d-%04d %-15s\n\r",
|
||
B.NHno, B.Nombre, buffer, (int)B.Antig.da_day, (int)B.Antig.da_mon, (int)B.Antig.da_year, B.Telefono1 );
|
||
|
||
j++;
|
||
// Me coloco en el siguiente registro valido de HERMANAS
|
||
while( ( enc = Hnas.LeeReg( (void *)&B, j ) ) == OK && ( B.Varios.RealPenit==0 || (B.Varios.RealPenit && B.Varios.CtoVirgen != CtoVirgen ) ) ) j++;
|
||
// que no hay, po fale, me salgo
|
||
if ( enc != OK ) ok = 1;
|
||
}
|
||
|
||
};
|
||
|
||
// Imprimo la base que quede por imprimir
|
||
if ( Hnos.LeeReg( (void *)&A, i ) == OK )
|
||
{
|
||
// Siguiente dato valido de hermanos
|
||
while( ( enc = Hnos.LeeReg( (void *)&A, i ) ) == OK && ( A.Varios.RealPenit==0 || (A.Varios.RealPenit && A.Varios.CtoVirgen != CtoVirgen ) ) ) i++;
|
||
|
||
while ( enc == OK )
|
||
{
|
||
// Falta mostrar la insignia ???
|
||
if ( Insignia != A.Insignia )
|
||
{
|
||
Insignia = A.Insignia;
|
||
fputc( 12, file_out );
|
||
fprintf( file_out, "\n\rHermanos con insignia: %s\n\r\n\r", Config.Insignia[Insignia+20*CtoVirgen].NInsignia );
|
||
}
|
||
|
||
// Imprimo hermanos
|
||
sprintf( buffer, "%s %s", A.Apellido1, A.Apellido2 );
|
||
buffer[22] = '\0';
|
||
fprintf( file_out, "%4ld %-15s %-22s %02d-%02d-%04d %-15s\n\r",
|
||
A.NHno, A.Nombre, buffer, (int)A.Antig.da_day, (int)A.Antig.da_mon, (int)A.Antig.da_year, A.Telefono1 );
|
||
|
||
i++;
|
||
// Siguiente dato valido
|
||
while( ( enc = Hnos.LeeReg( (void *)&A, i ) ) == OK && ( A.Varios.RealPenit==0 || (A.Varios.RealPenit && A.Varios.CtoVirgen != CtoVirgen ) ) ) i++;
|
||
}
|
||
|
||
} else {
|
||
|
||
// Siguiente dato valido de HERMANAS
|
||
while( ( enc = Hnas.LeeReg( (void *)&B, j ) ) == OK && ( B.Varios.RealPenit==0 || (B.Varios.RealPenit && B.Varios.CtoVirgen != CtoVirgen ) ) ) j++;
|
||
|
||
while ( enc == OK )
|
||
{
|
||
// Se conoce la insignia???
|
||
if ( Insignia != B.Insignia )
|
||
{
|
||
Insignia = B.Insignia;
|
||
fputc( 12, file_out );
|
||
fprintf( file_out, "\n\rHermanos con insignia: %s\n\r\n\r", Config.Insignia[Insignia+20*CtoVirgen].NInsignia );
|
||
}
|
||
|
||
// Imprimo hermanos
|
||
sprintf( buffer, "%s %s", B.Apellido1, B.Apellido2 );
|
||
buffer[22] = '\0';
|
||
fprintf( file_out, "%4ld %-15s %-22s %02d-%02d-%04d %-15s\n\r",
|
||
B.NHno, B.Nombre, buffer, (int)B.Antig.da_day, (int)B.Antig.da_mon, (int)B.Antig.da_year, B.Telefono1 );
|
||
|
||
j++;
|
||
while( ( enc = Hnas.LeeReg( (void *)&B, j ) ) == OK && ( B.Varios.RealPenit==0 || (B.Varios.RealPenit && B.Varios.CtoVirgen != CtoVirgen ) ) ) j++;
|
||
};
|
||
}
|
||
|
||
}
|
||
|
||
Hnos.CerrarReg();
|
||
Hnas.CerrarReg();
|
||
|
||
settextstyle( texttypeinfo.font, texttypeinfo.direction, texttypeinfo.charsize );
|
||
putimage( 170, 165, Imagen, COPY_PUT );
|
||
free( Imagen );
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
void ImprimeFacturas(void)
|
||
{
|
||
long i;
|
||
char pag;
|
||
|
||
int Center, lineas = 2, CMen, PagInicio, PagFin;
|
||
|
||
char Mensaje[][50] = { "Para interrumpir", "pulse una tecla" };
|
||
|
||
OptenPaginasIniFin( &PagInicio, &PagFin, BHerm.Registros() );
|
||
|
||
|
||
Imprime_Estaticos(20, "Herm.img");
|
||
|
||
settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
|
||
|
||
setcolor( 63 ); outtextxy( 172, 165, "Imprimiendo Facturas" );
|
||
setcolor( ROJO );
|
||
|
||
for ( CMen = 0; CMen < lineas; CMen++ )
|
||
{
|
||
Center= (296 - textwidth( Mensaje[CMen] ) ) / 2;
|
||
outtextxy( 172+Center, 200+20*CMen, Mensaje[CMen] );
|
||
}
|
||
|
||
while ( !Comprueba_Impresora() )
|
||
{
|
||
if ( !Optar( 1, "ERROR IMPRESORA", "Encienda la impresora", "y pulse ACEPTAR para continuar", NULL ) )
|
||
return;
|
||
}
|
||
pag = 0;
|
||
PagInicio--;
|
||
for ( i=PagInicio; i < BHerm.Registros() && i < PagFin; i++, pag++ )
|
||
{
|
||
if ( pag == 3 ) { pag = 0; fputc( 12, stdprn ); }
|
||
BHerm.LeeReg( (void *)&SHerm, i ); //123456789-123456789-1234567
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, "\n\r" );
|
||
|
||
fprintf( stdprn, " %4ld Alcal de Guadaira #%ld#", SHerm.NHno, Config.CuotaBaseFam[ SHerm.Varios.CuotaFam == 0 ? 0 : 1 ] );
|
||
fprintf( stdprn, "\n\r\n\r" );
|
||
fprintf( stdprn, " %02d-%02d-%04d %d / %d", (int)FechaActual.da_day, (int)FechaActual.da_mon, (int)FechaActual.da_year, FechaActual.da_year + 1, FechaActual.da_year);
|
||
fprintf( stdprn, "\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r" );
|
||
fprintf( stdprn, " %s %s %s", SHerm.Nombre, SHerm.Apellido1, SHerm.Apellido2 );
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, " %s%s%s%s%s", SHerm.Direccion, (SHerm.Num[0]=='\0')?"":",", SHerm.Num,
|
||
(SHerm.Piso[0]=='\0')?"":",", SHerm.Piso );
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, " %s (%s)", SHerm.Poblacion, SHerm.Provincia );
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, " C.P. %ld", SHerm.CodP );
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, "\n\r" );
|
||
if ( kbhit() )
|
||
{
|
||
getch();
|
||
if ( Optar( 1, "CANCELAR TRABAJO?", "Desea Cancelar la impresion", "el trabajo aun no ha concluido", NULL ) )
|
||
break;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
void ImprimeEtiquetas(void)
|
||
{
|
||
long i; char pag, buffer[80];
|
||
int Center, lineas = 2, CMen;
|
||
int PagInicio, PagFin;
|
||
|
||
char Mensaje[][50] = { "Para interrumpir", "pulse una tecla" };
|
||
|
||
OptenPaginasIniFin( &PagInicio, &PagFin, BHerm.Registros() );
|
||
|
||
Imprime_Estaticos(20, "Herm.img");
|
||
|
||
settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
|
||
|
||
setcolor( 63 ); outtextxy( 172, 165, "Imprimiendo Etiquetas" );
|
||
setcolor( ROJO );
|
||
|
||
for ( CMen = 0; CMen < lineas; CMen++ )
|
||
{
|
||
Center= (296 - textwidth( Mensaje[CMen] ) ) / 2;
|
||
outtextxy( 172+Center, 200+20*CMen, Mensaje[CMen] );
|
||
}
|
||
|
||
|
||
while ( !Comprueba_Impresora() )
|
||
{
|
||
if ( !Optar( 1, "ERROR IMPRESORA", "Encienda la impresora", "y pulse ACEPTAR para continuar", NULL ) )
|
||
return;
|
||
}
|
||
|
||
pag = 0;
|
||
PagInicio--;
|
||
for ( i=PagInicio; i < BHerm.Registros() && i < PagFin; /*i+=2, */pag++ )
|
||
{
|
||
if ( pag >= 3*12*2 )
|
||
{
|
||
if ( !Optar( 1, "NUEVA PAGINA", "Por favor, realinee la pagina", "y pulse una tecla", NULL ) )
|
||
return;
|
||
pag = 0;
|
||
}
|
||
|
||
do { BHerm.LeeReg( (void *)&SHerm, i ); i++; } while( !SHerm.Varios.Notific && i < BHerm.Registros() );
|
||
do { BHerm.LeeReg( (void *)&BHtmp, i ); i++; } while( !SHerm.Varios.Notific && i < BHerm.Registros() );
|
||
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, "N§ Hermano: %4ld N§ de Hermano: %4ld", SHerm.NHno, BHtmp.NHno );
|
||
fprintf( stdprn, "\n\r" );
|
||
sprintf( buffer, "%s %s %s", SHerm.Nombre, SHerm.Apellido1, SHerm.Apellido2 );
|
||
fprintf( stdprn, "%-37s ", buffer );
|
||
sprintf( buffer, "%s %s %s", BHtmp.Nombre, BHtmp.Apellido1, BHtmp.Apellido2 );
|
||
fprintf( stdprn, "%-37s", buffer );
|
||
|
||
fprintf( stdprn, "\n\r" );
|
||
|
||
sprintf( buffer, "%s%s%s%s%s", SHerm.Direccion, (SHerm.Num[0]=='\0')?"":",", SHerm.Num, (SHerm.Piso[0]=='\0')?"":",", SHerm.Piso );
|
||
fprintf( stdprn, "%-37s ", buffer );
|
||
sprintf( buffer, "%s%s%s%s%s", BHtmp.Direccion, (BHtmp.Num[0]=='\0')?"":",", BHtmp.Num, (BHtmp.Piso[0]=='\0')?"":",", BHtmp.Piso );
|
||
fprintf( stdprn, "%-37s", buffer );
|
||
|
||
fprintf( stdprn, "\n\r" );
|
||
|
||
sprintf( buffer, "%s (%s)", SHerm.Poblacion, SHerm.Provincia );
|
||
fprintf( stdprn, "%-37s ", buffer );
|
||
sprintf( buffer, "%s (%s)", BHtmp.Poblacion, BHtmp.Provincia );
|
||
fprintf( stdprn, "%-37s", buffer );
|
||
|
||
fprintf( stdprn, "\n\r" );
|
||
fprintf( stdprn, "C.P. %5ld C.P. %5ld", SHerm.CodP, BHtmp.CodP );
|
||
fprintf( stdprn, "\n\r" );
|
||
|
||
|
||
if ( kbhit() )
|
||
{
|
||
getch();
|
||
if ( Optar( 1, "CANCELAR IMPRESION ?", "Desea Cancelar la impresion", "el trabajo aun no ha concluido ?", NULL ) )
|
||
break ;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
void OptenPaginasIniFin( int *Inicio, int *Fin, int NRegistros )
|
||
{
|
||
void far *Imagen;
|
||
char buffer[80];
|
||
struct textsettingstype texttypeinfo;
|
||
|
||
*Inicio = 1;
|
||
*Fin = NRegistros;
|
||
|
||
|
||
|
||
if ( (Imagen = malloc( JD_imagesize(170, 165, 470, 315) ) ) != NULL )
|
||
{
|
||
getimage( 170, 165, 470, 315, Imagen );
|
||
gettextsettings( &texttypeinfo );
|
||
Imprime_Estaticos(20, "Herm.img");
|
||
settextstyle( SMALL_FONT, HORIZ_DIR, 6 );
|
||
|
||
outtextxy( 175, 220, "Ficha inicial:");
|
||
outtextxy( 175, 260, "Ficha final:");
|
||
|
||
sprintf( buffer, "%d", (*Inicio) );
|
||
InputCadenaG_T5(buffer, 0, 5, BLANCO, AZUL, 320, 220, 460, 240 );
|
||
(*Inicio) = atoi(buffer);
|
||
if ( *Inicio < 0 ) *Inicio = 0;
|
||
sprintf( buffer, "%d", (*Fin) );
|
||
InputCadenaG_T5(buffer, 0, 5, BLANCO, AZUL, 320, 260, 460, 280 );
|
||
(*Fin ) = atoi(buffer);
|
||
if ( *Fin > NRegistros ) *Fin = NRegistros;
|
||
|
||
putimage( 170, 165, Imagen, COPY_PUT );
|
||
settextstyle( texttypeinfo.font, texttypeinfo.direction, texttypeinfo.charsize );
|
||
|
||
farfree( Imagen );
|
||
}
|
||
|
||
} |