SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Очистка ALV


Goto page 1, 2  Next
 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 11:30 am    Post subject: Очистка ALV Reply with quote

Доброе утро очередного трудового дня! Laughing
Пытаюсь очистить буфер/кеш ALV... чтоб при его перегенерации не оставались старые данные... пробовал использовать BALVBUFDEL...но результатов не дало Sad Можно ли это реализовать как-то иначе?

_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 75
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Sep 02, 2008 12:05 pm    Post subject: Reply with quote

О каких старых данных речь?
Может вам метод поможет?
CALL METHOD alv_grid->refresh_table_display.
Back to top
View user's profile Send private message Blog Visit poster's website
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 12:20 pm    Post subject: Reply with quote

У меня в ALV выводится результат ряда select'ов. При переходе "назад" и задании новых параметров ново сформировавшиеся данные идут в "хвост" ALV, после предыдущих. С рефрешем сейчас попробую...
Параллельно хотел бы еще такой вопрос спросить...
REUSE_ALV_GRID_DISPLAY выводит саму ALV через прожку SAPLKKBL.
С ее собственным гуи статусом и 500м экраном. Соответственно там свои кнопки "Обработка текста", "Локальный файл", "Получатель сообщения" и т.д. Нажимая их у ся получая вылет на вчерашнее GETWA_NOT_ASSIGNED, Field symbol has not yet been assigned.
Code:

 2881       endif.
 2882     when 012.
 2883       if gs_out_flags-slave ne 'X'
>>>>>         assign <fm12> to <field>.
 2885         gs_fc = gs_mfc12.
 2886       else.
 2887         assign <fs12> to <field>.

т.е. как я понимаю их надо каким-то образом описать в моем field-catalog'e или как?

_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"
Back to top
View user's profile Send private message
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 12:49 pm    Post subject: Reply with quote

А по поводу очистки...
Code:

DATA alv_grid type ref to cl_gui_alv_grid.
 CALL METHOD ALV_GRID->REFRESH_TABLE_DISPLAY.

Code:

 OBJECTS_OBJREF_NOT_ASSIGNED
 Access via 'NULL' object reference not possible.
 639
>>>>   CALL METHOD ALV_GRID->REFRESH_TABLE_DISPLAY.
 641

_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 75
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Sep 02, 2008 12:53 pm    Post subject: Reply with quote

rudeman wrote:
У меня в ALV выводится результат ряда select'ов. При переходе "назад" и задании новых параметров ново сформировавшиеся данные идут в "хвост" ALV, после предыдущих.


Наверно таблицу itab не очищаете перед заполнением?
Code:
FREE itab.



Падение скорей всего связано с тем, что Вы field-catalog не полностью заполнили. Не все поля с описанием типов данных заполнены.
Я вам советовал в прошлой ветке использовать ФМ 'REUSE_ALV_FIELDCATALOG_MERGE'.
Обычно filed-catalog строят с помощью стандарных ФМ, а далее модифицируют, если что-то нужно подправить. Как правило изменяют названия столбцов, выходную длину, показывать или нет, но типы данных не трогают.


Last edited by vga on Tue Sep 02, 2008 1:03 pm; edited 1 time in total
Back to top
View user's profile Send private message Blog Visit poster's website
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 1:02 pm    Post subject: Reply with quote

Я ставил clear... с free стало обновляться )
_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"


Last edited by rudeman on Tue Sep 02, 2008 1:07 pm; edited 2 times in total
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 75
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Sep 02, 2008 1:05 pm    Post subject: Reply with quote

rudeman wrote:
Я ставил clear... с free стало обновляться )


Для удаления записей из таблицы нужно использовать FREE или REFRESH.
Back to top
View user's profile Send private message Blog Visit poster's website
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 1:07 pm    Post subject: Reply with quote

После формирования каталога как я отписал в прошлой ветке:
Code:

V_POSNR = V_POSNR + 1.
  V_FIELDCAT-JUST = 'L'. "ВЫРАВНИВАНИЕ ЛЕВО-ПРАВО-ЦЕНТР
  V_FIELDCAT-FIELDNAME = 'NAME1'.
  V_FIELDCAT-SELTEXT_L = 'Имя1'.
  V_FIELDCAT-OUTPUTLEN = 40.
  V_FIELDCAT-COL_POS = V_POSNR.
  APPEND V_FIELDCAT TO MY_FIELDCATALOG.
  CLEAR V_FIELDCAT.

я пробовал Ваш совет прошлой ветки так:
Code:

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = g_repid
I_INTERNAL_TABNAME = 'itab'
I_INCLNAME = g_repid
CHANGING
ct_fieldcat = my_fieldcatalog[].

но результатом было и осталось
Code:

 READ_REPORT_LINE_TOO_LONG
 The ABAP program lines are wider than the internal table.
 364 *    try.
>>>>     read report l_prog_tab_local into l_abap_source.
 366 *      catch cx_sy_read_src_line_too_long into ex_too_long.
 367 *    endtry.
 368     check sy-subrc eq 0.
Sad

vga wrote:
rudeman wrote:
Я ставил clear... с free стало обновляться )


Для удаления записей из таблицы нужно использовать FREE или REFRESH.

Запомню, спасибо

_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 75
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Sep 02, 2008 1:14 pm    Post subject: Reply with quote

rudeman wrote:

