home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / PASCAL / TPDB32 / TPDBDEMO.PAS < prev    next >
Pascal/Delphi Source File  |  1991-10-28  |  6KB  |  163 lines

  1. program TPDBDemo;
  2.  
  3.                            (***********************************)
  4.                            (*               TPDB              *)
  5.                            (***********************************)
  6.                            (*         Object -Oriented        *)
  7.                            (*     Turbo Pascal 6.0 Units      *)
  8.                            (*    for Accessing dBASE III      *)
  9.                            (*             files.              *)
  10.                            (*        Copyright 1991           *)
  11.                            (*          Brian Corll            *)
  12.                            (*       All Rights Reserved       *)
  13.                            (*     dBASE is a registered       *)
  14.                            (* trademark of Ashton-Tate, Inc.  *)
  15.                            (*   Version 3.20  October, 1991   *)
  16.                            (***********************************)
  17.                            (*   Portions Copyright 1984,1991  *)
  18.                            (*    Borland International Corp.  *)
  19.                            (***********************************)
  20.  
  21.  
  22.  
  23. {Field  Field Name  Type       Width    Dec
  24.      1  CUSTNO      Character      5
  25.      2  FIRSTNAME   Character     20
  26.      3  MI          Character      1
  27.      4  LASTNAME    Character     25
  28.      5  ADDRESS     Character     35
  29.      6  CITY        Character     35
  30.      7  STATE       Character      2
  31.      8  ZIP         Character      5
  32.      9  ORDERNO     Character      9
  33.     10  ITEM        Character     20
  34.     11  COST        Numeric        8      2
  35.     12  SALEPRICE   Numeric        8      2
  36.     13  PROFIT      Numeric        8      2
  37.     14  SALEDATE    Date           8
  38.     15  COMPLETED   Logical        1
  39.  ** Total **                     191}
  40.  
  41. {Demonstration of the capabilities of TPDB  Version 3.20}
  42.  
  43. uses
  44.     Crt, Dos, TPDB, TPDBDate, TPDBScrn, TPDBStr;
  45.  
  46. const
  47.     NameNdx: byte = 1;
  48.     CustNoNdx: byte = 2;
  49.  
  50.  
  51. var
  52.     J: longint;
  53.     SPos: byte;
  54.     Message: string [80];
  55.     RecNo: string;
  56.     Continue: byte;
  57.     Demo:^DBF;
  58.     Test: ScrPtr;
  59.     Ch: char;
  60.  
  61.  
  62. begin
  63.     SetDateFormat(Italian);
  64.     New(Demo, Init('tpdbdemo.dbf'));
  65.     Demo^.Zap;
  66.     Demo^.MakeDBIndex(NameNdx, 'name.ndx', 25, Duplicates);
  67.     Demo^.MakeDBIndex(CustNoNdx, 'custno.ndx', 5, NoDuplicates);
  68.     Demo^.OpenDBIndex(NameNdx, 'name.ndx', 25, Duplicates);
  69.     Demo^.OpenDBIndex(CustNoNdx, 'custno.ndx', 5, NoDuplicates);
  70.  
  71.  
  72.     repeat
  73.         Continue := 0;
  74.         Demo^.NewDBRec;
  75.         Demo^.Repl(14, Today);
  76.         Normal := White + BlueBG;
  77.         Reverse := Black + LightGrayBG;
  78.         SetDBColor(Black, LightGray);
  79.         FlashFill(1, 1, 25, 80, Blue + BlackBG, #176);
  80.         Flash(2, 5, Black + LightGrayBG, 'Customer');
  81.         Flash(3, 5, Black + LightGrayBG, 'Database');
  82.         FlashC(2, White + RedBG, 'TPDB Version 3.20');
  83.         Flash(24, 50, Black + LightGrayBG, 'Press Esc Key When Finished.');
  84.         FlashC(4, White + GreenBG, 'Demonstration');
  85.         Str(Demo^.DBRecNum: 10, RecNo);
  86.         Message := 'Record Number: ' + RecNo;
  87.         Flash(2, 50, White + RedBG, Message);
  88.         Prompt(6, 10, 'Enter Customer Number: ');
  89.         Demo^.Say(1, 6, 33);
  90.         Prompt(8, 10, 'First Name: ');
  91.         Demo^.Say(2, 8, 22);
  92.         Prompt(10, 10, 'MI: ');
  93.         Demo^.Say(3, 10, 14);
  94.         Prompt(12, 10, 'Last Name: ');
  95.         Demo^.Say(4, 12, 21);
  96.         Prompt(14, 10, 'Address: ');
  97.         Demo^.Say(5, 14, 19);
  98.         Prompt(16, 10, 'City: ');
  99.         Demo^.Say(6, 16, 16);
  100.         Prompt(16, 52, 'State: ');
  101.         Demo^.Say(7, 16, 59);
  102.         Prompt(16, 63, 'ZIP Code: ');
  103.         Demo^.Say(8, 16, 73);
  104.         Prompt(18, 10, 'Order No.: ');
  105.         Demo^.Say(9, 18, 21);
  106.         Prompt(18, 35, 'Item: ');
  107.         Demo^.Say(10, 18, 41);
  108.         Prompt(20, 10, 'Cost: $');
  109.         Demo^.Say(11, 20, 17);
  110.         Prompt(20, 30, 'Sale Price: $');
  111.         Demo^.Say(12, 20, 43);
  112.         Prompt(20, 55, 'Profit: $');
  113.         Demo^.Say(13, 20, 64);
  114.         Prompt(22, 30, 'Sale Date: ');
  115.         Demo^.Say(14, 22, 41);
  116.         Prompt(24, 10, 'Transaction Completed ?: ');
  117.         Demo^.Say(15, 24, 35);
  118.  
  119.         BlockCursor;
  120.         SPos := 1;
  121.  
  122.         repeat
  123.             case SPos of
  124.                 1: Demo^.Get(1, 6, 33);
  125.                 2: Demo^.Get(2, 8, 22);
  126.                 3: Demo^.Get(3, 10, 14);
  127.                 4: Demo^.Get(4, 12, 21);
  128.                 5: Demo^.Get(5, 14, 19);
  129.                 6: Demo^.Get(6, 16, 16);
  130.                 7: Demo^.Get(7, 16, 59);
  131.                 8: Demo^.Get(8, 16, 73);
  132.                 9: Demo^.Get(9, 18, 21);
  133.                 10: Demo^.Get(10, 18, 41);
  134.                 11: Demo^.Get(11, 20, 17);
  135.                 12: Demo^.Get(12, 20, 43);
  136.                 13: begin
  137.                     Demo^.Repl(13, Demo^.Sub(12, 11));
  138.                     Demo^.Say(13, 20, 65);
  139.                 end;
  140.                 14: Demo^.Get(14, 22, 41);
  141.                 15: Demo^.Get(15, 24, 35);
  142.             end;
  143.             CheckScreen(SPos, BC, Up, Down, 1, 15);
  144.         until BC in Next;
  145.         Demo^.AddDBRec;
  146.         Demo^.AddDBKey(NameNdx, Demo^.Field(4));
  147.         Demo^.AddDBKey(CustNoNdx, Demo^.Field(1));
  148.         Flash(24, 50, Blue + BlackBG, Replicate(#176, 30));
  149.         Flash(24, 50, White + RedBG, 'Add another record ? ');
  150.         BC := GetBoolean(Continue, 'Y', 'N', 72, 24);
  151.     until BoolToStr(Continue, 'Y', 'N') = 'N';
  152.     Dispose(Demo, Done);
  153.     Test := SaveScreen;
  154.     SetDBColor(Black, Black);
  155.     ClrScr;
  156.     SetDBColor(White, Black);
  157.     Writeln('Just a moment ! I saved the last screen ! Press any key to see it again....');
  158.     Ch := ReadKey;
  159.     RestoreScreen(Test);
  160.     Delay(5000);
  161.     ClrScr;
  162. end.
  163.