home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / turbo_c / turbbook.arc / ORDENT.C < prev    next >
Text File  |  1987-08-20  |  2KB  |  96 lines

  1. /* ---------- ordent.c ----------- */
  2.  
  3. #include <dos.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include "twindow.h"
  7.  
  8. struct {
  9.     char name [26];
  10.     char addr [26];
  11.     char city [26];
  12.     char state [3];
  13.     char zip [6];
  14.     char amt [6];
  15.     char dt [7];
  16.     char phone [11];
  17. } rcd;
  18.  
  19. char msk25 []    = "_________________________";
  20. char mskamt []   = "___.__";
  21. char mskdate []  = "__/__/__";
  22. char mskphone [] = "(___) ___-____";
  23. #define mskst msk25+23
  24. #define mskzip msk25+20
  25.  
  26. int validate_state(char *, int);
  27. void help_date(char *);
  28. /*page*/
  29. void ordent()
  30. {
  31.     WINDOW *wnd;
  32.     FIELD *fld;
  33.  
  34.     wnd = establish_window(10, 5, 15, 50);
  35.     set_title(wnd, " Order Entry ");
  36.     set_colors(wnd, ALL, BLUE, AQUA, BRIGHT);
  37.     set_colors(wnd, ACCENT, WHITE, BLACK, DIM);
  38.     display_window(wnd);
  39.     wprompt(wnd, 5, 2, "Name:");
  40.     wprompt(wnd, 5, 3, "Address:");
  41.     wprompt(wnd, 5, 4, "City:");
  42.     wprompt(wnd, 5, 5, "State:");
  43.     wprompt(wnd, 18, 5, "Zip:");
  44.     wprompt(wnd, 5, 10, "Phone:");
  45.     wprompt(wnd, 5, 7, "Amount:");
  46.     wprompt(wnd, 5, 8, "Date:");
  47.     init_template(wnd);
  48.     fld = establish_field(wnd, 15, 2, msk25, rcd.name, 'a');
  49.     field_window(fld,"name    ", 40, 1);
  50.     fld = establish_field(wnd, 15, 3, msk25, rcd.addr, 'a');
  51.     field_window(fld,"address ", 40, 2);
  52.     fld = establish_field(wnd, 15, 4, msk25, rcd.city, 'a');
  53.     field_window(fld,"address ", 40, 3);
  54.     fld = establish_field(wnd, 15, 5, mskst, rcd.state, 'A');
  55.     field_validate(fld, validate_state);
  56.     field_window(fld,"state   ", 40, 4);
  57.     fld = establish_field(wnd, 23, 5, mskzip, rcd.zip, 'Z');
  58.     field_window(fld,"address ", 40, 4);
  59.     fld = establish_field(wnd,15,10,mskphone,rcd.phone, 'N');
  60.     field_window(fld,"phone   ", 40, 9);
  61.     fld = establish_field(wnd, 15, 7, mskamt, rcd.amt, 'C');
  62.     field_window(fld,"amount  ", 40, 8);
  63.     fld = establish_field(wnd, 15, 8, mskdate, rcd.dt, 'D');
  64.     field_help(fld, help_date);
  65.     clear_template(wnd);
  66.     data_entry(wnd);
  67.     delete_window(wnd);
  68. }
  69.  
  70. /* ----- validate the state that is entered ------ */
  71. int validate_state(bf, key)
  72. char *bf;
  73. {
  74.     static char *states [] =
  75.         {"  ","VA","NC","SC","GA","FL",0};
  76.     char **st = states;
  77.  
  78.     while (*st)
  79.         if (strcmp(*st++, bf) == 0)
  80.             return OK;
  81.     error_message("Invalid State");
  82.     return ERROR;
  83. }
  84.  
  85. /* ----- provide today's date -------- */
  86. void help_date(bf)
  87. char *bf;
  88. {
  89.     struct date dat;
  90.  
  91.     getdate(&dat);
  92.     sprintf(bf, "%02d%02d%02d",
  93.             dat.da_day, dat.da_mon, dat.da_year % 100);
  94. }
  95.  
  96.