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: April 4, 2009 00:41 AM Saturday; Rod Welch

SDS change convert schedule record to diary for prior date to support
application for Gary's work practice.

1...Summary/Objective
2...Planning Convert Schedule Task to Diary Prior Date
3...Macro 80 Menu Bar Specify Diary Pror Date Convert Schedule Task
4...Time Append Diary Menu in Schedule Record Create Prior Date Diary
5...Menu Diary Prior Date Append Time Convert Schedule Task Macro 80
6...000003 Menu Diary Option SDS Record Modify Append Time Specification
7...0042 Create New Diary Record from Task in Schedule
8...Schedule Task Convert to Diary Record Prior Date Macro File 0042
9...New Diary Record Header with Date and Day of Week
10...Diary Header and Day of Week
11...Profile Archieved Diary Restore Screen Notify Process Performed
12...Process Complete Disconnect Messages Saying Cannot Use Schedule Task


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

CONTACTS 
0201 - Dynamic Alternatives
020101 - Mr. Garold L. Johnson;
020102 -
0202 -
0203 -    Time Milg Emply T  Bill Function

SUBJECTS
Schedule Task Convert to New Diary Record Prior Date Macro File 0042

0403 -
0403 -    ..
0404 - Summary/Objective
0405 -
040501 - Follow up ref SDS 7 0000.
040502 -
040503 - Added capacity to create archived diary records for prior dates using
040504 - schedule tasks, ref SDS 0 S07L, and to leave the tasks in the schedule
040505 - for editing as needed. ref SDS 0 F046   Procedures are the same, so
040506 - there is no learning curve.
040507 -
040508 -
040509 -
040511 -  ..
0406 -
0407 -
0408 - Progress
0409 -
040901 - Gary explained a use case yesterday that requires support.
040902 -
040903 - He schedules work, and then days or weeks later performs the work, but
040904 - does not convert the record into a diary to report performance.  Such
040905 - records continue to roll forward in time.  He eventually recalls that
040906 - a task in the schedule was actually performed sometime earlier.  He
040907 - gave an example of meeting with a doctor.  At that point, he wants to
040908 - convert the task listed in the schedule into a diary record for a
040909 - prior date.
040911 -  ..
040912 - This is similar to the problem Morris reported on 920215, ref SDS 3
040913 - KX9G, citing earlier analysis on 910529. ref SDS 2 4930
040915 -  ..
040916 - The original code for creating a prior date record supported this
040917 - scenario, reported on 900812. ref SDS 1 0001
040919 -  ..
040920 - On 030816 added a feature to create a blank diary record from within
040921 - the Diary Summary rather launch tasks from the Schedule, because
040922 - adding records for prior dates in the Schedule consumes a lot time
040923 - launching the program and archiving everything, reported on 030816.
040924 - ref SDS 6 PPTR  The 17 steps to create a diary record for a prior date
040925 - in the Schedule presented a complex series of steps that made learning
040926 - this method very difficule, also shown on 030816. ref SDS 6 SM9P
040928 -  ..
040929 - As a result, at that time on 030816 the original method was
040930 - complemented with a new feature to create new blank diary records for
040931 - any date from within the Diary summary. ref SDS 6 KP3U
040933 -  ..
040934 - A few years later on 050904 added ability to convert an archived diary
040935 - record into a new diary record for another date, rather than schedule
040936 - a new task. ref SDS 7 0001  This new method on 050904 eliminated
040937 - having to wait 15 minutes or so for the system to cycle through
040938 - another update in order to create a record for a prior date.  These
040939 - new methods occur instantly,  Since this is much faster and easier,
040940 - eliminated the feature to create diary records for prior dates in the
040941 - Schedule.
040943 -  ..
040944 - Since, neither of these situations fit the use case Gary has today,
040945 - per above, ref SDS 0 WM5K, we need additional functionality.
040946 -
040948 -  ..
040949 - Planning Convert Schedule Task to Diary Prior Date
040950 -
040951 - Follow up ref SDS 7 01DH.
040952 -
040953 - Current process was planned for using the menu bar to provide a simple
040954 - method of entering a specification for using an archived diary record
040955 - to create another record on a prior date, i.e., prior to the current
040956 - date, with follow up links all updated. ref SDS 7 WS3M
040958 -  ..
040959 - Can expand support by adding following...
040961 -         ..
040962 -    1.  Schedule record can can be converted to a diary record for a
040963 -        prior date with no links to itself, because it will not exist
040964 -        as anything actually performed.
040966 -         ..
040967 -    2.  Creating a diary recod for a prior date uses macro file 0042
040968 -        which calls macro 1011.  On 920605 added code to prevent using
040969 -        a schedule record to make a new diary record, ref SDS 5 7I7Q,
040970 -        to implement planning the day before on 920604 solving problems
040971 -        reported by Wayne Wetzel. ref SDS 4 YA8H
040973 -         ..
040974 -    3.  Can eliminate this call today, because now will process records
040975 -        for scheduled tasks to convert into prior date records.
040977 -         ..
040978 -    4.  Finally decided not to delete the original file from the disk
040979 -        in the 00 schedule directory, and also not delete the entry for
040980 -        the task in the Schedule 00 file.  People can delete these
040981 -        entries, if they wish.  This provides flexibility to continue
040982 -        carrying an ongoing task forward, as a template.
040984 -         ..
040985 -    5.  Will not create links, because they most likely will not be
040986 -        used, and can be created quickly if someone wants them.  Such
040987 -        links would have to be created in reverse from the remaining
040988 -        schedule task to the prior task.
040990 -         ..
040991 -    6.  Record description stays the same, since it is the same record,
040992 -        and there is no evident need to change it; so the user is
040993 -        returned to the same original position in the new diary record
040994 -        to maintain continuity of work ops. ref SDS 0 RR4M
040995 -
040996 -
040997 -
040998 -
040999 -
041000 -
041001 -
0411 -

