Yes, but the names you call things within a Macro are different - as is the way you deal with them. :)

Within the various dialogue boxes, the context is somewhat straightforward because OOo takes care of the heavy lifting. However, applying the same names in a BASIC Macro results in various error messages.

Now there are advantages to using macros for some things. For one, you can put all your code in one easily editable place. With the OOo dialogues, you have to hunt around to find out what conditions and actions are active. And a simple keystroke can remove things (e.g. a backspace over a condition or the field it is attached to).

Plus it's a lot easier to handle sophisticated conditions than it is in the tiny areas the dialogues provide.


S Perry wrote:
Knowing what to call elements you want to use that you know should be available 
is half the battle with any software.
The following is from the OpenOffice Help file under Defining Conditions: Defining Conditions Conditions are logical expressions that you can use to control the display of fields and sections in your document. Although the following examples apply to fields, they also apply to sections.
  You can define conditions for the following field types:
Conditional text: displays text A if the condition is true, or text B if the condition is false. Hidden text: hides the contents of the field if the condition is true. Hidden paragraph: hides the paragraph if the condition is true. Any record and next record: controls the access to database records.

  The simplest way to define a condition is to type the logical expression 
directly in a Condition box using the following values:
                  True
    The condition is always met. You can also enter any value not equal to 0 as 
the conditional text.
      False
    The condition is not met. You can also enter the value 0.

If you leave the Condition box empty, the condition is interpreted as not being met.


  When you define a condition, use the same elements for defining a formula, 
namely comparative operators, mathematical and statistical functions, number 
formats, variables and constants.
  You can use the following types of variables when you define a condition:
Predefined OpenOffice.org variables that use statistics on document properties Custom variables, that are a created with the "Set variable" field Variables based on user data Variables based on the contents of database fields

  You cannot use internal variables, such as page and chapter numbers, in 
condition expression.
  Conditions and Variables  The following examples use a variable called "x":
                  x == 1 or x EQ 1
    The condition is true if "x" is equal to 1.
      x != 1 or x NEQ 1
    The condition is true if "x" does not equal 1.
      sinx == 0
    The condition is true if "x" is a multiple of pi.


  To use comparative operators with strings, the operands must be bounded by 
double quotation marks:
                  x == "ABC" or x EQ "ABC"
    Checks if variable "x" contains (true) the "ABC" string, or not (false).
      x == "" or x EQ ""
  or
  !x or NOT x
    Checks if the variable "x" contains an empty string.

The "equal" comparative operator must be represented by two equal signs (==) in a condition. For example, if you define a variable "x" with the value of 1, you can enter the condition as FALSE x==1.


  User Data  You can include user data when you define conditions. To change your user data, choose Tools - 
Options - OpenOffice.org - User data. User data must be entered in the form of strings. You can query the 
user data with "==" (EQ), "!=" (NEQ), or "!"(NOT).
  The following table lists user data variables and their meanings:
                  Variable
    Meaning
      user_firstname
    First name
      user_lastname
    Last name
      user_initials
    Initials
      user_company
    Company
      user_street
    Street
      user_country
    Country
      user_zipcode
    Zip code
      user_city
    City
      user_title
    Title
      user_position
    Position
      user_tel_work
    Business telephone number
      user_tel_home
    Home telephone number
      user_fax
    Fax number
      user_email
    E-mail address
      user_state
    State (not in all OpenOffice.org versions)


  For example, to hide a paragraph, text, or a section from a user with a specific initial, such as 
"LM", enter the condition: user_initials=="LM".
  Conditions and Database Fields  You can define conditions for accessing 
databases, or database fields. For example, you can check the contents of a 
database field from a condition, or use database fields in logical expressions. 
The following table lists a few more examples of using databases in conditions:
                  Example
    Meaning
      Database.Table.Company
  Database.Table.Company NEQ ""
  Database.Table.Company != ""
    The condition is true if the COMPANY field is not empty. (In the first 
example, no operator is required.)
      !Database.Table.Company
  NOT Database.Table.Company
  Database.Table.Company EQ ""
  Database.Table.Company ==""
    Returns TRUE if the COMPANY field is empty. (Exclamation sign represents a 
logical NOT.)
      Database.Table.Company !="Sun Microsystems"
  Database.Table.Company NEQ "Sun Microsystems"
    Returns TRUE if the current entry in the COMPANY field is "Sun 
Microsystems".
      Database.Table.Firstname AND Database.Table.Name
    Returns TRUE if the record contains the first and the last name.

Note the difference between the boolean NOT "!" and the comparative operator not equal "!=" (NEQ).


  When you refer to a database field in a condition, use the form 
