FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9145
Вход
Новый рабочий пример поддержки иерархии MSHFlexGrid и True DB Grid

По просьбам коллег привожу рабочий пример и screenshot к программе, а не отдельный кусок кода. Создайте пустой проект, добавьте в него форму a_mshfg и запустите ее на выполнение. Внимательно см. все комментарии в методе Init формы, особенно в конце, а так же содержимое файла readme.txt и ссылку в нем (!)


 
Прислал: Кольцов Роман Васильевич   Категория: Работа с данными


Содержимое программы внутри вложенного файла.
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (2.889) Вложение [34.39]kb
Дополнения пользователей
Новый рабочий пример поддержки иерархии MSHFlexGrid и True DB Grid
[+][?]
Кольцов Роман Васильевич
03.05.06 13:29:43

На форуме www.sql.ru 7 фев 06, 13:16, здесь:
http://www.sql.ru/forum/actualthread.aspx?bid=10&tid=189936&pg=15 Alex Ustas приводил аргументы,
что в VFP работать с ComponentOne True DB Grid нельзя: "Взял ComponentOne ActiveX v7 - правда ему
уже года 3, который мы использовали в VB6, и который прекрасно там работал, в фоксе VFP6 он не
обнаруживает свойство DataSource, он его ваще не видеит." Уверяю Вас это не так! Данный "глюк"
Microsoft исправил еще в SP3 для VFP6! Установите его, либо используйте VFP7, 8, 9. Необходимо
признать, что для реальной работы с ADO VFP6 без SP3 не покатит, а в остальном все ActiveX от
ComponentOne прекрасно работают в VFP через ADO! Приведенный пример тому свидетельство.
Кольцов Роман Васильевич
03.05.06 13:30:35

Замечу, что т.к. технология ActiveX изначально задумывалась Microsoft, как средство расширения VB,
то "родным" источником данных для всех ActiveX-компонентов является рекордсет, а не фоксовский
курсор, который является всего лишь внутренним представлением данных в VFP. Для преобразования
рекордсета в курсор VFP Microsoft еще в 1998 году опубликовала пример rs2dbf.exe (SAMPLE:
Converting ADO 2.x Recordset to VFP Cursor), который можно загрузить здесь:
ftp://ftp.microsoft.com/softlib/MSLFILES/RS2DBF.EXE Так же попытку "универсального"
преобразователя рекордсета в курсор можно загрузить в решениях FoxClub:
http://www.foxclub.ru/sol/index.php?act=view&id=338 ((с) 09.03.2003 Друченко Владимир) или
посмотреть мое решение в приведенном выше примере для данного частного случая.
Кольцов Роман Васильевич
03.05.06 13:30:57

Для обратного преобразования курсора в рекордсет так же опубликован пример от Microsoft dbf2rs.exe
(SAMPLE: Converts a VFP Cursor to ADO 2.x Recordset), лежит здесь:
ftp://ftp.microsoft.com/softlib/MSLFILES/DBF2RS.EXE
В версиях VFP ниже 08.00.0000.2521 для преобразования рекордсета в курсор VFP так же можно было
воспользоваться подключаемой библиотекой vfpcom.dll от Microsoft (загружаемой дополнительно с
web-сайта Microsoft Visual FoxPro), с методами Cursor2Rs, Rs2Cursor. Для ее использования сначала
создаем объект loVFPCOM = CREATEOBJECT("vfpcom.comutil") и затем обращаемся к необходимым методам.
А начиная с версии VFP8 и выше для этого будет правильнее использовать встроенный базовый класс
CursorAdapter, который в т.ч. как раз для этого и предназначен.

[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика