home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / lotus123 / lotushlp.arc / LOTUS2.DOC < prev    next >
Text File  |  1985-05-31  |  16KB  |  397 lines

  1.  
  2.  
  3.  
  4.                                 1-2-3 Macro Tips
  5.                              Printing Mailing Labels
  6.  
  7.         Printing  mailing  labels with 1-2-3 is simple if you  prepare  a 
  8.         worksheet on which each address is entered as three or more  rows 
  9.         of long labels:
  10.  
  11.                             James Wildman
  12.                             100 34th Street
  13.                             Oneonta, IM   03312
  14.  
  15.         Unfortunately  this  does  not allow you to  exploit  1-2-3's  /d 
  16.         commands  (Data  Sort  and Data Query) to  rearrange  or  extract 
  17.         addresses by last name,  city,  state, or other criteria. Storing 
  18.         addresses  in  a 1-2-3 database is much more useful for  reorgan-
  19.         izing the information later:
  20.  
  21.             James    Wildman    100 34th Street  Oneonta    IM   03312
  22.             Ted      Mayfair    RR 1, Box 22     Hickton    NN   77330
  23.             William  Eggleston  PO Box 3443      Helmsford  FN   29214
  24.  
  25.         Consult the 1-2-3 manual for a discussion on the uses of /ds  and 
  26.         /dq commands.
  27.  
  28.         Assume  that your database has been established  correctly,  with 
  29.         fields for first name,  last name,  street address,  city, state, 
  30.         and  zip  code.  Unfortunately these addresses look nothing  like 
  31.         mailing labels.  What comes next?  Retyping each row to look like 
  32.         the address in the first example comes to mind,  but using the /c 
  33.         (Copy) command might require less effort. By positioning the cell 
  34.         pointer  on  the  first  field of a record  and  issuing  the  /c 
  35.         command,  you can indicate a cell outside the database to be  the 
  36.         target for the copy.
  37.  
  38.         To  move each record using the Copy command,  the following  key-
  39.         strokes would be required:
  40.  
  41.              /c <return><right arrow><right arrow><right arrow>
  42.                 <right arrow><right arrow><right arrow>
  43.                 <right arrow><return>
  44.  
  45.         Since  1-2-3  leaves  the cell pointer on the cell  copied  from, 
  46.         copying the rest of the address requires moving the cell  pointer 
  47.         to  the  next  field (the `last name'  column),  issuing  the  /c 
  48.         command,  and pointing to the cell into which you want that field 
  49.         copied.
  50.  
  51.         This method of pointing to a range is inefficient,  as previously 
  52.         named  ranges  may  be supplied to the /c  command.  Using  named 
  53.         ranges  for  operations such as copying take a bit more  time  to 
  54.         establish  initially,  but  make automating  routine  tasks  much 
  55.         simpler.
  56.  
  57.  
  58.  
  59.  
  60.  
  61.                                         1
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.         Start  by creating range names for each cell into which  you  are 
  71.         going to copy each field of an address.  Assign range names which 
  72.         represent  the information in each area of cells.  The cell  that 
  73.         will  hold the first name in the formatted address might be named 
  74.         `first'  or `firstname',  the cell that will hold the  last  name 
  75.         might be named `last' or `lastname', and so on.
  76.  
  77.         Use /rnc (Range Name Create) to name the cells in a block outside 
  78.         of  your  database.  Now when you issue the /c command and  1-2-3 
  79.         prompts for the cell to copy to,  instead of pointing,  type  the 
  80.         range name of the appropriate cell. Using range names is just one 
  81.         way  of making 1-2-3 work harder for you.  Your work will be done 
  82.         faster  if you put all of the previously discussed steps  into  a 
  83.         macro.  Here's  a macro named \F which will format an address for 
  84.         you:
  85.  
  86.              \F      /c~FIRST~{right}
  87.                      /c~LAST~{right}
  88.                      /c~ADDRESS~{right}
  89.                      /c~CITY~{right}
  90.                      /c~STATE~{right}
  91.                      /c~ZIP~
  92.  
  93.         To invoke the macro, put the cell pointer on the first field of a 
  94.         record, hold down the <Alt> key, and press the F key.
  95.  
  96.         When  the  macro  has finished,  you will have to move  the  cell 
  97.         pointer to be able to see the finished product. Use the goto <F5> 
  98.         key  with the range name NAME.  The formatted address  will  look 
  99.         like this:
  100.  
  101.                      James    Wildman
  102.                      100 34th Street
  103.                      Oneonta  IM       03312
  104.  
  105.         If  the  first name or the city name of the address are  particu-
  106.         larly long,  they will run into the last name or state name  when 
  107.         the  address  is formatted.  Choose the address with the  longest 
  108.         first name or city name to format first, then use /wcs (Worksheet 
  109.         Column-width Set) to increase the size of the first column  until 
  110.         everything  fits.  This makes the column wide enough to fit  each 
  111.         address formatted subsequently.
  112.  
  113.         Printing the Formatted Address
  114.  
  115.         Since  1-2-3 normally expects to be printing on eight and a  half 
  116.         by  eleven inch pages,  it automatically spaces down  five  lines 
  117.         before  printing the first line of text (unless you have  changed 
  118.         the  default  settings or have already printed  something  during 
  119.         this  session  using different print options).  To print a  label 
  120.         exactly where you want it, start by typing:
  121.  
  122.               /ppoouq   (Print Printer Options Other Unformatted Quit)
  123.  
  124.  
  125.  
  126.  
  127.                                         2
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.         This  set  of  commands instructs 1-2-3  to  print  without  page 
  137.         breaks,  heading  space,  and  footing space.  Your text will  be 
  138.         printed  beginning  on  the line where  the  print-head  of  your 
  139.         printer is when you later type g (Go).  The Print menu will still 
  140.         be  displayed  and you will want to type r (Range) and  highlight 
  141.         the formatted address.  Make sure to cover all three columns  and 
  142.         all three rows of the address when marking the range to print.
  143.  
  144.         Check  that  the printing head of your printer is  on  the  paper 
  145.         label  on  the  line where you want the typed address  to  begin. 
  146.         Finally, type g (Go). 1-2-3 will print the formatted address onto 
  147.         the address label.
  148.  
  149.         If you wish to format and print another address label,  q  (Quit) 
  150.         out  of  the print menu,  position the cell pointer on the  first 
  151.         field of a different record, invoke the macro, adjust the printer 
  152.         so  the  print head is on the next label,  and type  /ppg  (Print 
  153.         Printer Go).  Since 1-2-3 remembers all the print settings,  when 
  154.         you format a new label into the same cells as the first,  you  do 
  155.         not have to reset the print options.
  156.  
  157.         If  you wish to print a number of labels,  this procedure becomes 
  158.         tedious and time consuming. The macro should be rewritten so that 
  159.         it automatically formats and prints every address in the  address 
  160.         database,  or  so  that  it  pauses after  printing  an  address, 
  161.         allowing the user to select which address it will print next.
  162.  
  163.         Here is a macro which formats an address,  prints it on a  label, 
  164.         and pauses to select a new address for printing. The cell pointer 
  165.         should  be  on  the  first field of a record when  the  macro  is 
  166.         invoked,  and  the  print-head should be at the very top  of  the 
  167.         address label:
  168.  
  169.             \P       /ppoouqrALL~q
  170.             LOOP     /rncSTART~~
  171.                      /c~FIRST~{right}
  172.                      /c~LAST~{right}
  173.                      /c~ADDRESS~{right}
  174.                      /c~CITY~{right}
  175.                      /c~STATE~{right}
  176.                      /c~ZIP~
  177.                      {goto}START~
  178.                      /rndSTART~{down}
  179.                      /ppgq
  180.                      {?}
  181.                      /xgLOOP~
  182.  
  183.         Before you invoke this macro, make sure you have used /rnc (Range 
  184.         Name  Create) to name the cells you will be copying  into.  Also, 
  185.         you  might  have noticed the range name ALL at the  beginning  of 
  186.         this macro.  This is very important.  It is a range of cells that 
  187.         contains exactly the number of lines which can be printed on each 
  188.         paper  label,  and  which surrounds the cells into which you  are 
  189.         formatting the address.
  190.  
  191.  
  192.  
  193.                                         3
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.         The  above  example assumes that you will use tractor  fed  paper 
  203.         labels  which  fit nine lines of text from the beginning  of  one 
  204.         label to the beginning of the next.
  205.  
  206.         The  range name ALL is assigned to a range covering nine rows  of 
  207.         the worksheet with the formatted address embedded as follows:
  208.  
  209.                             A          B          C          D          E
  210.                  1
  211.                  2
  212.                  3
  213.                  4                James      Wildman
  214.                  5                100 34th Street
  215.                  6                Oneonta    IM         03312
  216.                  7
  217.                  8
  218.                  9
  219.                 10
  220.                 11
  221.  
  222.         \P  is the range name of the macro.  A '\P is entered in the cell 
  223.         to  the left of the macro's first cell (Without the single  quote 
  224.         the  cell would have been filled with p's.  See the label  prefix 
  225.         section of the 1-2-3 manual for an explanation),  then issued the 
  226.         /rnlr  command  (Range Name Labels Right) to  assign  this  name. 
  227.         Invoke the macro by holding <Alt> and pressing p.
  228.  
  229.         Let's look at how the macro works:
  230.  
  231.                       /ppoouqrALL~q
  232.  
  233.         (Print  Printer Options Other Unformatted Quit Range ALL <Return> 
  234.         Quit)  Sets the print mode to unformatted and instructs 1-2-3  to 
  235.         print  the  range  named ALL when it encounters  a  /ppg  command 
  236.         (Print  Printer  Go).  This  at the beginning  of  the  macro  to 
  237.         establish  print settings for the rest of the session.  The macro 
  238.         will be faster if this step is taken only once.
  239.  
  240.         LOOP is the range name of the next line of the macro.  This range 
  241.         name  was  created  in  the same manner  as  the  \P  range  name 
  242.         described above. This is where the formatting and actual printing 
  243.         begins and the location to which the macro loops after a label is 
  244.         printed.
  245.  
  246.                       /rncSTART~~
  247.  
  248.         This assigns the range name START to the current cell (the `first 
  249.         name'  cell  of the address being formatted).  It is used by  the 
  250.         macro as a place-holder. When the address has been formatted, the 
  251.         cell pointer will be returned to this cell (using  {goto}START~), 
  252.         the  range name START will be deleted,  the pointer will be moved 
  253.         down  a  cell,  and the macro will pause until  the  <return>  is 
  254.         pressed.
  255.  
  256.  
  257.  
  258.  
  259.                                         4
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                        /c~FIRST~{right}
  269.                        /c~LAST~{right}
  270.                        /c~ADDRESS~{right}
  271.                        /c~CITY~{right}
  272.                        /c~STATE~{right}
  273.                        /c~ZIP~
  274.  
  275.         This  is the macro developed earlier which formats the address to 
  276.         be printed.
  277.  
  278.                       {goto}START~
  279.  
  280.         This  moves  the  cell pointer back to the  first  field  of  the 
  281.         address as explained above.
  282.  
  283.                       /rndSTART~{down}
  284.  
  285.         The  range name START is deleted because the macro will reuse it. 
  286.         Remember that whenever a range name is used that has already been 
  287.         defined, 1-2-3 offers the old range as the default range to name. 
  288.         You  can avoid having to "back up" when reusing a range  name  by 
  289.         deleting the old range name first.
  290.  
  291.         After the range name is deleted, the macro moves the cell pointer 
  292.         down to the next row.  This is for convenience.  The user will be 
  293.         able to choose this address to print next by hitting <return>, or 
  294.         will  be  able to select a different address by using  the  arrow 
  295.         keys.
  296.  
  297.                      /ppgq
  298.  
  299.         The  macro  is  telling 1-2-3 to print (which it does  using  the 
  300.         range ALL as explained earlier).
  301.  
  302.                      {?}
  303.  
  304.         The  macro  pauses.   The  user can stop the  macro  by  pressing 
  305.         [BREAK],  or move the cursor to a different first name  cell,  or 
  306.         print the new current address by pressing <return>.
  307.  
  308.                       /xgLOOP~
  309.  
  310.         When  the  user  presses  <return>,  this line  causes  1-2-3  to 
  311.         continue reading keystrokes in the cell named LOOP.  LOOP is  the 
  312.         line  of the macro in which the range name START is created.  You 
  313.         can  see that the macro will repeat its entire  routine,  pausing 
  314.         again after it has printed the new address.
  315.  
  316.         Many  1-2-3  users need the ability to automate  a  mass-mailing, 
  317.         sending letters to every address in a database.  Obviously it  is 
  318.         inconvenient  to  sit at your computer and press  <return>  after 
  319.         each address is printed.
  320.  
  321.  
  322.  
  323.  
  324.  
  325.                                         5
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.         The  \P  macro will be automatic with only  slight  modification. 
  335.         These  modifications assume that the user will position the  cell 
  336.         pointer  on the first cell of a database,  invoke the macro,  and 
  337.         ignore the computer until all labels are printed.  The  automatic 
  338.         macro will look like this:
  339.  
  340.             \P       /ppoouqrALL~q
  341.             LOOP     /rncSTART~~
  342.                      /xi((START)=-1)~/xq
  343.                      /c~FIRST~{right}
  344.                      /c~LAST~{right}
  345.                      /c~ADDRESS~{right}
  346.                      /c~CITY~{right}
  347.                      /c~STATE~{right}
  348.                      /c~ZIP~
  349.                      {goto}START~
  350.                      /rndSTART~{down}
  351.                      /ppgq
  352.                      /xgLOOP~
  353.  
  354.         This macro is different in only two ways: It does not contain the 
  355.         {?} command (Pause until <return> is pressed),  and it has a line 
  356.         which checks to see if the value of the cell named START is -1:
  357.  
  358.                       /xi((START)=-1)~/xq
  359.  
  360.         This  line (added right after the cell named LOOP) says,  "If the 
  361.         value  of START is -1,  quit execution of  the  macro.  Otherwise 
  362.         continue reading keystrokes in the next cell."
  363.  
  364.         Before running this macro be sure to make one more change to your 
  365.         worksheet.  Go to the row below the last row of your database and 
  366.         enter a -1 in the first name field.  If you run the macro without 
  367.         having put a -1 at the end of your database,  it will continue to 
  368.         run to the bottom of the worksheet,  spewing blank address labels 
  369.         out  of your printer until you stop it by pressing the <Ctrl> and 
  370.         <Break> keys.
  371.  
  372.         These  macros should be useful to anyone who keeps a database  of 
  373.         addresses. With changes in the number of fields to be copied, you 
  374.         need  only to add another range name for a cell within the  range 
  375.         ALL  and  add another /c~ command to the  macro.  If  your  paper 
  376.         labels  are  larger  or  smaller than ours  you  can  modify  the 
  377.         printout  by  changing the number of rows included in  the  range 
  378.         ALL.
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.                                         6
  392.  
  393.  
  394.  
  395.  
  396.  
  397.