SUBJECTS
Schedule Task Convert to New Diary Record Prior Date Planning Macro

0503 -
050401 -  ..
050402 - Macro 80 Menu Bar Specify Diary Pror Date Convert Schedule Task
050403 - Time Append Diary Menu in Schedule Record Create Prior Date Diary
050404 - Menu Diary Prior Date Append Time Convert Schedule Task Macro 80
050405 - 000003 Menu Diary Option SDS Record Modify Append Time Specification
050406 -
050407 - Follow up ref SDS 7 O08N.
050408 -
050409 - Line 640, ref OF 2 5O5M, -label stcur2 in 000003
050410 -
050411 -    Debug here that is part of macro 802 to figure things out.
050412 -
050414 -  ..
050415 - Line 830, ref OF 2 WT4K, -label diary9 in 000003
050416 -
050417 -    -label diary9
050418 -    -if @47 = 1 -goto regmnu
050419 -    loc_cur 0 24
050420 -    -gosub menuuQ
050421 -    -if @180 = 68 -if @181 = 105 -if @182 = 97 -if @183 = 114 -goto regmnu
050422 -    setcnt 6 24
050423 -    setcnt 177 4444
050424 -    macro 817
050425 -
050426 -        Evaluating processing specification entered in "Diary" on menu
050427 -        bar.  Nothing is changed in this part of the code.
050429 -         ..
050430 -        This is where the code determines whether the user entered a
050431 -        specification for a prior date menu, and captures it for
050432 -        processing, and which is used in macro file 0042, below.
050433 -        ref SDS 0 XI6N
050434 -
050436 -  ..
050437 - Line 870, ref OF 2 JQ6N, -label diary9 in 000003 about 40 lines below
050438 -
050439 -       -if @271 = 2000 -if @117 = 1 -if @118 = 1 -if @119 = 1 -goto cdfpd
050440 -
050441 -    -if @272 = 1002 -goto ctcsd........................... ref SDS 0 WS9G
050442 -    -if @117 = 1 -if @118 = 1 -if @119 = 1 -goto cdfpd.... ref SDS 0 K482
050443 -
050444 -        Will try removing the first conditional that requires
050445 -        processing only archived diary records.  If we add limitation
050446 -        to process both archieved diary records with @271 = 2000 and
050447 -        @272 = 1001 this will take more memory that exceeds the
050448 -        compiler capacity.  By eliminating -if @271 = 2000 processing
050449 -        will occur for archieved and current diary records, and for
050450 -        schedule tasks.  We can kick out processing current diary
050451 -        records at the next step. ref SDS 0 XI6N  If someone wants to
050452 -        convert a current diary record into an archived diary for a
050453 -        prior date, the status can be changed from diary to Schedule,
050454 -        and execute the command.
050456 -         ..
050457 -        For scheduled tasks this seems simple.  Changed the the
050458 -        schedule task to an archived diary record.  The Scheduled task
050459 -        no longer exists.  For the current diary record to creat a
050460 -        record for a prior date, complications occur on whether to link
050461 -        the record to the current record.  That is what occurs when
050462 -        using an archived diary record, since there is inherent logic
050463 -        that the new record is a follow up, and so the links all fall
050464 -        into place.  But to create an archived diary record prior to
050465 -        the current diary record requires reversing the links from the
050466 -        normal process.  The number of scenarios multiple.  The simple
050467 -        solution is to not use a current record to create an archived
050468 -        prior date diarey, but simply switch to the scheudle and change
050469 -        the status from diary to schedule, then use the single set of
050470 -        code.
050472 -         ..
050473 -        Decided for now to try adding -if @272 = 1002 -goto ctcsd so
050474 -        that if it is a current diary record, will not create a prior
050475 -        date diary record.
050476 -
050477 -
050479 -  ..
050480 - Line 880, ref OF 2 SX9H, -label dcfpd in 000003
050481 -
050482 -    -label cdfpd
050483 -    @c:\sd\03\0042 #3.......................... ref SDS 0 NX6K
050484 -    -exit
050485 -
050486 -
050488 -  ..
050489 - Line 890, ref OF 2 1Z4G, -label ctcsd in 000003
050490 -
050491 -    -label ctcsd
050492 -    macro 96
050493 -    -exit
050494 -
050495 -        Calls standard diary listing op, no changes to this code.
050496 -
050497 -
050498 -
0505 -

