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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2007, 16:50   #1  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
А так пользователю ничего не нужно объянить . Посморите в наследнике, там в перекрываемом диалоге есть строки

X++:
dialogFilename.active(false);
dialogFilename.visible(false);
Конечно можно и в диалоге написать filename, однако я так думаю что в getfromdialog() написать т.е есть доля логичности ведь именно здесть переменная принимает значение. Но в этом случае эффект будет один и тот же.

По файлам, более подробно объясняю

Вот этот файл abc.txt находится на диске C:\ на локальном компьютере, тот же файл скопировал на диск \\web\data\abc.txt

Так, метод обработки файла выполняется на сервере, то если в качестве константы #DirectoryAbsolutBank написал "C:\\abc.txt", он обращает на диск С на сервере, а не на локальном компьютере, поэтому он ничего не видит там.

А если указать #define.DirectoryAbsolutBank(\\\\web\\data\\abc.txt), т.е сетевой путь, то всё равно где метод выполняется, он всегда найдет нужный файл, да если там физически он и есть.

Вот если дать пользователям возможность выбрать файл, и файл находится на его компе, допустим называется COMP, папка называется DATA, расшяренный, то трудноватно объяснить ему, что \\COMP\DATA\abc.txt и C:\DATA\abc.txt - это одно и то же, но нам нужно именнно первый
Старый 11.07.2007, 18:39   #2  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
1) Ваш класс это операция импорта. Это значит берём откуда то в себя. Т.е. Полюбому как не крути должен быть явным этот путь. А не тогда когда забыли просим программиста посмотреть от куда.
2) Кроме visible есть enable. Если хотите защиту от кривых рук используйте. Но не рекомендую. Если человек зашёл и не знает для чего это он никогда трогать не будет. Тем более ответственный человек. А не ответственный такую процедуру запускать не будет. Ему же потом с этими данными работать. Можно в принципе и на ключ повесить кнопку по которой вызывается процедура.
3) Кроме того обяснить про относительный и абсолютные пути не так уж и сложно. Я уверен какой бы человек деревянный не был. Ему это понадобиться и в других случаях. Потомо что то это основы Windows. Прописывать эти пути может он даже не будет никогда, но видя их не будет задовать лишних вопросов.
4) Первоначально проблема была, что переменная сохраняющая значения контрола не адекватно себя ведёт. Прописав в main наследника вызов promt и run. Этого достаточно, чтоб вызвать диалог. А в run закоментировав обработку. И поставив в run info(filename). Запустил класс набрал путь в контроле и ok. Я получил в info то что мне нужно.
Итого: я понимаю пути программера не исповедимы и решения как и чё писать за вами. Но вы спросили и тут уже люди начали вспоминать возможные глюки. Но вот в данный момент я повторяю на 90 % уверен глука нет. Если справились прописыванием в classdeclaration наследника ещё один раз сохранение ок. Можете остановиться. Но это криво (не очень но криво) и не разобравшись сейчас у вас таких классов будет очень много дальше.
Да, может не в тему. Просто иногда вижу, что люди убирают статические глобальные переменные в макрос как у вас Banks_REP. Если знаете зачем скажите пожалуйста. Мож тоже буду пользоваться. Неужеле не проще в коде написать а="гы-гы-гы";. Потом просматривая код нагляднее выходит.

Последний раз редактировалось miklenew; 11.07.2007 в 18:42.
Старый 11.07.2007, 18:47   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от miklenew Посмотреть сообщение
Да, может не в тему. Просто иногда вижу, что люди убирают статические глобальные переменные в макрос как у вас Banks_REP. Если знаете зачем скажите пожалуйста. Мож тоже буду пользоваться. Неужеле не проще в коде написать а="гы-гы-гы";. Потом просматривая код нагляднее выходит.
BestPractice.
Причем не только Аксаптовский, а вообще языков программирования касательно констант. И кстати, читается, имхо, лучше через макро-объявление.
и всегда знаешь. где можно найти его значение чтобы посмотреть.

а если переменная будет - и решит какой-нить чудо программист, что ее значение должно быть не "гы-гы-гы", а "Г". вот тогда и возможно гы-гы-гы, когда перестает работать и непонятно куда копать, потому что в наследнике кто-то что-то тупое написал.
Старый 11.07.2007, 23:04   #4  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от kashperuk Посмотреть сообщение
BestPractice.
Причем не только Аксаптовский, а вообще языков программирования касательно констант. И кстати, читается, имхо, лучше через макро-объявление.
и всегда знаешь. где можно найти его значение чтобы посмотреть.
а если переменная будет - и решит какой-нить чудо программист, что ее значение должно быть не "гы-гы-гы", а "Г". вот тогда и возможно гы-гы-гы, когда перестает работать и непонятно куда копать, потому что в наследнике кто-то что-то тупое написал.
Мысль не уловил. Константы вообще редко в Axapte нужны. Хотя если подумать, то в константы можно запихнуть всё что угодно даже тексты info. И даже видел это. У нас вот на позопрошлой работе было как. Есть какая-нибудь ошибка. Есть задача от пользователя: вот не могу сделать то-то, появляется ошибка и текст. Ситуацию воспроизвести врятли удастся, но по тексту сообщения и зная на что жмёт. Т.е. класс и родители пускаем поиск и очень часто находим это место и не лезем в макросы. Последнее веяние было: В конце info номер модификации ставить в скобках. Чтоб если выскачила сначало посмотреть описание задачи, мож уже на этом этапе вопрос отпадёт почему, что не так. А потом программеру.
А насчет что кто-то поменяет "гы-гы-гы" на "Г", ничего не измениться от того в макросе это или в коде.
Насчёт других языков согласен очень оправдан подход объявлять в одном месте. Потому что в них константы очень часто используются. Но в Axapte зачастую наблюдаю одно объявление, одно использование.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов метода базового класса Eldar9x DAX: Программирование 15 22.03.2008 19:10
Вызов класса из другого класса Protey DAX: Программирование 9 26.02.2007 11:01
передача курсора в два класса kitty DAX: Программирование 3 09.08.2006 13:21
Запустить метод класса loka DAX: Программирование 2 13.03.2006 15:40
Загадочный результат при перекомпиляции класса в Axapta 2.5 NataLee DAX: Программирование 2 04.03.2006 19:07
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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