Текущее время: Сб, июл 12 2025, 09:49

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


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

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


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

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