Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема начата: dev403k от Август 02, 2011, 09:55:19 am

Название: Проверка значений входных параметров
Отправлено: dev403k от Август 02, 2011, 09:55:19 am
Добрый день.
В программе входные параметры описаны на вкладках
(SELECTION-SCREEN BEGIN OF   … SUBSCREEN)
На некоторых полях указаны средства поиска

lgort1 LIKE mard-lgort MODIF ID kr1

Часто пользователь не выбирает значения из словаря, а вносит вручную.
Как сделать так, чтобы пользователь не смог внести в поле не существующее значения ?
Какими способами можно проверить (кроме select) введенные данные?

Входных параметров очень много и не особо хочется проверять с помощью select.
Название: Re: Проверка значений входных параметров
Отправлено: Uukrul от Август 02, 2011, 10:25:40 am
You are not allowed to view links. Register or Login
Часто пользователь не выбирает значения из словаря, а вносит вручную.
Как сделать так, чтобы пользователь не смог внести в поле не существующее значения ?
Какими способами можно проверить (кроме select) введенные данные?
Ну похоже что по другому никак, если зайти в стандартные отчеты, то для ММ например часто используют такой вот ФМ:
Код: You are not allowed to view links. Register or Login
FUNCTION mmim_entrycheck_main.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  TABLES
*"      IT_MATNR OPTIONAL
*"      IT_WERKS OPTIONAL
*"      IT_LGORT OPTIONAL
*"      IT_LIFNR OPTIONAL
*"      IT_KUNNR OPTIONAL
*"      IT_BWART OPTIONAL
*"      IT_EKORG OPTIONAL
*"      IT_EKGRP OPTIONAL
*"      IT_GRUND OPTIONAL
*"      IT_RESWK OPTIONAL
*"      IT_VGART OPTIONAL
*"      IT_SOBKZ OPTIONAL
*"      IT_BUKRS OPTIONAL
*"      IT_POSID OPTIONAL
*"      IT_USNAM OPTIONAL
*"----------------------------------------------------------------------
Который по факту делает теже селекты для проверки существования данных введенных с экрана пользователем в полях. На вход передаются структуры типа RANGE, так что как бы одним ФМ-мом можно сразу много что проверить.
Название: Re: Проверка значений входных параметров
Отправлено: NachDenken от Август 02, 2011, 10:29:55 am
я тоже не знаю, другого способа проверить данные введенные в поле на селек экране.
Название: Re: Проверка значений входных параметров
Отправлено: Uukrul от Август 02, 2011, 10:37:08 am
You are not allowed to view links. Register or Login
я тоже не знаю, другого способа проверить данные введенные в поле на селек экране.
Максимум, ну можно упростить себе жизнь, я так думаю можно найти ФМ, которые проверяют консистентность ключа, ну и через этот ФМ типа передавать данные для проверки ссылочной целостности. Я когда-то находил, что-то подходящее, сейчас правда не вспомню.
Название: Re: Проверка значений входных параметров
Отправлено: dev403k от Август 03, 2011, 08:22:52 am
ФМ 'DDUT_INPUT_CHECK'

*************************************************************
Как вариант можно создать свой ФМ на основе программы
REPORT  zqqqqq5.
DATA kol TYPE i.
DATA: str_  TYPE string,
      val_  type string.

PARAMETERS:
tabname   LIKE dd02l-tabname,
fieldnam LIKE dd03l-fieldname,
value     LIKE cvddp-value.

START-OF-SELECTION.

  CONCATENATE `'` value `'` INTO val_.
  CONCATENATE  fieldnam '=' val_ INTO str_ SEPARATED BY space.
  SELECT COUNT(*) INTO kol FROM (tabname) where (str_) .

    if kol <> 0.
      WRITE:/ 'Значение найдено'.
    else.
      WRITE:/ 'Значение не найдено'.
    endif.