Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема начата: dev403k от Август 02, 2011, 09:55:19 am
-
Добрый день.
В программе входные параметры описаны на вкладках
(SELECTION-SCREEN BEGIN OF … SUBSCREEN)
На некоторых полях указаны средства поиска
lgort1 LIKE mard-lgort MODIF ID kr1
Часто пользователь не выбирает значения из словаря, а вносит вручную.
Как сделать так, чтобы пользователь не смог внести в поле не существующее значения ?
Какими способами можно проверить (кроме select) введенные данные?
Входных параметров очень много и не особо хочется проверять с помощью select.
-
Часто пользователь не выбирает значения из словаря, а вносит вручную.
Как сделать так, чтобы пользователь не смог внести в поле не существующее значения ?
Какими способами можно проверить (кроме select) введенные данные?
Ну похоже что по другому никак, если зайти в стандартные отчеты, то для ММ например часто используют такой вот ФМ:
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, так что как бы одним ФМ-мом можно сразу много что проверить.
-
я тоже не знаю, другого способа проверить данные введенные в поле на селек экране.
-
я тоже не знаю, другого способа проверить данные введенные в поле на селек экране.
Максимум, ну можно упростить себе жизнь, я так думаю можно найти ФМ, которые проверяют консистентность ключа, ну и через этот ФМ типа передавать данные для проверки ссылочной целостности. Я когда-то находил, что-то подходящее, сейчас правда не вспомню.
-
ФМ '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.