SUBJECTS
0042 Macro File Create New Diary Record for Prior Date from Task in

0603 -
060401 -  ..
060402 - 0042 Create New Diary Record from Task in Schedule
060403 - Schedule Task Convert to Diary Record Prior Date Macro File 0042
060404 -
060405 - Follow up ref SDS 7 NX6K.
060406 -
060407 - Line 30, ref OF 1 NW4N, -goto crfpdd in 0042
060408 -
060410 -  ..
060411 - Line 130, ref OF 1 0O4M, -label crfpdd in 0042
060412 -
060413 -
060415 -  ..
060416 - Line 320, ref OF 1 I33I, -label jpdpd in 0042 about 20 lines below
060417 -
060418 -    -label jpdpd
060419 -    -if @272 != 1001 -goto nsrcrd3..................... ref SDS 0 8W33
060420 -    setgbl 118 8931
060421 -    e c:\sd\03\0042
060422 -    setcnt 86 180
060423 -    macro 1182
060424 -    line.....................................&& *%e5, ref SDS 0 RR5J
060425 -    loc_cur 4 6
060426 -    macro 1181
060427 -    ecur 17
060428 -     ..
060429 -    setcura 50 0
060430 -    loc_cur 3 1
060431 -    linecnt 52 0
060432 -    setgbl 50 @50
060433 -    setgbl 51 @51
060434 -    setgbl 52 @52
060435 -     ..
060436 -    *%e5
060437 -    savx d:
060438 -    -goto csrtd8
060439 -
060440 -        This is all new code...
060441 -
060442 -        Added new conditional -if @272 != 1001 -goto nsrcrd3 to process
060443 -        records for Schedule tasks; setgbl 118 8931 identifies this new
060444 -        process, and complements setgbl 117 8888, ref OF 1 5G5N; e
060445 -        c:\sd\03\0042 opens the processor to capture file
060446 -        identification for the new record constructed by the user
060447 -        initially entered on the menu bar during the macro 80 process
060448 -        in 000003, per above. ref SDS 0 OM8L ecur 17 returns to target
060449 -        file, and setcura 50 0 gets the cursor position, so the file
060450 -        can be returned to the original position.  savx writes the
060451 -        file to the directory to create the new diary record using the
060452 -        data entered by the user in the menu bar.
060453 -
060455 -  ..
060456 - Line 380, ref OF 1 OZ6N, -label nsrcrd3 in 0042
060457 -
060458 -    -label nsrcrd3
060459 -    setcnt 1 557
060460 -    macro 22
060461 -    macro 1011
060462 -    -if @1 = 557 -goto stop
060463 -
060464 -        Think setcnt 1 557, macro 1011, and -if @1 = 557..., can all be
060465 -        disconnected becasue they assess Schedule v Diary, and today we
060466 -        are going to process both. ref SDS 0 S07L
060467 -
060468 -
060470 -  ..
060471 - Line 380, ref OF 1 JN9K, -label csrtd8 in 0042
060472 -
060473 -    -label csrtd8
060474 -    gfname
060475 -    setcnt 86 1
060476 -    macro 1180
060477 -    -if @272 = 1001 -goto csdr5g...................... ref SDS 0 JP6H
060478 -
060479 -        Code has switched back to the target file (here, the Schedule
060480 -        record), and gfname captures current record file identification
060481 -        for specifiying the file to purge from memory.
060482 -
060484 -  ..
060485 - Line 420, ref OF 1 JQ3I, -label csdr5g in 0042
060486 -
060487 -    -label csdr5g
060488 -    e c:\sd\03\0042
060489 -    line                                                       && *%wk
060490 -    loc_cur 4 7
060491 -    setcnt 86 1
060492 -    macro 1181
060493 -    getgbl 117 117
060494 -    -if @117 = 8888 -goto crpd2................... ref SDS 0 7U8F
060495 -
060496 -        Load specification captured with gfname into the purge command
060497 -        to remove current Schedule record from memory; no changes to
060498 -        this code.
060499 -
060501 -  ..
060502 - Line 460, ref OF 1 5U7M, -label crpd2 in 0042
060503 -
060504 -    -label crpd2
060505 -    getgbl 1 118
060506 -    -if @1 = 8931 -goto ncndr
060507 -
060508 -        Get flag for processing Schedule task and creating new diary
060509 -        record to branch from processing an archived diary record to
060510 -        create new diary record.
060511 -
060512 -
060514 -  ..
060515 - Line 490, ref OF 1 WX4H, -label ncndr in 0042
060516 -
060517 -    -label ncndr
060518 -    *%wk
060519 -    purge d:
060520 -    getgbl 1 118
060521 -    -if @1 = 8931 -goto oscdr8.................... ref SDS 0 334L
060522 -
060523 -        Purge schedule task where user started from memory, and get
060524 -        flag that shows processing schedule task, and move ahead.
060525 -
060527 -  ..
060528 - Line 530, ref OF 1 0512, -label oscdr8 in 0042
060529 -
060530 -    -label oscdr8
060531 -    *%pdd
060532 -    e d:\sd\08\uuuuu\02\yy\mm\dd
060533 -    purge stufq
060534 -    setgbl 117 0
060535 -
060536 -        Open the new diary record and reset flag for process.
060537 -
060538 -
060540 -  ..
060541 - New Diary Record Header with Date and Day of Week
060542 -
060543 - Line 530, ref OF 1 0533, -label oscdr8 in 0042 about 30 lines below
060544 -
060545 -    gfname
060546 -    top
060547 -    ins_text !                                             !
060548 -    ic @19
060549 -    ic @20
060550 -    top
060551 -    strcnt 3 2
060552 -    -if @3 < 50 setcnt 1 1
060553 -    -if @3 > 49 setcnt 1 2
060554 -    -if @1 = 1 addcnt 3 2000
060555 -    -if @1 = 2 addcnt 3 1900
060556 -    top
060557 -    ic @22
060558 -    ic @23
060559 -    top
060560 -    strcnt 4 2
060561 -    ic @25
060562 -    ic @26
060563 -    top
060564 -    strcnt 5 2
060565 -    ic @28
060566 -    ic @29
060567 -    top
060568 -    strcnt 6 2
060569 -    ic @30
060570 -    ic @31
060571 -    top
060572 -    strcnt 7 2
060573 -    ic @32
060574 -    ic @33
060575 -    top
060576 -    strcnt 8 2
060577 -    macro 852
060578 -
060579 -        No changes to this code...
060581 -         ..
060582 -        gfname captures current date from the filename; then converts
060583 -        counters to the counters needed for macro 852, including
060584 -        convert the 2 digit string for the year to a 4 digit year; and
060585 -        calls macro 852 to enter the date in conventional format at the
060586 -        top of the record.
060587 -
060589 -  ..
060590 - Diary Header and Day of Week
060591 -
060592 - Line 620, ref OF 1 0705, -label oscdr8 in 0042 about 100 lines below
060593 -
060594 -    loc_cur 0 36
060595 -    ins_text !DIARY!
060596 -    loc_cur 0 51
060597 -    setcnt 100 @3
060598 -    setcnt 101 @4
060599 -    setcnt 102 @5
060600 -    macro 924
060601 -    setcnt 9 @107
060602 -    -if @9 = 7 setcnt 9 0
060603 -    macro 872
060604 -    macro 856
060605 -
060606 -        Change Schedule to Diary; transfer counters to values needed
060607 -        to calculate day of week from the date; macro 924 calculates
060608 -        the day of the week; macro 856 enters day of week.
060610 -         ..
060611 -        No changes to this code.
060612 -
060613 -
060615 -  ..
060616 - Profile Archieved Diary Restore Screen Notify Process Performed
060617 -
060618 - Line 670, ref OF 1 1E7J, -label oscdr8 in 0042 about 140 lines below
060619 -
060620 -    setcnt 47 2
060621 -    macro 150
060622 -    setcnt 271 2000
060623 -    getgbl 1 118
060624 -    -if @1 != 8931 -goto rfpd2
060625 -    setgbl 118 0
060626 -    getgbl 50 50
060627 -    getgbl 51 51
060628 -    getgbl 52 52
060629 -    line @52 0
060630 -    addcnt 50 1
060631 -    addcnt 51 1
060632 -    loc_cur @51 @50
060633 -    macro 142
060634 -    errormsg  Schedule task converted to prior date Diary
060635 -    beep
060636 -    -goto end2
060637 -
060638 -        Setcnt 47 2 macro 150 setcnt 271 2000 sets up standard profile
060639 -        for archived diary record. -if @1 != 8931 -goto rfpd2 tests if
060640 -        this processed a Schedule task to create an archived diary
060641 -        record, and in that case restores the original screen
060642 -        configuration.  macro 142 writes the file to disk and puts the
060643 -        pointers into the pointer files so this will show up in the
060644 -        Diary summary.  Message notifies the user what was done, with
060645 -        a beep to sound an alert.
060646 -
060648 -  ..
060649 - Process Complete Disconnect Messages Saying Cannot Use Schedule Task
060650 -
060651 -
060652 - Line 990, ref OF 1 A65M, -label stop in 0042
060653 -
060654 -    -label stop
060655 -    macro 153
060656 -    macro 157
060657 -    errormsg  Use "DIARY" record to schedule new task!
060658 -    -if @2 = 1 errormsg  Cannot "schedule" Follow Up LIST!
060659 -    -if @2 = 2 errormsg  Need Schedule for scheduling new task!
060660 -
060661 -        Unplug all of this today because adding Schedule feature to
060662 -        create a prior date record.
060663 -
060664 -
060665 -
060666 -
060667 -
060668 -
060669 -
060670 -
060671 -
060672 -
0607 -
Distribution. . . . See "CONTACTS"