Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Репортаж с места событий!  (Прочитано 11071 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Igel
Опытный

ru
Offline Offline
Пол: Мужской

« : 11-09-2003 10:20 » new

Прелюдия!
Руководство сказало: "надо, зря вас кормить не будем."
"Чего надо?" - спросили МЫ. "А надо нам чтобы все что вы сделали было еще лучше и желательно добавить ето и ето" - не растерялось руководство на каверзный вопрос. Впридачу выдав проект приказа и пообещав море удовольствия сомнительного характера.

Введение!
Все напечатанное в дальнейшем будет моими изысканиями в области объектного и СОМ - програмирования в среде Выньдовс. Все что будет в дальнейшем будет печататься можно добавлять(читай НУЖНО) своими мыслями и идеями. Область куда я кинулся для меня неизвестна или известна на таком низком уровне, что приходится проводить изыскания. Чисто интуитивно я знаю что это можно сделать так-то и так-то, поэтому если меня будет швырять в разные стороны или буду "лепить горбатого" - это чисто мое незнание или непонимание.

Поехали.
Название проекта, составлено одним умником (он человек неглупый но костенелый) - "Система определения ТЕХНИКО-ЭКОНОМИЧЕСКИХ ПОКАЗАТЕЛЕЙ ПРОИЗВОДСТВА при автоматизированном проектировании ТП на основе технологических элементов (переходов)"
Страх! Ужас! Зашевелились волосы!
Хватит лирики.
Существует уже нечто подобное, и ваш покорный слуга, учавствовал в разработке. Сделано это на уровне курсового проекта, т.е. когда нужны выпендрежы, т.е. что-бы внешне выглядело понятно, а что внутри - никому не важно. Однако внутри именно бардак.
Система в общем состоит из 3-х элементов:
1. ТехАрхив - нечто вроде программы документооборота с интерфейсом... поганым, но пользователи должны в нем работать. Цель создание документов, архивирование на сервере и редактирование на локальном компутере. Плюс авторизация пользователя на уровне, даже не сетевом, а именно приложения. Сделано а VBA Access.
2. ТехМаршрут - приложение для разработки ТП. Работает с файлом БД Access. В котором и хранит собственно текст ТП. Второй вариант сделан был на VB. Вызывается из 1. если там выбран документ - ТП. Особенности внешней организации: Дерево операций, при выборе операции в дереве справа появляется форма параметров операций. Параметры редактируемы. Особенности внутренней организации: гигантский код в котором предусмотрены все возможные действия. как-то: выбор операции, клик мыши на параметре, и пр... Если возникает ошибка найти ее гигантская проблема, а уж исправить еще сложнее, потому что слишком много связей и в голове все не удержать. Добавить же что-то новое практически не реально, нужно начинать почти с нуля.
3. Модуль ФОД - Набор AutoLISP програм для АвтоКАДа, призванный получить данные из 2. И по ним создать видимые, которые можно вывести на печать, документы ТП. автоКАД выбран в качестве графического ядра и основное назначение было нарисовать(читай начертить) эскизы на операции. AutoLISP хорошо позволяет работать со списками и примитивами АвтоКАДа, но поставленная задача была почти на пределе возможностей и была решена, пусть с глюками, но решена. Окончательные документы получали.

Вкрадтце недостатки:
1. Связка 1-2-3 очень медлительна. А когда 2 была сделана на Access-e то средний ТП обрабатывался для отображения и работы с ним мин 5.
2. Связь 2-3 не получилась двусторонней. В процессе окончательного оформления в модуле ФОД(3) могли и возникали у пользователя новые идеи или он видел ошибки введенного в (2) текста. Исправлял, но это не попадало в базу. Обмен данных шел через текстовый файл. Тогда небыло ничего лучше, точнее мы не знали как сделать.

Так, похоже я грузанул вас и сам грузанулся, поэтому продолжение следует...
Дальше пойдут мои мысли, как надо сделать и с чем я буду экспериментировать.
Записан

Ёжики, это не только ценные шкурки...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 11-09-2003 11:16 » 

Интересно, непонятно... , но где тут delphi?  :?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #2 : 11-09-2003 11:39 » 

Видимо на Дельфи это и делается, надо понимать - интересное описание задачи....
Записан

А птичку нашу прошу не обижать!!!
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 11-09-2003 13:31 » 

А я по тексту вижу только VBA, VB, AutoLISP... Ага
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Igel
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 12-09-2003 05:39 » 

Ответы:
- По поводу Дельфи - это единственный язык высокого уровня, который я знаю. Поэтому в своих долгосрочных планах я буду ориентироваться именно на него. Скажу сразу, что в планы входит изучение Си и использование специфической библиотеки классов ObjectARX (Это чисто для создания приложений под АвтоКАД).
- Все нижесказанное ограничивается моим опытом и 5-летней работой с AutoLISP.
- Я могу повторяться, это ввиду того, что я не имею опыта подобных изложений.

Просьба не обращать на это внимания и отнестись с пониманием Улыбаюсь) Если это вам нужно!!

