Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
Уважаемые Разработчики
Хотя мы обсуждали этот вопрос, не помню правда в каком разделе, вернусь опять к нему. Несколько вопросов: 1.Какая максимальная длина получаемой РТМом строки? 2.Как можно её увеличить? 3.Какой формат этой строки возможен, строго ли он задан? 4.Возможно ли получать эту строку в виде набора символов, а потом в программе производить разбор (интерпретацию и преобразование) этих данных?
отправлено / posted
Теоретически строка может содержать 255 символов. Однако при обмене данными между внешним приложением и МРВ необходимо соблюдать соглашение о типе данных. Ваш п.4 реализуется разработкой пользовательского драйвера.
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
Конвертирует полученные символы (до служебного, завершающего строку) в тип данных, соответствующий классу канала или типу данных атрибута канала.
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
Т.е. есть возможность привязать полученную строку ч/з атрибут канала - 80 (комментарий) и потом проделать с полученной строкой необходимые преобразования?
Сообщения / Posts 362 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
Спасибо за ответ, но для нас это только теоретически! А если практически: Ещё вопрос тогда: Как мне можно реально привязать этот атрибут 80 к источнику DDE, или передать в этот атрибут ч/з что нибудь? Каким способом это можно сделать?
Сообщения / Posts 362 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
т.к. если нет привязки компонента DDE в источниках к каналу то нет и опроса по DDE соответственно!
Сообщения / Posts 362 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Добрый день, для передачи строки по DDE из приложения в атрибут Комментарий канала МРВ должен выступать в роли сервера. В документации - Распределенные системы/Обмен по DDE и NetDDE/Задание значений атрибутов приведены макросы VBA для Excel, реализующие данный механизм.
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915
отправлено / posted
Эксель нас не интересует. А МРВ работает в качестве клиента! Есть DDE server. он возвращает стрковое значение длинна произвольная! Каким образом мне получить полученное значение в виде строки , для обработки программным методом! Может пора ввести канал STRING!
[ 02.05.2007, 08:40: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 362 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ArguS
Junior Member / Новичок
Участник № / Member № 3137
отправлено / posted
На Topic: TECHNICAL SUPPORT TRACE MODE 5 » Работа в MS Windows (ODBC/DDE/OPC/NET) / Working under MS Windows » Обмен по NetDDE обсуждалась тема "получать данные из Trace Mode по механизму NetDDE в Excel". Прошу выслать настройки и формат запроса, вводимый в ячейку Excel на argus-2005@rambler.ru
Сообщения / Posts 11 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
У Вас идет обмен по NуеВВУ или просто по DDE? Т.е. Excel и узел Trace Mode у Вас запущены на одном компьютере или нет?
Если на одном, то вся процедура описана в нашем быстром старте.
Если на разных, то процедура настройки описана в нашей документации в главе "Настройка ОС для обмена по NetDDE". А формат запроса описан в главе "Обмен приложение - МРВ как NetDDE-сервер"
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Сделал проект где МРВ выступает в роли DDE-клиента, на примере "Быстрый старт". Но данные в МРВ не передаются. В чем может быть причина? (Версия Excel 2003 SP2).
Сообщения / Posts 107 | Из / From: Россия
| IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Спасибо Разобрался. Такой вопрос, Индивидуальный номер узла я так понимаю это и есть тот ID во всплывающем спеске,когда "мышкой" наводишь на узел? И тогда если МРВ выступает в роли сервера то в ячейку Excel мы должны написать =RTM_1-Название узла+196654-тот самый ID ну и тд.?
Сообщения / Posts 107 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Индивидуальный номер узла в данном случае это ординал. Т.е. та цифра, которая пишется на конце файлов узла в папке.
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Есть DDE server. Он возвращает строковое значение, длинна произвольная! Каким образом мне получить полученное значение в виде строки в МРВ, который выступает в качестве Клиента! Работаю в ТМ6.06, если в этом релизе нельзя это осуществить, может тогда в релизе ТМ6.06.3?
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Написал библиотеку, которая создаёт подключение к DDE серверу. При отладке программы в редакторе ТМ сервер показывает что соединение установленно, но при запуске МРВ соединения не происходит. В чём может быть причина?
отправлено / posted
Библитека должна размещаться рядом с файлом rtc.exe (или rtcx.exe, если запускается МРВ). Надо посмотреть в протоколе профайлера и в файле tm6_log.txt, нет ли сообщений об ошибках, связанных с соответствующей программой.
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Всё разместил как нужно, ошибок в в протоколе профайлера и в файле tm6_log.txt не обнаружено. Все остальные функции библиотеки работают, но вот которая создаёт подключение к DDE серверу ни как не хочет к нему подключатся, хотя эта функция выполняется и возвращает значение о том что она выполнилась.(Извиняюсь, но если Вы меня не поняли, при трассировке программы в редакторе ТМ по шагам или при запуске программы там же, все функции из библиотеки выполняются втом числе и функция подключения к DDE серверу, а при запуске МРВ из под среды разработки подключение к DDE серверу не происходит)
отправлено / posted
И IDE и RTM работают с внешними библиотеками одинаково. Вопрос в том, какие требования внешняя библиотека предъявляет к среде функционирования. В частности, библиотека должна апеллировать к собственному окну, т.к. у RTM нет окна. Вообще, следует посмотреть сообщения API, обслуживающего DDE-интерфейс.
Обычно DDE-серверы имеют и ODBC-интерфейс (например, Excel). В этом случае можно было бы использовать обращение через SQL-запросы.
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Буду очень признателен если приведёте пример такого запроса, например к Excel.
отправлено / posted
Порядок установки связей с любыми приложениями, которые регистрируются в ОС в качестве ODBC-источников данных, описан в разделе "Распределенные АСУ/Обмен с базами данных".
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
И всётаки возвращаюсь к DDE (к сожелению наш сервер не имеет ODBC-интерфейса). У меня требования следующие требования к библиотеке: -Подключиться к DDE серверу; -Принять значение в виде строки; -Сделать необходимые преобразования; -Передать полученный результат в TM. Да, и что Вы имели в виду говоря, что библиотека должна апеллировать к собственному окну?
отправлено / posted
Что-от похожее может возникать при вызове функций из внешних DLL, если в ТМ их переменные типа int (или возвращаемые значения) не указаны как long. При чем в самой ИС отладка может работать прекрасно, а вот в МРВ потом все начнет сыпаться. Рекомендую все внешние переменные типа int указывать как long! Но это как одно из предположений.
IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
А при отладке программы в ИС все действительно работает и ваша DLL возвращает значение? Вам остается только через удаленное подключение к приложению подключиться к МРВ из среды разработки вашей DLL и посмотреть где именно происходит ошибка. Если в вашей DLL - то тут же получите точку в коде. Если в МРВ - тоже получите соответствующее сообщение.
IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Вот именно что ошибок ни каких не возникает. При отладке в ИС, всё замечательно, все функции возвращают свои значения ну и соответственно происходит подключение к DDE серверу. Такое ощущение что при работе в МРВ сам МРВ блокирует подключение к DDE серверу хотя возвращает значение, о том, что функция выполнилась
Сообщения / Posts 107 | Из / From: Россия
| IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
И всётаки хотелось бы немного помучить техподдержку. У меня требования следующие требования к библиотеке: -Подключиться к DDE серверу; -Принять значение в виде строки; -Сделать необходимые преобразования; -Передать полученный результат в TM. Да, и что Вы имели в виду говоряо том, что библиотека должна апеллировать к собственному окну?
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Возникла ещё одна проблема: При посылке значения на сервер, например, числа 2 - на сервер приходит строка вида 2<<<<<<<<<<<<<<<<юою В редакторе переменной DDE, параметр РЕЖИМ стоит в REQ/POKE[data] т.е. запрос не должен завершаться специальными символами и на сервер должно отправляться число 2. В чем может быть причина?
Сообщения / Posts 107 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. DDE-сервер шлет свои строки в окно приложения. В ИС этим окном высупает сама ИС. В МРВ такого окна нет. Его Вам нужно создавать самим. При этом оно должно правильно работать со стеком сообщений Windows.
2. Так как запрос не завершается специальным символом, то считывается весь буфер, куда, возможно, попадают просто символы набранные с клавиатуры.
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
drooha
Forum Haunter / Завсегдатай форума
Участник № / Member № 3306
отправлено / posted
Хорошо, получается так что это буфер клавиатуры? А как тогда этот буфер можно очистить? Писать dll на очистку буфера перед загрузкой RTM или же очистку этого буфера можно организовать средствами ТМ?
Сообщения / Posts 107 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Сервер должен уметь отсекать "мусор", так как в лишние символы могут возникать не только до запуска RTM, но и в момент его работы.
Сообщения / Posts 17356 | Из / From: Россия
| IP / IP: IP адрес / IP address |
raven999
Forum Member / Участник форума
Участник № / Member № 4537
отправлено / posted
Здравствуйте! Можно выслать пример обмена по NetDDE между 2-мя МРВ. Попытался сделать самостоятельно, не получилось. На локальном компьютере обмен по DDE в обе стороны с Excel работает, а вот сетевой обмен не получился. И какие настройки Windows XP необходимо сделать!
Спасибо! Вот только что понял, что надо включить службу NetDDE, так как он отключена по умолчанию. Но все равно примерчик пожалуйста пришлите!
Сообщения / Posts 31 | Из / From: Россия
| IP / IP: IP адрес / IP address |