я пробовал Ваш совет прошлой ветки так:
Code:

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = g_repid
I_INTERNAL_TABNAME = 'itab'
I_INCLNAME = g_repid
CHANGING
ct_fieldcat = my_fieldcatalog[].

но результатом было и осталось
Code:

 READ_REPORT_LINE_TOO_LONG
 The ABAP program lines are wider than the internal table.
 364 *    try.
>>>>     read report l_prog_tab_local into l_abap_source.
 366 *      catch cx_sy_read_src_line_too_long into ex_too_long.
 367 *    endtry.
 368     check sy-subrc eq 0.
Sad



Вы в отладчике посмотрели, my_fieldcatalog сформировался ФМ REUSE_ALV_FIELDCATALOG_MERGE ?
нужно обязательно добиться, чтобы сформировался.
Параметру I_INCLNAME =
нужно передать имя инклюда программы, где определена itab.
Back to top
View user's profile Send private message Blog Visit poster's website
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 1:19 pm    Post subject: Reply with quote

field-catalog я формирую "ручками" методом
Code:

V_POSNR = V_POSNR + 1.
  V_FIELDCAT-JUST = 'L'. "ВЫРАВНИВАНИЕ ЛЕВО-ПРАВО-ЦЕНТР
  V_FIELDCAT-FIELDNAME = 'NAME1'.
  V_FIELDCAT-SELTEXT_L = 'Имя1'.
  V_FIELDCAT-OUTPUTLEN = 40.
  V_FIELDCAT-COL_POS = V_POSNR.
  APPEND V_FIELDCAT TO MY_FIELDCATALOG.
  CLEAR V_FIELDCAT.

но там есть поля, которые не всегда заполняются... может изза этого проблема...

Code:

Параметру I_INCLNAME =
нужно передать имя инклюда программы, где определена itab.

Ну я его формирую в самой проге и передаю g_repid равный sy-repid по сути...

_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 75
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Sep 02, 2008 1:23 pm    Post subject: Reply with quote

rudeman wrote:
но там есть поля, которые не всегда заполняются... может изза этого проблема...


О том и речь, на 95% что проблема в этом.

Как таблица itab описана?
Back to top
View user's profile Send private message Blog Visit poster's website
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 1:28 pm    Post subject: Reply with quote

Code:

data: begin of itab occurs 0,
pernr like PA0290-pernr,
ebeln like ekpo-ebeln,
ebelp like ekpo-ebelp,
pyord like pyordh-pyord,
seri0 like pa0290-seri0,
nomer like pa0290-nomer,
datbg like pa0290-datbg,
passl like pa0290-passl,
txz01 like EKPO-txz01,
meins like ekpo-meins,
menge like ekpo-menge,
name1 like adrc-name1,
name2 like adrc-name2,
post_code1 like adrc-post_code1,
city1 like adrc-city1,
street like adrc-street,
house_num1 like adrc-house_num1,
paval like t001z-paval,
bankn like t012K-bankn,
bankl like t012-bankl,
nachn like PA0002-NACHN,
vorna like PA0002-VORNA,
lifnr like EKKO-lifnr,
rbetr like pyordh-rbetr,
end of itab.

Но SELECT'ы в поля
Code:

txz01 like EKPO-txz01,
meins like ekpo-meins,
menge like ekpo-menge,
lifnr like EKKO-lifnr,
rbetr like pyordh-rbetr,

идут в случае установки галочек на экране.. а если галочек нет, то поля пустые... вроде при формировании каталога я сделал
Code:

*  if pyordh-pyord NE ''.
*    V_POSNR = V_POSNR + 1.
*    V_FIELDCAT-JUST = 'L'.
*    V_FIELDCAT-FIELDNAME = 'RBETR'.
*    V_FIELDCAT-SELTEXT_L = 'Сумма во внутренней валюте'.
*    V_FIELDCAT-OUTPUTLEN = 13.
*    V_FIELDCAT-COL_POS = V_POSNR.
*    APPEND V_FIELDCAT TO MY_FIELDCATALOG.
*  endif.
чтоб оно не формировалось, если галочки не стоят... но видимо есть записи в которых это поле пустое...
_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"
Back to top
View user's profile Send private message
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 1:32 pm    Post subject: Reply with quote

Убрал эти поля, которые могут быть пустыми...
стандартные кнопки ALV всеравно не работают...с той же ошибкой...

_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"
Back to top
View user's profile Send private message
rudeman
Специалист
Специалист



Joined: 21 Sep 2007
Posts: 55
Location: Киев

PostPosted: Tue Sep 02, 2008 2:21 pm    Post subject: Reply with quote

*КУЧА МАТОВ* жаль нет такого смайла... при использовании
REUSE_ALV_FIELDCATALOG_MERGE нельзя чтоб длинна строк кода была больше 72... потому и не работала функция...

_________________
Приятно когда программа из стадии "Блин, она не компилится!" переходит в стадию "Блин, она не работает!"
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 75
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Sep 02, 2008 2:38 pm    Post subject: Reply with quote

rudeman wrote:
*КУЧА МАТОВ* жаль нет такого смайла... при использовании
REUSE_ALV_FIELDCATALOG_MERGE нельзя чтоб длинна строк кода была больше 72... потому и не работала функция...


Хм, она не может строить фиелдкаталог при использовании локальных типов - это известное ограничение. А где у вас длина строк больше 72 была?
Back to top
View user's profile Send private message Blog Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.