07.03.2003, 13:46 | #1 |
Administrator
|
Создание методов find и exist
Тут как-то ребята из Коламбуса предлагали за деньги свой модуль Developer+, который в числе прочего мог создавать на таблицах методы find и exist. Я решил, что идея неплохая (самому понадобилась такая фенька), и написал что-то, что, по моему мнению, делает то же самое.
В отличие от Коламбуса, денег не прошу. По совершенно непонятным причинам для NSC условия точно такие же, как и для всех остальных Пользуйтесь. P.S.: После импортирования MenuItem из проекта следует добавить в SysContextMenu (AOT - Menus - SysContextMenu)
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: e@gle (1). |
07.03.2003, 13:52 | #2 |
Administrator
|
Случайно нажал Опубликовать раньше времени.
Рома, когда уже, в конце концов, можно будет аттачить файлы при Редактировании?! P.S.: Собственно проект: http://www.axforum.info/forums/attac...s=&postid=9595
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: jasper (1). |
07.03.2003, 17:46 | #3 |
Участник
|
можно вопрос?
твой проект на построен на аддон-технологии или напрямую пишет в Dict*? |
|
10.03.2003, 14:37 | #4 |
Administrator
|
Не понял вопрос...
Что такое Add-On технология? А в Dict разве можно писать? Я пока только читать с их помощью научился...
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
10.03.2003, 18:06 | #5 |
Участник
|
Прежде всего: Ты КРУТ! спасибо.
Далее. Переформулирую вопрос, заглянув в Аксапту в спокойной обстановке. Ты написал добавление метода используя add-in или Script-технологию? Теперь вижу, что добавил add-in меню. А почему не выбрал технологию скриптов? Почему не написал Script похожий на Script / Template / Method / Edit? Показалось сложным? Неправильным? Неудобным? И еще вопрос: зачем приводишь к атомарным типам? Это задумка или так получилось? Сейчас не проходят сравнения текстовых полей поскольку переменные str нельзя сравнивать с str N. Кроме того, даты могут лежать и в неупакованном виде. Тогда для сравнения будет важны параметры представления даты. А ты их обрезаешь. И еще: То что ты использовал job - это так получилось или задумано для тех, кто не имеет доступа к полному исходному коду Х++? И еще: ты, похоже, совсем не используешь метки. Это задумано или так получилось? В конце еще раз повторю - ты крут! Спасибо за классную идею и пример реализации. |
|
10.03.2003, 18:36 | #6 |
Administrator
|
Цитата:
Изначально опубликовано mazzy
А почему не выбрал технологию скриптов? Почему не написал Script похожий на Script / Template / Method / Edit? Показалось сложным? Неправильным? Неудобным? Цитата:
Изначально опубликовано mazzy
И еще вопрос: зачем приводишь к атомарным типам? Это задумка или так получилось? Цитата:
Изначально опубликовано mazzy
Кроме того, даты могут лежать и в неупакованном виде. Тогда для сравнения будет важны параметры представления даты. А ты их обрезаешь. Цитата:
Изначально опубликовано mazzy
То что ты использовал job - это так получилось или задумано для тех, кто не имеет доступа к полному исходному коду Х++? Цитата:
Изначально опубликовано mazzy
И еще: ты, похоже, совсем не используешь метки. Это задумано или так получилось? Кстати, хотел запаковать шаблон для кода методов в Macro, но не получилось. Судя по всему, есть ошибка лексического анализатора, которая не позволяет создать и подключить, например, следующее макроопределение: PHP код:
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
10.03.2003, 21:07 | #7 |
Участник
|
Ок. Огромное спасибо.
Хотя насчет sript'а я бы поспорил. Насчет типов. Просто я не нашел у себя таблиц без find и exist, поэтому тестировал на новых левых таблицах. |
|
11.03.2003, 10:44 | #8 |
----------------
|
Хорошо, что есть люди, которые облегчают жизнь другим. Спасибо.
Понимаю, что этод job писался "для себя", просто хочется отметить - уникальный индекс не всегда есть - find и пр. на временных таблицах большого смысла иметь не будут. - было бы неплохо создавать все 4 метода (хотя checkExist, txtNotExist редко встречаются) Аттач - код который я случайно обнаружил у нас в приложении, и которым никогда не пользовался... подозреваю, что это та самая часть Dev+ |
|
11.03.2003, 12:41 | #9 |
Administrator
|
Во-первых, спасибо за еще один вариант решения проблемы. Посмотрел. Идея та же самая.
Цитата:
Изначально опубликовано Wamr
- уникальный индекс не всегда есть Когда я писал, столкнулся с такой проблемой: как-то надо было выбрать множество полей, по которому строить методы. Самым разумным вариантом мне показалось, выбрать какой-либо индекс. В том классе, который ты мне отправил, действительно выбирается первый уникальный индекс. Я предоставил выбор (и ответственность ) пользователю: перед созданием можно выбрать индекс, который будет использоваться. Цитата:
Изначально опубликовано Wamr
- find и пр. на временных таблицах большого смысла иметь не будут. А вообще, задался таким вопросом (но не успел его решить): в зависимости от вида элемента, выбранного в AOT, отображаются не все AddIns (например, Браузер таблиц для классов не вызывается). Как это организована? Любая помощь, как говорится, приветствуется. Цитата:
Изначально опубликовано Wamr
- было бы неплохо создавать все 4 метода (хотя checkExist, txtNotExist редко встречаются) В заключение, выложу новую версию проекта. Пусть это будет, например, версия 0.5. Изменения:
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
11.03.2003, 12:50 | #10 |
----------------
|
Цитата:
А вообще, задался таким вопросом (но не успел его решить): в зависимости от вида элемента, выбранного в AOT, отображаются не все AddIns (например, Браузер таблиц для классов не вызывается). Как это организована?
|
|
11.03.2003, 13:36 | #11 |
Administrator
|
Спасибо.
Исправленная версия:
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
12.03.2003, 16:22 | #12 |
Moderator
|
Никто ничего не пишет, отсюда делаю вывод, что это только у меня глючит:
АХАРТА 2.5 SP1. Импортировал проект из предыдущего сообщения. При попытке создать методы пишет "DictIndex object не инициализирован", причем 2 раз пишет. Почему? И попутно вопрос: ставлю breakpoint в этот job - не срабатывает, хотя явно там что-то делается. Как же так?
__________________
Андрей. |
|
12.03.2003, 17:08 | #13 |
сибиряк
|
у меня эта ошибка прет если индекс у таблицы один.
__________________
С уважением, Вячеслав. |
|
12.03.2003, 17:13 | #14 |
сибиряк
|
2Dron AKA andy
PHP код:
__________________
С уважением, Вячеслав. |
|
13.03.2003, 10:37 | #15 |
Moderator
|
Спасибо, помогло.
Еще бажок (думаю, все его уже исправили, но все же): в том месте, где проверяются атомарные типы, нужно поменять местами integer и timeOfDay. И все же, почему не срабатывает breakpoint, как думаете?
__________________
Андрей. |
|
13.03.2003, 11:21 | #16 |
Участник
|
странно. уменя breakPoint работает
хотя, не в контексте данного примера, breakPoint обычно не работает в классах и под АОСом. а тут job. странно |
|
14.03.2003, 18:37 | #17 |
Administrator
|
Спасибо, slava.
Действительно выложил проект с ошибкой, каюсь. Заметил быстро, но по причине занятости в последние три дня и отсутствия вблизи Интернета не мог выложить исправленный код. Я изменил то же самое. Новый проект отличается только этим. P.S.: Ну все, теперь это в 3.0 программить надо
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: leshy (1). |
14.03.2003, 20:11 | #18 |
Участник
|
он работает в 3.0
надо всего-лишь заменить конструкции типа findChild на AOTfindChild. |
|
29.12.2006, 14:55 | #20 |
Microsoft Dynamics
|
А никто не догадался заглянуть в \Classes\SysDictTable\getSourceExist и \Classes\SysDictTable\getSourceFind. Я в свое время вставил эти два вызова в контексное меню на таблицах и прекрасно этим пользовался.
Если интересует могу поискать исходник. |
|
|
За это сообщение автора поблагодарили: mazzy (10), belugin (11). |
Теги |
axapta, download, editor script, faq, полезное, скачать (download) |
|
|