powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Библиотека материалов и сортаментов & FoxPro
22 сообщений из 22, страница 1 из 1
Библиотека материалов и сортаментов & FoxPro
    #33079936
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно интергировать "Библиотеку материалов и сортаментов" (фирмы АСКОН) с ФоксПро 9? Так, чтобы выбрать в этой библиотеке материал и он перенесся в Фокс?
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33080970
Grin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну батенька думаю 95% посетителей этого форума и слыхом не слыхали
об "Библиотеку материалов и сортаментов" (фирмы АСКОН)

ты скажи хоть в каком виде данные хранятся (какая БД используется)
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33081124
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrinНу батенька думаю 95% посетителей этого форума и слыхом не слыхали
об "Библиотеку материалов и сортаментов" (фирмы АСКОН)
:))

ты скажи хоть в каком виде данные хранятся (какая БД используется)
Формат базы - mdb, данные я достать могу.
Эта программа (БМС) работает как сервер - она запускается из программы "КОМПАС" (тоже фирмы АСКОН), работая в БМС выбирается какой-либо материал и возвращается этот материал в Компас. Кроме того, БМС может запускаться как отдельное приложение.

Из справки БМС:
"Сведения из cправочника Библиотека материалов и сортаментов могут по запросу пользователя передаваться в документы системы КОМПАС. Чтобы обеспечить совместную работу Справочника с системой КОМПАС, используется библиотека интеграции. Она сохранена в файле materialk6.dll. Библиотека интеграции записывается на жесткий диск и регистрируется в реестре Windows автоматически при установке Справочника.
Объекты Справочника могут быть вставлены в документ в следующих случаях:
- заполнение графы Материал основной надписи чертежа;
- выбор материала модели;
- выбор материала для расчета массо-центровочных характеристик тела вращения или выдавливания в чертеже или фрагменте;
- заполнение ячейки спецификации."

Так вот я хочу заставить БМС работать с FoxPro, но не знаю, с какого конца подойти.
VFP 9.
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33081131
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w3d Grinты скажи хоть в каком виде данные хранятся (какая БД используется)
Формат базы - mdb, данные я достать могу.
...
Так вот я хочу заставить БМС работать с FoxPro, но не знаю, с какого конца подойти.
VFP 9.
Судя по всему, база лежит в Акцессовском формате. Если это так, то есть как минимум два варианта:
1. Работать с базой напрямую из Фокса через ADO
2. Работать с базой из Фокса через сервер автоматизации (в роли которого будет выступать Акцесс).
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33081137
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.
Судя по всему, база лежит в Акцессовском формате. Если это так, то есть как минимум два варианта:
1. Работать с базой напрямую из Фокса через ADO
2. Работать с базой из Фокса через сервер автоматизации (в роли которого будет выступать Акцесс).
Совершенно верно, база Акцессная, и данные оттуда я могу взять легко.
НО!
Я хочу не просто брать данные из базы, а БРАТЬ ДАННЫЕ ИЗ ПРОГРАММЫ, КОТОРАЯ РАБОТАЕТ С ЭТОЙ БАЗОЙ. Реально ли это, с учетом того, что в Компасе все именно так и работает?
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33081240
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w3d Станислав C.
Судя по всему, база лежит в Акцессовском формате. Если это так, то есть как минимум два варианта:
1. Работать с базой напрямую из Фокса через ADO
2. Работать с базой из Фокса через сервер автоматизации (в роли которого будет выступать Акцесс).
Совершенно верно, база Акцессная, и данные оттуда я могу взять легко.
НО!
Я хочу не просто брать данные из базы, а БРАТЬ ДАННЫЕ ИЗ ПРОГРАММЫ, КОТОРАЯ РАБОТАЕТ С ЭТОЙ БАЗОЙ. Реально ли это, с учетом того, что в Компасе все именно так и работает?
Я, честно говоря, не вижу разницы. Может быть просветите?
Как я уже говорил, можно использовать технологию серверов автоматизации (Automation), если конечно БМС реализована в виде СОМ-объекта...
Только в этом случае Вам придется с ней помучится, выискивая среди всего многообразия методов нужный...
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33082058
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.
Я, честно говоря, не вижу разницы. Может быть просветите?
Как я уже говорил, можно использовать технологию серверов автоматизации (Automation), если конечно БМС реализована в виде СОМ-объекта...
Только в этом случае Вам придется с ней помучится, выискивая среди всего многообразия методов нужный...
Разница в том, что если напрямую работать с базой, придется фактически писать БМС заново (но уже на фоксе). Так что, скорее всего вариант с СОМ сервером - это то, что надо. Но я с этим никогда не работал и не знаю с чего начать...
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33082557
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо точно знать, является ли эта программа Com-сервером.
Если является, то изучить её объектную модель.
Описание объектной модели обычно не составляет тайны разработчика.
Ну а затем - команда CreateObject (..,..) и объект-приложение со всеми его свойствами -методами в твоём распоряжении.
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33083051
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi w3d!

