# macro

References attribute 15 of a file or attribute-defining
item. For a file-defining item, the text in this field describes the
default attribute name list to include in the update screen. For an
attribute-defining item, the text describes the default attribute
name list when zooming to another item.

This attribute is used for input exclusively by the Update
processor and has no effect on any other processor, except when there
is not a default attribute list on the output-macro attribute of the
file-defining item. In this case, the macro attribute dictates the
default attributes to be used by the List processor.

## Example(s)

A file-defining item with the
default attributes to be used by the Update processor:

```
ud filename filename
dictionary-code a
modulo 67
structure
retrieval-lock
update-lock
output-conversion
correlative id100
attribute-type l
input-conversion
macro name address zip phone (i
output-macro
output-conversion
description
```
In the example above, since there are no attribute-defining
items specified on the output-conversion field, the default attributes
used by the List processor are determined by the `macro` attribute. The i option displays the item-ID of
the file along with the specified attributes.

It is possible
to have multiple views of the data when the Update processor is invoked.
This is accomplished by having a MultiValue list of attribute-defining
items defined on the macro dictionary. To select which *view* of the data to use, a FlashBASIC subroutine must be called from
input-conversion of the file-defining item. In this subroutine, the
AQL function is used to pass the position value to the Update processor.

The example below shows a file-defining item with a MultiValue
list of attribute-defining items. A sample FlashBASIC subroutine is
included, showing exactly how to select the proper *view* for
the Update processor.

```
ud file.name file.name
dictionary-code a
modulo 67
structure
retrieval-lock
update-lock
output-conversion
correlative id100
attribute-type l
input-conversion call select.view
macro name address zip phone (i
 name phone comments
 name phone fax address zip (i
output-macro
output-conversion
description
```
In the example below, if the user is joe, the view displayed is:

```
name phone comments
```

```
u bp select.view
01 subroutine select.view(item)
02 item = access(3)
03 execute ’who’ capturing who
04 user = field(who,’ ’,2)
05 if user = ’joe’ then
06 access(18) = 2
07 end else
08 access(18) = 1
09 end
```

## See also

- [Cruising and zooming commands](https://d3codex.com/updateprocessor/cruising-and-zooming-commands/)
- [Default attribute items (Attribute-Defining Items)](https://d3codex.com/attributedefiningitem/default-attribute-items-attribute-defining-items/)
- [macro attribute](https://d3codex.com/updateprocessor/macro-attribute/)
- [output-macro](https://d3codex.com/attributedefiningitem/output-macro/)

---
Source: https://d3codex.com/attributedefiningitem/macro/ - part of the D3Codex reference.
