THE WELCH COMPANY
440 Davis Court #1602
San Francisco, CA 94111-2496
415 781 5700
rodwelch@pacbell.net


S U M M A R Y


DIARY: June 1, 1998 03:27 PM Monday; Rod Welch

Improved Contact record and SDS transfer.

1...Summary/Objective
2...Contact System Improvement Objectives Managing Flexible Fields
...1...Eliminate use of cut and paste, since this takes RAM, and
...4...Provide alternate ways to list people and organizations in
...5...Provide alternate mailing address field.
...6...Improve Contact identification in SDS records, so we can have a
...7...Letterhead for SDS Web pages using macro file 0450431 that
...9...Apply zone for first and last names to identify person in
..10...Open Contacts to name of person specified in SDS Contacts
3...000009 Add Entry 1820 Load Letterhead Macro from Contact Record
4...021 Individual Contact Record Template updated
5...022 Organization Contact Record Template updated
6...000009 Distinguish first, last name to enter a Contact from Summary
7...000009 Open Contacts to name of person in SDS
8...000007 Macro 1221 Marks For Linking
9...000008 Open Contacts to name of person
10...0705051 F2 Save Contact Record
11...0705051 Provide multiple alphabetical listings for Contacts
12...Planning Code Changes for 0705051
.....Need ability to remove multiple listings
.....Need to update multiple Summaries when record deleted
13...0705051 Develop loop to create multiple listings for a Contact
14...0705051 Personal Contacts put last name first
15...0705051 Multi-alphabetical Summaries use only 1st Contact Person
16...0705051 Primary alphabetical list has all designated Contact Persons
17...Eliminate secondary phone numbers for Contact Person in Summary
18...Main phone number is dafault if no number for Contact person
19...0705051 Contact Person line number for sorting Summary lists
20...0705051 Personal Contact Schedule Coordination and SDS User ID
21...If no contact person specified for a record, use default
22...0705051 Complete list Contact Persons extracted for Summaries
23...Secondary Alphabetical listings omit supplemental Contact Persons
24...0707051 Get SDS User ID in Contact Record for Repetitive Dates
25...0707051 Get global original alphabetical listing to compare with new
......Remove Listings in All Summaries for Current record
26...0707051 Changed method of updating alphabetical Summaries
27...0705051 Delete Listings from Alphabetical Summaries
......Can unplug listings and save for future use if needed
28...0705051 DOS calls to Update Alphabetical Summary lists
29...0705051 Cycle back for Multiple Alphabetical Listings
30...0705051 Update Contact Record number stack
31...000009 Capture mutliple Summary listings when Contact Record opened
32...10 52 Updated Help for Contact Summaries


..............
Click here to comment!

CONTACTS 

SUBJECTS
Load Letterhead to 0450431
Address - SDS
Load CNS records to SDS, 910312
Memory Management
Cut and Paste, Eliminated
Field Format Setup, 05011, F1 F5, 000811
Letterhead Signature Block Address Salutation Dear, 0450431
Planning and Concepts
Address Alternate
Alternate Address Correspondence

