Ваши комментарии

Ну я тоже начинаю подумать, что надо переходить на 1C. Там тоже готовых шаблонов, выложенных в сеть навалом, как и  в Delphi. И форумы прекрасные.  Но пока пугает то, что придется  заново все изучать, с нуля.  

Ага ,написать  на ассемблере  систему обработки базы данных с сотней разных рабочих мест и интерфейсов для них. Наверное можно. Если ты работал на нем десятилетиями и уже накопил кучу шаблонов на каждый случай. 


Если нет - то приходится работать в  среде, где другие для тебя создали эти шаблоны и выложили их на всеобщее пользование.   Иначе будешь писать шаблоны сам до второго пришествия.  

У меня была программа прекрасно рабjтающая на C# с SMART.  Но начальник захотел сделать такие в ней изменения, что без кучи готовых VCL компонентов я буду год работать. Из избушки сделать небоскреб.   Все-таки Delphi дает немалое ускорение в разработке, если нужен сложный и многоуровневый интерфейс.  Придется изучать доки от Delphi.   

Ну то есть мне тоже надо написать свой коннектор, я правильно понимаю?  Учитывая что работа одноразовая, сильно не хочется изобретать велосипед.   Наверное  быстрее организовать обмен данных между Delphi и SMART через готовый MS SQL коннектор. Но пока время есть, еще поэкспериментирую, почитаю доки по Delphi.   Обычно с  OLE у меня проблем d Delphi не было никогда.  Все методы работали без извращений и без обращения к переменным через интерфейс.  Но в этом случае видимо опались сложные OLE- объекты. Так просто с ними не поработаешь. 

Этот код не работает. Программа на Delphi не видит такого OLE  объекта, выдает ошибку.  Был бы рабочий пример, я бы понял, как правильно подключить библиотеку для этого кода чтобы этот код сработал. Примеры сразу отбрасывают кучу вопросов. А так остается эксперименты и чтение документации, работа через созданный ActiveX. 

Нет готовый модуль мне не нужен.  Просто в c#  я нашел кусок кода который работал  и прекрасно получал данные с документа SMART.  

var connector = new Cleverence.Warehouse.StorageConnector(); 

connector.SelectCurrentApp("михаил-пк:10501/d7c15f54-fd05-4811-8f6d-c7c7003887c5");

var Document = connector.GetDocument('123');

На Delphi похожий код не проходит.  Создаю элемент ActiveX из библиотеки Terminal.Connector.

Помещаю на форму. То есть по идее создаю новый экземпляр, так же как и в C# командой new. Методы  и функции у него те же самые. Но теперь работают только первые две строчки.

На третьей ругается, что несовместимы типы  IDispatch  и String.  То есть так же как в C# я к документу обратиться уже не могу.   Сейчас сижу разбираюсь как сделать из строки переменную понятную функции GetDocument.

Там описаны общие методы.  То есть придется изучать, как  в Delphi например подключаться через REST API.  Экспериментировать, идти методом проб и ошибок.  А хотелось бы примеров уже готовых программ или работающего кода как из Delphi прочитать какое-то поле в конкретном документе на сервере SMART.  


На Visual Studio C# я такие программы нашел.  Но к сожалению разработанные для него dll не работают как надо в Delphi.       Если готовых примеров нет - придется делать обмен данными через MS SQL.    Наверное так будет  быстрее всего. К счатью хотя коннектор к MS SQL не надо писать. 

Спасибо заработало, а то уже весь интернет перерыл в поисках примера.  :)

заменил var  - теперь строка выглядит так:


Cleverence.Warehouse.DocumentItemCollection DocumentItems = document.CurrentItems;

Ничего не изменилось

Мне надо получить все строки документа с сервера Smart Mobile в свою программу C#. 

var connector = new Cleverence.Warehouse.StorageConnector();

connector.SelectCurrentApp("http://pck017:10501/termo");

var document = connector.GetDocument("123");

Шапку документа читает, тут все порядке. 

Дальше нашел кусок кода который должен из документа давать возможность  получить данные строки

var DocumentItems = document.CurrentItems;

foreach (var documentItem in DocumentItems)

{

string packingId = documentItem.PackingId;

string ShKod = documentItem.GetField("ШтрихКод");

}

Но кусок оказался нерабочий. Ошибки я привел выше.  Как правильно получить  все строки из документа чтобы потом занести их в свою базу?



Сервис поддержки клиентов работает на платформе UserEcho