Текущее время: Пн, июл 14 2025, 06:07

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Использование логической базы PROJ
СообщениеДобавлено: Чт, ноя 06 2008, 07:05 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
Здравствуйте!!!
В своем отчете использую логическую базу данных - PROJ.
Вытаскиваю с PRPS_R СПП элементы затем с EKKO название договоров к этим СПП.
Работает нормально, но в итоге выводятся только все СПП на которые есть договора.
Можно ли как-нибудь сделать чтобы выводились и СПП без договоров???
Заранее благодарю!!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 06 2008, 07:22 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
Не PROJ а PSJ что то я запарился...
Извеняюсь :oops: :oops:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 06 2008, 13:02 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Попробуй так:

Code:
NODES: PRPS_R, EKKO.

DATA: BEGIN OF ITAB OCCURS 0,
        POSID TYPE PS_POSID,
        EBELN TYPE EBELN,
      END OF ITAB.
DATA: HCAT TYPE LVC_S_FCAT,
      FCAT TYPE LVC_T_FCAT.

DEFINE ADD_FIELD.
  CLEAR HCAT.
  HCAT-COL_POS = &1.
  HCAT-FIELDNAME = &2.
  HCAT-OUTPUTLEN = &3.
  HCAT-SCRTEXT_M = HCAT-COLTEXT = &4.
  APPEND HCAT TO FCAT.
END-OF-DEFINITION.

START-OF-SELECTION.
GET EKKO.

GET PRPS_R.
  ITAB-POSID = PRPS_R-POSID.
  ITAB-EBELN = EKKO-EBELN.
  APPEND ITAB.

END-OF-SELECTION.
  ADD_FIELD '1' 'POSID' '24' 'WBS element'.
  ADD_FIELD '2' 'EBELN' '10' 'Purchase order'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      IT_FIELDCAT_LVC = FCAT
    TABLES
      T_OUTTAB        = ITAB[].


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 06 2008, 15:10 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
Спасибо!Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ!!
Кажется работает!!!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 06 2008, 16:08 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
вытаскивает все СПП. Пишет какие то договора??
Проверил, оказалось что путает договора, т.е. пишет название договоров к нетой СПП??
Из-за чего не могу вытащить затраты на какую либо СПП???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 06 2008, 17:47 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Извиняюсь, неправильно написал. Вот рабочий код.
Code:
NODES: PRPS_R, EKKO.

DATA: BEGIN OF WA,
        POSID TYPE PS_POSID,
        EBELN TYPE EBELN,
      END OF WA,
      ITAB LIKE WA OCCURS 0.
DATA: HCAT TYPE LVC_S_FCAT,
      FCAT TYPE LVC_T_FCAT.

DEFINE ADD_FIELD.
  CLEAR HCAT.
  HCAT-COL_POS = &1.
  HCAT-FIELDNAME = &2.
  HCAT-OUTPUTLEN = &3.
  HCAT-SCRTEXT_M = HCAT-COLTEXT = &4.
  APPEND HCAT TO FCAT.
END-OF-DEFINITION.

START-OF-SELECTION.

GET PRPS_R.
  CLEAR WA.
  WA-POSID = PRPS_R-POSID.
  APPEND WA TO ITAB.

GET EKKO LATE.
  WA-EBELN = EKKO-EBELN.
  APPEND WA TO ITAB.
  DELETE ITAB WHERE POSID = WA-POSID AND EBELN = SPACE.

END-OF-SELECTION.
  ADD_FIELD '1' 'POSID' '24' 'WBS element' .
  ADD_FIELD '2' 'EBELN' '10' 'Purchase order'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      IT_FIELDCAT_LVC = FCAT
    TABLES
      T_OUTTAB        = ITAB.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 07:13 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
Code:
DELETE ITAB WHERE POSID = WA-POSID AND EBELN = SPACE.



Удаляет строку если нет договора???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 07:17 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
а если так??

Code:
get PRPS_R.
  report-PSPID = PRPS_R-POSID.

get EKKO late.
    report-EBELN = EKKO-EBELN. 

  collect report.



Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 07:52 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
понял эту строчку...
удаление предыдущего АППЕНДА??

Code:
DELETE ITAB WHERE POSID = WA-POSID AND EBELN = SPACE.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 08:25 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
У меня участвуют три таблицы.
PROJ, PRPS_R, EKKO.
Даже если по вашему делаю все равно не получается ругается на delete?
А вашу прогу скопировал работает, но остается одна строчка где написана не СПП а проект?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 08:30 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
Я так понимаю это из-за того что к екко приходит две записи в ITAB определение проекта и его СПП.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 09:42 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
И снова код (извиняюсь, трудно объяснить)
Code:
NODES: PROJ, PRPS_R, EKKO.

DATA: BEGIN OF WA,
        PSPID TYPE PS_PSPID,
        POSID TYPE PS_POSID,
        EBELN TYPE EBELN,
      END OF WA,
      ITAB LIKE WA OCCURS 0.
DATA: HCAT TYPE LVC_S_FCAT,
      FCAT TYPE LVC_T_FCAT.

DEFINE ADD_FIELD.
  CLEAR HCAT.
  HCAT-COL_POS = &1.
  HCAT-FIELDNAME = &2.
  HCAT-OUTPUTLEN = &3.
  HCAT-SCRTEXT_M = HCAT-COLTEXT = &4.
  APPEND HCAT TO FCAT.
END-OF-DEFINITION.

START-OF-SELECTION.

GET PROJ.
  CLEAR WA.
  WA-PSPID = PROJ-PSPID.
  APPEND WA TO ITAB.

GET PRPS_R.
  WA-POSID = PRPS_R-POSID.
  APPEND WA TO ITAB.
  DELETE ITAB WHERE PSPID = WA-PSPID AND POSID = SPACE.

GET EKKO LATE.
  WA-EBELN = EKKO-EBELN.
  APPEND WA TO ITAB.
  DELETE ITAB WHERE POSID = WA-POSID AND EBELN = SPACE.

END-OF-SELECTION.
  ADD_FIELD '1' 'PSPID' '24' 'Project' .
  ADD_FIELD '2' 'POSID' '24' 'WBS element' .
  ADD_FIELD '3' 'EBELN' '10' 'Purchase order'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      IT_FIELDCAT_LVC = FCAT
    TABLES
      T_OUTTAB        = ITAB.


Попытаюсь:
1. Структура конкретной ЛБД похожа на пирамидку: на 1 проект (событие GET PROJ) может быть найдено несколько СПП элементов (событие GET PRPS_R), а для каждого СПП элемента может быть найдено несколько заказов на закупку (событие GET EKKO).
2. Если в событии GET PRPS_R данных не найдется - обработка вернется к предыдущему событию. Соотвественно, заполнение таблицы (APPEND) необходим в каждом событии, а не в конце последнего. Поэтому у Вас изначально записи без заказов не выбирались - COLLECT или APPEND стоял видимо в последнем событии GET EKKO.
3. Удаление предыдущего APPEND выполняется как раз из-за 2-го пункта. Если записи находятся в последующем событии - запись из первого события становится не нужной.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 15:35 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
----------------------------------------------------------------------------
| Project | WBS element | Purchase order |
|----------|-----------------------|-------------|
| Проект | СПП верх уровня | здесь пусто |
| Проект | СПП нижн уровня| Договор |
| Проект | СПП нижн уровня| Договор |
| Проект | СПП нижн уровня| Договор |
|_______|________________|_______|

Принцип таков.
К договорам цепляются СПП нижнего уровня.
Структура проектов такая:
1. Определение проекта.
2.СПП верхнего уровня
3.СПП нижнего уровня.
Так вот у 'определения проекта' маска такая же как и у 'СПП верхнего уровня', а у 'СПП нижнего' начало такое же а потом идет /01 или /02 и т.д.
Все такая у нас структура. Может поэтому и первая строка появляется??


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 16:14 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Ну если не нужны СПП элементы "верхнего уровня" - удалите их исз списка. Событию GET PRPS_R абсолютно плевать какого уровня СПП - если он привязан к проекту, то его выберут.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 10 2008, 07:41 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
А как мне удалить??
Мне то нужно все СПП даже на которые нет договоров, а если я буду ориентироваться на пустое поле то не получится???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2, 3  След.

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


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

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


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

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