Difference between revisions of "MEMVAR LOOKUP()"
Yvonne.milne (Talk | contribs) m (1 revision) |
Yvonne.milne (Talk | contribs) m (Text replace - "lianjaapi.h" to "lianja_api.h") |
||
Line 7: | Line 7: | ||
==SYNOPSIS== | ==SYNOPSIS== | ||
<code lang="c"> | <code lang="c"> | ||
− | #include " | + | #include "lianja_api.h" |
struct API_MEMVAR MEMVAR_LOOKUP(name) | struct API_MEMVAR MEMVAR_LOOKUP(name) | ||
Line 68: | Line 68: | ||
<code lang="c"> | <code lang="c"> | ||
− | #include " | + | #include "lianja_api.h" |
lianjaapi_memvar_lookup() | lianjaapi_memvar_lookup() |
Latest revision as of 08:05, 11 April 2013
PURPOSE
Lookup a memory variable
SYNONYM
api_memvar_lookup()
SYNOPSIS
#include "lianja_api.h" struct API_MEMVAR MEMVAR_LOOKUP(name) <input parameters> char *name; /* Address of a buffer containing the name of memory variable */ <output parameters> none
DESCRIPTION
The MEMVAR_LOOKUP() function will lookup the specified memory variable and return its data type and value into the specified API_MEMVAR data structure.
A NULL value is returned if the memory variable has not previously been defined, otherwise the results are stored in the following API_MEMVAR data structure:
union API_UNION { char *info_character; /* Char memory variable */ char info_logical; /* Logical memory variable */ double info_number; /* Numeric memory variable */ unsigned long info_date; /* Date memory variable */ DATETIME info_datetime; /* Datetime memory variable */ CURRENCY info_currency; /* Currency memory variable */ }; struct API_MEMVAR { char type; /* Data type of memory variable */ union API_UNION value; /* Value of the memory variable */ int width; /* Display width */ int decimal; /* Display # of decimal places */ };
The API_MEMVAR type specifies both the data type and which API_UNION value will be used to return the value of the memory variable.
The API_MEMVAR width returns the length of the memory variable. A decimal place may be returned for a number, but will be 0 for other data types.
A memory variable can be defined as any one of the following.
TYPE | OUTPUT | WIDTH | DESCRIPTION |
---|---|---|---|
C | *info_character | 1-8192 | Address of a buffer containing a character string |
D | info_date | 8 | Unsigned long representing a date |
L | info_logical | 1 | Character of either 'T' for true or 'F' for false |
N | info_number | 1-16 | A value stored in a double |
T | info_datetime | sizeof(DATETIME) | RCT_DATETIME_DEF structure |
Y | info_currency | sizeof(CURRENCY) | RCT_CURRENCY_DEF structure |
EXAMPLE
The following example looks up the memory variable value specified in the first parameter passed and then returns the value as a character string.
#include "lianja_api.h" lianjaapi_memvar_lookup() { struct API_MEMVAR *result; char buffer[1025]; if (_parinfo(1) != API_CTYPE) _retc(""); result = MEMVAR_LOOKUP(_parc(1)); switch ( result->type ) { case 'C': _retc( result->value.info_character ); case 'D': _retc( DATE_DTOS(result->value.info_date)); case 'N': CHAR_STR( buffer, result->value.info_number, result->width, result->decimal); _retc( buffer ); case 'L': _retc((result->value.info_logical=='T') ? "True" : "False" ); } _retc(""); }