home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / database / nyisam / compudex.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-26  |  2.6 KB  |  111 lines

  1. /* Copyright (c) 1994 by John Gambini
  2. */
  3.  
  4. #include "screen.h"
  5. #include "compudex.h"
  6.  
  7. SCREEN main_menu[] = {
  8.     {  3, 32,  "COMPUDEX DATABASE"    },
  9.     {  7, 24,  "1. INITIALIZE MAILING LIST FILES" },
  10.     {  9, 24,  "2. ENTER NAMES AND ADDRESSES"    },
  11.     { 11, 24,  "3. EXIT"                        },
  12.     { 21, 27,  "Enter Selection ( 1 - 3 )"        },
  13.     {-1,  -1,  ""                                }
  14.     };
  15.  
  16. SCREEN data_entry[] = {
  17.     {  1, 2,  "(S)earch  (A)dd  (U)pdate  (D)elete  (P)rint  (E)xit"    },
  18.     {  3, 2,  "Entry Number:"    },
  19.     {  4, 2,  "Name        :"    },
  20.     {  5, 2,  "Address     :"     },
  21.     {  6, 2,  "Address     :"     },
  22.     {  7, 2,  "City        :"    },
  23.     {  8, 2,  "State       :"    },
  24.     {  9, 2,  "Zip         :"    },
  25.     { 10, 2,  "Phone       :"    },
  26.     { 11, 2,  "Fax         :"    },
  27.     { 12, 2,  "Type        :"    },
  28.     {-1,  -1,  ""                }
  29.     };
  30.  
  31. void ReportError( char *msg );
  32.  
  33. void cdecl main()
  34. {
  35.     int wRoot, wData, wStat, ch,rc, fhdl;
  36.  
  37.     rc = Screen( &wRoot, INIT, 0x17, 0 );
  38.     if( rc == ERROR )
  39.         exit(1);
  40.  
  41.     WriteStrings( &wRoot, main_menu, 0x17 );
  42.     Screen( &wRoot, OPEN_WINDOW, 0 );
  43.  
  44.     Screen( &wRoot, SET_CURSOR, 21, 53 );
  45.     Screen( &wRoot, SET_CURSOR_TYPE, NORMAL ); 
  46.  
  47.     while(( ch = getch()) != '3' )
  48.     {
  49.         switch( ch )
  50.         {
  51.         case '1':
  52.             InitISAM();
  53.             break;
  54.         case '2':
  55.             Screen( &wData, CREATE_WINDOW, 4, 9, 62, 16, 0x17, 3 );
  56.             Screen( &wStat, CREATE_WINDOW,18,10, 60, 1, 0x70, -1 );
  57.             WriteStrings( &wData, data_entry, 0x17 );
  58.             Screen( &wData, OPEN_WINDOW, 1 );
  59.             Screen( &wStat, PUT_STRING, 0, 1, "Help = FN1", 0x70 );
  60.             Screen( &wStat, OPEN_WINDOW, 0 );
  61.             Screen( &wData, SET_CURSOR, 1, 55 );
  62.             fhdl = ISMOpen( MAILLST ); 
  63.             if( fhdl == ERROR )
  64.                 ReportError("Error while attempting to open ISAM file.");
  65.             else
  66.             {
  67.                 Actions( wData, wStat, fhdl );  
  68.                 ISMClose( fhdl );
  69.             }
  70.             Screen( &wStat, CLOSE_WINDOW );
  71.             Screen( &wStat, DESTROY_WINDOW );
  72.             Screen( &wData, CLOSE_WINDOW );
  73.             Screen( &wData, DESTROY_WINDOW );
  74.             Screen( &wRoot, SET_CURSOR, 21, 53 );
  75.             break;
  76.         }
  77.     }
  78.  
  79.     Screen( &wRoot, RESTORE );
  80.  
  81. }
  82.  
  83. void ReportError( char *msg )
  84. {
  85.     int wError,x,y,a;
  86.     int top = 8, left = (80-strlen(msg)+4)/2, width = strlen(msg)+4, depth = 6;
  87.  
  88.     Screen( &wError, GET_CURSOR_ABS, &y, &x, &a);
  89.  
  90.     Screen( &wError, CREATE_WINDOW, top, left, width, depth, 0x74, 0 );
  91.  
  92.     Screen( &wError, PUT_STRING, 0, (width-7)/2," Error ",  0x74 );
  93.  
  94.     Screen( &wError, PUT_STRING, 2, 2, msg , 0x70 );
  95.  
  96.     Screen( &wError, PUT_STRING, 4, 2, "Press Any Key.", 0x70 );
  97.  
  98.     Screen( &wError, SET_CURSOR, 4, 17 );
  99.  
  100.     Screen( &wError, OPEN_WINDOW, 1 );
  101.  
  102.     getch();
  103.  
  104.     Screen( &wError, CLOSE_WINDOW );
  105.  
  106.     Screen( &wError, DESTROY_WINDOW );
  107.  
  108.     Screen( &wError, SET_CURSOR_ABS, y, x, a );
  109. }
  110.  
  111.