не такое случайно?
изобретал тут вытяжку информации по контрагентам (они по 4м табличкам оказались раскиданы)...
Code:
*---------------------------------------------------------------------*
* FORM GetPmt *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> TABNAME *
* --> FIELDNAME *
*---------------------------------------------------------------------*
*ищет 1 запись контрагента в BSIK,BSAK,BSID,BSAD (динам.SQL-запрос),
*подтягивает доп.информацию, текстовки и т.п. из связанных справочников,
*имя поля FieldName можно указывать с алиасом 't~имя_поля as алиас'
form Get1Pmt
tables
iDest structure idocs
using
TabName like sy-repid
FieldName like sy-repid
.
* динамический список полей (для sql-запросов)
data:
begin of TabFields occurs 0,
Item(72) TYPE C,
end of TabFields.
if ( iDest-KAGENT is initial ).
TabFields-Item = FieldName.
append TabFields.
* динамический запрос
select single (TabFields)
into corresponding fields of iDest
from (TabName) as t where
t~BUKRS = '1000' "iDest-BUKRS
and
t~GJAHR = iDest-GJAHR and
t~BELNR = iDest-BELNR and
t~SHKZG = debt "дебетные
.
endif.
endform.