home *** CD-ROM | disk | FTP | other *** search
- PROGRAM Multi_File_Relational_Test;
-
- USES Mulkey4, Crt;
-
- {$I Test.Typ}
-
- VAR
- Inventory : Inventory_Rec;
- Vendor : Vendor_Rec;
- Vendor_File, Inventory_File : File_Type;
- Choice, Ch : CHAR;
-
- PROCEDURE Get_Inventory(VAR Inventory : Inventory_Rec);
- BEGIN
- WRITE('Product Code : '); READLN(Inventory.ProductCode);
- WRITE('Description : '); READLN(Inventory.Description);
- WRITE('Vendor Number: '); READLN(Inventory.VendorNumber);
- END;
-
- PROCEDURE Show_Inventory(VAR Inventory : Inventory_Rec);
- BEGIN
- WRITELN('Product Code : ', Inventory.ProductCode);
- WRITELN('Description : ', Inventory.Description);
- WRITELN('Vendor Number: ', Inventory.VendorNumber);
- END;
-
- PROCEDURE Get_Vendor(VAR Vendor : Vendor_Rec);
- BEGIN
- WRITE('Vendor Number : '); READLN(Vendor.VendorNumber);
- WRITE('Vendor Name : '); READLN(Vendor.VendorName);
- END;
-
- PROCEDURE Show_Vendor(VAR Vendor : Vendor_Rec);
- BEGIN
- WRITELN('Vendor Number : ', Vendor.VendorNumber);
- WRITELN('Vendor Name : ', Vendor.VendorName);
- END;
-
- BEGIN
- FILLCHAR(Inventory, SIZEOF(Inventory), 0);
- FILLCHAR(Vendor, SIZEOF(Vendor), 0);
- FILLCHAR(Vendor_File, SIZEOF(Vendor_File), 0);
- FILLCHAR(Inventory_File, SIZEOF(Inventory_File), 0);
- WITH Inventory_File DO
- BEGIN
- Name := 'Invent';
- RecSize := SIZEOF(Inventory);
- NUMBER_OF_KEYS := 2;
- WITH Key[1] DO
- BEGIN
- Offset := KEYOFFSET(Inventory, Inventory.ProductCode);
- KEYLENGTH := SIZEOF(Inventory.ProductCode) - 1;
- EXTENSION := 'IX1';
- UNIQUE := TRUE;
- UPSHIFT := TRUE;
- KEYTYPE := KEY_STRING;
- END;
- WITH Key[2] DO
- BEGIN
- Offset := KEYOFFSET(Inventory, Inventory.VendorNumber);
- KEYLENGTH := SIZEOF(Inventory.VendorNumber) - 1;
- EXTENSION := 'IX2';
- UNIQUE := TRUE;
- UPSHIFT := TRUE;
- KEYTYPE := KEY_STRING;
- END;
- END;
- WITH Vendor_File DO
- BEGIN
- Name := 'Vendor';
- RecSize := SIZEOF(Vendor);
- NUMBER_OF_KEYS := 1;
- WITH Key[1] DO
- BEGIN
- Offset := KEYOFFSET(Vendor, Vendor.VendorNumber);
- KEYLENGTH := SIZEOF(Vendor.VendorNumber) - 1;
- EXTENSION := 'IX1';
- UNIQUE := TRUE;
- UPSHIFT := TRUE;
- KEYTYPE := KEY_STRING;
- END;
- END;
- Open_File(Inventory_File);
- Open_File(Vendor_File);
- Choice := ' ';
- WHILE UPCASE(Choice) <> 'E' DO
- BEGIN
- ClrScr;
- WRITELN; WRITELN; WRITELN;
- WRITELN(' Choose one of the following :');
- WRITELN;
- WRITELN(' 1 = Add Inventory record');
- WRITELN(' 2 = Add Vendor record');
- WRITELN(' 3 = Find Inventory record');
- WRITELN(' 4 = Next Inventory record');
- WRITELN(' 5 = Previous Inventory record');
- WRITELN(' E = Exit');
- WRITELN; WRITELN; WRITELN;
- WRITE(' Your Choice ? ');
- READLN(Choice);
- ClrScr;
- CASE UPCASE(Choice) OF
- '1' : BEGIN
- FILLCHAR(Inventory, SIZEOF(Inventory), 0);
- Get_Inventory(Inventory);
- Add_Record(Inventory_File, Inventory);
- END;
- '2' : BEGIN
- FILLCHAR(Vendor, SIZEOF(Vendor), 0);
- Get_Vendor(Vendor);
- Add_Record(Vendor_File, Vendor);
- END;
- '3' : BEGIN
- FILLCHAR(Inventory, SIZEOF(Inventory), 0);
- FILLCHAR(Vendor, SIZEOF(Vendor), 0);
- Get_Inventory(Inventory);
- Read_Record(Inventory_File, 1, Inventory);
- ClrScr;
- Show_Inventory(Inventory);
- Vendor.VendorNumber := Inventory.VendorNumber;
- Read_Record(Vendor_File, 1, Vendor);
- Show_Vendor(Vendor);
- Ch := readkey;
- END;
- '4' : BEGIN
- Next_Record(Inventory_File, 1, Inventory);
- Show_Inventory(Inventory);
- Vendor.VendorNumber := Inventory.VendorNumber;
- Read_Record(Vendor_File, 1, Vendor);
- Show_Vendor(Vendor);
- Ch := readkey;
- END;
- '5' : BEGIN
- Previous_Record(Inventory_File, 1, Inventory);
- Show_Inventory(Inventory);
- Vendor.VendorNumber := Inventory.VendorNumber;
- Read_Record(Vendor_File, 1, Vendor);
- Show_Vendor(Vendor);
- Ch := readkey;
- END;
- END;
- END;
- Close_File(Inventory_File);
- Close_File(Vendor_File);
- END.