Список форумов Акцент Акцент
официальный форум разработчика программы Акцент
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

PTransaction.RowNo
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент-зарплата 7.0
Предыдущая тема :: Следующая тема  
Автор Сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Пт Июн 17, 2005 10:31 am    Заголовок сообщения: PTransaction.RowNo Ответить с цитатой

Документ на несколько видов начислений.
Сотрудники в списке могут дублироваться - другой вид работ, по другому разряду/окладу итд.
Как из программы метода начисления обратиться к проводке, представляющей "свою" строку какого-либо метода документа?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alib Ezbar



Зарегистрирован: 17.06.2005
Сообщения: 17
Откуда: Донецк

СообщениеДобавлено: Пт Июн 17, 2005 12:32 pm    Заголовок сообщения: Ответить с цитатой

Объясните ситуацию подробнее. что бы можно было точно представить что вы хотите. Желательно пример.
Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Пт Июн 17, 2005 3:24 pm    Заголовок сообщения: Ответить с цитатой

Табель-наряд на бригаду с колонками различных надбавок и доплат - классность, ночные, праздничные.
На одного сотрудника по нескольку строк, потому что разный вид работ (аналитика разное) оплачивается по разному разряду/сетке и подлежит надбавкам от разной базы.
Как из метода рассчёта классности определить, какому виду работ соответствует ячейка таблицы документа, из которой вызвано событие?
Можно заставить форму пронумеровать строки метода классности через .Long1, можно заставить форму дублировать аналитику в столбец метода классности, а можно и послать, сказавши что то что они хотят в понятиях системы является отчётом и глупо считать надбавку для каждого наряда.
А как правильно?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Пт Июн 17, 2005 3:26 pm    Заголовок сообщения: Ответить с цитатой

А в чём глубокий смысл столь частых вызовов события Method_OnApply с .ApplySource="MethodID"
Как их можно использовать, кроме If .AgID = 0 Then Exit Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alib Ezbar



Зарегистрирован: 17.06.2005
Сообщения: 17
Откуда: Донецк

СообщениеДобавлено: Пт Июн 17, 2005 3:43 pm    Заголовок сообщения: Ответить с цитатой

Вообще по определению каждый столбец первичного документа - это один уникальный метод, если в пределах одного метода надо считать разными способами - передавайте флажок алгоритма внутри одного метода.

Я вас правильно понял?

А on_apply вызывается в момент создания новой проводки с заданным кодом. Соответсвенно on_calc в момент расчёта op.calc
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Пт Июн 17, 2005 4:41 pm    Заголовок сообщения: Ответить с цитатой

>>передавайте флажок алгоритма внутри одного метода.
Передача данных из одной проводки в другую возможна только из кода формы, по-другому нельзя локализовать ПЕРЕДАЮЩУЮ проводку. Модификацию проводки из журнала для такого документа можно запретить?
Хороший флажок алгоритма - значение поля JP_ROW таблицы P_JOURNAL, его можно не передавать, он всегда присутствует. И соотв.свойство есть, но нельзя его прочитать, а используется оно в методах .TransRM(row,), .TransListR(row)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alib Ezbar



Зарегистрирован: 17.06.2005
Сообщения: 17
Откуда: Донецк

СообщениеДобавлено: Пт Июн 17, 2005 4:50 pm    Заголовок сообщения: Ответить с цитатой

Кажется мы потеряли суть вопроса и говорим о разных вещах.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Пт Июн 17, 2005 5:45 pm    Заголовок сообщения: Ответить с цитатой

Разные вещи теперь в разных ветках.
Я только начал изучать Акцент-Зарплату и мне многое здесь непривычно.
Подскажите, как лучше в моём примере передать флажок алгоритма для расчёта внутри одного метода? И мне очень бы хотелось сделать это без использования кода формы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Чт Июн 30, 2005 1:47 pm    Заголовок сообщения: Ответить с цитатой

