Category : Dbase (Clipper, FoxBase, etc) Languages Source Code
Archive   : TN9011.ZIP
Filename : LETGO3P.TXT

Output of file : LETGO3P.TXT contained in archive : TN9011.ZIP
This article is reprinted from the November 1990 edition of
TechNotes/dBASE IV. Due to the limitations of this media, certain
graphic elements such as screen shots, illustrations and some tables
have been omitted. Where possible, reference to such items has been
deleted. As a result, continuity may be compromised.

TechNotes is a monthly publication from the Ashton-Tate Software
Support Center. For subscription information, call 800-545-9364.

Letting Go of
Rick Knight

"What have you done to the Assist menus? I don't recognize anything
on this screen! How do I define a scope of labels to print? I don't
need to print the whole file! Do I have to create and save a query
every time I print a report on a subset of records? How could you do
this? I knew dBASE so well!"

Yes, that's right. Now that the reviews are in and dBASE IV version
1.1 is receiving favorable press, a whole new flock of converts are
making their way across the great divide, leaving the comforts of
familiar surroundings and becoming software pioneers. But some find
themselves unexpectedly in a strange new world. Then comes the
weeping, wailing and gnashing of teeth as they become overwhelmed with
their new mise-en-scŠne. Reflecting back on happier days with a
software program that they'd come to know and love, acknowledging its
good points as well as bad, they begin to wonder why they ever left.

To some, particularly the type of user who never ventures beyond the
user-interface into the darkness of an empty screen with only a dot
prompt to guide them, upward conversion can be like a downward spiral
into an abyss. Sure, there are those who, from experience, know to
set aside a good chunk of time to acquaint themselves with the nuances
and changes a software upgrade my entail. They mentally prepare
themselves for changes, most of which they will like, some of which
they will not be so crazy about but all will be taken in stride.

But there are also those who believe, perhaps naively, that a new
version of their old software will just be the same software they are
familiar with except there will be more choices and it will work
faster and better. When the reality hits them, it can be an
unexpected disappointment that can completely blot out whatever
benefits the new software may offer.

The fact is, there wouldn't be any software upgrades necessary if
there weren't new features to include, better ways of processing. But
improvements always require some measure of change. Sure dBASE IV and
dBASE III PLUS share the same concepts, the same language, the same
functionality. But the differences between the ASSIST menus in dBASE
III PLUS and the new Control Center in dBASE IV are markedly diverse.

A Look at ASSIST

Back before dBASE IV came out, I remember talking to customers who
wished to work from the menus but were frustrated by the limitations,
especially when generating reports and labels. For example, trying to
build any type of condition which required a date comparison was
difficult if not impossible. In fact, using the option to make your
own record selecting filter conditions virtually shut out the use of
any dBASE functions.

So, on the one hand, it was relatively simple for some users to
merrily build their conditional expressions. An added "tutorial"
extra was that they could see the dBASE expression being built on
screen as they selected fieldnames and operators from the menus. Some
new users say that is how they became familiar with the proper syntax
in creating expressions. However, the more complex your selection
criteria became, the more obvious it was that a query, a program, or
dot prompt venture would be necessary.

Being in Control

When the dBASE III PLUS user gets their first look at the dBASE IV
Control Center, they may have the attitude that it looks kind of
stark. Instead of nearly a dozen menu choices crammed up at the top
of the screen, there are three simple menu choices: Catalog, Tools and
Exit. But wait, there are headings for the six panels in the midst of
the screen. Surely they must pulldown to reveal other menu choices.
A beep is all you will get if you try to press Alt-D for Data or Alt-R
for Reports.

"And what's this stuff at the bottom of the screen? Help, Use, Data,
Design. " It may look confusing. It seems like they took everything
away from the user-interface portion!" Slowly, the image of the word
burns into your brain. Create, Create, CREATE!! You panic!
"No, I don't want to create everything all over again. I just want to
print my labels! I'm no computer whiz! All I want is my labels!
Give me labels! I want my dBASE III PLUS! Auggghhhh!" Everything
goes black.

When you awaken, the dBASE IV Control Center is still there looking
now more like a window with bars as you stare out from a dark prison
cell into a blue horizon. The realization makes your pulse quicken
but you maintain a sense of control. You reassure yourself with
positive thoughts. "The manual will explain this. The tutorial will
make all of this clear. I'm probably just over-reacting."

You're Over-Reacting

"What!? Do you mean that every time I have to run labels for just the
local zipcodes, I have to make a query? That does it! Get MIS on the
line and tell them I want dBASE III PLUS put back on this machine,

Hold on a second. Take a deep breath. Are you feeling calmer?
Good. First of all, query isn't a bad word. Secondly, if it's
something you do routinely, a saved query that sets up the files and
the conditions will be ideal.

"No, it won't work! It changes every two weeks. I have to send out
to different zipcodes all the time. That won't work."

Okay, relax. Remember the blood pressure. You don't have to save a
query. You don't have to make a query first and then go run your
report. Follow these steps:

ù Put a database file into use by highlighting it and pressing

ù Highlight your report or label underneath the appropriate

ù Press Shift-F2 twice. You will find yourself in a query
screen. Surprise! There's your file up at the top of the screen.
This is referred to as a file skeleton. Yeah, unpleasant word, I
know. Reminds me of Physiology class. But it was better than file
coatrack or file-in-the-box. At the bottom is the view skeleton.
These are all the fields that will appear in a result view. By
default, this view includes the same fields that are in the database
file you've selected.

