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

Часовой пояс: 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 часа


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

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


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

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