Пока прогресс такой. Надеюсь кому-то тоже будет интересно.
Поскольку при вызове PDocument.Calc происходит сохранение проводок документа в базе данных, вполне допустимо в событии Method_OnCalc запрашивать номер строки своей проводки из базы данных.
Более того. При работе с разреженными докуметнами на несколько начислений допустимо и зачастую приходится физически удалять ненужную проводку из базы данных запросом.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alib Ezbar



Зарегистрирован: 17.06.2005
Сообщения: 17
Откуда: Донецк

СообщениеДобавлено: Ср Июл 06, 2005 12:15 pm    Заголовок сообщения: Ответить с цитатой

значит так...
в базе ничего удалять не надо.
Зарплата множит проводки - это нормально.

как передать флаг для расчёта для одного корреспондента:
op.TransRM(1, MTD_NAME_ID).sum1 = 2

в внутри метода MTD_NAME проверяем .sum1 и от его значения выбираем как именно посчитаем .sum
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Ср Июл 06, 2005 1:16 pm    Заголовок сообщения: Ответить с цитатой

>Зарплата множит проводки - это нормально.
Попробовали не множить - тоже нормально получилось, может даже ещё лучше.
Вот я и написал:
1. То, что это возможно и не приводит к неразрешимым проблемам. Сам факт возможности на 80% гарантирует успех у тех, кто тоже решит попробовать.
2. Вскользь, как это сделано.

>как передать флаг для расчёта для одного корреспондента:
>op.TransRM(1, MTD_NAME_ID).sum1 = 2
Замечательно. Где ты взял "1" в номере проводки?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alib Ezbar



Зарегистрирован: 17.06.2005
Сообщения: 17
Откуда: Донецк

СообщениеДобавлено: Ср Июл 06, 2005 1:25 pm    Заголовок сообщения: Ответить с цитатой

dim i
for i = 1 to op.realRows
если у агента свойство такое то равно тому то, то
op.TransRM(i, MTD_NAME_ID).sum1 = 2
иначе
... = 3
next

и вообще проблему считаю надуманной, так как ничего сложного я не вижу
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Ср Июл 06, 2005 2:19 pm    Заголовок сообщения: Ответить с цитатой

> и вообще проблему считаю надуманной, так как ничего сложного я не вижу
На данный момент эта проблема действительно надуманная, т.к. уже решена и написано, каким образом.
Но отмазка не принимается.
Условие задачи в несколько приземлённом виде, но с иксами, раз уж дошло до кода.

Документ на две колонки начислений. Сдельная зарплата (MTD_SDE_ID) и надбавка за ЭТУ работу (MTD_ADD_ID), - какой-то процент от начисленной по ЭТОЙ строке, но в другой колонке (MTD_SDE_ID) суммы.

И сам вопрос из первого поста: Как из события on_Calc метода MTD_ADD_ID взять сумму, начисленную в колонке MTD_SDE_ID по ЭТОЙ строке документа.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alib Ezbar



Зарегистрирован: 17.06.2005
Сообщения: 17
Откуда: Донецк

СообщениеДобавлено: Ср Июл 06, 2005 2:33 pm    Заголовок сообщения: Ответить с цитатой

sub calcDocument
..
for i = 1 to op.realRows
op.TransRM(i, MTD_ADD_ID).tariff = op.TransRM(i, MTD_SDE_ID).tariff
next
..
end sub

отмазываться дальше и написать код для метода MTD_ADD_ID или всё понятно?

если не понятно, то в .sum1 для ADD_ID вводим как сурз для колонки с %, а в методе считаем .sum = .tariff / 100 * .sum1
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Ср Июл 06, 2005 3:04 pm    Заголовок сообщения: Ответить с цитатой

Вобще-то вопрос стоял "как из программы метода..." но за отмазку сойдёт, 40 строк умножить на 40 раз... процессоры сейчас быстрые, можно и из программы метода такое провернуть.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент-зарплата 7.0 Часовой пояс: GMT + 2
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group