Недостатки, продолжение:
3. Собственно ТехМаршрут задуман был именно как "редактор файла БД Access". Свою задачу он выполнил, хотя и на начальном программистском уровне. Однако дальнейшее развитие системы, что будет описано ниже в него уже не вписывается.
4. Работа вся идет через 1. Оно конечно правильно, только работает он не с БД, а с файлами. С текущими - на машине пользователя, с архивными - копирует из сетевой папки с сервера. В принципе доступ к этой папке есть у всех пользователей сети, иначе программа не смогла-бы ложить туда файлы! И это не есть ГУТ!!

Мои мысли по поводу реализации! (если в моих мыслях есть смешные или некорректные описания , то смотрите выше, я там уже признался в своем незнании терминологии, и приблизительном ориентировании.)

Мысль 1: Единая БД предприятия пока на эту задачу. И организация системы клиент-сервер. Эта мысль ГЛОБАЛЬНАЯ, в смысле все должно реализовываться не вручную с файлами, а через сервер. Тут много ньюансов. Сервер БД и организация клиент-сервер для меня пока темный лес, но внутри зреет чувство, что это есть правильное решение!

Мысль 2: Родная, вынашивалась уже 1.5-2 года, но в связи с тем что рук-ву нужны конкретные рез-ты и в сжатые сроки реализации не получили. Но параллельно мы искали информацию. Отойти от раздельной работы приложений по формированию ТП.
----- Напомню:
   Раздельное формирование было на этапе 2-3. Сначала создавался файл БД ТП (tpp). Один tpp на один ТП. Затем он, посредством текстового файла - совершенно дикой структуры - передавался в 3 (АвтоКАД). Там запускалась ЛИСП программа, которая читала этот файл и преобразовывала во внутреннюю структуру. В дальнейшем по этим данным и запросам пользователей создавался "ОКОНЧАТЕЛЬНЫЙ" документ ТП(dwg). Т.е. такой, который можно печатать и нести на подпись. Таким образом работа с ТП была линейная. Забыл что-то внести в tpp, либо исправляй в dwg, либо выходи из АвтоКАД-а и исправляй в tpp, с последующим запуском АвтоКАД-а, созданием передаточного файла, чтением его и пересозданием того листа - что некорректен. Гимморр! И в результате для ТП нужны 2 файла tpp и dwg.
-----
  Т.е. формируется ТП в одной среде. Сколько будет файлов неважно, основная цель целостность данных, а не разбиение ее по частям. Средой был выбран АвтоКАД. Под него можно сделать программы на ЛИСП(хотя полноценную работу, типа с БД, тут не сделаешь), можно подключить программы ARX - специальный DLL файл, создавать который можно с использованием ObjectARX. Правда для версии АвтоКАД-а 14 можно было на Дельфи сделать. А теперь покупать надо у одного разработчика, потому что в новой версии изменили содержание основных экспортируекых функции этой DLL-ки. А можно сделать внешнее приложение (COM-сервер), к которому я буду обращаться из VisualLISP.
  Собственно это уже идея де-факто. Создавать мы будем именно СОМ-приложение для работы с  БД. А вот как использовать - есть 2 варианта:
  1. Вызывать из VisuslLisp.
  2. Создать модуль ARX, который будет использовать уже готовый СОМ-объект и экспортировать для работы в АвтоКАДе. Т.е. прослойка между СОМ и АвтоКАД. Вполне возможно, что начальных сведений об Си хватит, чтобы написать ARX приложение для связи с СОМ.
