Текущее время: Пт, май 16 2025, 02:29

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: ФМ для подсчёта сальдо по заданному счёту на заданную дату
СообщениеДобавлено: Пт, ноя 25 2005, 18:38 
Начинающий
Начинающий

Зарегистрирован:
Чт, ноя 17 2005, 13:55
Сообщения: 17
Есть ли такой ФМ? Может кто-то знает?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 25 2005, 22:43 
Гость
по-моему, нет

но алгоритм расчета - не сложен.

можно и самому - из таблицы GLT0 посчитать сальдо
на 1 число месяца, а потом - только прибавить обороты из BSIS.

вот старенький пример,
вроде работает :oops:
если нужно -
можно добавить нужные параметры на селекционный экран.


Code:

REPORT  ZSALDO_ACC           .



DATA:   BEGIN OF GLTAB OCCURS 10,
          DRCRK  LIKE GLT0-DRCRK,
          RYEAR  LIKE GLT0-RYEAR,
          TSLVT   LIKE GLT0-TSLVT,
          TSL01   LIKE GLT0-TSL01,
          TSL02   LIKE GLT0-TSL01,
          TSL03   LIKE GLT0-TSL01,
          TSL04   LIKE GLT0-TSL01,
          TSL05   LIKE GLT0-TSL01,
          TSL06   LIKE GLT0-TSL01,
          TSL07   LIKE GLT0-TSL01,
          TSL08   LIKE GLT0-TSL01,
          TSL09   LIKE GLT0-TSL01,
          TSL10   LIKE GLT0-TSL01,
          TSL11   LIKE GLT0-TSL01,
          TSL12   LIKE GLT0-TSL01,
          TSL13   LIKE GLT0-TSL01,
          TSL14   LIKE GLT0-TSL01,
          TSL15   LIKE GLT0-TSL01,
          TSL16   LIKE GLT0-TSL01,
       END OF GLTAB,
       T_BSIS LIKE BSIS OCCURS 0 WITH HEADER LINE,
       MONS(2),
       MONS1(2),
       GOD LIKE GLT0-RYEAR,
       NFIELD(20),
       PER(2) TYPE N,
       BUDATE TYPE D,
       SALDO LIKE GLT0-TSL01.

FIELD-SYMBOLS: <H>,
               <S>.

PARAMETERS: BUKRS TYPE BUKRS MEMORY ID BUK OBLIGATORY,
            SAKNR LIKE SKA1-SAKNR MEMORY ID SAK OBLIGATORY,
            BUDAT LIKE BKPF-BUDAT DEFAULT SY-DATUM OBLIGATORY.

TABLES: GLT0.

START-OF-SELECTION.
  BUDATE = BUDAT.
  BUDATE+6(2) = '01'.
  GOD = BUDAT(4).
  MONS = BUDAT+4(2).
  IF MONS = '01'.
    GOD = GOD - 1.
  ENDIF.

  CLEAR: GLTAB, T_BSIS.
  REFRESH: GLTAB, T_BSIS.
  SELECT * FROM GLT0
           WHERE RLDNR = '00'
           AND   RRCTY = '0'
           AND   RVERS = '001'
           AND   BUKRS = BUKRS
           AND   RYEAR <= GOD
           AND   RACCT = SAKNR
           AND   RPMAX = '016'.
    MOVE-CORRESPONDING GLT0 TO GLTAB.
    COLLECT GLTAB.
  ENDSELECT.

  SELECT * FROM BSIS APPENDING TABLE T_BSIS
          WHERE BUKRS = BUKRS
          AND HKONT = SAKNR
          AND BUDAT >= BUDATE
          AND BUDAT < BUDAT.

  CLEAR: SALDO.

  CONCATENATE 'GLTAB-TSL' MONS INTO NFIELD.

  LOOP AT GLTAB.
    PER = '01'.
    IF GLTAB-RYEAR < BUDAT(4).
      MONS1 = 17.
    ELSE.
      MONS1 = MONS.
    ENDIF.

    WHILE PER < MONS1.
      CLEAR: NFIELD.
      CONCATENATE 'GLTAB-TSL' PER INTO NFIELD.
      ASSIGN (NFIELD) TO <H>.
      SALDO = SALDO + <H>.
      UNASSIGN <H>.
      ADD 1 TO PER.
    ENDWHILE.

  ENDLOOP.

  LOOP AT T_BSIS.
    CASE T_BSIS-SHKZG.
      WHEN 'H'.
        SALDO = SALDO - T_BSIS-DMBTR.
      WHEN 'S'.
        SALDO = SALDO + T_BSIS-DMBTR.
    ENDCASE.
  ENDLOOP.

  WRITE:/ BUDAT, BUKRS, SAKNR, '->', SALDO.



Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 25 2005, 22:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Я бы посоветовал вместо
РМщик написал(а):
Code:
    WHILE PER < MONS1.
      CLEAR: NFIELD.
      CONCATENATE 'GLTAB-TSL' PER INTO NFIELD.
      ASSIGN (NFIELD) TO <H>.
      SALDO = SALDO + <H>.
      UNASSIGN <H>.
      ADD 1 TO PER.
    ENDWHILE.

написать вот так:
Code:
    DATA: TSL TYPE GLT0-TSL01.
    SUBTRACT 1 FROM MONS1.
    DO MONS1 TIMES
      VARYING TSL FROM GLTAB-TSL01 NEXT GLTAB-TSL02.
      SALDO = SALDO + TSL.
    ENDWHILE.

зря они что ль конструкцию выдумывали.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, ноя 26 2005, 14:39 
Гость
да, да, Вы правы :oops:
это просто старый пример :oops:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, ноя 26 2005, 20:57 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, авг 18 2004, 18:34
Сообщения: 101
В 4.0 есть BAPI_GL_ACC_GETPERIODBALANCES
Но только на сегодняшнюю дату либо на конец какого-либо месяца
На дату на дописывать подсчёт в рамках месяца.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, ноя 27 2005, 15:52 
Гость
Shurik написал(а):
В 4.0 есть BAPI_GL_ACC_GETPERIODBALANCES
Но только на сегодняшнюю дату либо на конец какого-либо месяца
На дату на дописывать подсчёт в рамках месяца.


этот фм есть и в 4.6, и в 4.7
но он не учитывает сальдо прошлых лет, если такое имелось и не было перенесено на текущий год


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, ноя 27 2005, 17:23 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, авг 18 2004, 18:34
Сообщения: 101
Это точно также относится и к GLT0 и к любым регистрам


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, ноя 27 2005, 17:56 
Гость
приведенный пример учитывает в GLT0 сальдо и прошлых лет


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 28 2005, 11:09 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, авг 18 2004, 18:34
Сообщения: 101
Согласен.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 28 2005, 11:16 
Начинающий
Начинающий

Зарегистрирован:
Чт, ноя 17 2005, 13:55
Сообщения: 17
я думал мне повезёт и будет ФМ соответствующий :) прийдется считать самому :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: re
СообщениеДобавлено: Пн, ноя 28 2005, 11:29 
Гость
sap в BAPI_GL_ACC_GETPERIODBALANCES использует assign,
вероятно в 4.0 varying не было, или assign быстрее


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 28 2005, 11:29 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 12:11
Сообщения: 420
Откуда: SAP ERP 2005
Я вот такой ФМ использовал, самому лень писать было :-)

BAPI_AP_ACC_GETKEYDATEBALANCE

Меня вполне устраивает. Версия 4.6С.

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: re
СообщениеДобавлено: Пн, ноя 28 2005, 11:32 
Гость
впрочем, учитывает BAPI_GL_ACC_GETPERIODBALANCES
и перенос прошлых лет


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: ку
СообщениеДобавлено: Пн, ноя 28 2005, 11:35 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
BAPI_AP_ACC_GETKEYDATEBALANCE для основных счетов подходит разве?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 28 2005, 11:44 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 12:11
Сообщения: 420
Откуда: SAP ERP 2005
[quote="Clarus"]Я вот такой ФМ использовал, самому лень писать было :-)

BAPI_AP_ACC_GETKEYDATEBALANCE

Меня вполне устраивает. Версия 4.6С.[/qute]

Прошу прощения, это для дебиторов. Для основных счетов такого ФМ нет, а жаль.

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


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

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


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

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


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

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