1512 -
1512 -    ..
1513 - Summary/Objective
1514 -
151401 - Follow up ref SDS 22 0000, ref SDS 21 0000.
151402 -
151403 - As a result of work adding support for HTML in correspondence and SDS
151404 - Web pages, the past week, I recognized the need to consolidate code
151405 - for Contacts, and to make other improvements. The work was done over a
151406 - two week period, but reported in this record so that correlations are
151407 - easier to follow.
151409 -  ..
151410 - Key improvements were applying letterhead management to SDS Web page
151411 - system, done on 980526. ref SDS 21 0001, and providing multiple
151412 - listings in alphabetical Contact Summaries.  Was able to eliminate
151413 - using Cut and Paste, which improves memory management. ref SDS 0 1626
151414 -
151416 -  ..
1515 -
1516 -
1517 - Planning
1518 -
151801 - Contact System Improvement Objectives Managing Flexible Fields
151802 -
151803 - Code for the Contacts system is complicated because many fields are
151804 - integrated to support diverse management tasks.  Fields with flexible
151805 - content improve productivity, but are more complex than fixed fields.
151806 - Complexity of the code has compounded over the years since converting
151807 - the original macro file 02601 into compiled file 000009, reported on
151808 - 930418. ref SDS 9 2939
151810 -  ..
151811 - Today, will simplify the code in 000009 to make future improvements
151812 - faster and easier.
151813 -
151814 -      [On 980612 completed these tasks and seem to have saved a total
151815 -      of about 8K of program overhead, while significantly expanding
151816 -      features and performance. ref SDS 23 3691
151818 -       ..
151819 -      [On 021019 updated contact record formats and help again.
151820 -      ref SDS 27 4741
151821 -
151823 -  ..
151824 - I want to...
151825 -
151826 -   1.  Eliminate use of cut and paste, since this takes RAM, and
151827 -       instead use the char read macro 1182.
151828 -
151829 -           [On 980724 made similar improvements to justify and split
151830 -           within margins. ref SDS 25 0000]
151832 -        ..
151833 -       We can use the new macro utility that reads long strings created
151834 -       on 980526, see ref SDS 21 3012
151836 -        ..
151837 -       This was done throughout a several week period across a wide
151838 -       spectrum of code, per ref SDS 0 2015.
151840 -        ..
151841 -   2.  Eliminate use of macro file 026011 to load multiple contacts
151842 -       into an Editor file, since it has a lot of code that is already
151843 -       in 000009, and so should be able to be accomplished in 000009.
151845 -        ..
151846 -       Did this at ref SDS 0 2099.
151848 -        ..
151849 -   3.  Eliminate duplicate code in macro file 0501 for loading Contact
151850 -       idenfification into an Editor file to address formal
151851 -       correspondence.
151853 -        ..
151854 -       Did this on 980612. ref SDS 23 3691
151856 -        ..
151857 -   4.  Provide alternate ways to list people and organizations in
151858 -       alphabetical index.
151859 -
151860 -       I entered changes to Help, in the record of work on 980527.
151861 -       ref SDS 22 8288
151863 -        ..
151864 -       This requires a major change to Contact ID format.  We will
151865 -       make....
151866 -
151867 -                0000
151868 -                00000n
151869 -                ....
151870 -
151871 -       ...Primary and alternate listings - an organization can
151872 -       then appear in the alphabetical listings under a variety of
151873 -       headings.
151875 -        ..
151876 -       This change requires revisions to macro file 0705051 that
151877 -       updates Contact alphabetical Summaries.
151879 -        ..
151880 -       Coding for this is reported below. ref SDS 0 0900
151882 -        ..
151883 -       Organization mailing address will be...
151884 -
151885 -                0001    Name
151886 -                0002    Street
151887 -                0003    City,                 State  Zip
151888 -
151889 -        ...this permits a multi-level organization name of any form.
151891 -         ..
151892 -        There are only 100 or so personal contacts, so I changed those
151893 -        to the new format today.
151894 -
151895 -           [On 980616 changed most of the organization records to the
151896 -           new format. ref SDS 24 0000]
151898 -        ..
151899 -       Street address...
151900 -
151901 -                0002
151903 -        ..
151904 -       City and state...
151905 -
151906 -                0003
151908 -        ..
151909 -       Country...
151910 -
151911 -                000301
151912 -
151913 -
151915 -        ..
151916 -   5.  Provide alternate mailing address field.
151917 -
151918 -       Decided to make it lines...
151919 -
151920 -                0010      Alternate Mailing Address
151921 -                0011
151922 -                0012
151923 -                0013
151924 -                0014
151925 -                0015
151927 -        ..
151928 -       This provides similar structure used for the main address that
151929 -       begins with 0001 - 0003. ref SDS 0 3571  We can use the
151930 -       numerical values as common field identification.
151932 -        ..
151933 -       See change to Contact record template. ref SDS 0 6427
151934 -
151935 -           [On 980612 modified macro file 0501 to use the new mailing
151936 -           address features for setting up formal correspondence. see
151937 -           ref SDS 23 3691
151938 -
151939 -           [On 021019 modified format for alternate mailing address.
151940 -           ref SDS 27 2973
151941 -
151943 -        ..
151944 -   6.  Improve Contact identification in SDS records, so we can have a
151945 -       multi-line contact ID, if needed.
151946 -
151947 -       Formerly we did it solely on line 000101 in col 52, with only 25
151948 -       columns. This has been too restrictive.
151950 -        ..
151951 -       I want to use an entire line, and if needed, a second line, so
151952 -       we can more clearly show where an individual fits in an
151953 -       organization.
151955 -        ..
151956 -       Decided to make it lines...
151957 -
151958 -                0015     Alternate SDS Contact Format
151959 -                001501   xxx
151960 -                001502   xxx
151961 -                001502
151963 -        ..
151964 -       See change to Contact record template. ref SDS 0 6428
151966 -        ..
151967 -   7.  Letterhead for SDS Web pages using macro file 0450431 that
151968 -       supports system for correspondence, per objectives on 980526,
151969 -       ref SDS 21 3579, and shown by coding explained in the same
151970 -       record. ref SDS 21 2870
151971 -
151972 -             Decided to make it...
151973 -
151974 -                0016     Letterhead for corresp and Web
151975 -                001601   xxx
151976 -                001602   xxx
151978 -          ..
151979 -         [On 980612 actual coding was performed for this change to use
151980 -         0450431 to provide a letterhead for correspondence that sets
151981 -         PCL parameters to print a centered address. ref SDS 23 3470
151983 -        ..
151984 -       See change to Contact record template. ref SDS 0 6429
151986 -        ..
151987 -   8.  Alterternate Letterhead for ASCII Email formats...
151988 -
151989 -                0017     Alternate Letterhead 2 Line ASCII
151991 -        ..
151992 -       This may not be needed any longer, but will keep it for awhile.
151994 -        ..
151995 -   9.  Apply zone for first and last names to identify person in
151996 -       Contact Summary to load an address or enter a Contact id into an
151997 -       SDS record.  If a name is the first name for one person, and the
151998 -       last name for another person, the code can distinguish this.
151999 -
152000 -       It requires eliminating descriptors on the last name field.
152002 -        ..
152003 -       Did this at ref SDS 0 3440.
152005 -        ..
152006 -       It is a little tricky, so added explanation in Help. ref SDS 0
152007 -       1257
152009 -        ..
152010 -  10.  Open Contacts to name of person specified in SDS Contacts
152011 -       field.
152012 -
152013 -       Did this at ref SDS 0 4556,
152014 -
152015 -
152016 -
152017 -
152018 -
1521 -

SUBJECTS
Load Letterhead to 0450431
Contacts, Menu

1904 -
190501 -  ..
190502 - 000009  Add Entry 1820 Load Letterhead Macro from Contact Record
190503 -
190504 - Follow up ref SDS 22 1968, ref SDS 21 2582.
190505 -
190506 - Line 160, ref OF 9 2828, -entry 1807 this code executes the "Enter"
190507 - key in a Contact record.
190508 -
190509 -     Global 122 = 1122 identifies if the operation was launched from a
190510 -     report such as a Subject, References, or a doc log report.
190512 -  ..
190513 - Line 320, ref OF 9 2432, -label lRec_z is the code that loads a
190514 - Contact to an Editor file when Enter is called on a Contact person's
190515 - name from within an Editor file.
190516 -
190517 -     This is where the code needs to cycle back from the an operation
190518 -     in the Contact Summary to load a contact record into an Editor
190519 -     file. ref SDS 0 1293
190521 -  ..
190522 - Line 440, ref OF 9 3046, -label 026011z, added code to move the system
190523 - profile identifier, counter 47 into globla 143 so that this operation
190524 - can determine when the call started from SDS or from the Editor.
190526 -  ..
190527 - Line 460, ref OF 9 2444, -label lodIt9 this is the call from within a
190528 - Contact record to make entries directly into an SDS record or an
190529 - Editor file.
190531 -  ..
190532 - Line 1110, ref OF 9 2638, -label aoRecrd added code setcnt 126 99, as
190533 - an alternate flag from 127 11, so that the code can cycle back to
190534 - -label lRec_z  when loading a contact record to an Editor file from
190535 - the Contact Summary. ref SDS 0 1210
190537 -  ..
190538 - The flag 126 99 is applied at -label aM_sDs_c, as explained below at
190539 - ref SDS 0 7746.
190541 -  ..
190542 - Flag 126 99 is also applied to cycle back to the Summary to look for a
190543 - muliple-contact spec at ref SDS 0 3024
190544 -
190545 -                124 = Flag for load multiple persons in cur record
190546 -                125 = Flag for counter 126
190547 -                126 = Editor begin CNS op
190548 -                127 = Contact Summary or Record, begin op
190549 -                128 = Org or Invidual record
190550 -                129 = Doc Log control
190551 -
190553 -      ..
190554 -     When 127 11 is set it identifies when Enter is used within a
190555 -     Contact record.  We set 127 12 to initially slip past this
190556 -     condition in order to open the Contact record from the Summary and
190557 -     to find the specified Contact person in the Contact record, they
190558 -     we cycle back and set 127 11 in order to execute all of the code
190559 -     that loads the record.
190561 -  ..
190562 - Line 1150, ref OF 9 3412, -label cName, changed to call 000901 that
190564 -  ..
190565 - Line 1120, ref OF 9 4504, -label 04702N created new code to load an
190566 - Organization contact directly to an SDS record without using cut and
190567 - paste.
190569 -  ..
190570 - Line 1140, ref OF 9 5695, -label 0001n added code to process address
190571 - for an Editor file at this location.
190573 -  ..
190574 - Line 1200, ref OF 9 4224, -label cstate added code to save location
190575 - using macro 18 to mark position for entering the "Location" field
190576 - which is appended to the street address.
190577 -
190578 -      If there are several "1" lines as can happen in Contact
190579 -      addresses, although for this field it is unusual, we will append
190580 -      the "Other Location Identifier" on the last of the "1" lines.
190582 -  ..
190583 - Line 1310, ref OF 9 5968, -label mcLn this is the main loop for
190584 - processing contacts within a Contact record.  The User can put an x or
190585 - other char in column 9 in front of the Contact person's name and the
190586 - code will load it and any other records similarly marked into the SDS
190587 - record or into an Editor file.
190588 -
190589 -      This is the feature formerly accomplished by macro file 026011,
190590 -      which can be deleted as a result of this improvement in the
190591 -      compiled code, per ref SDS 0 2642.
190593 -  ..
190594 - Line 1430, ref OF 9 15183, -label nbagn, The following char are
190595 - excluded because they are used for other things...
190596 -
190597 -             *  Identifies a Contact person to list in the Summary
190598 -             -  Identifies a Contact person to get a report in SDS
190599 -             #  Identifies repetitive date data
190601 -     ..
190602 -    Column 6 must be blank to distinguish between a highlight flag and
190603 -    a char entered for the purpose of identifying a multiple-contact
190604 -    specification from within a Contact record.
190606 -  ..
190607 - Line 1580, ref OF 9 3931, -label aM_sDs_c, here is where the Contact
190608 - person's name is captured.  It should be able to handle an error in
190609 - the data entry for the first name, as follows:
190610 -
190611 -          Mr. Walt G.                      Anderson
190612 -          Mr.  Walt G.                     Anderson
190613 -
190615 -  ..
190616 - Line 1760, ref OF 9 5761, -label aM_sDs_c this is where operation to
190617 - load a Contact address into an Editor file launched from a Summary
190618 - cycles back to load the organization address, after having located and
190619 - marked the Contact person's name in the Contact record.
190620 -
190621 -       It uses counter 126 = 99, which is set above at ref SDS 0 1293
190623 -      ..
190624 -     Decided to change this code and use a subroutine so there is a
190625 -     single method to capture a Contact string.
190627 -      ..
190628 -     When we get a City State string, ref OF 9 4257, the code is the
190629 -     same as for captuirng a Contact person's name.
190630 -
190632 -  ..
190633 - Line 1760, ref OF 9 3865, -label aQd1, enter the Department, Division
190634 - or other grouping into the SDS record.  We can get as many as two
190635 - lines.
190637 -  ..
190638 - Line 1970, ref OF 9 3875, -label aQo1, this ends cycle of entering
190639 - basic record ID, added code for Editor address to enter the other
190640 - location identification.
190641 -
190642 -      Decided to change the name of the field from...
190643 -
190644 -                     Other Location Identifier
190645 -
190646 -         ...to simply...
190647 -
190648 -                     Location:
190650 -  ..
190651 - Line 2070, ref OF 9 5717, -label bbv8 this ends op to load address to
190652 - an Editor file.  The code then cycles back either to the Summary or to
190653 - the Contact record to look for another record to load, depending upon
190654 - whether the op started from a Summary or from a Contact record.
190655 -
190656 -      If the operation started from within a Summary, then the code
190657 -      cycles back to the Summary based on counter 126 = 99, per the
190658 -      work above at ref SDS 0 1293
190660 -  ..
190661 - Line 2890, ref OF 9 8144, -label ecId, we need to increment the
190662 - number of lines added for Contacts, including multi-contacts, to
190663 - adjust counter 65 in macro 23 that restores the SDS record to the
190664 - initial position, because the cursor always starts below the Contacts
190665 - field.
190667 -  ..
190668 - This is not needed for Editor files, because the file is restored to
190669 - initial start line that is above the data entered by the operation.
190671 -  ..
190672 - Line 2900, ref OF 9 8145, -label lmctef, tap into code for loading
190673 - multiple contacts into an Editor file from the Summary, to use same
190674 - code for SDS records.
190676 -  ..
190677 - Line 2720, ref OF 9 5445, -label 34wu this ends the routine to load a
190678 - Contact record into an SDS record.
190679 -
190680 -     Add value for number of lines added to the file to adjust counter
190681 -     65 for positioning the SDS record to original location.
190682 -
190683 -
190684 -
190685 -
1907 -

SUBJECTS
Organization New Record Template
Individual New Record Template
Add or Delete CNS record, 910316, (see also
Add New Record, Macro 1301

2306 -
230701 -  ..
230702 - 021   Individual Contact Record Template updated
230703 - 022   Organization Contact Record Template updated
230704 -
230705 - Updated the standard file format for Contact records adding new
230706 - individual and organiztional contacts.
230707 -
230708 - The Contact menu calls macro 1301 to add a new record.
230710 -  ..
230711 - Line 670, ref OF 9 5362, -entry 130 adds an individual Contact record
230712 - and below it at -entry 1301, the code starts operation to add a new
230713 - organization record.
230715 -  ..
230716 - This code eventually calls -label oPenit.
230718 -  ..
230719 - Line 3320, ref OF 9 5397, -label oPenit, this code calls the following
230720 - template files to set up a User to add a new Contact record.
230721 -
230722 -      Individual...
230723 -
230724 -           h: sd 09 01 021       Individual Contact record template
230726 -            ..
230727 -           h: sd 09 01 022       Organization Contact record template
230729 -     ..
230730 -    [On 981101 modified organization record format to use a department
230731 -    symbol on col 52 of "Dear" line. ref SDS 26 4704]
230732 -
230734 -  ..
230735 - I modified these files today so they reflect the new field structure
230736 - explained above.
230737 -
230738 -       Alternate ways to list an organization record. ref SDS 0 2285
230739 -
230740 -          This changed the mailing address lines slightly. ref SDS 0
230741 -          3571
230742 -
230743 -          ...see Individual Contact record at ref OF 13 line 19
230744 -
230745 -          ...see Individual Contact record at ref OF 14 line 19
230747 -        ..
230748 -       Alternate mailing address field. ref SDS 0 2973
230749 -
230750 -          ...see Individual Contact record at ref OF 13 line 32
230751 -
230752 -          ...see Individual Contact record at ref OF 14 line 34
230753 -
230755 -        ..
230756 -       SDS Contact Format field was added. ref SDS 0 4631
230757 -
230758 -          ...see Individual Contact record at ref OF 13 line 34
230759 -
230760 -          ...see Organization Contact record at ref OF 14 line 36
230762 -        ..
230763 -       [On 981101 changed organization contacts. ref SDS 26 3855]
230765 -        ..
230766 -       Letterhead for correspondence and Web pages, that is loaded into
230767 -       the letterhead macro, 0450431. ref SDS 0 2700
230768 -
230769 -          The work to apply the new field structure is reported in the
230770 -          record for 980526. ref SDS 21 0000
230771 -
230772 -          ...see Individual Contact record at ref OF 13 line 36
230773 -
230774 -          ...see Individual Contact record at ref OF 14 line 38
230775 -
230776 -
230777 -
230778 -
230779 -
2308 -

SUBJECTS
Load Spec to Address or SDS
Load CNS records to SDS, 910312
Load CNS records to Editor, 910315
Load Contacts to SDS Records, 911009

2806 -
280701 -  ..
280702 - 000009  Distinguish first, last name to enter a Contact from Summary
280703 -
280704 - Line 1460, ref OF 9 2312, -label nmcLn, added code to evaluate whether
280705 - the User edits the name field in Contact Summary by removing the first
280706 - name so that the search in the Contact record is for the last name,
280707 - per planning objective. ref SDS 0 1770
280709 -  ..
280710 - This also works by entering another person's name, but it should
280711 - normally be the last name, and the rest of the line should be deleted
280712 - so that the code will search for the last name only.  Because, if we
280713 - enter someone else's first name, then we have to remove the last name
280714 - or replace it with the contacts last name, because the code looks for
280715 - both names, if they are present.
280717 -  ..
280718 - Sets flag 178 999 if the last name has been moved to the first name
280719 - position.
280721 -  ..
280722 - Line 1490, ref OF 9 2652, -label nmcLn, added code to set the search
280723 - zone to the first name field, unless the flag 178 999 is off, which
280724 - means last name has been selected, so zone is set for that field.
280725 -
280726 -
280727 -
280728 -
280729 -
2808 -

SUBJECTS
Open Contact from SDS records, 980601
Open Contacts from SDS Contacts Field
<Enter> for General Purpose Access, 910705

3105 -
310601 -  ..
310602 - 000009  Open Contacts to name of person in SDS
310603 -
310604 - Line 680, ref OF 9 3304, -entry 1302 and -label q2357, this is the
310605 - call from Enter in an SDS record with the cursor in a Contact field.
310606 - ref SDS 0 3654
310608 -  ..
310609 - Line 3680, ref OF 9 0892, -label aMSDSt applies flag 1 3000 to
310610 - establish this is to open a Contact record from SDS contact field;
310611 - sets global 90 0
310613 -  ..
310614 - Line 3710, ref OF 9 9900, -label stCnt establish this is an SDS
310615 - record contact field.
310617 -  ..
310618 - Line 3160, ref OF 9 4994, -label jmPPit, added code to use Contact ID
310619 - string captured from SDS record beginning with counter 10, to position
310620 - the Contact record so that the line with the Contact person's name is
310621 - in the middle of the screen.
310623 -  ..
310624 - Line 3490, ref OF 9 6261, -label aM_m_dz, changed this code to use the
310625 - new scheme of entering the Contact ID and person's ID on each line of
310626 - the Contact specification in an SDS record.  This facilitates opening
310627 - the Contact record to the name of the person in the record that is
310628 - specified in the SDS entry for the Contact.
310630 -  ..
310631 - The code here reads the record type and sets 128 to 2 or 4, and for
310632 - organizations, setgbl 157 777 establishes which contact data base to
310633 - open, and to look for a specific person in the contact record when it
310634 - is opened.
310636 -  ..
310637 - It could call macro 1221 to mark the current record, which is in
310638 - 000007, as set on 931114. ref SDS 11 0877
310639 -
310640 -     Decided to unplug this because when a contact record is opened
310641 -     from an SDS record, there is no linking operation that flows from
310642 -     this action.
310644 -      ..
310645 -     If we do a report on Contacts, 044011 is called by macro 117, and
310646 -     044011 sets up the record to support listing any record found in
310647 -     the report process back to the original SDS record. ref OF 4 0877
310649 -  ..
310650 - Line 3420, ref OF 9 1404, -label aMmfy, need setcnt 87 0 so macro 1182
310651 - will read both the contact record ID and the line number for the
310652 - person in the record.
310653 -
310655 -  ..
310656 - 000007  Macro 1221 Marks For Linking
310657 -
310658 - Line 2840, ref OF 7 7095, -entry 1221 seems to have an error.  It
310659 - shows...
310660 -
310661 -        setgbl 161 10200
310662 -
310663 -             Considered adding this for reasons at 940304 113744 00101 line 65.
310665 -         ..
310666 -        setcnt 161 10201
310667 -        markcur 67
310669 -  ..
310670 - Why is global 161 set to 10200 and local 161 is set to 10201?
310671 -
310672 -    Record on 940304 says 161 cannot be 10201, but does not say why.
310673 -    ref SDS 13 3325
310674 -
310675 -
310677 -  ..
310678 - 000008  Open Contacts to name of person
310679 -
310680 - Line 900, ref OF 8 2638, -entry 1303 and -label oCon, this code sets 1
310681 - 3000 and calls macro 1302 in 000009, per ref SDS 0 4556,
310682 -
310683 - Added setcnt 243 0 to reset code in 000009 at ref OF 9 9900.
310684 -
310685 -
310686 -
310687 -
3107 -

SUBJECTS
Save Contact Record
Alphabetical segments, 910103
Multiple Listings for Looking Up Organization in Alternate Ways
Multple Organization and Personal Names Record Identification 00000x

3506 -
350701 -  ..
350702 - 0705051  F2 Save Contact Record
350703 - 0705051  Provide multiple alphabetical listings for Contacts
350704 -
350705 - Follow up ref SDS 12 4Y7M, ref SDS 10 UY7G.
350706 -
350707 - On 910317 general discussion of system. ref SDS 1 0000
350708 -
350709 - Today I changed the Contact record format so that the 0000 line is the
350710 - main contact for listing in Summaries.  Will make lines...
350711 -
350713 -                            ..
350714 -                           0000
350715 -                           00000n
350716 -                           ..
350717 -       ..
350718 -      ...alternate listings for the alphabetical Summaries, so that
350719 -      Users can look up an organization in any manner they wish. see
350720 -      ref SDS 0 2285 for objectives and ref SDS 0 3869 for changes to
350721 -      the new record template files.
350722 -
350724 -  ..
350725 - Planning Code Changes for 0705051
350726 -
350727 - The basic idea is to create a loop with the current code to process
350728 - each of the listings in a Contact record so that there are multiple
350729 - ways to look up something in an alphabetical Summary. ref SDS 0 3835
350731 -      ..
350732 -     Need ability to remove multiple listings
350733 -
350734 -     The code needs to work a little differently.
350735 -
350736 -     Now we need initially, to delete all entries in every alphabetical
350737 -     summary where the Contact is entered.
350739 -      ..
350740 -     We can do this by capturing when a record is opened the letters
350741 -     for the summary files, beginning with counter 161. ref SDS 0 3924
350743 -      ..
350744 -     When the record is saved, the first step is to remove listings for
350745 -     the current record in the corresponding alphabetical summaries,
350746 -     and then new entries will be created for whatever is in the
350747 -     record.
350749 -      ..
350750 -     Decided to accomplish this objective as explained below. ref SDS 0
350751 -     4973
350752 -
350754 -      ..
350755 -     Need to update multiple Summaries when record deleted
350756 -
350757 -     This requires modifying macro 026013. ref SDS 9 3403
350758 -
350759 -         [On 980612 did work on this ref SDS 23 0000.]
350760 -
350762 -  ..
350763 - 0705051  Develop loop to create multiple listings for a Contact
350764 -
350765 - Line 40, ref OF 6 3340, -label lpsnl, added loop and changed code to
350766 - use char read macro 1182 instead of cut and paste, per ref SDS 0 4741.
350767 -
350768 - The end of the loop is at ref SDS 0 3503,
350770 -  ..
350771 - Line 60, ref OF 6 3029, -label gph changed the code to get in a
350772 - single pass the Contact ID and main phone number.
350773 -
350775 -  ..
350776 - 0705051  Personal Contacts put last name first
350777 -
350778 - Line 100, ref OF 6 4059, -label lpsnl, personal contacts, last name
350779 - needs to be swapped so it is in front.  We want to get the first name
350780 - and middle initial, and we want a comma after the last name since the
350781 - first name is entered after it in the Contact Summary.
350782 -
350784 -  ..
350785 - 0705051  Multi-alphabetical Summaries use only 1st Contact Person
350786 -
350787 - Line 120, ref OF 6 5950, -label orgzO, added code using counter 139 as
350788 - a switch for the multi-alphabetical Contact Summary listing loop, so
350789 - that after the primary alphabetical Summary is posted, which will
350790 - include all Contact persons designated by a "*", then only the main
350791 - Contact person is used for the alternate alphabecital listing.
350793 -  ..
350794 - Counter 139 1 is set at the end of the code that processes the primary
350795 - alphabetical listing. ref SDS 0 3503
350797 -  ..
350798 - After the first pass, we can use counter 2 in tjf which has the number
350799 - of lines in the file from the code that checks tjf at the end of the
350800 - first pass to delete extra lines. ref SDS 0 1926
350802 -  ..
350803 - Line 160, ref OF 6 2293, -label maclp, counter 90 1 jumps processing
350804 - past code that loads Contact Person's name and phone number, since we
350805 - already have that stuff.  It goes to -label macsl2. ref SDS 0 1977
350806 -
350807 -
350809 -  ..
350810 - 0705051  Primary alphabetical list has all designated Contact Persons
350811 -
350812 - Line 180, ref OF 6 5623, -label lpa, this loop looks for multiple
350813 - contacts with a "*" which signifies they are to be included in the
350814 - Contact Summary.
350815 -
350816 - The end of the loop is at ref SDS 0 2726.
350818 -  ..
350819 - It has been using global 1 to signifiy when more than one person's
350820 - name is found, i.e., has a * in column 9, since we are change from
350821 - using cut and paste to using the char read macro 1182, we have to
350822 - change this flag.  I changed it to global 111.
350823 -
350825 -  ..
350826 - Eliminate secondary phone numbers for Contact Person in Summary
350827 -
350828 - Today, decided to eliminate putting the person's direct phone number
350829 - after the Contact name.  It will instead replace the oranization main
350830 - phone number field. The original reasoning to have multiple phone
350831 - numbers in the Summary has not proven advantageous, and I want now to
350832 - have a clean entry for the person's name.
350833 -
350834 -     On 910322 phone number format was analysed. ref SDS 5 1897
350836 -      ..
350837 -     The original scheme was analysed on 910322, ref SDS 4 1897, and
350838 -     further on 910328. ref SDS 6 5440
350839 -
350841 -  ..
350842 - Main phone number is dafault if no number for Contact person
350843 -
350844 - Line 290, ref OF 6 3952, -label 0101x, about 70 lines below, enter the
350845 - Contact person's name after first duplicating the line in the tjf
350846 - processor file, so that if there are multiple Contact persons
350847 - designated for display in the Contact Summary, and one of them does
350848 - not have a direct phone shown in the Contact record, then the main
350849 - phone number will show for that person in the Contact Summary.
350850 -
350851 -     The extra line is removed under -label dKaAaz, ref SDS 0 1926.
350852 -
350854 -  ..
350855 - 0705051  Contact Person line number for sorting Summary lists
350856 -
350857 - Line 290, ref OF 6 4899, -label 0101x, about 70 lines below, on the
350858 - first pass, we will not enter the ID line number, since for most
350859 - records there is only a single entry and so the sort problem does not
350860 - arise.  If there are more than one, then leaving the first one blank
350861 - makes it sort high which is what we want.  Leaving out these line
350862 - numbers that are not otherwise needed keeps the size of the Contact
350863 - Summary files to a minimum, which is helpful in a system that is RAM
350864 - constrained.
350866 -     ..
350867 -    Considered omitting the Contact person's line number in the Contact
350868 -    record, from the Contact Summary, since this is a fluid value.  If
350869 -    we need this, we get from the Contact record, as is done in
350870 -    0000009. ref OF 9 2652
350872 -     ..
350873 -    Actually, the Contact person's line number is used to maintain the
350874 -    order in the Contact Summary list that is in the Contact record,
350875 -    per work on 980328, ref SDS 6 5207.  Therefore, I kept this.
350877 -  ..
350878 - Line 340, ref OF 6 3179, -label 1stps, this enters line number of
350879 - Contact person for sorting in Contact Summary.  It is captured when
350880 - the line that is found by the search for a "*" is evaluated to ensure
350881 - that it is a Contact Person's line. ref OF 6 3679 and. ref OF 6 4517
350883 -  ..
350884 - Line 550, ref OF 6 3905, -label at13 this is the loop for entering
350885 - multiple Contact person's in an organization record.
350886 -
350887 -
350889 -  ..
350890 - 0705051  Personal Contact Schedule Coordination and SDS User ID
350891 -
350892 - Line 510, ref OF 6 2128, -label ncppn, this code captures SDS schedule
350893 - coordination string and User ID, if they are entered.
350894 -
350895 - Decided to capture whatever is entered and put in the Contact Summary,
350896 - even if the field is blank or has a field title.
350897 -
350898 -
350900 -  ..
350901 - If no contact person specified for a record, use default
350902 - 0705051  Complete list Contact Persons extracted for Summaries
350903 -
350904 - Line 580, ref OF 6 2284, -label dKaAaz, this code runs after all of
350905 - the Contact person IDs have been entered.
350906 -
350907 - Need to delete the extra template line created at ref SDS 0 2029. Use
350908 - counter 2 to get number of lines and test to see if there is more than
350909 - one line and the Contact Person field is blank, then the line can be
350910 - deleted.  Counter 2 can also be used to set up tjf for processing
350911 - multi-alphabetical listings, per above. ref SDS 0 1558
350913 -  ..
350914 - If there is no Contact person entered in the record, the code will
350915 - enter...
350916 -
350917 -                          No Contact Person
350918 -
350919 -      ...in the Contact person field of the Summary.
350920 -
350922 -  ..
350923 - Secondary Alphabetical listings omit supplemental Contact Persons
350924 -
350925 - Line 700, ref OF 6 2329, -label macsl2, where tjf only needs to be
350926 - "saved" to disk, since it only has one line for multi-alphabetical
350927 - Summary list processing, per ref SDS 0 2308.
350928 -
350930 -  ..
350931 - 0707051  Get SDS User ID in Contact Record for Repetitive Dates
350932 -
350933 - Line 660, ref OF 6 3025, decided to get User ID from within Contact
350934 - record rather than from system globals.  The system globals values
350935 - are for a situation where several peopal are using the same SDS
350936 - program.
350937 -
350938 -     The User ID should be updated each time it is opened and saved
350939 -     from SDS.
350941 -      ..
350942 -     Therefore, normally, a Contact record would have the User ID of
350943 -     whoever opens it from the Editor.  This is not exactly correct,
350944 -     but it is close enough for now.
350946 -  ..
350947 - Line 960, ref OF 6 4319, -label rPdate changed the code to use local
350948 - User ID from Contact record, rather than try to get the globals from
350949 - the SDS program, since sometimes Contact records are opened from
350950 - Editor files, and the User ID is already in the Conact records from
350951 - being opened from SDS.
350952 -
350953 -
350955 -  ..
350956 - 0707051  Get global original alphabetical listing to compare with new
350957 -
350958 - Line 670, ref OF 6 3446, -label tjF, added code to capture the current
350959 - file number for the letter of the Contact record from counters 161+,
350960 - which are created by macro 1808 in 000009 that opens Contact records,
350961 - per code added today. ref SDS 0 3924
350962 -
350964 -       ..
350965 -      Remove Listings in All Summaries for Current record
350966 -
350967 -      This needs to do a loop to remove all listings for the current
350968 -      record from all alphabetical Summaries. ref SDS 0 2411
350969 -
350970 -      Decided to do it below after processing entries in the record.
350971 -
350972 -
350974 -  ..
350975 - 0707051  Changed method of updating alphabetical Summaries
350976 -
350977 - In the current system which we are changing today, there has been only
350978 - a single Contact Summary and this is captured in counter 170 when a
350979 - record is opened by macro 1808.
350980 -
350981 -     Sometimes the name of an organization is changed.  So the entry in
350982 -     the alphabetical Contact Summary has to be removed for the old
350983 -     listing, and a new entry must be made in a different alphabetical
350984 -     Contact Summary.
350986 -      ..
350987 -     This requires the system to know at the onset when a Contact
350988 -     record is first opened which alphabetical Contact Summary the
350989 -     record has been entered.
350991 -  ..
350992 - Today, I am changing this from counter 170 to 161 so that there are
350993 - 10+ alternate ways to list a record. per ref SDS 0 3924.
350995 -  ..
350996 - Actually, it appears that global 177 also captures the same thing in
350997 - macro file 0470410, in setting up a Contact Summary. ref OF 5 6090
350998 -
350999 -
351001 -  ..
351002 - 0705051  Delete Listings from Alphabetical Summaries
351003 -
351004 - Line 850, ref OF 6 4823, -label lpexcl this code enters in a sort
351005 - processor filenames for the alphabetical Summary files that contain
351006 - listings for the current record.  The sort processor excludes the
351007 - listings from all alphabetical summary files using letter values
351008 - beginning in counter 161 captured by 000009 when a record is first
351009 - opened, ref SDS 0 3924, per planning above. ref SDS 0 2411
351011 -  ..
351012 - The code deletes all summary file listings, so when the next step
351013 - occurs that enters the listings in the current record, none of the
351014 - prior listings are in the system, unless they are the same as the
351015 - current file when "save" is called with F2.
351016 -
351018 -       ..
351019 -      Can unplug listings and save for future use if needed
351020 -
351021 -      Added feature so Users can have several listings and unplug
351022 -      them, by pushing them one col to the right.  This way they are
351023 -      not lost, but can be used when needed.
351024 -
351026 -  ..
351027 - 0705051  DOS calls to Update Alphabetical Summary lists
351028 -
351029 - Line 960, ref OF 6 1923, -label dlclfs, these are the actual
351030 - sort/merge DOS /c calls that accomplish the data base manipulation.
351031 -
351032 -     On 910318 discussion of process. ref SDS 2 5104
351034 -      ..
351035 -     On 910319 discussed development of this code. ref SDS 3 2323
351037 -      ..
351038 -     On 910330 discussed deleting records. ref SDS 7 0000
351040 -      ..
351041 -     On 930418 macro file 026013 was created to delete Contact records.
351042 -     ref SDS 8 3403
351043 -
351045 -  ..
351046 - 0705051  Cycle back for Multiple Alphabetical Listings
351047 -
351048 - Line 900, ref OF 6 4055, -label n_rEpD, this is where code can cycle
351049 - back to create multiple listings, if User enterd alternate names for
351050 - an organization.  Use 139 1 as flag to simply modify tjf each pass,
351051 - and it will enter only a single Contact Person, per the code above at
351052 - ref SDS 0 1558.
351053 -
351055 -  ..
351056 - 0705051  Update Contact Record number stack
351057 -
351058 - Line 1040, ref OF 6 2749, -label ovrN  added code to update the file
351059 - that stores the current record number for adding a new record.  These
351060 - are in...
351061 -
351062 -                H:\SD\09\02\00000\00       organization data base
351064 -                 ..
351065 -                H:\SD\09\03\00000\00       personal data base
351067 -     ..
351068 -    The delete record operation puts the record number in the stack at
351069 -    the bottom, that presumably it will be the next number used for a
351070 -    new record.
351072 -     ..
351073 -    The "save" record function can restore a deleted record, so it has
351074 -    to check the stack each pass to delete an entry for the current
351075 -    record number if it is in the stack.
351076 -
351077 -
351078 -
351080 -  ..
351081 - 000009  Capture mutliple Summary listings when Contact Record opened
351082 -
351083 - Line 70, ref OF 9 2783, -entry 1808 and -label opRecrd are a common
351084 - function to open a Contact record.  This code calls subroutine
351085 -
351086 -                      -label aMld_Rcd
351088 -  ..
351089 - Line 3100, ref OF 9 6587, -label aMld_Rcd initially sets flags...
351090 -
351091 -                    setgbl 151 21
351092 -                    setcnt 151 21
351094 -  ..
351095 - Line 3380, ref OF 9 4731, -label modrec, this code captures the
351096 - capital letter of the beginning of the alphabetical listing.
351098 -  ..
351099 - The code is using counter 170, but today, I am changing this to start
351100 - with counter 161 and it will use succeeding counters to a maximum of
351101 - 10 alternate listings. per ref SDS 0 6194,
351102 -
351103 -
351104 -
351105 -
3512 -

SUBJECTS
CNS

3603 -
360401 -  ..
360402 - 10 52   Updated Help for Contact Summaries
360403 -
360404 - As a result of changes to distinguish between first and last names in
360405 - the Contact Summaries, see, ref SDS 0 1770 and ref SDS 0 3440, need to
360406 - explain in Help for the Contact Summary how "Enter" works.
360407 -
360408 -
360409 -
360410 -
360411 -
360412 -
3605 -