AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.12.2012, 02:17   #1  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Доброго времени суток комрады!

Подскажите пожалуйста, можно ли как-нибудь обращаться к свойству MARK, других объектов. Ну к примеру пользователь на какой-то форме промаркировал записи, а я на другой форме хочу узнать, какие записи он промаркировал. Или например, записи промаркированы в табличке (ручками через Object Designer), а я с формочки хочу посмотреть, что же там промаркировано.
Что-то я никак не найду способа и начинаю боятся, что это очередной фейл Нава, разуверьте меня пожалуйста.
Старый 10.12.2012, 09:32   #2  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Это фейл вашего знания навика!
У записи в Ф5 есть методы под заголовком Mark: Mark(true|false) - поставить или удалить маркировку на запись, clearmarks - очистить маркировку всех записей и markedonly(true|false) - вкл/выкл отображения только маркированных. Обладая этими знаниям, остается получить только указатель на табличку формочки.
Хинт: на большом кол-ве записей маркировку желательно запускать только с главным ключем.
Старый 10.12.2012, 10:19   #3  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от InTacto Посмотреть сообщение
Это фейл вашего знания навика! />/>/>
У записи в Ф5 есть методы под заголовком Mark: Mark(true|false) - поставить или удалить маркировку на запись, clearmarks - очистить маркировку всех записей и markedonly(true|false) - вкл/выкл отображения только маркированных. Обладая этими знаниям, остается получить только указатель на табличку формочки.
Хинт: на большом кол-ве записей маркировку желательно запускать только с главным ключем.
Не хотелось бы Вас разочаровывать, но я не настолько не знающий Навик. Всё то что Вы перечислили, мне прекрасно знакомо и всё это абсолютно не решает проблемы, которую я описал. Скажем так, даже находясь на форме с привязанной таблицей, я не могу этими средствами посмотреть марки связанной таблицы. Да да, у формы свои марки, у таблицы свои и если я открою ещё одну форму у неё будут свои и даже если ещё раз табличку открою, у неё тоже будут свои марки.

Т.е. похоже что марки каким-то образом привязываются к конкретным экземплярам объектов, отсюда и более узкий вопрос возникает, как обратиться к конкретному экземпляру? Ну вот открыта у меня 10 раз табличка Item, на каждом из экземпляров этой таблички свой набор маркировок, так вот, как мне обратиться к вполне конкретному экземпляру с вполне конкретным набором маркировок?
Старый 10.12.2012, 10:32   #4  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Цитата:
Сообщение от Predatore Посмотреть сообщение
Не хотелось бы Вас разочаровывать, но я не настолько не знающий Навик. Всё то что Вы перечислили, мне прекрасно знакомо и всё это абсолютно не решает проблемы, которую я описал. Скажем так, даже находясь на форме связанной таблицы, я не могу этими средствами посмотреть марки связанной таблицы. Да да, у формы свои марки, у таблицы свои и если я открою ещё одну форму у неё будут свои и даже если ещё раз табличку открою, у неё тоже будут свои марки.
Печально, что обладая такими обширными знаниями Вы не смогли их применить. Кучу задач сделал с получение марков со СВОЕЙ формочки.
Код в студию, пожалуйста.
Старый 10.12.2012, 11:02   #5  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Ну вот открыта у меня 10 раз табличка Item, на каждом из экземпляров этой таблички свой набор маркировок, так вот, как мне обратиться к вполне конкретному экземпляру с вполне конкретным набором маркировок?
Таблица или форма на таблице?
Получить доступ извне к маркам на записях этой формы можно только написав функцию, которая Rec этой формы возвратит запрашивающей форме. Без этого никак.. Посредством сингл-инстанс кодеюнита скорее всего только можно..

