|
This function is used to read a database value.
If only one of the quantity functions 'min', 'max', 'sum', 'avg' or
'count' is executed, the 'sel_value' function returns an "integer"
or "float" type value according to the result of the function.
Otherwise the table column to be read must be either "integer"
type or "float" type.
|
 |
If the function is called using the Where clause "actual', LogiView
tries to read the table field value from the current mask.
|
 |
If the number of values which are returned by the where
clause is unknown, it is possible to call sel_value(count) and proceed
with the programming depending on the result. If the result > 1 , an array
must be read-in.
Example:
RES=sel_value(count({FLD}),{WHERE|actual})
if(RES==0)
put("No result")
elseif(RES==1)
{DAT_VAR}= sel_value({FLD},{WHERE|actual})else
else
{DAT_VAR}= sel_value({FLD},{WHERE|actual})else
endif
OR:
If the number of values which are returned is >1, the returned number
of found records is stored in REC_NR.
Example:
ART_ID=sel_value("T_MASTER_DAT.C_ID","T_MASTER_DAT.PART_ID"="screw%",REC_NR)
(Variable declaration: ART_ID = integer variable / REC_NR = integer variable)
|
|
Syntax:
|
|
{INT_VAR|FLO_VAR}= sel_value({FLD},{WHERE|actual}),
{INT_VAR|FLO_VAR}=sel_value(FLD},{WHERE},{INT_VAR}) or
{INT_VAR|FLO_VAR}= sel_value({DBF}({FLD}),{WHERE}) or
{INT_VAR|FLO_VAR}= sel_value(act_fld)
|
|
I/O parameters:
 |
{FLD} |
Name of a table field in the
format "table name.column name". |
 |
{WHERE|actual} |
Where clause followed by the
database access (see explanation field menu {WHERE} or {actual}). |
 |
{DBF} |
Database quantity function:
'avg', 'count', 'min', 'max' or 'sum'. These functions can be combined
with the 'actual' Where clause!
|
avg
The 'avg' quantity function determines the average of all
entries in the specified table field that correspond to the
Where clause of the 'sel_value' function. The function can
only applied to "integer" or "float" type
table fields; the result corresponds to the type of table
field.
|
|
count
This quantity function determines the number of different
entries in the specified table field that correspond to the
Where clause of the 'sel_value' function. The function can
applied to table fields of any type; the result of the function
is an integer value.
|
 |
If a counter query is performed using the LGV command
"sel_value(count(...))", also the "distinct"
command is executed in the Select command on database level.
This may have a great effect because multiple occurances
of identical records also return a result of "1".
Assuming to have only one corresponding record in the database
and accessing this record using another command (e.g. sel_string)
this would cause the display of selection menus in several
records.
|
|
min
This quantity function determines the lowest entry in the
specified table field for all records that correspond to the
Where clause of the 'sel_value' function. The function can
only applied to "integer" or "float" type
table fields; the result corresponds to the type of table
field.
|
|
max
This quantity function determines the greatest entry in the
specified table field for all records that correspond to the
Where clause of the 'sel_value' function. The function can
only applied to "integer" or "float" type
table fields; the result corresponds to the type of table
field.
|
|
sum
This quantity function determines the sum of all entries
in the specified table field that correspond to the Where
clause of the 'sel_value' function. The function can only
applied to "integer" or "float" type table
fields; the result corresponds to the type of table field.
|
|
 |
act_fld |
The keyword "act_fld" defines the access to the current
(mask) field without the necessity to know its name. "Act_fld"
represents a unique and complete Where clause; therefore, using
further Where clauses is excluded.
"Act_fld" can only be used if LogiView is called as "pre-field"
or "post-field" userexit.
|
|
 |
In this case no database
access is necessary. However, the mask contents may vary from the
actual database contents unless an update was performed just before. |
 |
{INT_VAR} |
Number of found records. |
 |
- |
|
|
|
Return value:
|
|
 |
{INT_VAR|FLO_VAR} |
Value read from the database. |
|
|
Example:
|
|
Declaration
of Variables |
|
30 DOCU_INT_1=sel_value(min("MAT.ISO"),"MAT.NAME"= "maho-%")
|
|
Result: |
|
The function determines
the lowest field entry of all records of the "MAT" table with
a field corresponding to "maho-%". Then this contents is assigned
to the integer variable DOCU_INT_1. |
 |
Functions and commands: DB/Mask Interface
|