SV/SV.CPP
2021-09-08 21:43:28 +02:00

563 lines
14 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//////////////////////////////////////////////////////////////////////////////
/// Nombre: SV .CPP ///
/// Modulo: Gr ficos para programa original [SINTITULO] ///
/// Descripci¢n: ///
/// ///
/// Autor: Jos David Guilln Dominguez ///
/// Fecha: 13 - 01 - 1995 ///
/// ///
/// Comentario: ///
/// ///
/// ///
/// Compilador Borland C++ 3.0 ///
//////////////////////////////////////////////////////////////////////////////
#include <graphics.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <time.h>
#include <dos.h>
#include "..\libs\make_bot\make_bot.h"
#include "SV_graph.h"
#include "sv_util.h"
extern int x_raton, y_raton; extern char raton;
extern int boton_izq, boton_der;
extern int dir_raton [32+32];
extern void Pantalla_Graficas_Compras(struct boton *PGC);
extern void Menu_Graficas_de_Compras(int Compras_Ventas);
extern void Menu_Graficas_de_Clientes(int Current_Date);
extern void Acerca_de(void);
extern void desactiva_raton(void);
extern void activa_raton(void);
extern void inicializa_raton_grafico(int x1, int y1, int x2, int y2, int px, int py);
extern void Menu_de_Ventas(int Current_Date);
extern void Menu_de_Clientes(void);
extern void Menu_de_Vendedores(void);
extern void Menu_de_Referencias(void);
extern void Menu_de_Clientes_Comp(int Current_Date);
extern void Menu_de_Compras(void);
// extern void Dibuja_Pantalla_Stock(void);
extern void Menu_de_Stock(void);
extern void Menu_de_Facturas(void);
extern void Configuracion(void);
extern void textxy(int x, int y, char *text);
extern int Espera_Tecla_o_Raton(void);
void Mensaje(void);
extern struct Make_Boton PP_S[5];
void redefine_cursor_raton(int r_e);
void BEEP(void);
void EditCursorMP(int Muestra_Oculta, int Columna, int Linea, int Menu_Desplegado);
void Contrae_Menu(int Columna);
void Despliega_Menu(int Columna);
void Menu_Principal(void);
int Menu(int Columna, int Linea);
extern char PunteroRaton;
int main(void){
int GD = 9, GM = 2;
Initialize(GD, GM);
inicializa_raton_grafico(0, 0, 624, 464, 320, 240);
if(raton!=0) desactiva_raton();
// Menu_de_Vendedores();
// Menu_de_Referencias();
// Menu_de_Compras();
// Menu_de_Stock();
Menu_Principal();
// Dibuja_Pantalla_Pricipal();
/*
Dibuja_Pantalla_Altas_Todos_los_Datos();
getch();
cleardevice();
Dibuja_Pantalla_Altas_Rapida();
getch();
cleardevice();
Dibuja_Pantalla_Vendedores();
getch();
cleardevice();
Dibuja_Pantalla_Referencia();
getch();
cleardevice();
Dibuja_Pantalla_Compras();
getch();
cleardevice();
Dibuja_Pantalla_Stock();
*/
// if (raton == 0) { cprintf("ERROR RATON NECESARIO"); return 1; }
// Espera_Tecla_o_Raton();
//getch();
restorecrtmode(); Mensaje(); return 0;
}
void Mensaje(void){
clrscr();
printf("JD_ ùFuTuRe ViSiOnù\n\n");
}
void BEEP(void){
sound(440);
delay(50);
nosound();
}
void Menu_Principal(void){
int CurrCol_MP=1, CurrRow_MP=1, Menu_Desplegado=0, key;
char finished = 0;
int N_Row[] = { 5, 3, 3, 5, 5};
Dibuja_Pantalla_Pricipal();
do{
EditCursorMP(1, CurrCol_MP, CurrRow_MP, Menu_Desplegado);
if(raton!=0) activa_raton();
Espera_Tecla_o_Raton();
if(raton!=0) desactiva_raton();
EditCursorMP(0, CurrCol_MP, CurrRow_MP, Menu_Desplegado);
if(kbhit()){
key = getch();
if(key==13 && Menu_Desplegado == 1)
{ finished = Menu(CurrCol_MP, CurrRow_MP); Contrae_Menu(CurrCol_MP); Menu_Desplegado = 0; } else
if(key==13 && Menu_Desplegado == 0){ Menu_Desplegado = 1; Despliega_Menu(CurrCol_MP); CurrRow_MP = 1;}
if(key==27) { Contrae_Menu(CurrCol_MP); Menu_Desplegado = 0;}
if( key == 0 ) {
switch( (key=getch()) ){
// Flecha Arriba
case 72:
if( Menu_Desplegado == 1 ) {
CurrRow_MP --; if(CurrRow_MP < 1) CurrRow_MP = N_Row[CurrCol_MP - 1];
}
break;
// Flecha Izquierda
case 75:
case 15:
if( Menu_Desplegado == 1 ) Contrae_Menu(CurrCol_MP);
CurrCol_MP--; if ( CurrCol_MP < 1 ) CurrCol_MP=5;
if( Menu_Desplegado == 1 ) { Despliega_Menu(CurrCol_MP); CurrRow_MP = 1; }
break;
// Flecha Derecha
case 77:
case 9:
if( Menu_Desplegado == 1 ) Contrae_Menu(CurrCol_MP);
CurrCol_MP++; if ( CurrCol_MP > 5 ) CurrCol_MP=1;
if( Menu_Desplegado == 1 ) { Despliega_Menu(CurrCol_MP); CurrRow_MP = 1; }
break;
// Flecha Abajo
case 80:
if( Menu_Desplegado == 1 ) {
CurrRow_MP ++; if(CurrRow_MP > N_Row[CurrCol_MP - 1]) CurrRow_MP = 1;
} else {
Menu_Desplegado = 1; Despliega_Menu(CurrCol_MP); CurrRow_MP = 1;
}
break;
// INICIO
case 71:
if( Menu_Desplegado == 0 ) CurrCol_MP = 1; else CurrRow_MP = 1;
break;
// FIN
case 79:
if( Menu_Desplegado == 0 ) CurrCol_MP = 5; else CurrRow_MP = N_Row[CurrCol_MP - 1];
break;
default:
break;
}
}
}
/* else if(raton!=0 && ( boton_izq==1 || boton_der==1 ) )
if( (bpush = CheckButon( 9, Comunes))>0 ) {
EditCursorComp(1);
switch(bpush){
}
} else CompruebaLineasComp();
*/
}while( !finished );
}
void Despliega_Menu(int Columna){
int x, n; struct Make_Boton Tmp;
char Texto[10][25];
switch(Columna) {
case 1: x = 7; n = 5;
strcpy ( Texto[0], " Estado actual ");
strcpy ( Texto[1], " Enlazar con ->");
strcpy ( Texto[2], " Configuraci¢n ");
strcpy ( Texto[3], " MS-DOS Shell ");
strcpy ( Texto[4], " ( SALIR ) ");
break;
case 2: x = 91; n = 3;
strcpy ( Texto[0], " Mantenimiento ");
strcpy ( Texto[1], " Emision de Facturas -> ");
strcpy ( Texto[2], " Altas / Modificaciones ");
break;
case 3: x = 266; n = 3;
strcpy ( Texto[0], " Compras ");
strcpy ( Texto[1], " Vendedores ");
strcpy ( Texto[2], " Referencias ");
break;
case 4: x = 395; n = 5;
strcpy ( Texto[0], " Stock actual ");
strcpy ( Texto[1], " Informe de Ventas ");
strcpy ( Texto[2], " Graficas de Ganancias ");
strcpy ( Texto[3], " Graficas de Compras ");
strcpy ( Texto[4], " Graficas de Clientes ");
break;
case 5: x = 455; n = 5;
strcpy ( Texto[0], " Menus ");
strcpy ( Texto[1], " Pantallas de Edici¢n ");
strcpy ( Texto[2], " -------------------- ");
strcpy ( Texto[3], " Ayuda en Linea ( Off )");
strcpy ( Texto[4], " Acerca de... ");
break;
}
Tmp.Up = 43; Tmp.Down = 45 + (n*19) + 5;
Tmp.Left = x; Tmp.Right = x + textwidth( Texto[0] );
Imprime_Boton2 (0, GRIS_C, BLANCO, GRIS_O, Tmp);
Tmp.Up = 43 + 2; Tmp.Down = 45 + (n*19) - 2 + 5;
Tmp.Left = x + 2; Tmp.Right = x + textwidth( Texto[0] ) - 2;
Imprime_Boton2 (0, GRIS_C, GRIS_O, BLANCO, Tmp);
for(int i=0; i<n; i++)
textxy(x, 45+(18*i)+4, Texto[i]);
}
void Contrae_Menu(int Columna){
int x, n; struct Make_Boton Tmp;
char Texto[10][25];
switch(Columna) {
case 1: x = 7; n = 5;
strcpy ( Texto[0], " Estado actual ");
break;
case 2: x = 91; n = 3;
strcpy ( Texto[0], " Mantenimiento ");
break;
case 3: x = 266; n = 3;
strcpy ( Texto[0], " Compras ");
break;
case 4: x = 395; n = 5;
strcpy ( Texto[0], " Stock actual ");
break;
case 5: x = 455; n = 5;
strcpy ( Texto[0], " Menus ");
break;
}
Tmp.Up = 43; Tmp.Down = 45 + (n*19) + 5;
Tmp.Left = x; Tmp.Right = x + textwidth( Texto[0] );
Imprime_Boton2 (1, GRIS_C, GRIS_C, GRIS_C, Tmp);
}
void EditCursorMP(int Muestra_Oculta, int Columna, int Linea, int Menu_Desplegado){
struct Make_Boton Tmp;
int x/*, n*/; char Texto[10][25];
switch(Columna) {
case 1: x = 7;// n = 5;
strcpy ( Texto[0], " Estado actual ");
break;
case 2: x = 91;// n = 3;
strcpy ( Texto[0], " Mantenimiento ");
break;
case 3: x = 266;// n = 3;
strcpy ( Texto[0], " Compras ");
break;
case 4: x = 395;// n = 5;
strcpy ( Texto[0], " Stock actual ");
break;
case 5: x = 455
;// n = 5;
strcpy ( Texto[0], " Menus ");
break;
}
if(Menu_Desplegado == 1) {
if(Muestra_Oculta == 1) {
Tmp.Up = 45+ (18*Linea)+4 - 3- 15; Tmp.Down = 45 + (18*Linea)+4 - 3 ;
Tmp.Left = x+4; Tmp.Right = x + textwidth( Texto[0] ) - 4;
Imprime_Boton2 (0, GRIS_C, BLANCO, GRIS_O, Tmp);
setcolor(GRIS_C);
setfillstyle(SOLID_FILL, GRIS_C);
bar(10, 455, 545, 473);
// textxy(10, 19, " Archivo ³ Gestion de Clientes ³ Mantenimiento ³ Balances ³ Ayuda");
switch(Columna) {
case 1:
switch(Linea) {
case 1: textxy( 15, 455, "Muestra el estado actual de los dispositivos, programa...");
break;
case 2: textxy( 15, 455, "Permite el enlaze con otras aplicaciones configurables.");
break;
case 3: textxy( 15, 455, "Reconfigura el programa.");
break;
case 4: textxy( 15, 455, "Accede a al Sistema con un SHELL permaneciendo residente.");
break;
case 5: textxy( 15, 455, "Finaliza el programa actual TOTALMENTE.");
break;
}
break;
case 2:
switch(Linea) {
case 1: textxy( 15, 455, "Mantenimiento de Clientes ( Compras realizadas por ellos )");
break;
case 2: textxy( 15, 455, "Impresion de Facturas para Clientes o Empresa.");
break;
case 3: textxy( 15, 455, "Altas / Bajas / Modificaciones de CLIENTES.");
break;
}
break;
case 3:
switch(Linea) {
case 1: textxy( 15, 455, "Compras realizadas por la empresa.");
break;
case 2: textxy( 15, 455, "Vendedores que posee la empresa.");
break;
case 3: textxy( 15, 455, "Gesti¢n de los productos actuales.");
break;
}
break;
case 4:
switch(Linea) {
case 1: textxy( 15, 455, "Muestra de forma numrica y gr fica el Stock Actual.");
break;
case 2: textxy( 15, 455, "Informe de Ventas sobre el mes seleccionado.");
break;
case 3: textxy( 15, 455, "Gr ficas de Ganancias Brutas, generales.");
break;
case 4: textxy( 15, 455, "Gr fica de Compras generales por C¢digo.");
break;
case 5: textxy( 15, 455, "Graficas de informaci¢n sobre los clientes.");
break;
}
break;
case 5:
switch(Linea) {
case 1: textxy( 15, 455, "Muestra ayuda referente a los menus.");
break;
case 2: textxy( 15, 455, "Ayuda sobre las teclas y macros de Edicion.");
break;
case 4: textxy( 15, 455, "Activa la ayuda en linea, y la simulaci¢n de Aprendizaje.");
break;
case 5: textxy( 15, 455, "Muestra informaci¢n sobre la versi¢n, y copyRight.");
break;
}
break;
}
} else {
Tmp.Up = 45+ (18*Linea)+4 - 3 - 15; Tmp.Down = 45 + (18*Linea)+4 - 3;
Tmp.Left = x+4; Tmp.Right = x + textwidth( Texto[0] ) - 4;
Imprime_Boton2 (0, GRIS_C, GRIS_C, GRIS_C, Tmp);
}
} else {
if(Muestra_Oculta == 0) {
Imprime_Boton2 (0, GRIS_C, GRIS_C, GRIS_C, PP_S[Columna-1]);
} else {
Imprime_Boton2 (0, NEGRO, GRIS_O, BLANCO, PP_S[Columna-1]);
setcolor(GRIS_C);
setfillstyle(SOLID_FILL, GRIS_C);
bar(10, 455, 545, 473);
// textxy(10, 19, " Archivo ³ Gestion de Clientes ³ Mantenimiento ³ Balances ³ Ayuda");
switch(Columna) {
case 1:
textxy( 15, 455, "Operaciones de mantenimiento para los archivos y enlaces.");
break;
case 2:
textxy( 15, 455, "Altas / Bajas / Consultas y Emision de Facturas de Clientes.");
break;
case 3:
textxy( 15, 455, "Mantenimiento de la empresa. ( Compras, Refencias, Vendedores )");
break;
case 4:
textxy( 15, 455, "Balances y Gr ficas sobre el estado de la Empresa.");
break;
case 5:
textxy( 15, 455, "Acceso a la ayuda en linea.");
break;
}
}
}
}
int Menu(int Columna, int Linea){
int Devuelve = 0;
switch(Columna) {
case 1:
switch(Linea) {
case 1:
break;
case 2:
break;
case 3:
Contrae_Menu(1);
Configuracion();
break;
// SHELL TO DOS
case 4:
if(raton!=0) desactiva_raton();
restorecrtmode();
printf("Teclee EXIT para regresar al programa anfitri¢n");
if ( system( getenv( "COMSPEC") ) != 0 ) { printf("\n\nImposible salir a MS-DOS\n\n"); sleep(5); }
Initialize( 9, 2);
inicializa_raton_grafico(0, 0, 624, 464, 320, 240);
if(raton!=0) desactiva_raton();
break;
// SALIR
case 5:
Devuelve = 1;
break;
}
break;
case 2:
switch(Linea) {
case 1:
Contrae_Menu(2);
if ( ( Devuelve = Pide_Fecha_Actual() ) != -1 )
Menu_de_Clientes_Comp( Devuelve );
Devuelve = 0;
break;
case 2:
Contrae_Menu(2);
Menu_de_Facturas();
break;
case 3:
Menu_de_Clientes();
break;
}
break;
case 3:
switch(Linea) {
case 1:
Menu_de_Compras();
break;
case 2:
Menu_de_Vendedores();
break;
case 3:
Menu_de_Referencias();
break;
}
break;
case 4:
switch(Linea) {
case 1:
Menu_de_Stock();
break;
case 2:
Contrae_Menu(4);
if ( ( Devuelve = Pide_Fecha_Actual() ) != -1 )
Menu_de_Ventas(Devuelve);
Devuelve = 0;
break;
case 3:
// Enlace con el modulo ganancias
Menu_Graficas_de_Compras(1);
break;
case 4:
// Enlace puro
Menu_Graficas_de_Compras(0);
break;
case 5:
Contrae_Menu(4);
if ( ( Devuelve = Pide_Fecha_Actual() ) != -1 )
Menu_Graficas_de_Clientes(Devuelve);
Devuelve = 0;
break;
}
break;
case 5:
switch(Linea) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
Contrae_Menu(5);
Acerca_de();
break;
}
break;
}
Dibuja_Pantalla_Pricipal();
return Devuelve;
}