А вообще интересно было бы узнать, для чего это нужно) Потому что способ реализации не очень..
Старый 10.12.2012, 11:19   #6  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
10 открытых форм - это другая задача. У нас задача получить марки с формы, при чем это можно сделать только в модальном режиме формы, иначе как вы узнает, что пользователь уже отметил все что хотел и продолжите выполнять свой код.
Для 10 открытых форм есть другой метод. Изменить порядок вызова. Что бы вы там не делали начинаете это с запуска формы, получаете в форме марки от пользователя и передаете указатель на запись в нужную ф-цию . Тогда у вас разные экземпляры ф-ций, использующих марки, вместе с формами.
Судя по всему вам нужно уточнить что же вы хотите получить.

ЗЫ И не надо редактировать старые сообщения спустя 20 минут. Форум подразумевает другую форму общения.
Старый 10.12.2012, 19:13   #7  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
10 открытых табличек, не форм. С формами ешё не экспериментировал. И мне на самом деле не важно что их 10, мне с одной хотя бы получить. Код вечерочком скину, на работе сейчас слегка не до этого.
Но суть эксперимента поставившего меня в тупик следующая. У меня открыта табличка и формочка на этой табличке. И там и там я могу ставить независимые марки. ОК, теперь я хочу сделать на формочке MARKEDONLY (TRUE), но, для маркеров с таблички, т.е. на форме я вообще никаких маркировок не делаю, но хочу отобразить только маркированные записи из таблицы. Первое что пробую, это вызвать функцию MARKEDONLY с таблички, результат плачевный, но в принципе ещё не бедственный. Дальше, пробую через функцию на табличке посмотреть значение MARK у маркированной записи и оно FALSE! Потом ещё на всякий случай через переменную Rec беру на форме запись, которая в табличке промаркирована и смотрю её свойство MARK и оно, чёрт побери, тоже FALSE! Вот это уже бедствие.
Собственно когда я сделал предположение об экземплярах, мне всё это показалось логичным, хоть и печальным.

Что я собственно хочу, так это считывать марки с Object Designer и ставить их на него программно. Просто когда у меня с наскоку ничего не получилось, стало интересно исследовать этот вопрос глубже. Чем я и занялся.

К слову сказать, я предполагаю что с формочек таки удастся выдернуть марки, т.к. Rec скорее всего и есть экземпляр формы. Между формами я не экспериментировал, т.к. полагал, что форму Object Designer я не найду.
Я и сейчас так полагаю, но другого пути видимо нет, тем более что с формы на форму я то передам марки, а вот с таблицы их никак не получить. Ну т.е. может и есть способ, но я его не знаю.

И прошу прощения, что через 20 минут отредактировал сообщение, когда через 20 минут у меня возникли новые мысли, обычно на форумах не принято плодить новые сообщения, если можно просто дописать в последнее. Тем более что я ничего в нём не изменил, а лишь дописал. Я не знал, что на этом форуме подразумевается другая форма общения.
Старый 10.12.2012, 20:17   #8  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005

У меня нет слов одни эмоции с ваших экспериментов, рвущих шаблон, ну да ладно...

В вашей ситуации лучше всего написать свою формочку Object Designera, да что там мелочиться, сразу
оболочку для разработки и компилятор на сладкое. Даешь, Новые Васюки

Вы так и не сказали что хотите сделать, а лишь описали реализацию части задачи.
Старый 11.12.2012, 02:53   #9  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
даешь цель доработки!
Старый 11.12.2012, 18:15   #10  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от InTacto Посмотреть сообщение
/> /> />
У меня нет слов одни эмоции с ваших экспериментов, рвущих шаблон, ну да ладно...

В вашей ситуации лучше всего написать свою формочку Object Designera, да что там мелочиться, сразу
оболочку для разработки и компилятор на сладкое. Даешь, Новые Васюки />

Вы так и не сказали что хотите сделать, а лишь описали реализацию части задачи.
Не крепкие у Вас однако шаблоны, но эмоции это хорошо, эмоции это жизнь!

Формочку то Дизайнера написать не сложно, сложно наделить её функционалом Дизайнера, случайно не подскажете ли как реализовать кнопочку Design или New? Если подскажете, то это отличное предложение! А если не подскажете, то это не удачная попытка троллинга. Опыт мне подсказывает, что Вы меня всё-таки троллите... Вам не понравился очередной фейл Нава или просто настроение такое?

