Текущее время: Вс, июл 20 2025, 17:56

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Как создать средство поиска???
СообщениеДобавлено: Пн, сен 15 2008, 13:35 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 13 2008, 07:47
Сообщения: 39
Пол: Мужской
Доброе время суток! Прошу опытных и умудренных САПом помочь начинающему!

Задача такая: в программе на селективный экран надо присобачить средство поиска к 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.

********************************************************************
*


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 15 2008, 13:39 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 13 2008, 07:47
Сообщения: 39
Пол: Мужской
Да и насчет форума. Весь материал по средству поиска я перелопатил. Если честно, особых проблесков не возникло(((. ПЛЗ ХЕЛП!!!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как создать средство поиска???
СообщениеДобавлено: Пн, сен 15 2008, 14:00 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Askhat Bayarlin написал:
Задача такая: в программе на селективный экран надо присобачить средство поиска к astnr (статус заказа таблица AUFK).


1.) Средства поиска создаются в транзакции SE11.
2.) В программе присобачиваются к полям в словаре данных (SE11) или вручную в программе с помощью matchcode object id .
3.) Можно как и в приведенном коде, вызывать средства поиска вручную в секции AT SELECTION-SCREEN AT VALUE-REQUEST.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как создать средство поиска???
СообщениеДобавлено: Пн, сен 15 2008, 14:02 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Askhat Bayarlin написал:
Доброе время суток! Прошу опытных и умудренных САПом помочь начинающему!

Задача такая: в программе на селективный экран надо присобачить средство поиска к astnr (статус заказа таблица AUFK).

Не могли бы вы помочь с кодом или же дать ссылку на хороший материал по этой теме.


Средство поиска приведенное в коде писал абапер а как самому замутить хз. Пытался по аналогии,не выходит. Может найдутся альтруисты и выложат правильный код))) Очень был бы благодарен!!!



тр SE11 -> средство поиска, а там уже смотрите по аналогии с другими SH.
И курс по ABAP-словарю неплохо было бы Вам изучить. Раз уж берётесь абапить.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 15 2008, 14:02 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Code:
  status for aufk-astnr no-extension no intervals matchcode object H_TKO03.


Что-то не увидел попыток сделать аналогию.

Цитата:
Не могли бы вы помочь с кодом или же дать ссылку на хороший материал по этой теме.


По-моему, для подобных случаев самый лучший материал - это хелп к командам. А пример кода имеет смысл искать в транзакции ABAPDOCU.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 15 2008, 18:58 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
См. FM F4IF_INT_TABLE_VALUE_REQUEST, пример есть тут.

Как создать Search Help

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB