home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 257.img / PRO-C1.ZIP / HELP.ZIP / TABLE.H < prev    next >
C/C++ Source or Header  |  1990-05-28  |  6KB  |  167 lines

  1. /*
  2.  * Structure for the manipulation of a record within 1 Table
  3. */
  4. struct _table
  5. {
  6. #ifdef ANSI
  7.    int (*inp_fn)(int , struct _table *, struct a_line **, struct a_line **, int);
  8.     int (*add_fn)(struct _table *, struct a_line **, struct a_line **);
  9.     int (*chg_fn)(struct _table *, struct a_line **, struct a_line **);
  10.     void (*dsp_fn)(int, int);
  11.     void (*key_fn)(int);
  12.     void (*sel_fn)(void);
  13.     int (*goto_fn)(int *);
  14.     void (*extra_fn)(void);
  15. #else
  16.     int (*inp_fn)();        /* Input Function             */
  17.     int (*add_fn)();          /* Add Record                 */
  18.     int (*chg_fn)();          /* Update Record              */
  19.     void (*dsp_fn)();         /* Display Record             */
  20.     void (*key_fn)();         /* Key Input                  */
  21.     void (*sel_fn)();         /* Key Selection              */
  22.     int (*goto_fn)();       /* Conditional Goto           */
  23.     void (*extra_fn)();       /* Date/Time                  */
  24. #endif
  25.     struct fldinfx *fld_off;  /* Field Information          */
  26.     unsigned int perms;       /* Access Permissions         */
  27.     int retry;                /* Number of Retries on Lock  */
  28.     int fd;                   /* File Descriptor            */
  29.     int fn;                   /* ???                        */
  30.     int maximum;              /* Records on 1 Screen        */
  31.     int size;                 /* Record Length              */
  32.     int mode;                 /* Read Mode                  */
  33.     int uniquekey;            /* A Unique Key               */
  34.     int query_box;            /* if set then use query box  */
  35.     int messages;             /* if set then no_msg = FALSE */
  36.     int auto_exit;            /* exit x-ref wr. on last fld */
  37.     int no_menus;             /* no_menus on x-ref write    */
  38.     int page;                 /* allows paging if set       */
  39.     int tp;                   /* transaction processing ?   */
  40.     int *offset;              /* -> Index of Parent Record  */
  41.     int *keynum;              /* -> Active Key              */
  42.     int *keymatch;            /* -> Active Keymatch         */
  43.     int *seq;                 /* -> Reading Sequence        */
  44.     int *index;               /* -> Index of Current Record */
  45.     char *rec;                /* -> Physical Data           */
  46. };
  47.  
  48. /*
  49.  * Defines paramaters regarding 1 field to be displayed on
  50.  * the screen.
  51. */
  52. struct ipf
  53. {
  54.     short screen;             /* Screen Number                */
  55.     short dep;
  56. #ifdef ANSI
  57.     int (*ip_fn)(int, int, int, struct _table *, struct fldinfx *, struct a_line **);
  58. #else
  59.     int (*ip_fn)();         /* Data Entry Routine           */
  60. #endif
  61.     short table;              /* Which Table                  */
  62.     short t_num;              /* Index into fldinfx structure */
  63. };
  64.  
  65. # define FORWARD    1
  66. # define BACKWARD   0
  67.  
  68. # define ASCENDING  1
  69. # define DESCENDING 0
  70.  
  71. # define MAX_FNS    11
  72.  
  73. # define ESC       -1
  74. # define ADD       -2
  75. # define CHG       -3
  76. # define INQ       -4
  77. # define DSP       -5
  78. # define RET       -6
  79. # define CLR       -7
  80. # define VNULL      (void (*)())0
  81.  
  82. /*
  83.  * Prototypes
  84. */
  85. # ifdef ANSI
  86. int add_mode(struct _table *, struct a_line **, struct a_line **, int, int);
  87. int add_record(struct _table *, struct a_line **, struct a_line **);
  88. int add_batch(struct _table *, struct a_line **, struct a_line **);
  89. int auto_mode(FIELD *, struct _table *, struct a_line **, struct a_line **, struct fldinfx *);
  90. int change_mode(struct _table *, struct a_line **, struct a_line **, int, int);
  91. int default_mode(struct _table *, struct a_line **, struct a_line **, int,int); 
  92. int delete_batch(struct _table *, struct a_line **, struct a_line **);
  93. int delete_mode(struct _table *, struct a_line **,struct a_line **, int, int);
  94. int fill_list_mode(struct _table *, struct a_line **, struct a_line **); 
  95. int first_mode(struct _table *, struct a_line **,struct a_line **, int, int);
  96. int inquire_mode(struct _table *, struct a_line **,struct a_line **, int, int);
  97. int last_mode(struct _table *, struct a_line **,struct a_line **, int, int);
  98. int make_list(struct _table *, struct a_line **, struct a_line **); 
  99. int next_mode(struct _table *, struct a_line ** ,struct a_line ** , int, int);
  100. int prev_mode(struct _table *, struct a_line ** ,struct a_line ** , int, int);
  101. int rewrite_mode(struct _table *, struct a_line **,struct a_line **);
  102. int rewrite_batch(struct _table *, struct a_line **,struct a_line **);
  103. struct a_line *scan_table(struct _table *, struct a_line **, struct a_line **, int);
  104. void after_input(FIELD *, struct _table *, struct fldinfx *);
  105. void before_input(FIELD *, struct _table *, struct fldinfx *);
  106. void delete_list(struct _table *, struct a_line **, struct a_line **, int *);
  107. void do_page_mode(struct _table *, struct a_line **,struct a_line **, int);
  108. void freelist_mode(struct _table *, struct a_line **,struct a_line **);
  109. void head_list(struct _table *, struct a_line **,struct a_line **, int);
  110. void new_line(struct _table *, struct a_line **,struct a_line ** );
  111. void new_line_2(struct _table *, struct a_line **,struct a_line ** );
  112. void new_record(struct _table *, struct a_line **,struct a_line ** );
  113. void reorder_mode(struct _table *, struct a_line **,struct a_line **, int );
  114. void tag_on_record(struct _table *, struct a_line **,struct a_line **, int );
  115. void table_defaults(struct _table *);
  116. int start_field(int, struct ipf *);
  117. int end_field(int, struct ipf *);
  118. int get_ipidx(int, int, struct ipf *);
  119. void next_field(int *, int, struct ipf *);
  120. void prev_field(int *, int, struct ipf *);
  121. int do_goptions(struct optab *, int, int, ...);
  122. void valid_field(int *, int, struct ipf *);
  123. void tran_p(struct _table *);
  124. void roll_p(struct _table *);
  125. void comm_p(struct _table *);
  126. # else
  127. int add_mode();
  128. int add_record();
  129. int add_batch();
  130. int auto_mode();
  131. int change_mode();
  132. int default_mode(); 
  133. int delete_mode();
  134. int fill_list_mode(); 
  135. int first_mode();
  136. int get_ipidx();
  137. int inquire_mode();
  138. int last_mode();
  139. int make_list(); 
  140. int next_mode();
  141. int prev_mode();
  142. int rewrite_mode();
  143. int rewrite_batch();
  144. struct a_line *scan_table();
  145. void after_input();
  146. void before_input();
  147. void delete_list();
  148. void do_page_mode();
  149. void freelist_mode();
  150. void head_list();
  151. void new_line();
  152. void new_line_2();
  153. void new_record();
  154. void reorder_mode();
  155. void tag_on_record();
  156. void table_defaults();
  157. int start_field();
  158. int end_field();
  159. void next_field();
  160. void prev_field();
  161. int do_goptions();
  162. void valid_field();
  163. void tran_p();
  164. void roll_p();
  165. void comm_p();
  166. # endif
  167.