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

Вызов экрана из под экрана.call subscreen.помогите!!



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Maxim080789
Участник
Участник



Joined: 04 May 2012
Posts: 7

PostPosted: Fri May 11, 2012 10:10 am    Post subject: Вызов экрана из под экрана.call subscreen.помогите!! Reply with quote

Back to top
View user's profile Send private message
Maxim080789
Участник
Участник



Joined: 04 May 2012
Posts: 7

PostPosted: Fri May 11, 2012 10:16 am    Post subject: Reply with quote

Вообщем проблема такая.Есть описанный кодом под экран.я его описал как субскрин и есть основной экран на который вываливается ALV таблица.Логику работы без под экрана я понял,то есть как выгрузить таблицу поиграл со свойствами просуммировал поля и т.д.
Теперь хотелось бы понять как мне вызвать эту форму( с ALV) из под экрана.На под экране имеются поля выбора которые влияют на данные выгружаемые в ALV.Помогите пожалуйста.Если нужен код то я сброшу.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Fri May 11, 2012 12:10 pm    Post subject: Reply with quote

Подэкран сам по себе не вызывается. Он может вызываться только в рамках нормального экрана.
Чем не подходит стандартная эргономика экранов отчетов: экран выбора -> основной экран?

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Maxim080789
Участник
Участник



Joined: 04 May 2012
Posts: 7

PostPosted: Fri May 11, 2012 12:55 pm    Post subject: Reply with quote

Вот я первоначально хотел так сделать.Но не знал как.учусь.Небольшой пример кода можно?
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Fri May 11, 2012 3:04 pm    Post subject: Reply with quote

1.Транзакция ABAPDOCU, раздел ABAP-экраны - Экраны выбора - Использование экранов выбора - Таблица выбора в утвержд. WHERE.
2.Программа BCALV_TEST_GRID_EVENTS

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Maxim080789
Участник
Участник



Joined: 04 May 2012
Posts: 7

PostPosted: Fri May 11, 2012 3:52 pm    Post subject: Reply with quote

REPORT Z_ALV_FORM.

tables: ever,SFLIGHT,but000,dfkkop.
data: BEGIN OF t_partn OCCURS 0,
DELOV LIKE dfkkop-gpart,
CONTSCH LIKE dfkkop-VKONT,
FAM LIKE but000-NAME_LAST,
SUMMA like DFKKOP-BETRW,
END OF T_PARTN.

data: BEGIN OF t_partn1 OCCURS 0,
FAM1 LIKE tgsbt-gtext,
DELOV1 LIKE dfkkop-gpart,
CONTSCH1 LIKE dfkkop-VKONT,
SUMMA1 like DFKKOP-BETRW,
END OF T_PARTN1.

data: gt_fieldcat type lvc_t_fcat with header line.
data: gt_fieldcat1 type lvc_t_fcat with header line.
data: T_SORT TYPE LVC_T_SORT.
data: FS_SORT TYPE LVC_S_SORT.
data: T_SORT1 TYPE LVC_T_SORT.
data: FS_SORT1 TYPE LVC_S_SORT.
data: gd_layout TYPE LVC_S_LAYO.
data: tabs like table of t_partn.
data: tabs1 like table of t_partn1.
data: r_container type REF TO CL_GUI_CUSTOM_CONTAINER,
r_grid type REF TO CL_GUI_ALV_GRID.
data: r_container1 type REF TO CL_GUI_CUSTOM_CONTAINER,
r_grid1 type REF TO CL_GUI_ALV_GRID.
data: ok_code like sy-ucomm.

SELECTION-SCREEN BEGIN OF SCREEN 500.
selection-screen begin of block b1 with frame title text-001.
PARAMETERS smc TYPE but000-partner.
selection-screen end of block b1.
SELECTION-SCREEN END OF SCREEN 500.

START-OF-SELECTION.

FS_SORT-SPOS ='1'.
FS_SORT-FIELDNAME = 'FAM1'.
FS_SORT-UP = 'X'.
FS_SORT-SUBTOT = 'X'.
fs_sort-group = '*'.
APPEND FS_SORT TO T_SORT.
clear fs_sort.

*FS_SORT-SPOS ='2'.
*FS_SORT-FIELDNAME = 'DELOV1'.
*FS_SORT-UP = 'X'.
**FS_SORT-SUBTOT = 'X'.
*APPEND FS_SORT TO T_SORT.
*clear fs_sort.


FS_SORT1-SPOS ='1'.
FS_SORT1-FIELDNAME = 'DELOV'.
FS_SORT1-UP = 'X'.
FS_SORT1-SUBTOT = 'X'.
APPEND FS_SORT1 TO T_SORT1.
clear fs_sort1.

FS_SORT1-SPOS ='2'.
FS_SORT1-FIELDNAME = 'FAM'.
FS_SORT1-UP = 'X'.
*FS_SORT1-SUBTOT = 'X'.
APPEND FS_SORT1 TO T_SORT1.
clear fs_sort1.




SELECT dfkkop~gpart
dfkkop~VKONT
but000~NAME_LAST
sum( DFKKOP~BETRW )
from but000
INNER JOIN dfkkop on but000~partner = dfkkop~gpart
into table tabs
WHERE dfkkop~AUGST <> '9'
* and dfkkop~gpart = smc
GROUP BY dfkkop~gpart dfkkop~VKONT but000~NAME_LAST.

SELECT tgsbt~gtext
dfkkop~gpart
dfkkop~VKONT
sum( DFKKOP~BETRW )
from but000
inner join
dfkkop on but000~partner = dfkkop~gpart
inner join tgsbt on dfkkop~GSBER = tgsbt~gsber
INTO TABLE tabs1
WHERE dfkkop~AUGST <> '9'
GROUP BY tgsbt~gtext dfkkop~gpart dfkkop~VKONT.

call SCREEN 1000.


MODULE LIST OUTPUT.
SET PF-STATUS 'Z_GUI_STAT'.
SET TITLEBAR 'TITLE_100'.
****************************************
CREATE OBJECT r_container
EXPORTING
CONTAINER_NAME = 'CONTANER'. " IF SY-SUBRC NE 0
************************************
CREATE OBJECT r_grid
EXPORTING
I_PARENT = r_container.
****************************************
CREATE OBJECT r_container1
EXPORTING
CONTAINER_NAME = 'CONTANER_1'. " IF SY-SUBRC NE 0
************************************
CREATE OBJECT r_grid1
EXPORTING
I_PARENT = r_container1. " IF SY-SUBRC NE 0
*********************Вызываем метод выгрузки2 в ALV******************
PERFORM build_fcat_1.
PERFORM build_fcat_1_1.
gd_layout-zebra = 'X'.
gd_layout-grid_title = 'Таблица задолжности потребителей' .
****************************
CALL METHOD R_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = gd_layout
CHANGING
it_fieldcatalog = gt_fieldcat[]
IT_OUTTAB = tabs[]
IT_SORT = T_SORT1.

IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD R_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = gd_layout
CHANGING
it_fieldcatalog = gt_fieldcat1[]
IT_OUTTAB = tabs1[]
IT_SORT = T_SORT.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE.

MODULE cancel INPUT.
leave PROGRAM.
ENDMODULE.

MODULE Z_PAI INPUT.
case ok_code.
when 'BACK' or 'EXIT'.
leave PROGRAM.
when 'OK'.
endcase.
ENDMODULE.

AT SELECTION-SCREEN.
MESSAGE s888(sabapdocu) WITH text-030 sy-dynnr.


FORM build_fcat_1.
CLEAR gt_fieldcat.
GT_FIELDCAT-FIELDNAME = 'DELOV'.
GT_FIELDCAT-COLTEXT = TEXT-006.
GT_FIELDCAT-TOOLTIP = TEXT-006.
GT_FIELDCAT-SELTEXT = TEXT-006.
GT_FIELDCAT-DATATYPE = 'CHAR'.
GT_FIELDCAT-OUTPUTLEN = 10.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.
GT_FIELDCAT-FIELDNAME = 'CONTSCH'.
GT_FIELDCAT-COLTEXT = TEXT-008.
GT_FIELDCAT-TOOLTIP = TEXT-008.
GT_FIELDCAT-SELTEXT = TEXT-008.
GT_FIELDCAT-DATATYPE = 'CHAR'.
GT_FIELDCAT-OUTPUTLEN = 20.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.
GT_FIELDCAT-FIELDNAME = 'FAM'.
GT_FIELDCAT-COLTEXT = TEXT-009.
GT_FIELDCAT-TOOLTIP = TEXT-009.
GT_FIELDCAT-SELTEXT = TEXT-009.
GT_FIELDCAT-DATATYPE = 'CHAR'.
GT_FIELDCAT-OUTPUTLEN = 20.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.
GT_FIELDCAT-FIELDNAME = 'SUMMA'.
GT_FIELDCAT-COLTEXT = TEXT-010.
GT_FIELDCAT-TOOLTIP = TEXT-010.
GT_FIELDCAT-SELTEXT = TEXT-010.
GT_FIELDCAT-DATATYPE = 'FLTP'.
GT_FIELDCAT-DO_SUM = 'X'.
GT_FIELDCAT-OUTPUTLEN = 20.
APPEND gt_fieldcat.
ENDFORM.
FORM build_fcat_1_1.
CLEAR gt_fieldcat1.
GT_FIELDCAT1-FIELDNAME = 'FAM1'.
GT_FIELDCAT1-COLTEXT = TEXT-011.
GT_FIELDCAT1-TOOLTIP = TEXT-011.
GT_FIELDCAT1-SELTEXT = TEXT-011.
GT_FIELDCAT1-DATATYPE = 'CHAR'.
GT_FIELDCAT1-OUTPUTLEN = 20.
APPEND gt_fieldcat1.
CLEAR gt_fieldcat1.
GT_FIELDCAT1-FIELDNAME = 'DELOV1'.
GT_FIELDCAT1-COLTEXT = TEXT-006.
GT_FIELDCAT1-TOOLTIP = TEXT-006.
GT_FIELDCAT1-SELTEXT = TEXT-006.
GT_FIELDCAT1-DATATYPE = 'CHAR'.
GT_FIELDCAT1-OUTPUTLEN = 10.
APPEND gt_fieldcat1.
CLEAR gt_fieldcat1.
GT_FIELDCAT1-FIELDNAME = 'CONTSCH1'.
GT_FIELDCAT1-COLTEXT = TEXT-008.
GT_FIELDCAT1-TOOLTIP = TEXT-008.
GT_FIELDCAT1-SELTEXT = TEXT-008.
GT_FIELDCAT1-DATATYPE = 'CHAR'.
GT_FIELDCAT1-OUTPUTLEN = 20.
APPEND gt_fieldcat1.
CLEAR gt_fieldcat1.
GT_FIELDCAT1-FIELDNAME = 'SUMMA1'.
GT_FIELDCAT1-COLTEXT = TEXT-010.
GT_FIELDCAT1-TOOLTIP = TEXT-010.
GT_FIELDCAT1-SELTEXT = TEXT-010.
GT_FIELDCAT1-DO_SUM = 'X'.
GT_FIELDCAT1-DATATYPE = 'FLTP'.
GT_FIELDCAT1-OUTPUTLEN = 20.
APPEND gt_fieldcat1.
ENDFORM.




Вот мой код.Куда мне прописать вызов подэкрана и логику что бы у меня из поля подэкрана бралось в условие запроса.тоесть чтоб данные выводились только по полю выбранному в поле на экране.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Fri May 11, 2012 4:47 pm    Post subject: Reply with quote

1.Пожалуйста, пользуйтей тегом "Code"
2.Зачем вам оператор
Code:
call screen 1000.

Этот экран автоматически вызывается, если указаны операторы "PARAMETERS и SELECT-OPTIONS".
Для основного экрана используйте другой номер экрана. Например '0100'.

И почитайте для начала курсы BC405 и BC406. Они есть в соответствующем разделе этого сайта.

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
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.