Показать сообщение отдельно
Старый 05.10.2004, 13:03   #7  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
Вот ТЗ на реализацию этого решения:
1. В Аксапте создать таблицу "MyDemoTable", в ней одно строковое поле "FormName".
2. В Аксапте создать класс "RunFormDemo", в этом классе создаем один статический метод "ShowThisForm(str _formName)". В качестве параметра в этот метод будет передаваться название той формы, которую нужно показать. Этот метод должен создавать новую запись в таблице MyDemoTable(если там еще нет ни одной записи) и в поле "FormName" этой таблицы записывать значение параметра _formName.
3. В Аксапте создать форму MyDemoForm.
4. В этой форме создать метод RunDemoForm. Этот метод будет считывать первую запись из таблицы MyDemoTable, показывать на экране указанную в поле FormName форму, и в конце удалять все записи из таблицы MyDemoTable. В конце метода RunDemoForm написать код
PHP код:
this.setTimeout(identifierstr(RunDemoForm), 100true); 
5. В этой же форме перекрыть метод Run. В методе Run после вызова super() поместить такой же код
PHP код:
this.setTimeout(identifierstr(RunDemoForm), 100true); 
6. В коде вашей программы подключите Axapta COM Connector Type Library.
7. Напишите для вызова формы в Аскапте примерно такой код (это пример на VB):
PHP код:
    Dim ax As New AxaptaCOMConnector.Axapta2
    
    ax
.Logon2 "dem""", , , , , "Test" // "dem" - имя пользователя, второй параметр - пароль, "Test" - название аксаптовской конфигурации(из конфигурационной утилиты)
    
ax.CallStaticClassMethod "RunFormDemo""ShowThisForm""SalesTable" 
8. Запустите в Аксапте форму, описанную в пункте 3.
9. Запустите в Вашей программе Ваш код, описанный в пункте 7.
10. В Аксапте должна открыться форма "Заказы".
11. Для полного счастья напишите в Вашей программе код, который устанавливает фокус на приложение Аксапты.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход!