Доброе время суток! Прошу опытных и умудренных САПом помочь начинающему!
Задача такая: в программе на селективный экран надо присобачить средство поиска к astnr (статус заказа таблица AUFK).
Не могли бы вы помочь с кодом или же дать ссылку на хороший материал по этой теме.
Средство поиска приведенное в коде писал абапер а как самому замутить хз. Пытался по аналогии,не выходит. Может найдутся альтруисты и выложат правильный код))) Очень был бы благодарен!!!
Код проги
Code:
REPORT Z_ASKHAT_REPORT.
TABLES aufk.
TABLES SSCRFIELDS.
include ZT00_FASTOLE2AM_1S.
SELECT-OPTIONS: Balansed for aufk-bukrs OBLIGATORY no-EXTENSION,
date_t for aufk-erdat no-EXTENSION,
otv_mvz for aufk-kostv no-EXTENSION,
zapr_mvz for aufk-akstl no-EXTENSION,
osn_sred for aufk-zzanln1 no-EXTENSION.
select-options: p_ERNAM for aufk-ernam no-extension no intervals,
status for aufk-astnr no-extension no intervals,
vid_zak for aufk-auart no-extension no intervals.
initialization.
date_t-sign = 'I'.
date_t-option = 'EQ'.
date_t-low = sy-datum.
date_t-low+6(2) = '01'.
date_t-high = sy-datum.
append date_t.
data: t_table like aufk OCCURS 0 WITH HEADER LINE.
data: int_table like aufk OCCURS 500 WITH HEADER LINE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ERNAM-low.
CALL FUNCTION 'HELP_VALUES_GET_WITH_MATCHCODE'
EXPORTING
MATCHCODE_OBJECT = 'Z_ASKHAR2'
TABNAME = ''
IMPORTING
SELECT_VALUE = p_ERNAM-low
EXCEPTIONS
INVALID_DICTIONARY_FIELD = 1
INVALID_MATCHDCODE_OBJECT = 2
NO_SELECTION = 3
OTHERS = 4.
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR status-low.
* CALL FUNCTION 'HELP_VALUES_GET_WITH_MATCHCODE'
* EXPORTING
*
* MATCHCODE_OBJECT = 'Z_ASKHAR3'
* TABNAME = ''
* IMPORTING
* SELECT_VALUE = status-low
* EXCEPTIONS
* INVALID_DICTIONARY_FIELD = 1
* INVALID_MATCHDCODE_OBJECT = 2
* NO_SELECTION = 3
* OTHERS = 4.
start-of-selection.
perform sel_data.
perform exel_out.
end-of-selection.
*&---------------------------------------------------------------------*
*& Form Exel_Out
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form Exel_Out.
statics :
lc_tmpl_checked type c value ' ',
li_sheet_num type i value 0.
data :
lc_tmpl_name type zt00_tmpl-srtfd,
li_tmpl_load type i,
li_lines_cnt type i,
lc_date type d,
lc_time type t,
lc_txt(500),
lc_txt2(500),
lc_even type i,
lc_regcontr(12),
li_row type i,
num type i,
sf TYPE i.
define str_copy.
CALL METHOD OF APPLICATION 'Run' NO FLUSH
EXPORTING #1 = 'insert_str' #2 = &1 #3 = &2.
end-of-definition.
define delete_str.
CALL METHOD OF APPLICATION 'Run' NO FLUSH
EXPORTING #1 = 'delete_str' #2 = &1 #3 = &2.
end-of-definition.
lc_tmpl_name = 'REESTR'.
IF lc_tmpl_checked IS INITIAL.
CALL FUNCTION 'Z_T00_CHECK_ONE_TEMPLATE'
EXPORTING
template_id = lc_tmpl_name
IMPORTING
RESULT = li_tmpl_load
EXCEPTIONS
OTHERS = 1.
CONCATENATE lc_tmpl_name '.XLT' INTO lc_tmpl_name.
IF ( li_tmpl_load >= 3 ) OR ( sy-subrc <> 0 ).
MESSAGE e002(zys_mc01) WITH lc_tmpl_name.
ENDIF.
lc_tmpl_checked = 'X'.
PERFORM create_excel_print USING lc_tmpl_name.
SET PROPERTY OF application 'ScreenUpdating' = 0.
SET PROPERTY OF application 'DisplayAlerts' = 1.
ENDIF.
data: begin of RESULT occurs 0,
kostv like aufk-kostv,
aufnr like aufk-aufnr,
ktext like aufk-ktext,
astnr like aufk-ASTNR,
akstl like aufk-akstl,
zzanln1 like aufk-zzanln1,
end of RESULT.
loop at int_table.
move-corresponding int_table to result.
append result.
endloop.
**************************************************************
data: z_name(20), z_name2(20), dat(100), strk(50).
*******************Âñòàâêà äàòû*******************************
perFORM MONTH_NAME USING sy-datum+4(2)
CHANGING Z_NAME
Z_NAME2.
concatenate 'Çà ïåðèîä c' date_t+9(2) date_t+7(2) date_t+3(4) 'ãîäà ' 'ïî' date_t+17(2) date_t+15(2) date_t+11(4) 'ãîäà' into dat
SEPARATED BY space.
setcell 5 4 dat.
concatenate 'Äàòà âûãðóçêè:' sy-datum+6(2) Z_NAME2 sy-datum+0(4) 'ãîäà' into strk
separated by space.
******************************************************************
*sy-datum+6(2) - 6-ñ êàêîé ïîçèöèè âûðåçàòü, 2-ñêîëüêî ñèìâîëîâ
******************************************************************
data: int type i.
li_row = 10.
int = 0.
sort RESULT by kostv.
LOOP AT RESULT .
add 1 to int.
setcell li_row 2 int.
setcell li_row 3 RESULT-kostv.
setcell li_row 4 RESULT-aufnr.
setcell li_row 5 RESULT-ktext.
setcell li_row 6 RESULT-ASTNR.
li_row = li_row + 1.
str_copy li_row li_row.
ENDLOOP.
delete_str li_row li_row.
delete_str li_row li_row.
*****************************************
*****************************************
*data: z_name(20), z_name2(20), strk(100).
******************************************
*perFORM MONTH_NAME USING sy-datum+4(2)
* CHANGING Z_NAME
* Z_NAME2.
*
*concatenate 'Äàòà âûãðóçêè' sy-datum+6(2) Z_NAME2 sy-datum+0(4) 'ãîäà' into strk
*separated by space.
li_row = li_row + 3.
setcell li_row 5 strk.
li_row = li_row + 1.
setcell li_row 5 'Îòâåòñòâåííûé:____________________'.
li_row = li_row + 1.
setcell li_row 5 'Äîëæíîñòü:________________________'.
*****************************************
SET PROPERTY OF application 'visible' = 1.
SET PROPERTY OF application 'ScreenUpdating' = 1.
FREE OBJECT sheet.
FREE OBJECT workbook.
FREE OBJECT application.
CALL FUNCTION 'FLUSH'.
* MESSAGE s003(zys_mc01).
MESSAGE 'âûãðóçêà çàâåðøåíà' TYPE 'S'.
ENDFORM. " EXCEL_OUT
*&---------------------------------------------------------------------*
*& Form SEL_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SEL_DATA .
SELECT * from aufk INTO TABLE int_table
where bukrs in balansed
and erdat in date_t
and ernam in p_ernam
and kostv in zapr_mvz
and akstl in zapr_mvz
and astnr in status
and zzanln1 in osn_sred
and auart in vid_zak.
ENDFORM. " SEL_DATA
FORM MONTH_NAME USING Z_MONT
CHANGING Z_NAME
Z_NAME2.
CASE Z_MONT.
WHEN '01'. Z_NAME = 'ÿíâàðü'. Z_NAME2 = 'ÿíâàðÿ'.
WHEN '02'. Z_NAME = 'ôåâðàëü'. Z_NAME2 = 'ôåâðàëÿ'.
WHEN '03'. Z_NAME = 'ìàðò'. Z_NAME2 = 'ìàðòà'.
WHEN '04'. Z_NAME = 'àïðåëü'. Z_NAME2 = 'àïðåëÿ'.
WHEN '05'. Z_NAME = 'ìàé'. Z_NAME2 = 'ìàÿ'.
WHEN '06'. Z_NAME = 'èþíü'. Z_NAME2 = 'èþíÿ'.
WHEN '07'. Z_NAME = 'èþëü'. Z_NAME2 = 'èþëÿ'.
WHEN '08'. Z_NAME = 'àâãóñò'. Z_NAME2 = 'àâãóñòà'.
WHEN '09'. Z_NAME = 'ñåíòÿáðü'. Z_NAME2 = 'ñåíòÿáðÿ'.
WHEN '10'. Z_NAME = 'îêòÿáðü'. Z_NAME2 = 'îêòÿáðÿ'.
WHEN '11'. Z_NAME = 'íîÿáðü'. Z_NAME2 = 'íîÿáðÿ'.
WHEN '12'. Z_NAME = 'äåêàáðü'. Z_NAME2 = 'äåêàáðÿ'.
ENDCASE.
ENDFORM. " MONTH_NAME
**********************************************************************
*form select_date_for_seloption.
***********************************************************************
**
***********************************************************************
* DATA: date_F TYPE d,
* date_l type d.
*
*date_l = sy-datum .
*CONCATENATE '01' sy-datum+4(2) sy-datum+0(4) into date_f.
*
*endform.
********************************************************************
*