ù Using the Tab key, navigate the highlight to the zipcode
field. If you go too far, using Shift-Tab to navigate backwards.

ù Now, list all the zipcodes you want and press Enter after
each one so that they are listed one under another. Should you use
quotes? Well, probably. If your zipcode field is a character field
you can surround the zipcodes in single or double quotes or square
brackets. Really, any field that contains numbers on which you
wouldn't ever perform arithmetic should be a character field.

Only twelve items can be stacked under a field box in a file
skeleton. Allowing for more choices would require a condition box.

To avoid using the .OR. operator repeatedly in such an
expression, try using the $ (is contained in) operator in an
expression like this:

ZIPCODE $ "90010/90020/90030/90040/90050/90060/90070/90080."

ù Press Shift-F2 once more. After a few moments to process the
query, you're back in the report or label design screen.

ù Press Alt-P to pull down the Print menu. Press V to view it
on screen. It may take a few moments to initially compile if you've
never run this label or report in dBASE IV.

"Look at that! There they are. But why couldn't I have just listed
the zipcodes and separated them by a comma all on one line?"

Well, fields expressed on one line imply use of the .AND. operator.
To tell the query to select records equal to one zipcode AND another
AND another would be illogical. After all, an individual zipcode in a
record is only equal to one value not multiple values. By placing the
zipcodes underneath one another, you are instructing the query to
choose a record with this zipcode OR a record with that zipcode.

However, you may be thinking about the conditional statements you are
used to seeing in the dBASE III PLUS Assist environment. There you
go, reliving painful memories. Well, in this case, you don't have to
completely forsake the past. In query design, special windows called
condition boxes allow you to get specific. You can use a condition
box that has a similar look and feel to dBASE III PLUS. Follow these
steps to see what I mean:

ù Press Shift-F2 again from your report/label design screen.
You will, once again, be transported to Query design mode. Press
Alt-C and then A to add a condition box. A condition box will appear
with a highlighted prompt within.

ù Notice how the key instructions at the bottom of the screen
have changed slightly. By pressing Shift-F1, a tri-panelled window of
available field names, relational operators and the entire list of
dBASE functions is displayed. This is much more powerful and useful
than the dBASE III PLUS Assist.

ù Now you can either go through the process of picking from the
lists of fieldnames, operators and functions or build the expression
yourself by typing it directly in to the condition box. Perhaps you
need only reference the picklist when you are unsure of a fieldname
spelling, the type of operator or function to use.

ù By pressing F1, you will constantly be given context-sensitive
information on what you are doing. The F3 and F4 keys will show you
previous and additional screens. The CONTENTS option in a help window
can lead you to where you can see the exact syntax for any function
you are using.

By using the Shift-F2 key to jump from one design surface to another,
you express your query condition, swing back to your report or label
and off you go. It's a different way of accomplishing the same tasks
as you did in dBASE III PLUS. True, it's not that old familiar
feeling but you will be unlikely to grow out of it when you're faced
with a request for a report like:

"Miss Evans, I need a label print out for all our members who are in
Los Angeles County who are not renewed for 1990 and who have been with
the association for more than five years."

Try accomplishing that in the dBASE III PLUS Assistant. Wait! It was
rhetorical. Don't leave now. You'll miss the end of the article.

This request implies that you are able to examine the first two digits
of a zip code "90" for L.A. county which would mean you would need a
string function like LEFT() or SUBSTR(). It would also mean that the
selection of members within the county be mutually exclusive from the
other selection criteria. In a dBASE expression, which would be
expressed algebraically, the zipcode selection part of the expression
would need to be in parentheses so that it's evaluated separately from
the rest of the expression. The selection criteria demands that you
first determine all members living in the county, then from that,
those who are not renewed and whose membership spans five years.
Again, mutual exclusivity of this nature could not be implemented in
the dBASE III PLUS Assistant. Determining what members have been
with an organization for more than five years from the date you run
the report requires the use of dBASE functions to compare and perform
arithmetic on years, months and days. Sounds like a job for the dBASE
IV Query Generator to me.

Don't Be Frightened, It's Only dBASE IV

So you miss the old days. Maybe life was a little slower, a little
simpler. But hey, this is the age of communication and face it, the
demands on your computer expertise are going to be greater and
greater. We're not expecting everyone to be hot-shot computer
programming types. By coming up with an entirely new user interface
for dBASE IV, we have given the casual user, the new user, the
I-don't-want-to-be-bothered-with-it user an opportunity to express
themselves in as precise a fashion as they may need. But added power
doesn't come without a learning curve. Tha's technology for ya!

There are plenty of bells and whistles in dBASE IV. As you explore,
you'll discover that some of the functionality we've worked into this
product is going to save you a lot of time as well as improve your
knowledge and computer skills. Adjustment to the new look and feel of
dBASE IV will be unavoidably necessary. Whether that will be a
welcome challenge or a merciless headache all depends on your
perspective. You may discover that the only thing you gave up when
you made the conversion to dBASE IV was a narrower outlook.

  3 Responses to “Category : Dbase (Clipper, FoxBase, etc) Languages Source Code
Archive   : TN9011.ZIP
Filename : LETGO3P.TXT

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: