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

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


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

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


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

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