|
21.07.2008, 10:31 | #1 |
Участник
|
Где вызвать методы?
Уважаемые Аксаптоведы, помогите, пожалуйста...
Ситуация такая - используем две таблицы – таблицу проектов ProjTable и таблицу затрат по проектам ProjBudgetCost. На ProjBudgetCost прописан табличный метод, подсчитывающий сумму затрат по строке (цена*себестоимость) – результат заносится в отдельное поле в таблице. На ProjTable прописаны 2 табличных метода, сохраняющие результат в отдельных полях в таблице: 1) подсчитывает сумму затрат по каждому проекту (результат выводится в поле на форме ProjTable) 2) подсчитывает продолжительность проекта (разность даты окончания и даты начала проекта) Где необходимо вызвать эти методы, чтобы при внесении изменений в ProjBudgetCost (изменение себестоимости или количества, при добавлении-удалении строк), например, при сохранении или закрытии формы ProjBudgetCost, срабатывали все три метода и обновлялись значения в форме ProjTable? |
|
21.07.2008, 11:01 | #2 |
Программист
|
вызываете свои методы из метода write() ( до super() ) таблиц ProjTable и ProjBudgetCost
|
|
21.07.2008, 11:35 | #3 |
Участник
|
Довольно неудачный совет товарища /Antony/, так как метод write() на таблице вызывается только в случае непосредственного его вызова программистом.
Раз уж думаете на таблицу кидать методы эти, то кидать надо его в методы insert, update, delete. |
|
21.07.2008, 12:12 | #4 |
Злыдни
|
Нужно создать метод с названием типа updateSums (или как-то еще по смыслу)
Вызывать его после метода super () в insert, update, delete В методе update неплохо бы сделать проверку - какие именно поля изменялись, чтобы пересчет делался не при каждом обновлении записи Код super() this.updateSums не забыть включить в одну транзакцию
__________________
Все может быть и быть все может, все может быть или не быть, но быть того никак не может, чего совсем не может быть. |
|
21.07.2008, 14:44 | #5 |
Участник
|
|
|
21.07.2008, 18:51 | #6 |
Злыдни
|
Цитата:
Тогда после сохранения (удаления) записи надо вызывать методы reread, refreshEx для датасорса ProjTable. Получить projTable_ds можно из caller-а формы ProjBudgetCost
__________________
Все может быть и быть все может, все может быть или не быть, но быть того никак не может, чего совсем не может быть. |
|
21.07.2008, 15:44 | #7 |
Программатор
|
insert, update, delete таблицы. Все должно быть гуд.
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Методы таблицы в DataSources (DAX4) | 2 | |||
Где перекрыт метод в классе | 5 | |||
Какие методы на таблице где отрабатываются? | 4 | |||
Найти display методы | 12 | |||
Как вызвать нужный метод класса? | 5 |
|