home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / libbasic / contact3.bas < prev    next >
BASIC Source File  |  1994-04-23  |  7KB  |  269 lines

  1.  
  2.  
  3.  
  4.     nomainwin
  5.  
  6.     dim name$(500)
  7.     dim stage$(7)
  8.     stage$(0) = "All"
  9.     stage$(1) = "Initial Phone Call"
  10.     stage$(2) = "Opening Mailer"
  11.     stage$(3) = "Follow Up Call"
  12.     stage$(4) = "Special Offer Mailer"
  13.     stage$(5) = "Closing Phone Call"
  14.  
  15.     gosub [loadNames]
  16.     gosub [openMainWindow]
  17.  
  18.  
  19.  
  20. [inputLoop]
  21.  
  22.     input r$
  23.     goto [inputLoop]
  24.  
  25.  
  26. [openMainWindow]
  27.  
  28.     WindowWidth = 510
  29.     WindowHeight = 350
  30.  
  31.     'open the main window
  32.  
  33.     button #main, " &OK ", [acceptEntry], UL, 440, 290
  34.  
  35.     statictext #main, "Contacts", 10, 10, 60, 20
  36.     listbox #main.contacts, name$(, [editName], 10, 35, 160, 120
  37.     statictext #main, "Filter Contacts", 10, 170, 160, 20
  38.     combobox #main.filter, stage$(, [loadNamesFiltered], 10, 190, 160, 120
  39.     button #main, "&Edit", [editName], UL, 10, 290
  40.     button #main, "&Add", [addName], UL, 65, 290
  41.     texteditor #main.memo, 265, 190, 225, 90
  42.  
  43.     statictext #main, "Name", 200, 10, 60, 20
  44.       textbox #main.name, 265, 10, 225, 25
  45.     statictext #main, "Address", 200, 40, 60, 20
  46.       textbox #main.addr, 265, 40, 225, 25
  47.     statictext #main, "City", 200, 70, 60, 20
  48.       textbox #main.city, 265, 70, 225, 25
  49.     statictext #main, "State", 200, 100, 60, 20
  50.       textbox #main.state, 265, 100, 40, 25
  51.     statictext #main, "Zip",  330, 100, 40, 20
  52.       textbox #main.zip, 380, 100, 108, 25
  53.     statictext #main, "Phone #", 200, 130, 60, 20
  54.       textbox #main.phone, 265, 130, 225, 25
  55.     statictext #main, "Stage", 200, 160, 60, 20
  56.       combobox #main.stage, stage$(, [inputLoop], 265, 160, 225, 110
  57.  
  58.     open "Liberty Contact Manager" for dialog_nf as #main
  59.  
  60.     print #main, "trapclose [quit]"
  61.     print #main.filter, "select All";
  62.     print #main.contacts, "singleclickselect"
  63.  
  64.     return
  65.  
  66.  
  67.  
  68. [loadNames]
  69.  
  70.     open "c:\liberty\contact3.dat" for random as #contacts len = 650
  71.  
  72.     field #contacts, 20 as name$, 20 as address$, 15 as city$, 2 as state$, 10 as zip$, 15 as phone$, 20 as stage$, 500 as memo$, 48 as fill$
  73.  
  74.     if eof(#contacts) <> 0 then close #contacts : gosub [initializeNames] : goto [loadNames]
  75.  
  76.     get #contacts, 1
  77.     contactCount = val(name$)
  78.     if contactCount = 0 then close #contacts : return
  79.  
  80.     for index = 2 to contactCount + 1
  81.  
  82.         gettrim #contacts, index
  83.         name$(index - 1) = name$
  84.  
  85.     next index
  86.  
  87.     close #contacts
  88.  
  89.     return
  90.  
  91.  
  92.  
  93. [loadNamesFiltered]
  94.  
  95.     print #main.filter, "selection?"
  96.     input #main.filter, filter$
  97.  
  98.     open "c:\liberty\contact3.dat" for random as #contacts len = 650
  99.  
  100.     field #contacts, 20 as name$, 20 as address$, 15 as city$, 2 as state$, 10 as zip$, 15 as phone$, 20 as stage$, 500 as memo$, 48 as fill$
  101.  
  102.     get #contacts, 1
  103.     contactCount = val(name$)
  104.     if contactCount = 0 then close #contacts : return
  105.  
  106.     for index = 2 to contactCount + 1
  107.  
  108.         gettrim #contacts, index
  109.         if filter$ = stage$ or filter$ = "All" then name$(index - 1) = name$ else name$(index - 1) = ""
  110.  
  111.     next index
  112.  
  113.     close #contacts
  114.     print #main.contacts, "reload"
  115.  
  116.     goto [inputLoop]
  117.  
  118.  
  119.  
  120. [initializeNames]
  121.  
  122.     open "c:\liberty\contact3.dat" for random as #contacts len = 650
  123.  
  124.     field #contacts, 20 as name$, 20 as address$, 15 as city$, 2 as state$, 10 as zip$, 15 as phone$, 20 as stage$, 500 as memo$, 48 as fill$
  125.  
  126.     name$ = "4"
  127.     put #contacts, 1
  128.     name$ = "Carl Gundel"
  129.     stage$ = "Initial Phone Call"
  130.     put #contacts, 2
  131.     name$ = "Ray Lukas"
  132.     stage$ = "Special Offer Mailer"
  133.     put #contacts, 3
  134.     name$ = "Bill West"
  135.     stage$ = "Initial Phone Call"
  136.     put #contacts, 4
  137.     name$ = "Alex Guevara"
  138.     stage$ = "Special Offer Mailer"
  139.     put #contacts, 5
  140.  
  141.     close #contacts
  142.  
  143.     return
  144.  
  145.  
  146.  
  147. [editName]
  148.  
  149.     addName = 0
  150.  
  151.     print #main.contacts, "selection?"
  152.     input #main.contacts, selection$
  153.     if selection$ = "" then [inputLoop]
  154.  
  155.     recIndex = 0
  156.     for index = 1 to contactCount
  157.         if selection$ = name$(index) then recIndex = index
  158.     next  index
  159.  
  160.     if recIndex = 0 then [inputLoop]  'This should never need to happen
  161.  
  162.     gosub [getContactRecord]
  163.     print #main.name, name$
  164.     print #main.addr, address$
  165.     print #main.city, city$
  166.     print #main.state, state$
  167.     print #main.zip, zip$
  168.     print #main.phone, phone$
  169.     print #main.stage, "selectindex 7"
  170.     for index = 0 to 5
  171.         if stage$(index) = stage$ then print #main.stage, "selectindex "; index + 1
  172.     next index
  173.     print #main.memo, "!cls" ;
  174.     print #main.memo, memo$ ;
  175.  
  176.     goto [inputLoop]
  177.  
  178.  
  179. [addName]
  180.  
  181.     addName = 1
  182.  
  183.     print #main.name, ""
  184.     print #main.addr, ""
  185.     print #main.city, ""
  186.     print #main.state, ""
  187.     print #main.zip, ""
  188.     print #main.phone, ""
  189.     print #main.stage, "selectindex 7"
  190.     print #main.memo, "!cls" ;
  191.  
  192.     goto [inputLoop]
  193.  
  194.  
  195.  
  196.  
  197. [getContactRecord]
  198.  
  199.     open "c:\liberty\contact3.dat" for random as #contacts len = 650
  200.     field #contacts, 20 as name$, 20 as address$, 15 as city$, 2 as state$, 10 as zip$, 15 as phone$, 20 as stage$, 500 as memo$, 48 as fill$
  201.  
  202.     gettrim #contacts, recIndex + 1
  203.  
  204.     close #contacts
  205.  
  206.     return
  207.  
  208.  
  209.  
  210. [acceptEntry]
  211.  
  212.     print #main.name, "!contents?";
  213.     input #main.name, name$
  214.     print #main.addr, "!contents?";
  215.     input #main.addr, address$
  216.     print #main.city, "!contents?";
  217.     input #main.city, city$
  218.     print #main.state, "!contents?";
  219.     input #main.state, state$
  220.     print #main.zip, "!contents?";
  221.     input #main.zip, zip$
  222.     print #main.phone, "!contents?";
  223.     input #main.phone, phone$
  224.     print #main.stage, "selection?";
  225.     input #main.stage, stage$
  226.     print #main.memo, "!selectall";
  227.     print #main.memo, "!selection?";
  228.     input #main.memo, memo$
  229.     print #main.memo, "!cls";
  230.     print #main.memo, memo$
  231.  
  232.     if addName = 1 then contactCount = contactCount + 1 : recIndex = contactCount
  233.  
  234.     name$(recIndex) = name$
  235.     print #main.contacts, "reload"
  236.  
  237.     gosub [saveContactRecord]
  238.     addName = 0
  239.  
  240.     goto [loadNamesFiltered]
  241.  
  242.  
  243.  
  244. [saveContactRecord]
  245.  
  246.     open "c:\liberty\contact3.dat" for random as #contacts len = 650
  247.     field #contacts, 20 as name$, 20 as address$, 15 as city$, 2 as state$, 10 as zip$, 15 as phone$, 20 as stage$, 500 as memo$, 48 as fill$
  248.     put #contacts, recIndex + 1
  249.     close #contacts
  250.  
  251.     if addName = 0 then return
  252.  
  253.     open "c:\liberty\contact3.dat" for random as #contacts len = 650
  254.     field #contacts, 20 as count$, 630 as fill$
  255.     count$ = str$(contactCount)
  256.     put #contacts, 1
  257.     close #contacts
  258.  
  259.     return
  260.  
  261. [quit]
  262.  
  263.     print #main, "trapclose"
  264.     close #main
  265.     end
  266.  
  267.  
  268.  
  269.