Databasename.Tablename.Fieldname. If one of the names contains a character that 
is an operator, such as a minus sign (-), enclose the name in square brackets, 
for example, Databasename.[Table-name].Fieldname. Never use spaces inside field 
names.
  Example: Hiding an Empty Database Field
  You may want to create a condition that hides an empty field, for example, if 
the COMPANY field is empty for some of the data records.
  Select the Hidden Paragraph box, and type the following condition: 
Addressbook.Addresses.Company EQ ""
  or type the following
  NOT Addressbook.Addresses.Company
  If the COMPANY database field is empty, the condition is true and the 
paragraph is hidden.
To display hidden paragraphs on the screen, you can choose Tools - Options - OpenOffice.org Writer - Formatting Aids, and clear the Hidden paragraphs check box.


  Examples of Conditions in Fields  The following examples use the Conditional 
text field, although they can be applied to any fields that can be linked to a 
condition. The syntax used for conditions is also used for the Hidden text, 
Hidden paragraph, Any record or Next record fields.
To display conditional text based on the number of pages: Choose Insert - Fields - Other, and then click the Functions tab. In the Type list, click "Conditional text". In the Condition box, type "page == 1". In the Then box, type "There is only one page". In the Or box, type "There are several pages". Click Insert, and then click Close.

To display conditional text based on a user-defined Variable Choose Insert - Fields - Other, and then click the Variables tab. In the Type list, click "Set Variable". In the Name box, type "Profit". In the Value box, type "5000". Click Insert. Click the Functions tab, and click "Conditional text" in the Type list. In the Condition box, type "Profit < 5000". In the Then box, type "Target is not met". In the Or box, type "Target is met". Click Insert.

  To edit the contents of the "Profit" variable, double-click the variable 
field.
  To display conditional text based on the contents of a database field:  The first part of this 
example inserts a space between the "First Name" and "Last Name" fields in a 
document, and the second part inserts text based on the contents of a field name. This example 
requires that an address data source to be registered with OpenOffice.org.
Choose Insert - Fields - Other, and then click the Database tab. In the Type list, click "Mail merge fields". In the Database selection box, double-click an address book, click "First Name", and then click Insert. Repeat for "Last Name". In the document, place the cursor between the two fields, press Space, and then return to the Fields dialog: Click the Functions tab, and then click "Conditional text" in the Type list. In the Condition box, type: "Addressbook.addresses.firstname". In the Then box, type a space and leave the Or box blank.

  You can now use a condition to insert text based on the contents of the First 
Name field.
In the Fields dialog, click the Functions tab. In the Type box, click "Conditional text". In the Condition box, type: Addressbook.addresses.firstname == "Michael" In the Then box, type "Dear". In the Or box, type "Hello". Click Insert.

Daniel Kasak <[EMAIL PROTECTED]> wrote:
  On Tue, 2007-07-03 at 15:55 -0400, Gary Dale wrote:

Once more into the breach in my attempts to add an "Attn:" line to a form letter.

Obviously the easy way to do this would be to turn the paragraph's visibility on and off. However, if that is possible, I can't find a way to do it. IsVisible only seems to apply to spreadsheet rows and columns.

Thus, the second solution is to insert the new fields I need, then remove them if I decide I don't need them (based on whether or not they contain anything). However, I have not been able to find anything on how to do this either. There is some information on inserting the normal fields (those listed in the Insert | Fields menu) but nothing on how to insert the "other" fields.

Using the macro debugging facilities, I have found a mention of the fields I have statically inserted into the document (i.e. by using the Insert | Fields | Other... menu). They're in TextFieldMasters | ElementNames but that doesn't seem to help me - I can't relate it back to how to insert "normal" fields.

Sadly, Andrew's document on databases is missing the chapter on mail merges. :(

If you're still interested in populating fields in a document from a
database, I have some sample code around. It's got a custom data entry
form that lets you find a record in a database, then you hit a button,
and various fields get populated. Reply to this email and I can send it
to you.
--
Daniel Kasak
IT Developer
NUS Consulting Group
Level 5, 77 Pacific Highway
North Sydney, NSW, Australia 2060
T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989
email: [EMAIL PROTECTED]
website: http://www.nusconsulting.com.au

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




  Suzanne L. Perry
  P O Box 7493
  Louisville, KY 40257-0493
  Phone/Fax: 502-895-0691
  E-mail: [EMAIL PROTECTED]


--------------------------------- Get the Yahoo! toolbar and be alerted to new email wherever you're surfing.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to