TABLES.DEF 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. DEFINITION MODULE Tables;
  2. FROM GenLists IMPORT GenList;
  3. FROM DateFunctions IMPORT Date;
  4. FROM NumTypes IMPORT Real8;
  5. TYPE
  6. Table; (* opaque type *)
  7. (* this structure is used to pass data from/to a cell *)
  8. CellValue = RECORD
  9. CASE : CHAR OF
  10. 'S' : Str : ARRAY[0..79] OF CHAR;
  11. |'R' : R : Real8;
  12. |'I' : I : INTEGER;
  13. |'D' : D : Date;
  14. |'G' : B : BOOLEAN; (* field selected *)
  15. END; (* end of case *)
  16. END; (* end of cell value *)
  17. PROCEDURE PutCell(VAR T: Table; X,Y : CARDINAL; Cell : CellValue); (* fill a value in table *)
  18. PROCEDURE GetCell(VAR T: Table; X,Y : CARDINAL; VAR Cell : CellValue); (* get contents of cell*)
  19. (* these procedures are used to define the table *)
  20. PROCEDURE DefineTextCol(VAR T: Table; X, Width : CARDINAL;
  21. Title : ARRAY OF CHAR; DisplayOnly : BOOLEAN);
  22. PROCEDURE DefineGroupCol(VAR T:Table; X,Width : CARDINAL; Title : ARRAY OF CHAR;
  23. Choice : ARRAY OF CHAR; MenuKey : CARDINAL;
  24. NbrOfChoice, ThisChoice : CARDINAL;
  25. SelectDefault: BOOLEAN );
  26. PROCEDURE DefineIntegerCol(VAR T: Table; X,Width : CARDINAL; Title : ARRAY OF CHAR;
  27. Min, Max : LONGINT);
  28. PROCEDURE DefineRealCol(VAR T: Table; X,Width : CARDINAL; Title : ARRAY OF CHAR;
  29. Min, Max : REAL);
  30. PROCEDURE DefineTable(VAR T: Table; Caption : ARRAY OF CHAR);
  31. PROCEDURE BuildTable(VAR T: Table; NbrRows : CARDINAL);
  32. PROCEDURE ShowTable(T : Table;X1,Y1,X2,Y2: CARDINAL);
  33. PROCEDURE NumberOfRows( T : Table) : CARDINAL;
  34. PROCEDURE NumberOfCols(T : Table) : CARDINAL;
  35. PROCEDURE ControlTable(VAR T: Table;X1,Y1,X2,Y2 : CARDINAL);
  36. PROCEDURE DeleteTable(VAR T: Table);
  37. END Tables.