Love, As Always, Pete

The Weekly Letters, by A. Pedersen Wood

Febuary 3, 1995

Dear Everyone:

So, the “Livermore” people desperately need a new Report in Versatile, one that will show all the information about Boxes that have been requested and/or checked out to people each day.  They call this the "packing list" because that's what a similar report in CRMIS was called.  (20 years from now, people will still be using terms that were set up in an obsolete system because "that's what we've always called it".)  It should be noted that this "packing list" is not "packed" in with the requested Boxes.  It gets sent to the requester later.  Don't even try to understand it. 

Now, I've taken a few stabs at designing new Reports in Versatile, occasionally even hitting the intended target.  Lately it's gotten easier because “Miranda” and I talked with a woman who works for Zasio (the company that makes Versatile) and she gave us some very helpful pointers, such as how to make the Report print landscape instead of portrait. 

What's more, “Miranda” found out that there is actually a "handbook" that tells you how to design Reports.  This arrived Wednesday.  However it should be noted that this handbook was written by a programmer, which means it was written by and for people who already know how to design Reports.  Sort of like your VCR Owner’s Manual, which was written in Japanese, then translated into English by a moonlighting Lithuanian. 

Nevertheless, “Livermore” needs that Report.  Your first step is to find one of the "standard" Reports that came with the System.  Try to find one that contains at least one of the things you want to appear on your new masterpiece.  Use something easy to remember like STUPID01.FMT (all Reports end in .FMT, that's how Versatile knows it's a Report; it stands for "format"). 

Simple Reports are fairly easy.  You just map out what goes where like this: 

[$BN  ]  [$BUN  ] [$BFR:10] [$BTO:10]  [$ENDREC] 

Which means (obviously) print the Versatile Box Number, the old CRMIS Box Number, and the Box From and To Dates.  Then you just keep replicating the line until you think you've got about a page’s worth.  Then you print the Report to test it.  After a few minutes, you conclude that the report is too long, or too short, or just right.  Then you make adjustments and test some more. 

But that's just a simple Report.  What “Livermore” wants is a little more complicated.  What “Livermore” wants uses "if statements".  I don't know about you, but I'm not terribly fond of "if statements".  Something about that inability to commit to something. 

"If statements" are a way of telling the computer, "if this, then do that.  If not, then do this."  And remember, computers do what you tell them to do, not what you want them to do. 

So my Report looks something like this: 

[$DONTPRINT] [$IF ENTRY = “FILE”]

[$RID     ]  [$BN   ]  [$BUN  ]  [$BTO:10]

[$DONTPRINT] [$ENDIF]

[$DONTPRINT] [$ENDREC]

[$DONTPRINT] [$ELSE]

[$DONTPRINT]

[$DONTPRINT] [$IF ENTRY = “EOR”][$GOTO:42][$ENDIF] 

And no, I don't know what all of it means (yet).  The dollar signs are a signal to the computer that a command is coming up.  Sort of like "pay attention or you won't get paid."  And the $GOTO:42 means "go to line 42 and follow whatever instructions you find there".  This presupposes that there are instructions on line 42, which is not always the case. 

So the first thing you do is figure out what data needs to appear on the Report and figure out if it can't all fit on one line.  Heaven help you if it won't because then you'll have "if statements" papering the walls of your office.  Next, you put in your first "if statement", followed by what data goes where.  Then your next "if statement" and the data for that.  Be sure to put a Page Break in, then run a test to see what happens.  Always run your first test to the screen because you're going to be killing enough trees as it is later. 

If you're lucky, a report appears on your screen and maybe it even looks something like you expected it to.  Now you can run it to the printer to see how your Page Breaks are working out.  If that looks OK, take it to one of the people who requested the Report in the first place. 

They look at it and usually say something like, "This looks pretty good.  But can you move this over here, add that, and include a header with all kinds of extra information in it?"  In other words, all the stuff they never mentioned before. 

"Sure," you say.  What else are you going to say?  So you go back to your office and totally reformat the Report and run it again, only to discover that you forgot to change the $GOTO: command, so the computer is looking at the wrong line for the next command and now it's merrily printing the same Box Number over and over and this is when you remember how to go into the server and use "PCONSOLE" to override the printer and cancel the job. 

And next time remember the little rule about "printing" it to your screen first. 

As Admiral Kirk said (before they demoted him back to Captain), "We learn by doing." 

Of course, it never really goes this smoothly.  In real life, you're designing Reports in the midst of a barrage of interruptions.  ("The bar-code PC just went totally weird on us."  "OK, be right there.") 

Movie Review… 

Last weekend, as I started to say, "I have so much work to do", “Jeannie” cried, "No!  You're always at the office.  We never get to go anywhere!" 

So we went to the movies.  Legends of the Fall.  Anthony Hopkins, Aidan Quinn, Brad Pitt, Henry Thomas.  Patriarch (played by Hopkins) and sons living in Montana (as portrayed by Alberta, Canada) during and after World War I.  Pitt is the "star", playing the middle son, Tristan, who keeps going off and having adventures.  Saddle a kid with a name like "Tristan" and let him run loose in the wilds of Montana and you have to expect this sort of thing.  What were his parents thinking? 

Beautiful scenery, lovely music (James Horner), beautiful people, sorry plot, unintentionally funny at times. 

Love, as always, 

 

Pete

Previous   Next