Здравствуйте.
Программа использует кусочек кода batch-input.
Code:
LOOP AT x_tab.
FREE bdctab.
CLEAR LGORT2.
CLEAR CHARG2.
CLEAR zcharg.
CLEAR zlgort.
CLEAR zcharg.
* SELECT SINGLE * FROM lips INTO ls_lips WHERE vbeln = lf_vbeln AND posnr = posnrmod.
REPLACE FIRST OCCURRENCE OF ',' IN x_tab-z22 WITH '.'.
REPLACE FIRST OCCURRENCE OF ',' IN x_tab-z29 WITH '.'.
REPLACE FIRST OCCURRENCE OF ',' IN x_tab-z23 WITH '.'.
SELECT SINGLE lgort FROM ZAZS INTO zlgort WHERE AZS = x_tab-z2.
SELECT SINGLE matnr FROM zprod INTO zmatnr WHERE ZAZSMATRN = x_tab-Z17.
*--------------------------------------------------------------------*это по партиям
SELECT SINGLE charg FROM MCHB INTO zcharg
WHERE MATNR = zmatnr
AND WERKS = '1043'
AND LGORT = zlgort
AND clabs <> 0
AND clabs => x_tab-z23.
* CONCATENATE 'LIPS-LGORT (zz)' INTO LGORT2.
zz = zz + '01'.
CONCATENATE 'LIPS-LGORT('zz')'INTO LGORT2.
CONCATENATE 'LIPS-CHARG('zz')'INTO CHARG2.
CONCATENATE 'LIPS-VOLUM('zz')'INTO VOLUM2.
CONCATENATE 'LIPS-VOLEH('zz')'INTO VOLEH2.
CONCATENATE 'LIPS-MATNR('zz')'INTO MATNR2.
PERFORM: _dynpro USING 'SAPMV50A' '4004',
_field USING 'BDC_CURSOR' 'LIKP-VBELN',
_field USING 'BDC_OKCODE' '/00',
_field USING 'LIKP-VBELN' lf_vbeln.
IF zcharg = ' '.
codpocik = zz * posnrmod.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
CLEAR:
zlgort, zcharg.
ENDIF.
PERFORM: _dynpro USING 'SAPMV50A' '1000',
_field USING 'BDC_OKCODE' '/00',
_field USING VOLUM2 x_tab-z22,
_field USING VOLEH2 'Л',
_field USING LGORT2 zlgort,
_field USING CHARG2 zcharg.
PERFORM: _dynpro USING 'SAPMV50A' '1000',
_field USING 'BDC_OKCODE' '/00'.
PERFORM: _dynpro USING 'SAPMV50A' '1000',
_field USING 'BDC_OKCODE' '=IDET_T',
_field USING 'BDC_CURSOR' MATNR2.
PERFORM: _dynpro USING 'SAPMV50A' '3000',
_field USING 'BDC_OKCODE' '=T\12'.
PERFORM: _dynpro USING 'SAPMV50A' '3000',
_field USING 'BDC_OKCODE' '/00',
_field USING 'LIPS-ZZDENSF' x_tab-z29.
PERFORM: _dynpro USING 'SAPMV50A' '3000',
_field USING 'BDC_OKCODE' '=SICH_T'.
CLEAR opt.
MOVE: 'A' TO opt-dismode, "'A'
'L' TO opt-updmode.
FREE call_mess.
CALL TRANSACTION 'VL02N' USING bdctab
OPTIONS FROM opt
MESSAGES INTO call_mess.
* MESSAGES INTO lt_itab.
LOOP AT call_mess WHERE msgtyp = 'E' OR msgtyp = 'A' OR msgtyp = 'S' .
*WRITE call_mess.
ENDLOOP.
ENDLOOP.
Вот это поле
Code:
CONCATENATE 'LIPS-LGORT('zz')'INTO LGORT2.
Означает что надо заполнить склад в поле с позицией zz.
Все нормально работало до тех пор пока не начал кидать большое колиество позиций. Когда начал смотреть в видимом режиме увидел странную вещь. когда количесто строк доходит до конца экрана. у меня что-то вроде 23-24 то начинается ругань "я это поле типо не знаю"

. Пробовал записать заполнение ручками для большого кол-ва не смог разобраться они опять начинают с 1 по 24.
Это что получается сменяется экран и опять начинается заполнение заново?
Ладно предположим я смогу ручками прописать экран и смену при достижении кол-ва строк, но не будет ли у каждого пользователя разные экраны?
Подскажите пожалуйста.