Реализацию создания СОМ возложить на Дельфу.

Мысль 3: ТехАрхив(1) должон работать не с файлами а с серверной БД. И еще создаваться будут не документы, а нечто вроде ярлыка, в котором будет прописано, что за объект, какие данные ему принадлежат, какие файлы содержать будет(если файловое расположение), какие права кто имеет на этот документ.
Авторизация должна быть привязана к сетевому имени пользователя. Используется Novell, вот новелловские имена и должны быть отправной точкой. Запуск приложения для редактирования/просмотра "документа" заключаться должен в
следующем: ТехАрхив просто передает ID-документа программе редактору/просмотровщику с текущим именем пользователя. Сама программа за необходимыми данными обращается к серверу БД. Т.е. ТехАрхив играет роль координирующей программы или рабочего стола пользователя.

Мысль 4: Все-таки желательно перенести один ТП в один файл. Если реализация будет файловая. Т.е. не будет единого файла dwg с окончательным документом и данных ТП ввиде tpp-файла. Варианты организации:
       -Первый. Одним из полей документа ТП будет форма. В процессе создания документа, можно нажать кнопку «Оформить документ». Создается документ во временном каталоге под именем – индекса документа (для примера – номер документа). Затем он сохраняется в поле БД.
       -Второй. В документе будет хранится эскиз и расположение текстовых записей на листах оформления.
       -Третий. DWG-файл один, он хранится в поле шапки ТП, а не как предыдущие варианты в поле операции. Вызывается в процессе запуска. Это тоже минус. Поскольку файл может быть нехилый под несколько Мб.
       -Четвертый. это не слияние, а отдельные файлы именно эскизов на операцию.
Первые 3, будут реализованы ввиде объекта ОЛЕ или поля с данными(не помню, вроде BLOB-поля) этой таблицы. Но однозначно, что dwg-чертеж должен быть. А в каком виде и где лежит - другой вопрос.

Мысль 5: Организация работы ТехМаршрута. Отойти от операций. Пусть будут ДОКУМЕНТЫ, у которых будут соответствующие свойства. Из документов и будет состоять ТП.
----- Подробности
  Под документами я подразумеваю объекты со своими методами и свойствами и своей иерархией. Визуальной составляющей, событиями и связью с БД. Это относится к аспекту программировани и организации работы приложения. Например объект - документ "операция 100". Могут быть состояния: (нормирована, подписана, в разработке и пр..) Родительский объект ТП. и пр... тут нужно составлять список свойств и методов, событий и состояний для каждого объекта.
  Вот чего не знаю, можно-ли сделать визуализацию объекта. Т.е. при обращении с целью редактирования текущего объекта, чтобы отразилась форма соответствующая данному классу. Для чего это нужно? - Красиво, много видов документов, которые нельзя привести к единому виду.
  Тут вопрос, как определять, какие данные БД соответствуют объекту? Как их считыват? На второй есть нечто вроде ответа. Должен быть визуальный компонент - объект, который отражает связь с БД и в который встраиваются собственно ДОКУМЕНТЫ, запросы которых и будут обращены к нему.
  Структура вроде дерева:
  Шапка ТП(связь с БД, Данные, связь с документами)
  |-Документ1(маршрутная карта)
  |-Документ2(операция 10)
  ...
  Структура иерархии объектов:
  Объект документ
  |-Документ общий на ТП
  | |-Документ маршрутная карта
  | |-Документ ведомость оснастки
  | |...
  |-Документ операция
  | |-Документ операция токарная
  | |-Документ операция с ЧПУ
  | |-Документ текст в маршруте
  | |...
  |-Документ прочие
-----

Уфф, снова выдохся... Теперь про эксперименты:
Эксперимент 1: работа с объектами начало
Цель: Определить направление работы с объектами и методику создания управляющих элементов. Связь объектов с управляющими элементами и работа с событиями
-   Создать 2-3 объекта с определенными состояниями.
-   Сделать форму с управляющим элементом, в котором и будут содержаться объекты. В зависимости от действий над ними должны сами изменять свое состояние.

З.Ы. Не знаю, стоит писать про результаты и исходники эксперимента?
Записан

Ёжики, это не только ценные шкурки...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 12-09-2003 10:09 » 

Не вдаваясь в детали я могу предложить такую орг.модель:
1) на сервере запущена БД и некая серверная программа, которая будет отслеживать подключения-отключения пользователей, сама непосредственно и единолично работать с базой (это безопаснее и надежнее чем работа нескольких хостов с одной БД), выполнять запросы пользователей по работе с объектами, следить за разделением доступа к объектам (напр. чтобы два пользователя одновременно не работали с одним объектом в режиме модификации) и прочие специфические ф-ии (напр. генерация конечного документа).
2) клиентская часть. Пользователи логинятся, получают данные от сервера, работают с ними в пределах этой программы, передают их на запись серверу и т.п. Это специфическая и самая сложная часть.

Модель простая и надежная...

Метод коммуникации клиет-сервер - дело личного вкуса и знаний. Я считаю что надежнее (но не быстрее) кратковременные tcp соединения инициируемые любой из сторон.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
ctranik
Гость
« Ответ #6 : 14-09-2003 12:17 » 

Типа я тоже в  Delphi живу но признаюсь прочёл внимательно статью автора, а также рецензии, но до сих пор признаюсь ни хига ни чё непонимаю (кроме проекта приказа руководство автора ), кто-нибудь по русски скажите о чём речь то.  Я шокирован!
Записан
Igel
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 15-09-2003 08:26 » 

----- Ответы -----
>ctranik. Если честно, я сам плохо понимаю. Единственное, что я заню, это что нужно. А вот как к этому подойти, с какого боку пока трудно. Из твоего ответа понимаю, что плохо могу изложить свои мысли. Буду исправляться!! Улыбаюсь
>RXL. Совершенно верно!! Именно так я и думал. Мыслей много, вот и нагромоздил чер-те что. Сейчас пишу типа концепции, может яснее будет...

-----
Записан

Ёжики, это не только ценные шкурки...
PSD
Главный специалист

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 15-09-2003 10:31 » 

Я тут почитал и знаешь чтоя подумал.
Если нужен бустрый результат то рекомендую поближе познакомится  с прогой 1CАрхив от 1C  стоит она помоему 300-400$  меет клиента и серверную часть на сервере хранися БД со структурой архива(Access или SQL Server(рекомендую)) и собственно архив.

Я к сожалению не очень уяснил особености технологического процеса в пунктах 1 и 2, но думаю что при некотором усердии ее функциональность покроет поребности пользователей. А связку 2-3 можно будет реализвать в виде еще одной серверной приблуды котрая  будет работать с тойже базой и архивом. В связи стем что сервер сделан по "открытой"  технологии т.е. все что можно лежит в базе.  То написание своего приложения которое будет вполне леквидно брать документы на редактирование, создавать новые версии документов перекладывать их в соотвествующие папки, особого труда не представляет.
И что самое приятно помоему 1С дополнил вторую версию архива  библиотекой API.
Записан

Да да нет нет все остальное от лукавого.
cg_spooler
Гость
« Ответ #9 : 11-12-2003 14:37 » 

А как-бы использовать MS SQL Server и через него пропердолить свою базу в сеть, а там, в простом ACCESSе можно коннектится и работать. Пара форм, запросов, отчетов и т.д. Че париться, все уже сделано давно MS :oops:
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines