| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Foxpro/Clipper/Dbase > DDE (Visual FoxPro & Excel) |
| Автор: BGNick 24.2.2004, 19:42 |
| Простейший код программы для обмена данными между Visual FoxPro 6 и Excel 2000: m.chan=DDEINITIATE("EXCEL","System") IF m.chan < 0 RUN {запускаем Excel} m.chan=DDEINITIATE("EXCEL","System") ENDIF =DDEPOKE(m.chan,"R1C1","5") =DDETERMINATE(m.chan) Вроде все есть, но если Excel не запущен, будет выданы ошибки и Excel все равно не запускается по команде RUN Если перед стартом этого кода запустить Excel, то функция DEEInitiate отрабатывает как надо, но функция DDEPoke() возвращает .F., что является признаком того, что она не смогла передать "5" в самую первую ячейку Excel. Вопрос - что здесь не так. И может кто-нибудь знает, где Windows хранит путь к Microsoft Office, и другим установленным приложениям, чтобы можно было из Fox корректно запускать оные, а не набивать пути вручную? |
| Автор: Cashey 25.2.2004, 14:53 | ||
| А так ли обязательно использовать устаревший протокол DDE? Не лучше ли пойти по "протоптанной" дороге OLE? У тебя наверника после конструкции
DDELastError() возвращает ошибку 16. Что означает сбой соединения. Основной недостаток DDE заключается в том, что нет согласованного интерфейса между серверами, т.е. соединение к каждому конкретному серверу происходит согласно индивидуальной документации. Код написанный и работающий для 5-го Excel'а через коннект к DDE-серверу, на 2000-м может и не работать. |