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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.03.2011, 09:51   #21  
AndreyStar is offline
AndreyStar
Участник
 
11 / 22 (1) +++
Регистрация: 01.04.2004
Цитата:
Сообщение от someOne Посмотреть сообщение
Только теперь ряд других проблем имеется, например перехват ошибок и вывод их на экран - не тривиальная задача. Но решаемая.
для перехвата ошибок делаем в конце главного метода класса потока, не статического, упаковку инфолога в outParams потока, и дополнительно создан глобальный класс менеджер потоков, в котором все потоки регистрируются и через него можно получить доступ к прогрессу выполнения, инфологу и есть возможность прервать по желанию

все подсмотрено в классе TutorialThread, идея менеджера потоков вспомнилась из проектирования многозадачных систем

все реализуемо

Последний раз редактировалось AndreyStar; 04.03.2011 в 10:04.
Старый 07.03.2011, 12:06   #22  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,500 / 4483 (157) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Цитата:
Сообщение от AndreyStar Посмотреть сообщение
Тоже столкнулись с этой проблемой, идея сделать как в российском функционале, с макросами на try catch очень не понравилась, да и объем переписывания немалый
Если вы про методы класса ComExcelDocument_RU, то, по-моему, это ерунда, другое дело, что это на самом деле не спасает. И еще очень жаль, что для создания экземпляров этого класса не используется статический construct(), нашедший повсеместное распространение в AX 2009
Цитата:
Сообщение от AndreyStar Посмотреть сообщение
Проблема возникала только на системах с Win7, XP + Office 2010 + dax 2009 работало без проблем
Попробуйте во время длительного экспорта/импорта попереключаться с окна Аксапты на окна других приложений и обратно или потыкать мышкой в окно Аксапты - все еще "работает без проблем"?
Цитата:
Сообщение от AndreyStar Посмотреть сообщение
Когда искал причину, увидел что в других языках обращения к COM компилируются с атрибутом [STAThread] - однопоточное исполнение, ну и появилась мысль что многопоточность Win7 мешает жить.
Я, может, отстал от жизни, но вроде винды не умеют распараллеливать работу приложения на большее число потоков, чем предусмотрено самим приложением (за исключением, может, кода сервисных библиотек, которые могут создавать собственные дополнительные потоки).
Цитата:
Сообщение от AndreyStar Посмотреть сообщение
Сейчас все протестировано в разных связках, в том числе и в 64-битной системе, все работает, и переписывать нужно только способ запуска класса
Попробуйте еще на терминальном сервере с несколькими одновременно работающими сессиями с Аксаптой - причем даже на w2k3 (который ведать не ведает про заморочки W7/W2K8) - узнаете много интересного
Цитата:
Сообщение от AndreyStar Посмотреть сообщение
для перехвата ошибок делаем в конце главного метода класса потока, не статического, упаковку инфолога в outParams потока, и дополнительно создан глобальный класс менеджер потоков, в котором все потоки регистрируются и через него можно получить доступ к прогрессу выполнения, инфологу и есть возможность прервать по желанию
все подсмотрено в классе TutorialThread, идея менеджера потоков вспомнилась из проектирования многозадачных систем
"Суха теория, мой друг, но древо жизни зеленеет..." Я лично для себя пришел к выводу, что надо все нафиг переписать на .NET, как рекомендовали тут. Объем модификаций вроде как ощутимый, но хочется реально решить проблему "враз и навсегда", а не шаманить с макросами try/catch. Семейство классов SysExcel* модифицируется на раз, с ComExcelDocument_RU все сложнее из-за того, что его экземпляры создаются напрямую через new(). Пока есть реализация на уровне proof of concept, о результатах тестирования непременно доложусь.
За это сообщение автора поблагодарили: someOne (2).
Старый 09.03.2011, 09:04   #23  
AndreyStar is offline
AndreyStar
Участник
 
11 / 22 (1) +++
Регистрация: 01.04.2004
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Попробуйте во время длительного экспорта/импорта попереключаться с окна Аксапты на окна других приложений и обратно или потыкать мышкой в окно Аксапты - все еще "работает без проблем"?
тест был жестким, с 4 машин было запущено по 600 потоков параллельно, в задаче запрос InventTrans + InventDim на тестовых данных, при этом активно переключались между аксаптой и все остальным, велся мониторинг нагрузки, все 2400 соединений отработали на 100% успешно
В предыдущих тестах пытались запустить больше 600, и в районе 700 потоков упирались в размер невыгружаемой памяти win, потоки реально не создавались, но в аксапте регистрировались и зависали в выполнении как в клиенте, так и в активных пользователях
А вообще доработка уже ушла на тест к пользователям, время покажет как она ведет себя в жизни

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я, может, отстал от жизни, но вроде винды не умеют распараллеливать работу приложения на большее число потоков, чем предусмотрено самим приложением (за исключением, может, кода сервисных библиотек, которые могут создавать собственные дополнительные потоки).
На этот вопрос могут ответить только разработчики из Microsoft, но факт что запуск в потоке помогает
За это сообщение автора поблагодарили: mazzy (2).
Старый 10.03.2011, 11:05   #24  
someOne is offline
someOne
Участник
Аватар для someOne
 
167 / 398 (14) ++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я лично для себя пришел к выводу, что надо все нафиг переписать на .NET, как рекомендовали тут. Объем модификаций вроде как ощутимый, но хочется реально решить проблему "враз и навсегда", а не шаманить с макросами try/catch. Семейство классов SysExcel* модифицируется на раз, с ComExcelDocument_RU все сложнее из-за того, что его экземпляры создаются напрямую через new(). Пока есть реализация на уровне proof of concept, о результатах тестирования непременно доложусь.
Идея с NET - не плохая. Как то сам совсем упустил ее. Попробовал - действительно помогло!!!

Была проблема открытия outlook через COM с вложенным файлом в процедуре обработки счета на оплату. Воспроизводилась лишь на терминальном сервере WinServ 2008 r2. Перевод процедуры на NET проблему решил.

Есть лишь одна проблема такого решения: Не на всех системах, где запускается клиент Аксапты, имеются установленные dll NET компонентов для доступа к office (например Microsoft.Office.Interop.Outlook.dll)

По умолчанию эти компоненты есть лишь на "свежих" ОС типа WinServ 2008, Vista (предполагаю, не проверял). На все другие клиентские места (например XP) придется дополнительно эти компоненты устанавливать и регистрировать - без этого код NET работать не будет. Это дополнительные сложности.

Но тем не менее вариант с NET решения данных проблем мне представляется более "эстетичным"
Старый 26.06.2011, 22:53   #26  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,500 / 4483 (157) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я лично для себя пришел к выводу, что надо все нафиг переписать на .NET, как рекомендовали тут. Объем модификаций вроде как ощутимый, но хочется реально решить проблему "враз и навсегда", а не шаманить с макросами try/catch. Семейство классов SysExcel* модифицируется на раз, с ComExcelDocument_RU все сложнее из-за того, что его экземпляры создаются напрямую через new(). Пока есть реализация на уровне proof of concept, о результатах тестирования непременно доложусь.
Переписал семейство классов SysExcel на .NET, по ходу дела пришлось добавить несколько новых оберток для интерфейсов Excel, чтобы избавиться от необходимости работать напрямую через COM. Пока повсеместно включать не решился - ограничился лишь стандартным импортом из Excel (класс SysDataExcelCOM) - там тоже понадобилось в несских местах избавиться от прямой работы через COM, но результат превзошел все ожидания! При запуске на терминальном сервере с полусотней параллельно работающих пользовательских сессий импорт из Excel через .NET несмотря на нещадные переключения между окнами (которые раньше валили импорт на раз) не только стабильно завершался без ошибок, но и отрабатывал при этом достаточно шустро - в отличие от "залатанного" импорта через COM, где за счет дополнительных try/catch/retry ошибки вроде как маскировались, но приводили к очень ощутимому замедлению работы.
На очереди - ComExcelDocument_RU, но с ним все сложнее, потому что в отличие от SysExcel* в нем не используется инкапсулированный конструктор, в результате чего подменить класс наследником так вот просто нельзя, и остается либо править кучу мест, где создается его экземпляр, либо нещадно переписывать сам класс...

PS. Тестировалось все на Ms Office 2010.
За это сообщение автора поблагодарили: Logger (15).
Старый 29.06.2011, 12:08   #27  
Maximin is offline
Maximin
NavAx
NavAx Club
 
390 / 306 (11) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Аналогичным образом перевели на .NET работу с Outlook. Стало гораздо меньше проблем.
Не удивлюсь, если в 2012 увидим полный уход от COM интерфейсов на CLR.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
Старый 29.06.2011, 14:46   #28  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,017 / 2151 (80) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Переписал семейство классов SysExcel на .NET
Через Office SDK или OOXML SDK?
Старый 29.06.2011, 15:02   #29  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,500 / 4483 (157) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Коварный вопрос... Через Microsoft.Office.Interop.Excel
Старый 02.08.2011, 13:36   #30  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
Лучший по профессии 2015
 
596 / 415 (15) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Переделали отчеты на .NET с указанием в ссылках АОТ
\References\Microsoft.Office.Interop.Excel
Но там жестко прописана версия офиса 2007 (12.0), тк она стоит на сервере с АОС
Клиент заходит в АХ с локала, там офис 2003
Имеем ошибку
Цитата:
Объект "CLRObject" не может быть создан

System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" или один из зависимых от них компонентов. Не удается найти указанный файл.
Имя файла: "Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
в System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
в System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
в System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
в System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
в System.AppDomain.Load(String assemblyString)
в ClrBridgeImpl.LoadAssembly(ClrBridgeImpl* , Char* assemblyName)
в ClrBridgeImpl.NewClrObject(ClrBridgeImpl* , Char* pszClassName, Char* assemblyName, Int32 argsLength, ObjectWrapper** arguments, Boolean* isException)

Предупреждение: регистрация привязки сборок выключена.
Чтобы включить регистрацию ошибок привязки сборок, установите значение параметра реестра [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) в 1.
Примечание. Регистрация ошибок привязки сборок может привести к некоторому снижению производительности.
Чтобы отключить эту функцию, удалите параметр реестра [HKLM\Software\Microsoft\Fusion!EnableLog].
Возможно, проблема вовсе не в Офисе, а в фреймворке на клиенте, выясняем это.
Если что, сам и отпишусь как решили.
Но если кто сталкивался и сразу скажет, куда смотреть - буду сильно признателен.

Вариант ставить всем одинаковый Офис - не ок,
Когда было через СОМ таких проблем не было
Отожрал переход на Ах2009 много нервов и кровушки из-за проблем с отчетами Ехель и Ворд, думали все перешли на .Нет, так нет - продолжает отжирать
Старый 02.08.2011, 15:05   #31  
someOne is offline
someOne
Участник
Аватар для someOne
 
167 / 398 (14) ++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от BOAL Посмотреть сообщение
Переделали отчеты на .NET с указанием в ссылках АОТ
\References\Microsoft.Office.Interop.Excel
Но там жестко прописана версия офиса 2007 (12.0), тк она стоит на сервере с АОС
Клиент заходит в АХ с локала, там офис 2003
Имеем ошибку
(
А версия ОС какая ?

По моим наблюдениям сборки для офиса (Microsoft.Office.Interop.Excel.dll) НЕ устанавливаются, например для ОС WinXp при установке office.
(C Win 7 проблем не должно быть)

Попробуйте скопировать этот файл DLL (Microsoft.Office.Interop.Excel.dll) "вручную", например в папку bin Аксапта клиента.
Регистрировать его в GAC не обязательно. Достаточно перезапустить Аксапту. У меня так заработало на WinXp.

По поводу версий подключенных к Аксапта библиотек... Не знаю как с 2003 офисом
но если подключить к Аксапта сборку DLL от офиса 2007 (версия 12),
то написанный код Аксапта будет работать на станции с офисом 2010 (версия 14) без всяких проблем.
(Правда все это касается Outlook, но мне кажется что для Excel должно быть то же самое)
За это сообщение автора поблагодарили: BOAL (3), Logger (3).
Старый 02.08.2011, 15:51   #32  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
2,925 / 1540 (57) ++++++++
Регистрация: 12.10.2004
Кстати, а почему именно 2007 ?
2010 -й не пробовали ?
Старый 02.08.2011, 16:35   #33  
someOne is offline
someOne
Участник
Аватар для someOne
 
167 / 398 (14) ++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
Кстати, а почему именно 2007 ?
2010 -й не пробовали ?
Просто когда писали метод отправки почты из Аксапта через Outlook - офиса 2010 еще не установливали. Поэтому подключили библиотеку от офиса 2007, и тестировали работу на нем.

Позже, после установки офиса 2010 на новый терминальный сервер выяснилось что и там отправка почты работает без проблем со "старой" dll подключенной в reference Аксапты от офиса 2007

Изменений в Аксапте делать не потребовалось (для "нового" офиса 2010)
Старый 02.08.2011, 20:44   #34  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
Лучший по профессии 2015
 
596 / 415 (15) +++++++
Регистрация: 28.04.2003
Адрес: Москва
клиент запускался на win2003, да, там в папке
C:\Windows\assembly нету подпапки Microsoft.Office.Interop.Excel и ДЛЛ тоже нет
Есть только Microsoft.Office.Interop.OWC11

Сервер на win2008 + off2007, там есть
C:\Windows\assembly\GAC\Microsoft.Office.Interop.Excel\12.0.0.0__71e9bce111e9429c

И речь уж точно не об обновлении на оф2010
Должно работать на том парке офисов, что есть, а это 2007 и 2003
ДЛЛ в Бин засовывать попробуем
есть еще такая вот официальная сборочка от МС
http://www.microsoft.com/download/en...ng=en&id=18346
Старый 03.08.2011, 12:23   #35  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
Лучший по профессии 2015
 
596 / 415 (15) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Подложить длл в папку БИН клиента - не помогло
Их нужно как-то на локале регистрировать.
В общем, нужно собирать тестовый стенд из разных офисов и мурыжить детальнее.
Старый 05.08.2011, 14:41   #36  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
Лучший по профессии 2015
 
596 / 415 (15) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Отчитываюст:

Собрал тестовый стенд (чтоб не зависеть от компов заказчика)
ВинХР+Офис2003 выдает туже ошибку, что приводил выше
А вот если в БИН положить ДЛЛ Microsoft.Office.Interop.Excel
То все ок! строится!
Спасибо
Будем разбираться, почему на серве с вин2003 + офис2003 не получилось с папкой бин
Старый 05.09.2011, 12:51   #37  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,500 / 4483 (157) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Выложил семейство классов SysExcel, переписанное на работу через .NET, см. Взаимодействие с Excel через .NET (семейство классов SysExcel)
Старый 25.10.2011, 19:31   #38  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,500 / 4483 (157) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Цитата:
Сообщение от AlexSD Посмотреть сообщение
Цитата:
Сообщение от gl00mie Посмотреть сообщение
А может кто-нить разъяснить, что за таймауты такие появились, где про них написано, и в чем суть макроса EndSafeCall_RU?
Я этот прием подсмотрел в функции выгрузки данных таблицы в ексель.
Пытаясь переключить вывод данных с grid'а в Excel на работу через .NET, нашел это позорное место
\Classes\SysGridExportToExcel\performPushAndFormatting
X++:
for (retryCount = 1; retryCount <= 3; retryCount++)
{
    try
    {
        // Format the range...
        break;
    }
    catch (Exception::Error)
    {
        if (retryCount == 3)
        {
            return;
        }
        infolog.clear(0);
        infolog.addTimeOut(infolog, #NotifyMethod, 1000);
        infolog.wait();
    }
}
Там вообще затейливый код встречается:
X++:
sysDictClass = new SysDictClass(classnum(COM));
lcidExist = sysDictClass.hasObjectMethod("lcid");
// ...
if(lcidExist)
{
    listSep = WinAPI::getLocaleInfo(#xlEnglishUSLocale, #xlLocaleListSeperator);
}
else
{
    listSep = excel.international(#xlListSeperator);
}
// ...
cell = cells.item(_numberOfRows + 2, columnToFormat);
if(lcidExist)
{
    // Set the locale used by the IDispatch->Invoke method to en-us indicating to
    // Excel that the formulas are in the en-us locale. Otherwise, we need to
    // localize to each version of Excel.
    sysDictClass.callObject("lcid",cell.comObject(),#xlEnglishUSLocale);
}
Это также к вопросу о том, как выводить в ячейки Excel формулы, не заморачиваясь тем, какой у пользователя выбран язык (локаль), см. тему Строка в Excel.
За это сообщение автора поблагодарили: Logger (10).
Старый 31.07.2014, 16:11   #39  
byte is offline
byte
Участник
 
31 / 31 (2) +++
Регистрация: 21.08.2007
Добрый день!

А я все же решил попробовать сделать вывод в Excel в другом потоке, т.к. показалось, что это проще с точки зрения реализации.
Для анализа завершения потока дописал в WinApi функции работы с событиями, инфолог из нового потока выводится в основной поток - тут проблемы не возникло.
Однако когда дочерний поток пытается загрузить ресурс с шаблоном файла Excel, все зависает. Объясните, пжл, почему так происходит и можно ли это исправить. Если указать несуществующую ветку, зависания не произойдет. Если не ждать завершения события, то зависания тоже не будет, но мне нужно вывести инфолог, поэтому жду.
Привожу код:
X++:
static void main(Args _args)
{
    Thread      thread = new thread();
    container   con;

    int         handle;
    #WinApi
    ;
    handle = WinApi::createEvent();
    if(!handle)
        throw error('Не удалось создать событие');

    thread.removeOnComplete(true);
    thread.setInputParm([handle]);
    thread.run(classnum(ThreadTest), staticmethodstr(ThreadTest, mainThread));
    WinApi::waitForSingleObject(handle, #INFINITE);
    con = thread.getOutputParm();
    if(con)
        info(con2str(con, '\r\n'));
}
X++:
static client void mainThread(thread  thread)
{   
    int                 i,
                        eventHandle;
    container           ret;    
    container               con;    

    ResourceNode            resourceNode;
       
    #AOT
    ;

    resourceNode = TreeNode::findNode(#ResourcesPath + '\\' + _name_); // все зависает
    
    for(i=1; i<=infolog.line(); i++)
    {
        ret += infolog.text(i);
    }
    thread.setOutputParm(ret);

    eventHandle = conpeek(thread.getInputParm(), 1);
    WinApi::setEvent(eventHandle);
}
X++:
client static int createEvent()
{
    DLL         _dll        = new DLL(#KernelDLL);
    DLLFunction _function   = new DLLFunction(_dll, 'CreateEventW');
    ;

    _function.returns(ExtTypes::DWord);  // DWORd
    _function.arg(ExtTypes::DWord);
    _function.arg(ExtTypes::DWord);
    _function.arg(ExtTypes::DWord);
    _function.arg(ExtTypes::WString);

    return _function.call(0, false, false, '');
}

client static int setEvent(int _handle)
{
    DLL         _dll        = new DLL(#KernelDLL);
    DLLFunction _function   = new DLLFunction(_dll, 'SetEvent');
    ;

    _function.returns(ExtTypes::DWord);  // DWORd
    _function.arg(ExtTypes::DWord);

    return _function.call(_handle);
}
Старый 31.07.2014, 16:37   #40  
byte is offline
byte
Участник
 
31 / 31 (2) +++
Регистрация: 21.08.2007
Решение конечно есть - хранить шаблоны в папке, а не в ресурсах AOT, просто мне казалось, что это современнее. Может быть есть другое? И все таки хотелось бы понять причины такого поведения.
Теги
com-объект, excel, thread, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка времени выполнения DmitryS DAX: Администрирование 5 17.06.2010 13:14
Ошибка времени выполнения: В NumberSeqReference_Empl_RU (Объект), не найден исполнимый код метода "loadModule" Ksju DAX: Функционал 14 21.10.2009 13:00
Ошибка времени выполнения Stas[SNRC] DAX: Программирование 6 12.03.2008 12:21
Ошибка времени выполнения Didukh84 DAX: Программирование 19 06.03.2008 09:11
Ошибка времени выполнения: Binary (Объект), метод string вызван с недопустимыми параметрами. mmm DAX: Программирование 4 15.05.2007 16:00
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:28.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.