Текущее время: Сб, июл 19 2025, 02:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: collect в смартформах
СообщениеДобавлено: Пн, май 05 2014, 15:54 
Начинающий
Начинающий

Зарегистрирован:
Чт, апр 17 2014, 15:45
Сообщения: 8
Добрый день!

Пытаюсь в смартформах реализовать код с COLLECT следующим образом:

Глобальные определения -> глобальные данные
Code:
it_tab TYPE types_table_t
fs_tab TYPE types_table


Типы:
Code:
TYPES:
BEGIN OF types_table,
  aufnr type aufnr,
  matnr type matnr,
  meins type meins,
  maktx type maktx,
  erfmg type erfmg,
END OF types_table,
types_table_t type standard table of types_table.


Инициализация:
Code:
COLLECT it_tab.


Выдаёт ошибку, что it_tab не является таблицей со строкой заголовка.

Подскажите пожалуйста, в чём моя ошибка.

Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: collect в смартформах
СообщениеДобавлено: Пн, май 05 2014, 17:47 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 19 2012, 08:33
Сообщения: 182
Пол: Мужской
COLLECT wa INTO itab насколько я помню правильный синтакс.
Вы чего добиться то хотите? Уникальных записей? SORT & DELETE ADJACENT DUPLICATES

_________________
crusty написал(а):
Логистика - понятие растяжимое


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: collect в смартформах
СообщениеДобавлено: Пн, май 05 2014, 18:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
le10xus: бегом читать Кречмера или курсы BC400, BC402.
в вашем случае должно быть
Code:
collect fs_tab into it_tab.


Ваша таблица, при указанном определении, задана без header line. Почти все манипуляции с ней должны выполняться через посредника (рабочая область, field-symbols, reference)

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: collect в смартформах
СообщениеДобавлено: Вт, май 06 2014, 08:13 
Начинающий
Начинающий

Зарегистрирован:
Чт, апр 17 2014, 15:45
Сообщения: 8
Я хочу удалить дубликаты в таблице, оставить только уникальные записи и суммировать их по полю количество.
Code:
collect fs_tab into it_tab.

В таком случае он выдаёт ошибку о не существовании fs_tab. Если я инициализирую fs_tab с header line, то он ругается на то, что fs_tab уже определён в глобальных данных.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: collect в смартформах
СообщениеДобавлено: Вт, май 06 2014, 08:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
le10xus: покажите полный код и текст сообщения об ошибке
еще раз:
1) fs_tab - рабочая область. у нее не может быть header line
2) it_tab - внутренняя таблица. для работы с ней нужен "посредник": header line\рабочая область\field-symbol\reference

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: collect в смартформах
СообщениеДобавлено: Вт, май 06 2014, 09:24 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 19 2012, 08:33
Сообщения: 182
Пол: Мужской
le10xus написал(а):
Я хочу удалить дубликаты в таблице

Как я уже написал - два пути:
1) Луп по таблице с коллектом
Code:
loop at itab into wa.
collect wa into itab
endloop.

2)
Code:
SORT itab.
DELETE ADJACENT DUPLICATES.

_________________
crusty написал(а):
Логистика - понятие растяжимое


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: collect в смартформах
СообщениеДобавлено: Чт, май 08 2014, 08:35 
Начинающий
Начинающий

Зарегистрирован:
Чт, апр 17 2014, 15:45
Сообщения: 8
Вот, что у меня в инициализации:
Code:
SELECT
  c~aufnr
  p~matnr p~bdter p~meins p~baugr
  f~maktx
       INTO CORRESPONDING FIELDS OF TABLE it_tab
       FROM  afpo AS c
         INNER JOIN resb AS p ON c~aufnr = p~aufnr
         INNER JOIN makt AS f ON p~matnr = f~matnr.
 
  SORT it_tab.
  DELETE ADJACENT DUPLICATES FROM it_tab.

Удалить дублируемые записи получается, но COLLECT не работает.
Я не очень понимаю какая таблица должна быть вместо wa в
Code:
collect wa into itab
Я создавал
таблицы wa со строкой заголовка и без неё.
Но ошибка в том, что it_tab без строки заголовка.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: collect в смартформах
СообщениеДобавлено: Чт, май 08 2014, 09:31 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
le10xus:
Code:
TYPES:
BEGIN OF types_table,
  aufnr type aufnr,
  matnr type matnr,
  meins type meins,
  maktx type maktx,
  erfmg type erfmg,
END OF types_table,
types_table_t type standard table of types_table.
data:
  it_tab TYPE types_table_t,
  it_tab_collected TYPE types_table_t,
  fs_tab TYPE types_table.

SELECT
  c~aufnr
  p~matnr p~bdter p~meins p~baugr
  f~maktx
       INTO CORRESPONDING FIELDS OF TABLE it_tab
       FROM  afpo AS c
         INNER JOIN resb AS p ON c~aufnr = p~aufnr
         INNER JOIN makt AS f ON p~matnr = f~matnr.

  loop at it_tab into fs_tab.
    collect fs_tab into it_tab_collected.
  endloop.

  it_tab = it_tab_collected.


1) прочитайте уже учебник или курс
2) то что вам нужно, можно сделать проще, с помощью суммирования в самом запросе
3) запрос у вас из разряда "программа умрет"

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


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

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


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

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


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

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