Если можешь, посмотри как они сами интегрируют эту dll-ку. В принципе слова "регистрируется в Windows" наталкивают на мысль, что это как раз и есть COM сервер -попробуй также "открыть" эту dll-ку в ObjectBrowser в фоксе - если откроется, изучай тамошние классы :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33083078
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
попробуй также "открыть" эту dll-ку в ObjectBrowser в фоксе - если откроется, изучай тамошние классы :)

Спасибо за совет!

В ObjectBrowser открылась, правда не dll, а exe.
Изучаю...
Как мне его запустить? CreateObject ( что именно? ). Прикладываю информацию из реестра и ObjectBrowser.
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33083135
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без документации Аскона по объектной модели не разберёшься.
Обратись в Аскон.
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33091663
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть пример работы (но для Дельфи).
Как можно это перенести на фокс?

procedure TForm1.BtnExecuteClick(Sender: TObject);
begin

BOMat := CreateComObject( Class_BOSimpleProvider ) as IBOSimpleProvider;

if BOMat.Status = $00 then begin
Label1.Caption:='Тест выполнен успешно ! ';
BtnOpen.Enabled:=True;
end else if BOMat.Status = $01 then Label1.Caption:='Ошибка подключения к базе данных материалов ! '
else if BOMat.Status = $02 then Label1.Caption:='Ошибка подключения к базе данных единиц измерения ! '
else if BOMat.Status = $04 then Label1.Caption:='Ошибка подключения к диспетчеру доступа ! '
else if BOMat.Status > $04 then Label1.Caption:='Ошибка Код= '+IntToStr (BOMat.Status);

end;

procedure TForm1.BtnOpenClick(Sender: TObject);
begin
if BOMat.Select( TRUE, Location, Handle)then begin
BOMat.GetObjectInfo(Location,ClassID,ObjectID);
Label2.Caption:='Выбран объект класса = '+ClassID;
end;
end;
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33093772
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал так:
Код: plaintext
BOMat = CREATEOBJECT("Materials.BOSimpleProvider")
Объект создается нормально, но вызов
Код: plaintext
1.
BOMat.GetObjectInfo(Location,ClassID,ObjectID)
не проходит, идет ошибка :((
Можно ли (кроме как из документации) узнать какие параметры нужны для методов?
В объекте еще есть методы:
Код: plaintext
1.
2.
3.
4.
5.
BOMat.ExecuteRequest
BOMat.GetObject
BOMat.GetObjects
BOMat.Refresh
BOMat.RegisterClient
BOMat.UnregisterClient

Свойства:
Код: plaintext
1.
2.
3.
4.
(BOMat.Status)
(BOMat.ClientID)
(BOMat.Request)
(BOMat.Response)
(BOMat.SourceID)
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33096113
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi w3d!

> Можно ли (кроме как из документации) узнать какие параметры нужны для методов?

1) IntelliSense
2) ObjectBrowser

А насчёт ошибки - неужели так трудно ТЕКСТ СООБЩЕНИЯ указать? Сам посуди ЧТО полезного можно почерпнуть из твоего "идёт ошибка"?

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33096248
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
1) IntelliSense
2) ObjectBrowser
В ObjectBrowser выдается только список методов и свойств, приведенный выше. При выделении метода/свойства никакой дополнительной информации в виде параметров не поступает :((

Igor Korolyov
А насчёт ошибки - неужели так трудно ТЕКСТ СООБЩЕНИЯ указать? Сам посуди ЧТО полезного можно почерпнуть из твоего "идёт ошибка"?
Текст:"Function argument value, type or count is invalid"
Весь-то вопрос в том и есть - какие параметры надо передавать в GetObjectInfo? И нельзя ли сведения об этом как-то вытащить из объекта?
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33096251
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расковырял еще одну длл-ку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Method ExecuteRequest() As Void
Method GetObject(ClassID As String, ObjectID As String, Options As Long) As IBOObject
Method GetObjectInfo(Location As String, ClassID As String, ObjectID As String) As Void
Method GetObjects(ClassID As String, Options As Long) As IBOObjectCollection
Member of BOSimple.IBOSimpleProvider
Method Refresh() As Void
Method RegisterClient(aName As String) As Void
Method Select(Modal As Logical, Location As String, ClientWindow As Long) As Logical
Method UnRegisterClient() As Void
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33097244
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
1) IntelliSense
2) ObjectBrowser


А как подключить отот объект к IntelliSense?
Мне прислали документацию - сижу разбираюсь, но жутко неудобно набирать все руками
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33098555
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой код на Дельфи:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
begin
  wstLocation := '';
  BOMat.Select(TRUE, // true - модальное окно выбора обьекта, false - не модальное.
                wstLocation, // Location обьекта
                Handle);   // указатель окна МиС
  BOMat.GetObjectInfo( wstLocation, ClassID, ObjectID );// запрос "Получить информацию об обьете"
  BOMat.Request.Topic := topicProperties;               // Заголовок запроса (см. BOMatConst)
  BOMat.Request.Attribute[ anAction ].AsString := avGet;   //Атрибут запроса на получение свойств (см. BOMatConst)
  BOMat.Request.Attribute[ anClassID ].AsString := ClassID;  // Атрибут запроса ClassID
  BOMat.Request.Attribute[ anObjectID ].AsString := ObjectID;  // Атрибут запроса ObjectID
  BOMat.ExecuteRequest;
  edSelectedObject.Text := BOMat.Response.Item[ 0 ].DisplayName + ' класса ' +
                             BOMat.Response.Item[ 0 ].ClassID;
  _ParseObjects( BOMat.Response, nil); // Парсим полученную коллекцию обьектов и атрибутов.
end;

Никак не могу сообразить, как переписать конструкцию
Код: plaintext
BOMat.Request.Attribute[ anAction ].AsString := avGet;
на Фоксе?
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33098663
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Аскон, как я выяснил, эту библиотеку бесплатно не распространяет.
Так что, возможны проблемы.
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33098683
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы лицензионные пользователи и в рамках лицензии можем использовать эту библиотеку для разного рода интеграции различных программных продуктов.
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33099412
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На фоксе:
Код: plaintext
1.
2.
3.
4.
5.
6.
BOMat = CREATEOBJECT('Materials.BOSimpleProvider')
  wstLocation = ''
  ClassID=''
  ObjectID=''
  TRUE=.t.
tt=BOMat.Select(.t., wstLocation, thisform.HWnd)
вылетает в ошибку "Access violation at adress 00404BE8 in module 'Materials.exe'. Write of adress 0000083C"
а на дельфи
Код: plaintext
1.
2.
3.
wstLocation := '';
  BOMat.Select(TRUE, // true - модальное окно выбора обьекта, false - не модальное.
                wstLocation, // Location обьекта
                Handle);   // указатель окна МиС
все нормально
В чем может быть дело?
...
Рейтинг: 0 / 0
Библиотека материалов и сортаментов & FoxPro
    #33099864
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
w3dМы лицензионные пользователи и в рамках лицензии можем использовать эту библиотеку для разного рода интеграции различных программных продуктов.

Тогда Аскон даст вам описание COM-интерфейса.
С меня они спросили именно лицензию
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Библиотека материалов и сортаментов & FoxPro
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]