Давай, я тебе пример приведу, может ясность и появиться.
Правда не очень красивый, но какая разница.
Надо узнать значение признака Z_DONO для последней партии, поступившей на завод с определенной комбинацией ключей код материала и партия поставщика. Да возможны две ситуации:
Признак имеет символьное значение
Признак имеет числовое значение (в системе он записан в виде числа с плавающей точкой)
* Выбор требуемой партии
SELECT * FROM mch1
WHERE matnr = matnr
AND licha = batch
ORDER BY ersda ASCENDING charg ASCENDING.
invoice = mch1-cuobj_bm. “ ссылка на классификацию
ENDSELECT.
* Определение внутреннего номера, соответствующего признаку
SELECT * FROM cabn
WHERE atnam = 'Z_DONO'.
atin = cabn-atinn. “ внутренняя нумерация признаков
ENDSELECT.
* Признак содержит символьное значение
SELECT * FROM ausp
WHERE atinn = atin
AND objek = invoice.
dono = ausp-atwrt. “ получение значение признака, если оно символьное
ENDSELECT.
* Признак содержит числовое значение
SELECT * FROM ausp
WHERE atinn = atin
AND objek = invoice.
zdono = ausp-ATFLV. “ получение значение признака, если оно числовое
dono = zdono. “ перевод в требуемы тип из типа с плавающей точкой
ENDSELECT.