Текущее время: Пт, июл 25 2025, 16:07

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Обновление динамически объявленного поля
СообщениеДобавлено: Пн, янв 12 2009, 12:02 
Начинающий
Начинающий

Зарегистрирован:
Сб, ноя 01 2008, 11:40
Сообщения: 10
Откуда: Красноярск
Добрый день! У меня возникла следующая проблема: пользователь динамически задает имя таблицы и поле таблицы.

SELECTION-SCREEN BEGIN OF BLOCK T1 WITH FRAME TITLE TEXT-T01.
PARAMETERS:
TABLES LIKE DD03L-TABNAME OBLIGATORY,
FIELDS LIKE DD03L-FIELDNAME OBLIGATORY,
SELECTION-SCREEN END OF BLOCK T1.

FIELDTABLE-FIELDNAME = FIELDS. "Нужно для использования в Select при выборе значений поля
APPEND FIELDTABLE.

Далее я выбираю значения этого поля.

START-OF-SELECTION.

SELECT (FIELDTABLE) FROM (TABLES) INTO TABLE RECODING.

END-OF-SELECTION.

Впоследствии требуется изменить значения этого динамически заданного поля, где у меня и возникает загвоздка. Пробовал что-то вроде:

UPDATE (tables) set (fieldtable) = newtext where fieldtable = oldtext.

Но программа ясное дело вылетает в дамп. :(

Может кто подскажет как обновлять эти динамически заданные поля?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление динамически объявленного поля
СообщениеДобавлено: Пн, янв 12 2009, 12:14 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
vvp написал(а):
Добрый день! У меня возникла следующая проблема: пользователь динамически задает имя таблицы и поле таблицы.

SELECTION-SCREEN BEGIN OF BLOCK T1 WITH FRAME TITLE TEXT-T01.
PARAMETERS:
TABLES LIKE DD03L-TABNAME OBLIGATORY,
FIELDS LIKE DD03L-FIELDNAME OBLIGATORY,
SELECTION-SCREEN END OF BLOCK T1.

FIELDTABLE-FIELDNAME = FIELDS. "Нужно для использования в Select при выборе значений поля
APPEND FIELDTABLE.

Далее я выбираю значения этого поля.

START-OF-SELECTION.

SELECT (FIELDTABLE) FROM (TABLES) INTO TABLE RECODING.

END-OF-SELECTION.

Впоследствии требуется изменить значения этого динамически заданного поля, где у меня и возникает загвоздка. Пробовал что-то вроде:

UPDATE (tables) set (fieldtable) = newtext where fieldtable = oldtext.

Но программа ясное дело вылетает в дамп. :(

Может кто подскажет как обновлять эти динамически заданные поля?

А F1 у Вас не работает разве?

Попробуйте CONCATENATE 'fieldtable = ' newtext INTO set_expr. UPDATE (tables) set (set_expr) where fieldtable = oldtext.
учитывая что
Notes
Before release 6.10, SET could only be specified for static specification of the database table.

Before release 6.10, no dynamic logical expressions could be used in the WHERE condition of the statement UPDATE.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление динамически объявленного поля
СообщениеДобавлено: Пн, янв 12 2009, 12:53 
Начинающий
Начинающий

Зарегистрирован:
Сб, ноя 01 2008, 11:40
Сообщения: 10
Откуда: Красноярск
CONCATENATE тоже не получается, вылетает в такой же дамп.


Последний раз редактировалось vvp Пн, янв 12 2009, 13:30, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление динамически объявленного поля
СообщениеДобавлено: Пн, янв 12 2009, 13:06 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Code:
Example

Dynamic conversion of the content of an arbitrary column in an arbitrary database table of a previous currency in Euro.

PARAMETERS: table    TYPE c LENGTH 30,
            column   TYPE c LENGTH 30,
            old_curr TYPE sycurr.

DATA: set_expr  TYPE string,
      condition TYPE string.

CONCATENATE column ` = 'EUR'`
            INTO set_expr.

CONCATENATE column ` = old_curr`
            INTO condition.

TRY.
    UPDATE (table)
    SET    (set_expr)
    WHERE  (condition).
  CATCH cx_sy_dynamic_osql_error.
    MESSAGE `Error in update!` TYPE 'I'.
ENDTRY.


Годится?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление динамически объявленного поля
СообщениеДобавлено: Вт, янв 13 2009, 05:19 
Начинающий
Начинающий

Зарегистрирован:
Сб, ноя 01 2008, 11:40
Сообщения: 10
Откуда: Красноярск
lumer, да да да, самое оно! Всем спасибо за помощь!


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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