Я хочу сделать именно то, что описал, управлять маркерами на форме Дизайнера.

Цитата:
Сообщение от Sancho Посмотреть сообщение
даешь цель доработки!
/>
А цель доработки лежит на поверхности. Зачем нужны маркеры в Дизайнере? Ну, удобно отметить объекты с которыми работаешь и отображать только их, а ещё если нужно выгрузить кучу различных объектов, без маркеров вообще не обойтись.
А вот если бы маркеры можно было ещё и сохранять или даже загружать извне, то не пришлось бы по многу раз выполнять одну и ту же нудную работу по маркировке объектов.
Конечно же всё это можно решить и через версии, но через маркеры, согласитесь, получилось бы изящнее.

Ладно, я понял, что в очередной раз наткнулся на стену.
Нав - это очень уютненькая квартирка и мой любимый диван ну никак не хочет в ней помещаться, даже по диагонали Придётся обходится креслом
Старый 11.12.2012, 19:05   #11  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Цитата:
Сообщение от Predatore Посмотреть сообщение
случайно не подскажете ли как реализовать кнопочку Design или New?
Я вам написал ответ: сделать свой редактор, а так же компилятор или хотя бы синтаксический анализатор.
На сколько я понимаю похожие решение уже существуют со своими достоинствами и недостатками.
Можно еще капнуть в сторону WinApi и работы с окнами, перехват событий и все такое.
Цитата:
Сообщение от Predatore Посмотреть сообщение
А если не подскажете, то это не удачная попытка троллинга. Опыт мне подсказывает, что Вы меня всё-таки троллите... Вам не понравился очередной фейл Нава или просто настроение такое?
Еще раз это не фейл навика, а лишь ограниченность ваших знаний. Мне вот итересно, если ваш первичный тезис (про перетекание
марков из таблички в форму) был бы верен, то я, например, выставляют в табличке товаров марки,а у пользователей они тоже должны
появляются? если создано 100 форм, то во всех формах должны марки проставиться?
Цитата:
Сообщение от Predatore Посмотреть сообщение
Конечно же всё это можно решить и через версии, но через маркеры, согласитесь, получилось бы изящнее.
в версии проставил и забыл, по завершению удалил, а марки нужно еще как-то выгрузить, где то сохранить,
потом найти, загрузить. 4 действия или одно изящней?. Опять фейл навика?
Что вам мешает проставить в версии какой-нибудь признак и потом анализировать эту информацию в отчете, обрабатывая таблицу объектов. Все равно что нажимать ctrl+F1 + какая-то процедура сейва или несколько клавиш + отчет с сохранением результатов.
С востановлением тоже можно придумать что-нибудь, проставляя признак в поле версии.
Старый 13.12.2012, 02:54   #12  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Predatore Посмотреть сообщение
Формочку то Дизайнера написать не сложно, сложно наделить её функционалом Дизайнера, случайно не подскажете ли как реализовать кнопочку Design или New?
Цитата:
Сообщение от InTacto Посмотреть сообщение
Я вам написал ответ: сделать свой редактор, а так же компилятор или хотя бы синтаксический анализатор.
На сколько я понимаю похожие решение уже существуют со своими достоинствами и недостатками.
...
С востановлением тоже можно придумать что-нибудь, проставляя признак в поле версии.
Всё уже действительно очень классно сделано в Object Manager Advanced, и New, и Design и блокировка обьектов в Object Designer'e (Locked, Locked By) итд. итп.
Старый 13.12.2012, 16:35   #13  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Маркирование - не единственный способ отметить нужные для выгрузки объекты. Можно ставить какую-либо метку в поле Описание.. Помечайте так нужные вам объекты. И тогда открывая базу каждый день "марки" не слетят. Достаточно будет поставить фильтр на поле Описание *моя метка* и нужные объекты останутся одни в почти опустевшем окне обжект дезайнера..
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:43.