Click here to comment!
1...We need to carefully analyse the code in 0705051 for saving a Contact
2...Gary has commented on how "complicated" the SDS Contacts system seems
3...We could create an option, like Alt F2, to open a record at
CONTACTS 
SUBJECTS
F2 Open Contact Record to Person Name Line
Contacts Save F2 List Individuals Everyone Marked by * in Alphabetic
Contacts Improvements Managing Multiple Relationships Individual Emp
Multiple Relationships Individual Employees Listed Alphabetically in
Planning and Concepts
0907 -
0907 -    ..
0908 - Summary/Objective
0909 -
090901 - Follow up ref SDS 4 0000, ref SDS 2 XT7A.
090902 -
090903 - Improve method of listing names of people who work for organizations
090904 - in the alphabetical list, and to do this comprehensively and
090905 - automatically, rather than require someone to key in the data twice,
090906 - required by the prior system.  When a contact record for an
090907 - organization, the line with the name of the Contact person in the
090908 - organization selected by the User is positioned in the middle of the
090909 - screen. ref SDS 0 OY6H  This record also reviews the scope of contact
090910 - records for managing steady state data. ref SDS 0 CR6F
090912 -  ..
090913 - We need to carefully analyse the code in 0705051 for saving a Contact
090914 - record.
090915 -
090916 -     [On 041206 added functionality and changed code design to
090917 -     implement improvements today. ref SDS 12 0001
090918 -
090919 -
090921 -  ..
0910 -
0911 -
0912 - Evaluation
0913 -
091301 - Precision Access Automatic Multiple Listings Save Time Money
091302 - Contacts Powerful Data Base Maintained Minimal Time Expertise
091303 -
091304 - Follow up ref SDS 8 6O8S, ref SDS 5 N63H.
091305 -
091306 - This improvement eliminates hundreds of keystrokes and considerable
091307 - time for listing employees of organizations in the alphabetical
091308 - contact list.  Adding employees to the alphabetical list for
091309 - organizations reduces the time required to find people to make a call,
091310 - write a letter, report on a meeting, or look up related history.  A
091311 - collateral improvement is opening Contact records to the name of the
091312 - person listed in the Summary. Support for precision access saves time
091313 - and money.
091315 -  ..
091316 - Applying three (3) criteria shown on 030810, ref SDS 3 VO9K, support
091317 - for Contacts developed today is...
091318 -
091319 -    1.  Fast and easy to use, hard to cause a failure, with no loss of
091320 -        performance, and no need to update existing records.
091321 -        ref SDS 0 VO5T
091323 -         ..
091324 -    2.  Existing procedures either remain the same or are improved, so
091325 -        there is minimal learning curve -- things work better with
091326 -        existing skills. ref SDS 0 VP37
091328 -         ..
091329 -    3.  Memory management is not a factor.
091330 -
091332 -  ..
091333 - There are two functions addressed by this change....
091334 -
091335 -    1.  F2 in a Contact Summary used to open a Contact record.  The
091336 -        code now automatically places the name of the person listed in
091337 -        the summary in the middle of the visible screen.  No additional
091338 -        effort is required.  This eliminates having to enter employees
091339 -        twice to list them in the organization alphabtical lists.
091340 -
091341 -            [On 041206 added functionality and changed code design to
091342 -            implement improvements today. ref SDS 12 0001
091344 -         ..
091345 -        Names appear in alphabetical summaries, as follows...
091346 -
091347 -            a.  Highlighted names appear in individual alphabetical
091348 -                summaries.
091349 -
091350 -                If you don't want to list a contact person in an
091351 -                alphabetical summary, don't highlight the line.  The
091352 -                type of highlight flag is not relevant.
091354 -                 ..
091355 -            b.  Names with "*" in column 9 are listed with the
091356 -                organization name.  This facilitates selecting a bunch
091357 -                of people from same organzation for entry in an SDS
091358 -                record to identify who attended meetings.
091360 -                 ..
091361 -                If you don't want to list a contact person with an
091362 -                organization listing, then don't put a * on the line in
091363 -                column 9.
091365 -         ..
091366 -        Appearance of the alphabetical lists is improved.  Previously,
091367 -        when an employee was listed in the alternate name field of a
091368 -        Contact record, that person's name appeared along with the name
091369 -        of the primary individual in the record.  Thus, alphabetical
091370 -        contacts might show ..
091371 -
091372 -            Smith, Fred              406 224 1243  Fred Smith
091373 -            Williams, Brenda         406 224 2538  Fred Smith
091374 -            Jones, Tom               406 224 3715  Fred Smith
091375 -
091376 -        ...which conveys nothing about relationship with an
091377 -        organization.
091379 -         ..
091380 -        Now this list will look like...
091381 -
091382 -            Smith, Fred              406 224 1243  Fabulous Co, Inc
091383 -            Williams, Brenda         406 224 2538  World Exports, Inc
091384 -            Jones, Tom               406 224 3715  National Travel Co
091385 -
091386 -
091388 -         ..
091389 -    2.  F2 in a Contact record now maintains an inventory of all
091390 -        alphabetical summaries that apply to the record, this includes
091391 -        the name of the organization, any alternate names, and all
091392 -        employees.  When F2 is pressed, all listings for the current
091393 -        record are removed from all alphabetical summary files using
091394 -        the inventory constructed from the prior save.  The program
091395 -        then constructs new entries in alphabetical contact files for
091396 -        all employees and alternate listings for the organization.
091397 -        This procedure allows people to add and remove employees, and
091398 -        the alphabetical listings are maintained automatically.
091400 -         ..
091401 -        Personal contacts have the same support, except there are no
091402 -        employees in personal contact records. However, individuals can
091403 -        have alternate listings for themselves, and/or relatives at the
091404 -        same address, e.g., children.  This provides a single
091405 -        addressing op for each physical address in the system.
091406 -
091407 -
091408 -
091409 -
091410 -
0915 -
SUBJECTS
Contacts Save F2 List Individuals Everyone Marked by * in A  habetic
Contacts Complex Because People Organizations Primary Path for Under
1104 -
1105 - Planning
110601 -  ..
110602 - Alphabetical List of People for Organizational Contacts
110603 -
110604 - This continues work on 040615 to list names of individuals who work
110605 - for organizations so that people can find the names in an alphabetical
110606 - list of organizations. ref SDS 4 BX6K
110607 -
110608 -     [On 041206 added functionality and changed code design to
110609 -     implement improvements today. ref SDS 12 0001
110611 -  ..
110612 - Initial planning focuses on using the * character to select names of
110613 - people for alphabetical listing, however, further consideration
110614 - suggests all names should be listed.
110616 -  ..
110617 - Another consideration is how to handle situations where people change
110618 - assignments.  We need to maintain original assignments in order to
110619 - retain ability to perform research with reporting.  How then to give
110620 - user's control listing only current assignments, and not duplicate
110621 - entries past assignments.
110623 -  ..
110624 - One solution might be to assign flags to lines with names of people
110625 - who have changed assignments, i.e., moved to different departments.  A
110626 - line with no flag, for example, could be omitted from alphabetical
110627 - lists.  We could check column 4, and if there is an "s" flag, this
110628 - name would be suppressed.  Using "s" fits the method developed to
110629 - suppress lines in SDS records and in documents.
110630 -
110631 -
110633 -  ..
110634 - Contacts Simplify Complexity of Relationships People Organizations
110635 -
110636 - Follow up ref SDS 1 4741.
110637 -
110638 - Gary has commented on how "complicated" the SDS Contacts system seems
110639 - to be.  This reflects the fact that life is complex.  People need
110640 - control of many interdependent factors that influence management
110641 - tasks, explained on 980601. ref SDS 1 4741  Relationships between
110642 - people and organizations vary widely, noted in the record on 0410104,
110643 - ref SDS 6 LD4P, and outlined below. ref SDS 0 CR6F  Wide variance of
110644 - many interdependent factors defines complexity, which SDS helps people
110645 - manage in harmony with everything else, by pressing buttons on a
110646 - keyboard rather than shuffling file folders, using contact programs,
110647 - phone books, email, spreadsheets, PDMs, PIMS, and personal memory.
110649 -  ..
110650 - However, since most factors only arise occassionally, as previously
110651 - explained on 980601, ref SDS 1 4741, this greatly compounds the
110652 - learning curve, as follows...
110654 -  ..
110655 - Say there are 10 functions and 10 fields or 20 total elements for a
110656 - contact record.  Only 4 of the 20 elements are needed consistently.
110657 - Another 4 are needed, for a total of 8 each time a contact record is
110658 - opened; however, these other 4 elements occur randomly across the
110659 - remaining 16 elements.  If contact records are only used say 4 times a
110660 - month, then 16 of the 20 elements are only used once every 4 months.
110661 - If contacts are only used once every 2 months, then some elements only
110662 - come up every 8 months.  Using functions every 4 - 8 months makes them
110663 - hard to learn and remember.  Since productivity requires expansive
110664 - control using all of the functions, infrequent use compounds the
110665 - learning curve, which is frustrating.  When people get frustrated,
110666 - they give up.
110668 -  ..
110669 - One solution is supported by SDS.  Not every field in every contact
110670 - record need be used.  SDS is helpful by using only a few common
110671 - fields, and this lowers the learning curve, which also reduces
110672 - frustration.
110674 -  ..
110675 - "Contacts" seem like a good first target of opportunity to begin
110676 - transition development of a next generation version of SDS,
110677 - implementing plans on 040927. ref SDS 5 RH5Y  Maybe a Contacts system
110678 - could be a stand alone product that has hooks needed for SDS.  People
110679 - understand "Contacts."  There is a natural biological affinity to
110680 - place people first, based on telecon with Woody on 041004. ref SDS 6
110681 - LD4P  A few days ago on 041104 Gary's research on TOC found
110682 - attribution to John Boyd for TQM-type concept of organizing work based
110683 - on a trinity of people first, then ideas and things. ref SDS 7 OG6L
110684 - This makes Contacts software a good target of opportuity for a first
110685 - release of SDS software.
110687 -  ..
110688 - Similar approach could be done with a Schedule program, then a Diary
110689 - or Journal program.  Then something that integrates everything.
110691 -  ..
110692 - This provides a development path for transitioning SDS to a Windows
110693 - application.
110694 -
110695 -        [On 041111 Gary submitted research showing productivity using
110696 -        the Maxthink program was not appreciably improved by developing
110697 -        a Windows GUI version. ref SDS 8 H17J
110698 -
110699 -
110700 -
110701 -
1108 -
SUBJECTS
Scope Organizations Contacts System Explanation Fields Application t
Contacts Data Base Common for Everyone but Managed Separately Using
1304 -
130501 -  ..
130502 - Scope Contacts System Manages Steady Identification Data
130503 -
130504 - Contacts provide information on identification that remains relatively
130505 - constant for long periods.  This concept is applied to two (2)
130506 - distinct, yet related types of contacts:  organizations and people...
130507 -
130508 -    a.  Organizations identification
130509 -
130510 -        1.  Look up names with associated ways to contact people by
130511 -            telephone, visiting, mail.
130513 -             ..
130514 -            This requires business number, extension, main number,
130515 -            cell phone, mobile phone, and anything else needed to be
130516 -            effective contacting people.
130518 -             ..
130519 -            Program code must quickly and accuratly distinguish between
130520 -            context to inform the user for productivity getting things
130521 -            done, and protecting confidentiality of others suppressing
130522 -            certain contact information when distributing the record to
130523 -            others either on the Internet or via private communication.
130525 -             ..
130526 -        2.  Convey position, authority, expertise, relationahips.
130528 -             ..
130529 -        3.  Diagnostics track need for continued use, and other
130530 -            factors.
130532 -             ..
130533 -        4.  Business and purpose of organization explains categories
130534 -            for use, and enables looking up groups of organizations for
130535 -            accomplishing tasks.
130537 -             ..
130538 -        5.  Comments field enables a narrative on why the organization
130539 -            is listed that provides orientation on expending resources
130540 -            to maintain a Contact.
130542 -             ..
130543 -        6.  Maintain Document Log of correspondence in minimal time to
130544 -            perform legal duty of notice.
130546 -             ..
130547 -        7.  Maintain Document Log for finding documents based on author
130548 -            addressee.
130550 -             ..
130551 -        8.  Physical address enables visiting organization.
130553 -             ..
130554 -        9.  Letterhead address often different from physical address
130555 -            needed for correspondence.
130557 -             ..
130558 -       10.  Mailing address different from letterhead and sometimes
130559 -            from physical address, needed fro managing correspondence.
130561 -             ..
130562 -       11.  Accounts maintained with organizations needed for effective
130563 -            communication.
130565 -             ..
130566 -       12.  SDS letterhead different from mailing address, and also
130567 -            different fro letterhead address.
130569 -             ..
130570 -       13.  Structure of an organization (i.e., company or government
130571 -            agency) for addressing correspondence, and entering names
130572 -            of individuals who work for an organization into the
130573 -            Contact field of SDS records.
130575 -             ..
130576 -       14.  Address correspondence requires details about individuals
130577 -            in an organization contact record.
130578 -
130579 -            a.  Surname
130580 -            b.  Complementary and professional title, e.g., MD, Ph.D.
130581 -            c.  Title of Organization Assignment, e.g., CEO
130582 -            d.  Salutation greeting format, e.g., Dear Joe  or Mr. X
130583 -            e.  Signature block
130584 -            f.  Email address
130585 -            g.  Location Mail Stop
130586 -            h.  Other fields created as needed
130588 -             ..
130589 -       15.  Fields for narrative descriptions to explain context and
130590 -            clarifications of data fields.  Flexibility to write as
130591 -            much or as little as needed.
130593 -             ..
130594 -       16.  Summary of all contacts listed once based on the numerical
130595 -            record number assigned in the order that records are
130596 -            created.
130598 -             ..
130599 -       17.  Alphabetical listings for organizations, alternate names of
130600 -            organization, including abreviations, and individual
130601 -            contact names who work at the organization, with user
130602 -            control over whose name appears in the alphabetical list.
130604 -             ..
130605 -            This form of listing facilitates timely, multiple selection
130606 -            of multiple people at an organization who may be involved
130607 -            in an event, rather than having to look up each one
130608 -            individually available in the next feature.
130610 -             ..
130611 -       18.  Alphabetical listings of individual contact names
130612 -            associated with the organization, so that people can be
130613 -            found individually, or by organization.
130614 -
130615 -
130616 -
130617 -
130618 -
130619 -
1307 -
SUBJECTS
Scope Individuals Contacts System Explanation Fields Application to
1403 -
140401 -  ..
140402 - Individuals Contacts Manages Details Identification People
140403 -
140404 -
140406 -        ..
140407 -    b. Individuals identification
140408 -
140409 -       These have similar fields for organizations.
140411 -        ..
140412 -       Verified new code for organization contacts works for individual
140413 -       contacts.
140414 -
140415 -
140416 -
140417 -
140418 -
140419 -
140420 -
1405 -
SUBJECTS
Contacts Line Counter Macro 201 Records Failing with Highlight Flag
Contacts Wicked Problems Complex Line Counter Macro 201 Records Fail
1804 -
1805 - Problem
180601 -  ..
180602 - Wicked Problems Solved Writing Things Down Linking Things Up
180603 - Counter Fails on Highlighted Individual Contact Name Line
180604 -
180605 - Follow up ref SDS 10 0000.
180606 -
180607 - After getting the new design to run correctly consistently, there is a
180608 - problem with macro 201.  The code fails by constructing positions for
180609 - line number level 3 when there is a highlight flag entered, i.e., it
180610 - is ignoring the highlight flag and writing over the character to fill
180611 - in level 3.  Solution was eventually found to be very simple,
180612 - ref SDS 0 Y44J, but understanding the problem was difficult,
180613 - illustrating some of the issues Gary raised in a letter received
180614 - yesterday on 041106. ref SDS 10 GY4H
180615 -
180616 -     [On 050130 case study yields lessons learned working with Dell to
180617 -     solve "wicked problem." ref SDS 13 344G
180619 -  ..
180620 - Investigation shows that...
180622 -         ..
180623 -    1.  If highlight is not added to a line where there is a contact
180624 -        person's name entered, then the problem does not occur.
180626 -         ..
180627 -    2.  The problem does not occur when F2 is used the first time after
180628 -        a Contact record is opened.  Failure begins with the 2nd use of
180629 -        F2, suggesting that counters used by 0705051 cause macro 201 to
180630 -        fail.
180632 -         ..
180633 -    3.  Macro 152 calls macro 163 in 000008 for profile level 4
180634 -        assigned to Contacts. ref OF 6 K55M
180636 -         ..
180637 -    4.  Macro 163 in 000009 assigns F2 to call macro 1803 to save a
180638 -        Contact record. ref OF 7 TY3F
180640 -         ..
180641 -    5.  Macro 1803 in 000009 calls macro 201 to initially maintain the
180642 -        line numbers so that content fields defined by line number
180643 -        structure are correct for subsequent processing. ref OF 7 166K
180645 -         ..
180646 -        Macro 1803 performs a number of system diagnostic tasks, e.g.,
180647 -        post current user name to show last person who saved the
180648 -        record, which involved various counters.  Since these other
180649 -        tasks have been performed all along, without impact to macro
180650 -        201 that updated line numbers, the operations in these tasks
180651 -        that impact counters cannot be material to the current problem.
180653 -         ..
180654 -        Macro 1803 calls macro file 0705051 to save the Contact record
180655 -        after running macro 201. ref OF 7 MV5J
180657 -         ..
180658 -    6.  Macro 201 in 000000 calls macro 202 to implement line counter
180659 -        ops. ref OF 5 898M
180661 -         ..
180662 -    7.  Macro 202 in 000000 uses counters 71+ for constructing the
180663 -        values for line counters. ref OF 5 VQ4I
180665 -         ..
180666 -    8.  Macro 201 calls code in macro 0 to process line number level
180667 -        lv-3. ref OF 5 GX4J  It is believed that level 3 is where the
180668 -        error may be occurring.
180670 -         ..
180671 -    9.  -label lv-3 in 000000 calls macro 204 in 000000 to process
180672 -        highlight flags. ref OF 5 XV4O
180674 -  ..
180675 - This turned out to be the cause of the error, per below, but was not
180676 - evident on first inspection. ref SDS 0 C467
180678 -         ..
180679 -   10.  Macro 204 calls -if @47 = 4 -goto m304g for processing the
180680 -        Contact record line number field. ref OF 5 OO5G
180682 -         ..
180683 -   11.  -label m304g calls macro 304 in 000000, then exits. ref OF 5
180684 -        K75G
180686 -         ..
180687 -   12.  Macro 304 merely sets colors and exits; the color for the flag
180688 -        that is prominently failing today is for the h flag, which is
180689 -        not remarkable in any evident way. ref OF 5 H44G
180691 -         ..
180692 -   13.  -label lv-3 when ops end from macro 304, the code calls -goto
180693 -        num_Bc, also, in 000000. ref OF 5 I85M
180694 -
180695 -        -label num_Bc generates the num string from column 1, and
180696 -        calls a conditional....
180697 -
180698 -                     -if @24 = 3 -if @19 = 4433 -if @72 > 51 -exit
180699 -
180700 -        ...which could be causing the problem, ref OF 5 4Y7G,
180702 -         ..
180703 -        However, resetting these counters did not solve the problem.
180704 -
180706 -  ..
180707 - Seem to have it solved by resetting counters 1 - 24 to 0, but not sure
180708 - which one controls the solution. ref OF 4 YG5H
180710 -  ..
180711 - Isolated the problem to counter 5 by running consecutive tests on half
180712 - of the number group.  Took about 5 tests, where the macro is
180713 - compressed and run on a test record, in this case using the Intel
180714 - record for Morris.
180716 -  ..
180717 - Verified that counter 5 was the problem by adding the command....
180718 -
180719 -        setcnt 5 0
180720 -
180721 - ...at the end of macro file 0705051. ref OF 4 X35K  This solved the
180722 - problem, and when setcnt 5 0 is disconnected, the problem occurs
180723 - again.  Where then does counter 5 occur in macro 201 that maintains
180724 - line numbers for the Contacts System.
180726 -  ..
180727 - Did a search using....
180728 -
180729 -              l /-if @5 /
180730 -
180731 - ....since if counter 5 is meaningful this typically occurs in a
180732 - conditional that controls something.
180734 -  ..
180735 - Found...
180737 -  ..
180738 - Line 1000, ref OF 5 GX4J, -label aMlV_2 in 000000
180739 -
180740 -    -label aMlV_2
180741 -    rel_cur 0 2
180742 -    chrcnt 3 0
180743 -    -if @3 = 32 -goto mcLP
180744 -    -if @3 > 101 -if @3 < 107 -goto kolRit
180745 -    -goto lv_3
180746 -
180747 -        This command previously read....
180748 -
180749 -             -if @3 > 101 -if @5 < 107 -goto kolRit
180750 -
180751 -        ...which seems to be an error, because the code should test for
180752 -        characters that qualify for system flags, which occur between e
180753 -        and k.
180755 -         ..
180756 -        This part of the code was examined earlier, and considered it
180757 -        could be part of the problem, because it is part of highlight
180758 -        management, per above. ref SDS 0 038O
180760 -         ..
180761 -        However, on initial examination, the error substituting @5 for
180762 -        @3 was not recognized.
180763 -
180764 -
180765 -
180766 -
180767 -
180768 -
180769 -
180770 -
1808 -
SUBJECTS
0705051 Develop Loop to Create Multiple Listings for a Contact
1903 -
1904 - Progress
190501 -  ..
190502 - 0705051  Develop loop to create multiple listings for a Contact
190503 -
190504 - Follow up ref SDS 4 BX6K, ref SDS 2 XT7A.
190505 -
190506 - The most detailed work on F2 calling 0705051 is in the record on
190507 - 980601. ref SDS 1 5376
190509 -  ..
190510 - Line 70, ref OF 4 WI8F, in 0705051, about 50 lines below top of file
190511 -
190512 -    top
190513 -    of 89
190514 -    macro 20
190515 -    setcnt 86 1
190516 -    macro 1182
190517 -    loc_cur 0 1
190518 -    split
190519 -    of 0
190520 -    loc_cur 4 1
190521 -    immed d
190522 -    e c:\sd\03\0705051
190523 -    line
190524 -    loc_cur 4 5
190525 -    split
190526 -    setcnt 86 1
190527 -    macro 1181
190528 -    rel_cur 1 0
190529 -    immed d
190530 -    ecur 33
190531 -
190532 -        Added code to capture from line 1 col 90 prior alphabetical
190533 -        listings and post them into 0705051 for removing the current
190534 -        record from the files for the alphabetical listings, so that
190535 -        when they are restored later in the process, they will replace
190536 -        the prior entry.
190537 -
190538 -
190539 -
190540 -
190541 -
190543 -  ..
190544 - Line 100, ref OF 4 SY4O, -label indvLN in 0705051
190545 -
190546 -
190547 -
190549 -  ..
190550 - Remove Prior Names from Alphabetical Contact Files
190551 -
190552 - Line 110, ref OF 4 6R6K, in 0705051 about 100 lines below
190553 -
190554 -    ecur 33
190555 -    macro 1814
190556 -    setgbl 9 0
190557 -    e c:\sd\03\0705051
190558 -    loc_cur 5 60
190559 -    macro 1181
190560 -    loc_cur 0 30
190561 -    getgbl 128 128
190562 -    -if @128 = 2 ic 51
190563 -    -if @128 = 4 ic 50
190564 -    loc_cur 12 59
190565 -    macro 1181
190566 -    loc_cur 6 26
190567 -    -if @128 = 2 ic 51
190568 -    -if @128 = 4 ic 50
190569 -
190570 -         ecur 33 returns to Contact record, macro 1814 reads the record
190571 -         ID using macro 1182, setglb 9 0 ensures the string is only 8
190572 -         characters.  e c:\sd\03\0705051 opens the save command macro
190573 -         file to post the record ID in dose commands  loc_cur 5 60
190574 -         positions to post record ID to dose command that removes names
190575 -         from alphabetical files.  loc_cur 0 30 positions to enter the
190576 -         record type for either individual or organization.  loc_cur 12
190577 -         59 positions to enter record ID to dose command that removes
190578 -         content for the current record from the User file for
190579 -         repetitive dates.  loc_cur 6 26 positions to enter record
190580 -         type to the command that copies the new processed file to the
190581 -         actual alphabetical file.
190582 -
190584 -  ..
190585 - Line 160, ref OF 4 K17I, -label lpacfn in 0705051
190586 -
190587 -    loc_cur 4 4
190588 -    -label lpacfn
190589 -    rel_cur 0 1
190590 -    chrcnt 1 0
190591 -    -if @1 = 32 -goto alcnp
190592 -    subcnt 1 64
190593 -    loc_cur 5 38
190594 -    -if @1 < 10 ic 48
190595 -    inscnt 1 0
190596 -    loc_cur 6 34
190597 -    -if @1 < 10 ic 48
190598 -    inscnt 1 0
190599 -    -gosub dlclfs
190600 -    -goto lpacfn
190601 -    -label alcnp
190602 -
190603 -        This is a new loop to remove entries from all alphabetical
190604 -        files for all the names in the Contact record by processing the
190605 -        string of letters entered by the code above, ref SDS 0 SZ4J,
190606 -        Each char is read, and when a blank space is encountered the op
190607 -        is over. Subroutine -gosub lpacfn calls dose commands that
190608 -        remove entries from alphabetical files, and copies the new file
190609 -        back to the alphabetical filename, so it is ready to add the
190610 -        actual content of the record.
190611 -
190613 -  ..
190614 - Line 120, ref OF 4 5950, -label orgzO
190615 -
190616 -
190618 -  ..
190619 - Line 180, ref OF 4 TU9H, -label orgzO in 0705051
190620 -
190621 -    rel_cur 1 0
190622 -    immed 99d
190623 -    save tjff
190624 -
190625 -        Added save tjff to easily get the orgz name.  This may turn
190626 -        out to be unnecessary.
190627 -
190628 -
190629 -
190631 -  ..
190632 - Line 340, ref OF 4 5623, -label lpa in 0705051
190633 -
190634 -    -label lpa
190635 -    z 9 9
190636 -    l /*/
190637 -    -if @0 > 0 -goto jm1
190638 -
190639 -        Code is doing a loop placing all contact names in file tjf for
190640 -        processing the organiztion contact.
190642 -         ..
190643 -        At this point, if all contact names identified with a * have
190644 -        been posted, then file tjf can be used to create process each
190645 -        individual person's name in the organization contact list.
190646 -
190647 -
190649 -  ..
190650 - Summaries Update Alphabetical Lists
190651 -
190652 - Line 720, ref OF 4 2284, -label dKaAaz in 0705051
190653 -
190654 -    -label dKaAaz
190655 -    e tjf
190656 -    bot
190657 -    loc_cur 0 47
190658 -    chrcnt 1 0
190659 -    linecnt 57 0
190660 -    -if @57 > 1 -if @1 = 32 immed d
190661 -
190662 -
190664 -  ..
190665 - Repetitive Dates Update
190666 -
190667 - Line 790, ref OF 4 558M, -label again in 0705051
190668 -
190669 -    -label again
190670 -    l /#/
190671 -    -if @0 > 0 -goto ecit
190672 -    addcnt 50 1
190673 -
190674 -        This is where processing of repetitive dates occurs and ends.
190675 -
190676 -
190677 -
190678 -
190680 -  ..
190681 - Line 850, ref OF 4 V44N, -label jmpv3 in 0705051
190682 -
190683 -    -label jmpv3
190684 -    e c:\sd\03\0705051
190685 -    getgbl 128 128
190686 -    line 420.....................&& doSe/
190687 -
190688 -        Want to change this to the new format; requires changing a lot
190689 -        of loc_cur calls.
190691 -         ..
190692 -        Should make this a batch file.
190693 -
190694 -
190696 -  ..
190697 - Remove Prior Entries All Alphabetical Lists for This Record
190698 -
190699 - Line 1100, ref OF 4 LP6J, -label dlclfs in 0705051
190700 -
190701 -    -label dlclfs
190702 -    dose/cs i 256 cr;m h:\sd\09\0t\00000\nn;o tj;ex fi 81 88 ="nnnnnnnn";k 1 1;g>nul
190703 -    dose/c copy tj h:\sd\09\0t\00000\nn >nul
190704 -    -return
190705 -
190706 -        This is a subroutine that deletes existing entries in an
190707 -        alphabetical listing.
190708 -
190709 -
190711 -  ..
190712 - Line 1120, ref OF 4 4055, -label nxtLx in 0705051
190713 -
190714 -    -label nxtLx
190715 -    up
190716 -    loc_cur 0 4
190717 -    chrcnt 1 0
190718 -    -if @1 = 49 -if @128 = 2 -goto ovrN
190719 -    loc_cur 0 10
190720 -
190721 -        Code is processing alternate organization name listings, and
190722 -        so is scrolling up until it reaches a 1 in col 4 that says the
190723 -        next field has been reached.
190724 -
190725 -
190727 -  ..
190728 - Alphabetical List Individual Contact Names for Organizations
190729 - Individual Contact Names Process for Organizational Alphabetical List
190730 -
190731 - Line 1150, ref OF 4 K16G, -label nxtLx in 0705051 about 50 lines
190732 - below
190733 -
190734 -    setcnt 114 1
190735 -    e tjf
190736 -    secnt 114 1
190737 -    macro 3
190738 -    g tjff 1 1
190739 -    top
190740 -
190741 -        Adding new code to process each contact name for looking up in
190742 -        the alphabetical list.
190743 -
190745 -  ..
190746 - Line 1290, ref OF 4 SW4M, -label nxtLx in 0705051 about 90 lines
190747 - below
190748 -
190749 -    top
190750 -    loc_cur 0 2
190751 -    setcnt 86 1
190752 -    setcnt 87 0
190753 -    setcnt 80 1000
190754 -    setcnt 81 25
190755 -    macro 1182
190756 -    loc_cur 0 1
190757 -    ins_text /
190758 -    loc_cur 0 47
190759 -    macro 1181
190760 -    ecur 33
190761 -    loc_cur 3 1
190762 -    z 4 4
190763 -    l / /
190764 -    l /1/
190765 -    down
190766 -
190767 -        This code finds the top of the record where individual contact
190768 -        names are entered.
190769 -
190771 -  ..
190772 - Line 1310, ref OF 4 116I, -label ecnal in 0705051
190773 -
190774 -    -label ecnal
190775 -    z 6 6
190776 -    errorcnt 0 0
190777 -    -label 2cnL
190778 -    l / /
190779 -    -if @0 = 0 -goto pcntl
190780 -    top
190781 -    setcnt 0 0
190782 -    -goto ovrN
190783 -
190784 -        Loop starts here to process all individual contact names in
190785 -        the record.  Looks for a blank in col 6 as a method to find
190786 -        these field levels.
190787 -
190788 -
190790 -  ..
190791 - Line 1350, ref OF 4 UL6F, -label pcntl in 0705051 about 40 lines
190792 - below
190793 -
190794 -    z 14 34
190795 -    setcnt 0 0
190796 -    fr /FirstNa/
190797 -    -if @0 > 0 -goto nfnf
190798 -    loc_cur 3 1
190799 -    -goto 2cnL
190800 -
190801 -        Verify the field name is not there, and if so, cycle back to
190802 -        top of loop and look for another name field.
190803 -
190804 -
190806 -  ..
190807 - Delete Prior Individuals from Organizational Alphabetical Listing
190808 -
190809 - This new design and support for entering individual names in the
190810 - alphabetical list of organizations requires maintaining the lists.
190812 -         ..
190813 -        How does the system know to maintain a list when the user
190814 -        deletes lines in the file.
190815 -
190816 -        a.  When a record is opened for editing, create an inventory in
190817 -            each record listing the letters that require maintenance
190818 -            if the record is saved.
190820 -             ..
190821 -            Actually, I am inclined to feel this can be done just as
190822 -            well by using 0705051 save op to maintain the list.  In
190823 -            order for anything to be deleted, it must be first be
190824 -            saved, so when F2 is called it can capture the current
190825 -            inventory to maintain the alphabetical lists, and then it
190826 -            can update the list to reflect any editing during the
190827 -            session.
190829 -             ..
190830 -        b.  Use the 0002 line because it is always available; begin on
190831 -            column 32.
190833 -             ..
190834 -            Decided instead to use 00 line col 90, which is off page.
190836 -             ..
190837 -        c.  Convert the letters to the appropriate file number
190838 -            correlated to each letter, so that 0705051 can immedicatly
190839 -            maintain the list.
190841 -             ..
190842 -        d.  When the record is saved, capture the string of contact
190843 -            letter files from the 00 line into the 0705051 macro file,
190844 -            and enter this in 0705051 macro file above the code that
190845 -            removes entries from the alphabetical letter files.
190847 -             ..
190848 -            Use the string transferred into 0705051 from the record on
190849 -            line 00 to delete all entries for the record in the files
190850 -            identified by the list.
190852 -             ..
190853 -            Process all alphabetical lists, and post the letter values
190854 -            to the 00 line on col 90 for the next time a record is
190855 -            saved.
190856 -
190857 -
190859 -  ..
190860 - Line 490, ref OF 2 9X4G, -label xx7 in 0470410 about 50 lines below
190861 -
190862 -    pf2 macro 1808
190863 -
190864 -        This is where F2 opens Contacts records.  Considered modifying
190865 -        the code for F2 to inventory the contact files to be updated
190866 -        when a record is saved, but decided against this. ref SDS 0
190867 -        LH6M
190869 -         ..
190870 -        Decided to add capability that when a Contact record is opened
190871 -        with F2, the record is positioned with the name of the person
190872 -        in the list is moved to the visible portion of the screen.
190873 -        This saves time for example switching letterheads.
190874 -
190875 -
190877 -  ..
190878 - Line 80, ref OF 7 2783, -entry 1808 in 0000009
190879 -
190880 -    -entry 1808
190881 -    -gosub aMld_Rcd
190882 -
190883 -        F2 runs macro 1808 in 000009 based on assignment in the Contact
190884 -        Summary file profile 047041 to open a Contact record.  Per
190885 -        above, decided against using this code. ref SDS 0 9X3L
190887 -         ..
190888 -        To get macro 1808 to find a contact person's name, add code to
190889 -        run the routine under -label jmPPit, per below. ref SDS 0 OY6H
190890 -        We need this code to capture the contact person's ID line
190891 -        number, see below, ref SDS 0 OY5M, and it needs to setgbl 157
190892 -        777  This is accomplished under -label aMSet2p in 000009 see
190893 -        below. ref SDS 0 OY4K
190894 -
190896 -  ..
190897 - Line 840, ref OF 7 3521, -label aMSet2p in 000009 about 20 lines
190898 - below
190899 -
190900 -    -label aMSet2p............................ ref SDS 0 W88M
190901 -    -if @47 = 41 setgbl 157 777
190902 -
190903 -        Added code to setgbl 157 777 when op starts in Contact Summary
190904 -        file, per above. ref SDS 0 Z69O
190905 -
190907 -  ..
190908 - Line 910, ref OF 7 MH5J, -label aMSet2p in 000009 about 150 lines
190909 - below
190910 -
190911 -    -label aMSet2p............................ ref SDS 0 W88M
190912 -
190913 -        of 80
190914 -        loc_cur 0 1
190915 -        setcnt 86 1
190916 -        macro 1182
190917 -        rel_cur 0 5
190918 -        setcnt 86 10
190919 -        macro 1182
190920 -
190921 -            This is the code that reads record ID to open a contact
190922 -            record.  Acced code to capture line number for the contact
190923 -            person, per planning above. ref SDS 0 Z69O
190924 -
190925 -
190927 -  ..
190928 - Line 3880, ref OF 7 6587, -label aMld_Rcd in 000009
190929 -
190930 -    -label aMld_Rcd
190931 -    setgbl 151 21
190932 -    setcnt 151 21
190933 -    -gosub aMSet2p.......................... ref SDS 0 OY4K
190934 -    -goto aMSumY
190935 -
190936 -        This is a flag that identifies when a contact record is opened
190937 -        from a Summary file.
190938 -
190940 -  ..
190941 - Line 4300, ref OF 7 0892, -label aMSDSt in 000009
190942 -
190943 -    -label aMSDSt
190944 -
190945 -        This is where the code from macro 1303 winds up to open a
190946 -        contact record listed in an SDS record, and find a particular
190947 -        person's name, per above. ref SDS 0 W88M
190948 -
190949 -
190951 -  ..
190952 - Line 3980, ref OF 7 RZ9L, -label jmPPit in 000009
190953 -
190954 -    -label jmPPit
190955 -    setcnt 0 0
190956 -    getgbl 1 157
190957 -    setgbl 157 0
190958 -    getgbl 10 10
190959 -    -if @10 < 33 setcnt 1 0
190960 -    -if @1 != 777 -goto nofSdS
190961 -    macro 52
190962 -    ic 108
190963 -    ic 47
190964 -    setcnt 86 10
190965 -    macro 1181
190966 -    ic 47
190967 -    ecur 33
190968 -    z 1 4
190969 -    @0w7j
190970 -    down 10
190971 -    loc_cur 13 10
190972 -
190973 -        This is the actual code that jumps a Contact record to a
190974 -        specified person's name ID line.  Looks like if macro 1808 has
190975 -        setgbl 157 777 the code will do the trick. ref SDS 0 9X5O
190976 -        Added code getgbl 10 10 and -if @10 < 33 setcnt 1 0 which
190977 -        together verify that a line number is entered for a contact
190978 -        person, and if not, the code will not attempt to look for a
190979 -        person, but will simply open the record.
190981 -         ..
190982 -        We could create an option, like Alt F2, to open a record at
190983 -        the top, rather than at a Contact person's name.
190984 -
190986 -  ..
190987 - Line 4370, ref OF 7 6261, -label aMdzQ in 000009
190988 -
190989 -    -label aMdzQ
190990 -
190991 -        of 170
190992 -        loc_cur 0 1
190993 -        chrcnt 1 0
190994 -        rel_cur 0 2
190995 -        -if @1 = 73 setgbl 128 2
190996 -        -if @1 = 79 setgbl 128 4
190997 -        -if @1 = 79 setgbl 157 777
190998 -        -goto aMmfy
190999 -
191000 -            The code is in an SDS record and getting ready to read the
191001 -            contact ID from col 170.  Initially determines the contact
191002 -            record type.  The work today involves only organization
191003 -            contact records.
191004 -
191006 -  ..
191007 - Line 900, ref OF 6 2638, -label oCon in 000008
191008 -
191009 -    -label oCon
191010 -    setcnt 1 3000
191011 -    macro 1302
191012 -    -exit
191013 -
191014 -        There is no work here today.  This research shows macro 1303 is
191015 -        used to open a Contact record to an individual's name.  We can
191016 -        use the same code to position a record when the record is
191017 -        opened from a summary, per above. ref SDS 0 W88N
191018 -
191019 -
191021 -  ..
191022 - Line 4090, ref OF 7 8604, -label oPenit in 000009
191023 -
191024 -    -label oPenit
191025 -    e 0w9k
191026 -    macro 301
191027 -    ins_text/e H:\SD\09\0T\00\00\00\nn  /
191028 -    loc_cur 0 13
191029 -
191030 -        When F2 is called in a Contact Summary file it runs macro 1808
191031 -        which runs this code for opening a Contact record selected by
191032 -        the user. Per above, decided against using this code.
191033 -        ref SDS 0 9X3L
191034 -
191035 -
191036 -
191038 -  ..
191039 - Line 4180, ref OF 7 5L6J, -label modrec in 0000009
191040 -
191041 -    -label modrec
191042 -    setcnt 2 231
191043 -    loc_cur 4 10
191044 -    -label acsllp
191045 -
191046 -        This is where record diagnostics are modified, and so it is a
191047 -        good place to consider the new op of inventorying the record.
191048 -        We can create a flag to jump out of this when not not opening
191049 -        a record for editing.
191051 -         ..
191052 -        The new design added into 0705051 that saves a record, may no
191053 -        longer need the code that manages counter 231, per above.
191054 -        ref SDS 0 SZ4J  Therefore, may be able to eliminate code where
191055 -        counter 231 is applied by counter 172. ref SDS 0 LH8L
191056 -
191057 -
191059 -  ..
191060 - Line 4290, ref OF 7 -label GA4G, noEtnr in 000009
191061 -
191062 -    -label GA4G
191063 -    -if @151 != 20 save
191064 -    @c:\sd\03\0705052................ decided not to add this.
191065 -    -return
191066 -
191067 -        Added call to new macro file 0705052 to complement save
191068 -        function 0705051, and this maintains inventory for updating
191069 -        alphabetical files.  Finally decided against this method, per
191070 -        above, ref SDS 0 9X3L, and so wound up not created a new macro
191071 -        file 0705052.
191072 -
191073 -
191074 -
191076 -  ..
191077 - Report on Contacts PA9
191078 -
191079 - Line 30, ref OF 1 3010, in 044011
191080 -
191082 -  ..
191083 - Line 1100, ref OF 1 3B5G, -label cSumS in 044011
191084 -
191085 -    -label cSumS
191086 -    @Q1 #40
191087 -
191088 -        This is calling a routine in 06112.
191089 -
191090 -
191092 -  ..
191093 - Line 1970, ref OF 3 BG9F, -label lcOn in 061120
191094 -
191095 -    -if @128 = 2 -goto inDiV
191096 -    rel_cur 0 4
191097 -    setcnt 86 189
191098 -    macro 182
191099 -    -label inDiV
191100 -
191101 -        Added code to enter organization name from Summary, rather
191102 -        than from within the Contact record.
191104 -  ..
191105 - This code had to be modified to enter the contact search string
191106 - correctly for individual contacts with reversed order.
191108 -  ..
191109 - Supported conditions...
191110 -
191111 -    1.  Report from summary
191112 -
191113 -    2.  Report from contact record
191114 -
191115 -    3.  Report from SDS record
191117 -         ..
191118 -    4.  Add contacrt specification to a Subject Report
191119 -
191120 -
191121 -
191122 -
191123 -
191124 -
191125 -
191126 -
191127 -
191128 -
1912 -