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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.12.2008, 12:50   #1  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
TCP клиент в Axapta
Подскажите, плз, как реализовать
Лучше всего кусок кода :-)
Есть компонента на .NET, но как ее использовать не знаю... Использую ее в 1С...
Старый 22.12.2008, 12:57   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
см. пример
\Classes\Global\str2IntOk
Старый 22.12.2008, 13:10   #3  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Цитата:
Сообщение от DSPIC Посмотреть сообщение
см. пример
\Classes\Global\str2IntOk
эээ??? и что там такого???
Старый 22.12.2008, 13:18   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
То ли вопроса не понял, то ли шутку не оценил
Там используется "компонента" regex, а точнее .net класс Regex:
http://msdn.microsoft.com/en-us/libr...ons.regex.aspx
Старый 22.12.2008, 13:23   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от DSPIC Посмотреть сообщение
То ли вопроса не понял, то ли шутку не оценил
Там используется "компонента" regex, а точнее .net класс Regex:
http://msdn.microsoft.com/en-us/libr...ons.regex.aspx
Думаю всё гораздо проще.
Просто нужно было уточнить, что смотреть нужно на 4-ке, а то в 3-ке код этого метода совсем другой.

4:
X++:
static boolean str2IntOk(str 100 _str)
{
    boolean retval;
    InteropPermission permission;
    System.Text.RegularExpressions.Regex re;
    ;

    permission = new InteropPermission(InteropKind::ClrInterop);
    permission.assert();

    // BP deviation documented
    re = new System.Text.RegularExpressions.Regex('^\\s*[+\\-]?\\s*[0-9]+\\s*$');

    //return ClrInterop::getAnyTypeForObject(re.IsMatch(_str));

    // BP deviation documented
    retval = CLRInterop::getAnyTypeForObject(re.IsMatch(_str));

    return retval;
}
3:
X++:
static boolean str2IntOk(str 100 _str)
{
    return (! strnFind(_str, '0123456789', 1, 999));
}
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: aidsua (1).
Старый 22.12.2008, 13:26   #6  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Там используется "компонента" regex, а точнее .net класс Regex
X++:
static boolean str2IntOk(str 100 _str)
{
    return (! strnFind(_str, '0123456789', 1, 999));
}
сори, но не вижу :-(
Старый 22.12.2008, 13:28   #7  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Цитата:
Сообщение от ZVV Посмотреть сообщение
Просто нужно было уточнить, что смотреть нужно на 4-ке, а то в 3-ке код этого метода совсем другой.
Ага! Так вот где собака порылась! :-) Спасибо, сейчас попробую
Старый 22.12.2008, 13:36   #8  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Не... тугодум я... не могу понять как сделать такое:
X++:
("AddIn.TCP");
TCP =  ("AddIn.TCP");
Port = 6700;
IP = TCP.GetIPAddress();
TCP.Send(IP, Port, "22Сообщение");
Это код из 1С... как тоже самое сделать в Аксапте?
Старый 22.12.2008, 13:50   #9  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Если у вас тройка, то так легко как в четверке сборки использовать не получится. Заюзайте Regasm.exe - Assembly Registration Tool. Потом можно будет использовать сборку через COM
Старый 22.12.2008, 13:56   #10  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
com = new COM('{XXXXXX-XXXX-XXXX-XXXXXX}');
или
com = new COM('AddIn.TCP');

?
Старый 22.12.2008, 13:59   #11  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Если у вас тройка, то так легко как в четверке сборки использовать не получится. Заюзайте Regasm.exe - Assembly Registration Tool. Потом можно будет использовать сборку через COM
Я подключаю в 1С только для того, чтобы в дальнейшем отлавливать события компоненты... в принципе Send работает и без подключения, т.е. Regasm.exe уже задействован...
но я все равно никак не могу понять как его "запустить, чтобы взлетело" :-(
Старый 22.12.2008, 14:02   #12  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Цитата:
Сообщение от DSPIC Посмотреть сообщение
com = new COM('{XXXXXX-XXXX-XXXX-XXXXXX}');
или
com = new COM('AddIn.TCP');
?
X++:
static void testJob(Args _args)
{
    com = new COM('AddIn.TCP');
    com.send('172.17.7.161', 6700, '22Сообщение');
}
говорит про синтаксическую ошибку...
Старый 22.12.2008, 14:04   #13  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
COM myCom = new COM('AddIn.TCP');
;

myCom .send('172.17.7.161', 6700, '22Сообщение');
а так?
Старый 22.12.2008, 14:08   #14  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Цитата:
Сообщение от DSPIC Посмотреть сообщение
а так?
А так говорит, что объект не был правильно зарегестрирован... хотя одинэска его "поднимает"...
Старый 22.12.2008, 14:08   #15  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
А этот AddIn.TCP случайно не по технологии "внешних компонет" 1С сделан? Там же вроде не совсем автономные COM объекты.
Старый 22.12.2008, 14:15   #16  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
А этот AddIn.TCP случайно не по технологии "внешних компонет" 1С сделан? Там же вроде не совсем автономные COM объекты.
По технологии, но обладает всеми признаками автономности :-)
Написан на VB.NET, зареген regasm-ом... сейчас попробу. написать без использования "одинэсовских" вставок...
Старый 22.12.2008, 14:56   #17  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Ниччего не получается... а есть еще какие-либо методы отправки сообщения на порт??
Старый 22.12.2008, 15:27   #18  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
В точкаNet работв с сокетами собрана в сборке System.Net.Sockets. Попробуй поискать примеры на VB.NET этой сборки. Из VB в аксаптовский код уже будет несложно изменить (в DAX4)
Старый 23.12.2008, 10:52   #19  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Из VB в аксаптовский код уже будет несложно изменить (в DAX4)
у меня тройка... :-(
Старый 23.12.2008, 14:00   #20  
Dolter is offline
Dolter
1C
1C
 
83 / 18 (1) ++
Регистрация: 18.11.2005
А вот как можно такое в тройке сделать (с использованием того же MSWinsock.Winsock)
X++:
dim    winsock

dim bConnected
    bConnected=false

sub winsock_Connect
    bConnected=true
end sub

Set winsock=WScript.CreateObject("MSWinsock.Winsock")
WScript.ConnectObject winsock,"winsock_"
winsock.Connect "172.17.7.161", 6700

do while not (bConnected)
    WScript.Sleep 100
Loop

winsock.SendData "12"
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptabuilder: How to build Axapta application from XPO files stored in Visual Source Safe. Blog bot DAX Blogs 0 12.04.2007 16:10
Клиент AXAPTA на КПК Dimitry DAX: Администрирование 7 29.03.2004 10:09
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Пробовал ли кто-нить использовать Axapta как COM-клиент? Andronov DAX: Программирование 3 18.03.2003 09:12
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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