home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / MKEY4.ZIP / TEST.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-04-19  |  4.7 KB  |  146 lines

  1. PROGRAM Multi_File_Relational_Test;
  2.  
  3. USES Mulkey4, Crt;
  4.  
  5.   {$I Test.Typ}
  6.  
  7. VAR
  8.   Inventory : Inventory_Rec;
  9.   Vendor : Vendor_Rec;
  10.   Vendor_File, Inventory_File : File_Type;
  11.   Choice, Ch : CHAR;
  12.  
  13.   PROCEDURE Get_Inventory(VAR Inventory : Inventory_Rec);
  14.   BEGIN
  15.     WRITE('Product Code : '); READLN(Inventory.ProductCode);
  16.     WRITE('Description  : '); READLN(Inventory.Description);
  17.     WRITE('Vendor Number: '); READLN(Inventory.VendorNumber);
  18.   END;
  19.  
  20.   PROCEDURE Show_Inventory(VAR Inventory : Inventory_Rec);
  21.   BEGIN
  22.     WRITELN('Product Code : ', Inventory.ProductCode);
  23.     WRITELN('Description  : ', Inventory.Description);
  24.     WRITELN('Vendor Number: ', Inventory.VendorNumber);
  25.   END;
  26.  
  27.   PROCEDURE Get_Vendor(VAR Vendor : Vendor_Rec);
  28.   BEGIN
  29.     WRITE('Vendor Number : '); READLN(Vendor.VendorNumber);
  30.     WRITE('Vendor Name   : '); READLN(Vendor.VendorName);
  31.   END;
  32.  
  33.   PROCEDURE Show_Vendor(VAR Vendor : Vendor_Rec);
  34.   BEGIN
  35.     WRITELN('Vendor Number : ', Vendor.VendorNumber);
  36.     WRITELN('Vendor Name   : ', Vendor.VendorName);
  37.   END;
  38.  
  39. BEGIN
  40.   FILLCHAR(Inventory, SIZEOF(Inventory), 0);
  41.   FILLCHAR(Vendor, SIZEOF(Vendor), 0);
  42.   FILLCHAR(Vendor_File, SIZEOF(Vendor_File), 0);
  43.   FILLCHAR(Inventory_File, SIZEOF(Inventory_File), 0);
  44.   WITH Inventory_File DO
  45.     BEGIN
  46.       Name := 'Invent';
  47.       RecSize := SIZEOF(Inventory);
  48.       NUMBER_OF_KEYS := 2;
  49.       WITH Key[1] DO
  50.         BEGIN
  51.           Offset := KEYOFFSET(Inventory, Inventory.ProductCode);
  52.           KEYLENGTH := SIZEOF(Inventory.ProductCode) - 1;
  53.           EXTENSION := 'IX1';
  54.           UNIQUE := TRUE;
  55.           UPSHIFT := TRUE;
  56.           KEYTYPE := KEY_STRING;
  57.         END;
  58.       WITH Key[2] DO
  59.         BEGIN
  60.           Offset := KEYOFFSET(Inventory, Inventory.VendorNumber);
  61.           KEYLENGTH := SIZEOF(Inventory.VendorNumber) - 1;
  62.           EXTENSION := 'IX2';
  63.           UNIQUE := TRUE;
  64.           UPSHIFT := TRUE;
  65.           KEYTYPE := KEY_STRING;
  66.         END;
  67.     END;
  68.   WITH Vendor_File DO
  69.     BEGIN
  70.       Name := 'Vendor';
  71.       RecSize := SIZEOF(Vendor);
  72.       NUMBER_OF_KEYS := 1;
  73.       WITH Key[1] DO
  74.         BEGIN
  75.           Offset := KEYOFFSET(Vendor, Vendor.VendorNumber);
  76.           KEYLENGTH := SIZEOF(Vendor.VendorNumber) - 1;
  77.           EXTENSION := 'IX1';
  78.           UNIQUE := TRUE;
  79.           UPSHIFT := TRUE;
  80.           KEYTYPE := KEY_STRING;
  81.         END;
  82.     END;
  83.   Open_File(Inventory_File);
  84.   Open_File(Vendor_File);
  85.   Choice := ' ';
  86.   WHILE UPCASE(Choice) <> 'E' DO
  87.     BEGIN
  88.       ClrScr;
  89.       WRITELN; WRITELN; WRITELN;
  90.       WRITELN('                   Choose one of the following :');
  91.       WRITELN;
  92.       WRITELN('                   1 = Add Inventory record');
  93.       WRITELN('                   2 = Add Vendor record');
  94.       WRITELN('                   3 = Find Inventory record');
  95.       WRITELN('                   4 = Next Inventory record');
  96.       WRITELN('                   5 = Previous Inventory record');
  97.       WRITELN('                   E = Exit');
  98.       WRITELN; WRITELN; WRITELN;
  99.       WRITE(' Your Choice ? ');
  100.       READLN(Choice);
  101.       ClrScr;
  102.       CASE UPCASE(Choice) OF
  103.         '1' : BEGIN
  104.                 FILLCHAR(Inventory, SIZEOF(Inventory), 0);
  105.                 Get_Inventory(Inventory);
  106.                 Add_Record(Inventory_File, Inventory);
  107.               END;
  108.         '2' : BEGIN
  109.                 FILLCHAR(Vendor, SIZEOF(Vendor), 0);
  110.                 Get_Vendor(Vendor);
  111.                 Add_Record(Vendor_File, Vendor);
  112.               END;
  113.         '3' : BEGIN
  114.                 FILLCHAR(Inventory, SIZEOF(Inventory), 0);
  115.                 FILLCHAR(Vendor, SIZEOF(Vendor), 0);
  116.                 Get_Inventory(Inventory);
  117.                 Read_Record(Inventory_File, 1, Inventory);
  118.                 ClrScr;
  119.                 Show_Inventory(Inventory);
  120.                 Vendor.VendorNumber := Inventory.VendorNumber;
  121.                 Read_Record(Vendor_File, 1, Vendor);
  122.                 Show_Vendor(Vendor);
  123.                 Ch := readkey;
  124.               END;
  125.         '4' : BEGIN
  126.                 Next_Record(Inventory_File, 1, Inventory);
  127.                 Show_Inventory(Inventory);
  128.                 Vendor.VendorNumber := Inventory.VendorNumber;
  129.                 Read_Record(Vendor_File, 1, Vendor);
  130.                 Show_Vendor(Vendor);
  131.                 Ch := readkey;
  132.               END;
  133.         '5' : BEGIN
  134.                 Previous_Record(Inventory_File, 1, Inventory);
  135.                 Show_Inventory(Inventory);
  136.                 Vendor.VendorNumber := Inventory.VendorNumber;
  137.                 Read_Record(Vendor_File, 1, Vendor);
  138.                 Show_Vendor(Vendor);
  139.                 Ch := readkey;
  140.               END;
  141.       END;
  142.     END;
  143.   Close_File(Inventory_File);
  144.   Close_File(Vendor_File);
  145. END.
  146.