26.01.2009, 17:59 | #1 |
:o)
|
Задача: запретить удалять строки разнесённых журналов.
Задача: запретить удалять строки разнесённых журналов. добавила в validateDelete() таблицы InventJournalTrans условие, что если журнал разнесён, то его нельзя удалять... (возвращает false) теперь можно просто нажать на кнопку, но ничего не произойдёт... то же вариант.. но, как-то не правильно это - кнопка на панели инструментов активная... Хотелось бы как-то красиво сделать, либо, чтобы кнопка была неактивная при раскрытии строк разнесённого журнала, либо сообщение выдать - вы мол хотите удалить строчку разнесённого журнала - "низзззя!" посоветуйте, плиз! X++: public boolean validateDelete() { boolean ret = super(); if ((isConfigurationkeyEnabled(configurationkeynum(CsePoland)) && this.inventJournalTable().Posted && ! InventJournalName::find(this.inventJournalTable().JournalNameId).DeletePostedLines)||(this.inventJournalTable().Posted)) { ret = false; } return ret; }
__________________
"Только на Бога не может быть обиды - если смерть пошлет, значит, жизни пришел предел, на то рождался,- а за все остальное на Земле есть и должен быть спрос!." Чингиз Торекулович Айтматов. |
|
26.01.2009, 18:07 | #2 |
Участник
|
Попробуйте так
X++: ret = checkFailed("вы мол хотите удалить строчку разнесённого журнала - низзззя!"); return ret; |
|
26.01.2009, 18:13 | #3 |
Участник
|
Задача противоречит стандартной логике Аксапты.
Чтобы сохранять журналы используйте журнализацию. читайте на форуме. обсуждалось неоднократно. Цитата:
Только лучше задачу поменяйте. Вы сейчас Аксапту изнасилуете, а она ж потом всю жизнь мстить будет |
|
26.01.2009, 18:21 | #4 |
Участник
|
в методе класса (ну или в его потомках) JournalFormTrans.initDatasourceAllow() устанавливается доступность, добавьте туда запрет на удаление.
или создайте на форме метод initDatasourceAllow(), в котором запретите удалять, если необходимо в конкретной форме Последний раз редактировалось ice; 26.01.2009 в 18:27. |
|
26.01.2009, 18:36 | #5 |
Участник
|
Если Вам нужен запрет только в одной форме(в чем я сомневаюсь), то на init датасорса строк журнала можете делать проверку - разнесен журнал или нет. Далее в зависимости от результата проверки меняйте свойство AllowDelete.
А лучше всего прислушайтесь к совету Сергея. У Вас в журналах действительно есть что-то такое, чего нельзя получить из проводок? Последний раз редактировалось _scorp_; 26.01.2009 в 18:40. |
|
26.01.2009, 18:44 | #6 |
Axapta
|
Цитата:
По теме. Прислушайтесь к совету Маззи не запрещать удалять. Если вы трижды подумали и это вам не подошло, то я бы делал так, как написал ice. |
|
26.01.2009, 18:48 | #7 |
Участник
|
Согласен, каюсь.
Последний раз редактировалось _scorp_; 26.01.2009 в 19:02. |
|
26.01.2009, 19:03 | #8 |
Member
|
Стандартным функционалом не решается.
Если бы я взялся за такую кастомизацию, то сделал бы по аналогии с журналам ГК (там нельзя удалять журналы не удалив строк, а строки разнесенных журналов нельзя удалять даже с помощью функции удаления строк). Правда, корректно это реализовано в 4.0. В 3.0 еще были лазейки. Вот просто для аналогии. Даже если там и не совсем оптимальный подход. Для единообразия.
__________________
С уважением, glibs® |
|
26.01.2009, 19:27 | #9 |
:o)
|
Цитата:
Надо будет как-то ещё и нашему бизнес-аналитику это объяснять... Цитата:
Пока добавила новый параметр в таблицу BOMParameters, вывела его на соответтвующую форму InventParameters А далее, действительно сделала, как написал ice: Цитата:
X++: void initDatasourceAllow() { BOMParameters BOMParameters = BOMParameters::find(); // my add boolean allow = !journalTableData.journalTable().posted && journalTableData.journalTable().sessionId; boolean allowPosted = !(BOMParameters.UNS_IsBlockPostedTransDel && journalTableData.journalTable().posted); // my add ; journalTrans_ds.allowDelete((journalTableData.journalTable().sessionId != 0)&&(allowPosted)); // my edit journalTrans_ds.allowEdit(allow); journalTrans_ds.allowCreate(allow); if (formHasMethodinitDatasourceAllow == unknownNoYes::Unknown) formHasMethodinitDatasourceAllow = formHasMethod(formRun,identifierStr(initDatasourceAllow)) ? unknownNoYes::Yes : unknownNoYes::No; if (formHasMethodinitDatasourceAllow == unknownNoYes::Yes) formRunObject.initDatasourceAllow(); }
__________________
"Только на Бога не может быть обиды - если смерть пошлет, значит, жизни пришел предел, на то рождался,- а за все остальное на Земле есть и должен быть спрос!." Чингиз Торекулович Айтматов. Последний раз редактировалось jeky; 26.01.2009 в 19:30. |
|
26.01.2009, 23:08 | #10 |
Аманд
|
Цитата:
Надо будет как-то ещё и нашему бизнес-аналитику это объяснять...
И описание задачи тоже |
|
26.01.2009, 23:24 | #11 |
Участник
|
а почему бы не использовать обычный банальный эрэлэс? Кодировать ведь не нужно абсолютно.
__________________
The Variable men power. |
|
28.01.2009, 19:07 | #12 |
:o)
|
Цитата:
Цитата:
Думала, что чего-то не знаю... но может действительно не знаю... У нас журнализация - настроена.... Но как восстановить журнал оттуда? Понятно если джобом... но стандартых вроде средств не нашла.... И потом, стандартной наверное да... у нас, не стадартная ... У нас сторнирование журналов спецификации написано... Оно исключительно из журналов делается.. (таким образом исправляют ошибки в журнале - на него создают журнал с отрицательным количеством потом заводят новый) Собственно из-за этого и закрывали удаление.... + ещё у нас на разных формах есть кнопочка "Удаление строк журнала", вот пришлось ещё на каждой форме и это править... я у датасорсов перекрывала active и linkActive
__________________
"Только на Бога не может быть обиды - если смерть пошлет, значит, жизни пришел предел, на то рождался,- а за все остальное на Земле есть и должен быть спрос!." Чингиз Торекулович Айтматов. Последний раз редактировалось jeky; 28.01.2009 в 19:11. |
|
28.01.2009, 22:22 | #13 |
Аманд
|
Цитата:
У нас сторнирование журналов спецификации написано...
Начинаем с простого вопроса, а на деле оказывается... Пожалуйста, формулируйте вопрос в целом, с указанием причин Ваших действий! Это крик души, а теперь по делу: чем ваше сторнирование журналов спецификаций отличается от функции приёмка, в которой можно укзазать направление операции? Хм, при разборке автоматически ставите аналитику и себестоимость? Тогда уж опишите, как и для чего вы используете журнал спецификаций. |
|