Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: TDMS
::LAVteam:: > Инженерный форум > В помощь инженеру
Страницы: 1, 2, 3, 4, 5, 6, 7
Luka
Здесь обсуждаются технические вопросы программы!
sub777
Тогда сразу пара вопросов:

1. У объекта есть атрибут наследуемый от объекта в состав которого он входит, когда изменяешь атрибут родительского у самого объекта этот атрибут не меняется, а хотелось бы. Как лучше поступить?

2. Как сделать чтобы при создании объекта ему сразу (автоматически) присваивались определенные права доступа для других пользователей
Andy82
В TDMS стандартной программой для просмотра эскизов идет CSViewer. Можно ли ее заменить, или подсунуть библиотеку для отображения новых форматов. Желательно через ActivX.
Kvant
Кто нибудь подскажет как синхрнизировать пользователей с активной директорией.
Если это вобще возможно.
Alxd
2 Kvant
Можно сделать синхронизацию, но придется писать скрипт. Я с такой задачей столкнулся, но решать не пришлось. К сожалению. Если б пришлось - решил.

Код получения списка пользователей из AD примерно такой:

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")

objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"

Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "Select Name,distinguishedname,sAMAccountName,userPrincipalName,userWorkstations from 'LDAP://DC=tftot,DC=ru' Where objectCategory='user'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objUserSet = objCommand.Execute

objUserSet.MoveFirst

Do Until objUserSet.EOF
strFullName = objUserSet.Fields("Name").Value

objUserSet.MoveNext
Loop
objConnection.Close

(правил "на ходу", имей ввиду)

2 Andy82
Вроде нет, либо надо CsViewer расковыривать, чтоб знать, через что к нему обращается TDMS для отображения документов.

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

Есть код итерации под Рубин PDM:

function IterateKNW(fromid, fromfld)
{
if (fromfld == false)
{
pdm.AttribValue(fromid, -5) = Obj2Code(fromid);
pdm.ObjDesc(fromid) = Obj2Desc(fromid);
pdm.CommitWriteTrans();
pdm.UpdateObjTrees();

pdm.AddLog('Обновление знания: ' + pdm.ObjDesc(fromid));
}

var childs = VBArray(pdm.Childs(fromid, 0)).toArray();
for (var i = 0; i < childs.length; i++)
{
IterateKNW(childs[i], false);
}
}

//обновить обозначения и описания знаний указанной ветки (спуск вниз)
function UpdateKNWRev0(fromid)
{
IterateKNW(fromid, false);
}

Код обновляет обозначения всех потомков выбранного объекта в соответствии с изменением. Если было бы надо, можно было привязать его к событию, типа onChange и тогда обновление происходило б аще сразу smile.gif

2. Тоже скриптом. Они (скрипты) в TDMS выполняются с правами админа и есть функция определения прав. Но лучше, на мой взгляд, если одна часть прав будет наследоваться от предков (типа ReadOnly), а остальная часть прав выдаваться соответствующими командами от соответствующих людей. Т.е. сделать, например, команду "Назначить исполнителем отдел АС" и группе АС будут даны права на объект и его потомков. Ну а команду вызовет ГИП, например.
Kvant
За это спасибо, это в принцыпе понятно и хранение базы в SQL решает подобные проблемы.
(я в принципе подобное делеал когда писал табельный учет)
Но как быть с паролями.
Пароли в домене меняются ежемесячно и забивать юзерам голову несколькими поролями не хотелось бы. (не настоко они продвнутые, с Логоном у них все еще много проблем. пр логин на почту я ваще молчю).
Меня больше интересует авторизация.
Идеальный вариант конечно чтоб клиент логинился автоматом темже логином каким вошол в систему.
Возможно ли это в принцыпе или нет ?
Luka
Kvant
Вроде как обещают в 3-ке синхронизацию с Active Directory..
Alxd
2 Kvant
Вот это не подскажу. Но теоретически возможно, ведь тот же radmin использует либо свою авторизацию, либо виндовую, значит есть функция отвечающая за это. Просто реализовать это на vbscript может быть непросто.
Погляди тут http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr=true
Andy82
Подскажите пожалуйста - написал скрипт на открытие документа в Solid Edge. Все вроди открывает, но только для чтения... в чем может быть загвоздка...

Dim objApp
Dim DOCUMENT
Dim msg

On Error Resume Next
Set objApp = GetObject(, "SolidEdge.Application")
If Err Then
'MsgBox "SE не запущен", vbCritical + vbOKOnly, "Open & Save"
Err.Clear

' Статртуем ежа.
Set objApp = CreateObject("SolidEdge.Application")

' Немогу запустить ежа
If Err Then
MsgBox "Cannot start Solid Edge.", vbCritical + vbOKOnly, "Open & Save"
End If
' Делаем ежа видемым
objApp.Visible = True
End If
Set objDoc = objApp.Documents.Open("E:\Projects\Rainbow\07\plg2.psm")
Set objDoc = Nothing
If Err Then
MsgBox "Невозможно открыть докумнет", vbCritical + vbOKOnly, "Open & Save"
Err.Clear
End If
Alxd
C SolidEdge не общался в плане COM модели, но загвоздка может быть как минимум тут:

1. Не хватает прав на документ, который пытаешься открыть, т.е. они обрублены самой TDMS.
2. Возможно, при открытии документа через COM модель, где-то надо указать, что открываешься с соответствующими привеленгиями.
3. А может у файла сразу атрибуты ReadOnly при экспорте из базы?
4. А может быть каталог, куда экпортируется (захватывается) файл дает ему такие права? Он не на шаре?

ну примерно так...
sub777
Подскажите пожалуйста. Есть работающая база с хранение файлов на SQL сервере (в базе)
как перевести существующие файлы в файловый сервер
DIvan
Народ, есть ли возможность хранить в TDMS (т.е. в БЛОБ - полях MSDE 2000) файлы в 1 Мб и более? По умолчанию размер файла стоит 500 кб. Понятно, что TDMS file server это позволяет, но проблема в том, что запустить лавтимовский релиз сабжа у меня не получается.
Релиз TDMS FILE server 2.0.121, win2003 server, MSDE 2000. Cтавлю, пачту, запускаю сервис - сервис стартует, но НЕ открывается конфигуратором, сниффер не показывает открытого порта, и вообще не проявляет активности.
При этом в БД на sql - сервере создаются таблицы (6 шт.), и прочие объекты, т.е. доступ к БД явно есть. Порт программы никто не занимает, пробовал его менять даже... confused_1.gif
Почитав форум, прихожу к мысли, что TDMS для меня оптимальный вариант. Народ, помогите, плиз!
sub777
2DIvan
посмотри здесь обсуждались вопросы по запуску File Server
с поста 174
http://forum.lavteam.net/index.php?showtopic=8046&st=160
DIvan
Спасибо, я уже разобрался. Даже обобщил информацию на эту тему:

TDMS Fileserver installation howto

1. Установить сервер БД MS SQL 2000, MSDE или Oracle 9.x
2. Создать на сервере БД учетную запись с правами на создание таблиц и хранимых процедур. Для MS SQL и MSDE можно использовать учетнуюзапись по умлочанию SA с пустым паролем.
3. Запустить инсталляцию TDMS file server, серийный номер указать любой.
4. Запустить мастер регистрации, указать файл product.dat в каталоге программы.
5. Cоздать или обновить БД. Придумать пароль к встроенной учетной записи SYSADMIN.
6. Указать сервер СУБД, куда был установлен сервре БД в п. 1.
7. придумать имя БД, или оставить предлагаемое, указать учетную запись БД (например SA без пароля).
8. Убрать галочки "старт файлового сервера" и "старт менеджера файдовых серверов", нажать Готово.
9. Если служба TDMS file server работает, остановить.
10. Запустить патч, который заменит ехе-файлы.
11. Разрешить взаимодействие с рабочим столом для указанной службы.
12. Чтобы при каждом пуске службы не появлялся запрос "Укажите файл лицензии или сервер лицензирования", сделать в реестре запись вида
HKEY_LOCAL_MACHINE\SOFTWARE\FLEXlm License Manager] "CSOFT_LICENSE_FILE"="ПУТЬ СЮДА!"
13. Запустить службу.
DIvan
Уважаемые знатоки TDMS! Сперва перечислю мои шаги по разработке системы:
1. Я предварительно собрал информацию о документации, существующей на предприятии.
2. Выделил поле для автоматизации - конструкторов (чертежи CAD) и технологов (маршрутно-материальные спецификации, технология огнереза, технология ТВЧ, технология ЧПУ).
2. Набросал ТЗ простенькой структуры (но с мыслями о ее развитии). Дерево выглядит примерно так:
-Заказ
---спецификация
-----чертеж
-----чертеж
-----спецификация подсборки
-------чертеж подсборки
--------- ММС на деталь чертежа подсборки
--------- ТК огнереза на деталь чертежа подсборки
--------- ТК ТВЧ на деталь чертежа подсборки
--------- ТК ЧПУ на деталь чертежа подсборки
3. Реализовал ее и отработал с конструктором и технологом. Народ в целом остался доволен.

Если не возражаете, у меня есть несколько вопросов по сути работы с сабжем.
1. Конструктора используют CAD T-flex, который вставляет в сборочные чертежи информацию о файлах с подсборками, т.е. работает не с одним файлом, а сразу с пакетом. Хранить всю сборку в одном объекте нет смысла, т.к. струткура документации нужна технологу в развернутом виде. Чего посоветуешь? Может, написать процедуру для выгрузки - загрузки файлов пакетом?
2. Нет ли возможности открывать файлы (word, например) командой Чтение в режиме read-only? Реально, человек может долго редактировать, потом закрыть, сохранив файл вникуда
3. Самое интересное. У меня есть объект, т.н. Производственный График, стержень документооборота. Его хорошо было бы представить в виде таблицы реляционной БД, в которую
а) вносились бы новые записи о заказах
б) делались отметки о выполнении текущих работ
г) делались выборки для различных служб завода
Вот, нет ли в TDMS возможности писать напрямую в БД, на которой он работает? Т.е. чтобы я себя мог чувствовать уже совсем как в Делфи

TDMS мне чем дальше, тем больше нравится своей логичностью и гибкостью. Заранее спасибо за помощь!
Luka
ТДМС 3 - тестируем на баги -))

Синхронизация с доменом - без бутылки не разберешься... А я не пью -((
Alxd
Я на работе тоже не пью, однако именно на работе импорт почти заработал. Сначала после вызова команды импорта в окне выбора импортируемых пользователей появился мой домен, а затем и список пользователей. Вот радости то было! Однако после выбора меня любимого, равно как и другого пользователя и нажатия на "красную" кнопку получил облом. Типа пользователь не найден! Вот-с dulya.gif

Отрадно, что работает возврат значений атрибута пользователя через код.
Sub Form_BeforeShow(Form, Obj)
dim attr_user
set attr_user = ThisObject.Attributes("ATTR_INC_USER")

dim user
set user = attr_user.User

dim attrs
set attrs = user.Attributes
dim office
set office = user.Attributes("ATTR_OFFICE")

dim static1
Set static1 = Form.Controls("STATIC1")

static1.Value = attrs.Count
for each attr in attrs
static1.Value = static1.Value & attr.Description & attr.Value
next
end sub

Однако не радует, что цвет контрола низя менять. Хреново sad.gif А я так надеялся.

Но при этом можно менять цвет внутри выборки! Через RowFormat и CellFormat получаем объект TDMSTextFormat и правим! Улет! Наглядно!
Luka
А я фейс контроль не прошел.. biggrin.gif

Наглядно... звиздишь, скриншот давай.. -)))
Alxd
Да без проблем, но как их прицепить на форум?
Luka
Во.. еще раз напомню, что нового в ТДМС 3.

Основные системные новшества
Наследование типов объектов
- Абстрактные типы объектов
- Множественное наследование
- Динамическое (позднее) связывание
Новый тип данных
- Атрибуты типа таблица
- Доступ через API
Профили пользователей
- Возможность настройки интерфейса пользователя по профилю
- Автоматизация управления Рабочими столами профилей
Режим безопасного просмотра документов
- Встроенная программа просмотра файлов поддерживает защищенный режим просмотра «Только в памяти» (нет прямого доступа и возможности сохранения файла).
Новый инструмент управления базами данных
- Основные функции управления базами данных выведены в отдельное приложение
- Новый инструмент обновления версий TDMS по сети
- Обновление базы с возможностью вывода списка подключенных пользователей и рассылки сообщений
- Встроенная возможность создания/восстановления резервных копий баз данных
- Подключение и автоматическая дистрибуция низкоуровневых программных надстроек (Add-Ins)
Улучшена масштабируемость
- Новая идеология подключения файловых серверов
- Кэширование файлов при работе через файл-сервер
- Кэширование файлов на рабочем месте
- Реализация атрибутов типа таблица на физическом уровне СУБД
Реализован механизм подписей
- Системная реализация подписей
- Возможность автоматического и программного управления подписями
Качественно улучшены
Новое свойство иерархической связи
- Первичная (главная) связь, образуемая в момент создания объекта
- Общее системное свойство у потомков «Родитель».
- Возможность переопределения первичной связи
Расширение свойств пользователя и подразделений
- Дополнительные атрибуты пользователя, подразделений
- Дополнительные атрибуты связи пользователей и подразделений
Более гибкая модель работы с классификаторами
- Классификаторы выделены в самостоятельное понятие
- Классификатор можно привязать к произвольному количеству атрибутов
Доработана почтовая система
- Возможность авторизованного просмотра почты других пользователей
- Автоматическая пересылка, уведомления об отсутствии пользователя, свойства "не доставлять до" и "Недействительно после"
Доработан импорт/экспорт
- Экспорт/импорт внесенных изменений
- Введены режимы импорта (оставить, заместить, создать версию)
- Экспорт/импорт данных вместе с правами доступа (ролями)
Улучшения в пользовательском интерфейсе
Настройка отображения листа
- Выбор отображаемых колонок
- Фильтрация
- Сортировка
- Форматирование вывода данных: установка шрифта, цвета, границ
Выборки на формах
- Результат работы выборки может быть отображен непосредственно на форме объекта
Управление элементами форм программным образом
- Управление элементами форм: видимость, доступность, формат, расположение и размеры
Инициализация атрибута типа ссылка на объект
- Предварительная фильтрация объектов по результатам запроса
- Настройка способа отображения результата запроса: таблица или дерево
Управление контекстным меню
- Программное переопределение контекстного меню
- Запуск пользовательских команд на группе объектов
Новые средства настройки системы
Качественно переработанный инструмент по созданию выборок
- Объединения свойств разных типов объектов
- Визуализация связей
- Более простой и гибкий мастер
- Использование в одном запросе других выборок
- Получение результатов выборки непосредственно в редакторе
- События на выборках
Мастер универсальных отчетов
- Excel
- List&Labels (встроен в систему)
- Crystal Reports
Переработанный редактор скриптов
- Немодальное окно редактора
- Диалоги настройки команд, атрибутов, пользователей
- Свойства системных элементов
Категории системных объектов
- Произвольная группировка системных свойств
- Быстрая навигация по категориям
Системные обработчики
- Общесистемные события
- События на профили
- События по таймеру
Дополнения в API
- Передача функциям параметров произвольного типа
- Дополнительные диалоговые окна
- Дополнительные события
- Словари, сохраняемые переменные
- Расширение/дополнение системных и частных свойств и методов

В последних сборках может и еще чего, может кто и поделится (надежда последней)
DIvan
Странное чувство, будто программу дописывали не те люди. Большинство изменений введены несколько поперек основной идеологии, ИМХО.
1. Логин теперь не удастся сделать в виде "Фамилия И.О.", годится только латиница. Но после создания логина его можно внаглую сменить в БД TUser, и все прекрасно работает.
2. Запустить TDMS под Oracle 10g опять не удалось. В отличие от 2.хх версии логин TDMS создается в БД Oracle уже не в состоянии locked, так что прогресс явно налицо smile.gif Будем надеяться!
3. Я так и не разобрался, как заполнить классификатор. Экспортированные классификаторы из 2.хх работают, но как вызвать диалог добавления узлов классификатора, совершенно не ясно.
4. Экспортом из 2.хх можно загрузить структуру предприятитя, список сотрудников (хеши паролей будут утеряны), структуру объектов, объекты и связанные с ними файлы. У меня также потерялись все права на доступ к объектам. И зачем не сделали одну процедуру - вызрузить ВСЕ? И потом загрузить ВСЕ.
4.1. К прияным новостям относится возможность загрузить классификатор из формата Excel. Формат - пары значений КОД ЗНАЧЕНИЕ в соседних ячейках. Называться классификатор будет по имени файла Excel.
5. Можно пользовать файлсервер от 2.хх
5.1 Пароль на доступ к файлсерверу TDMS хранится в БД в открытом виде. Так глупо, что даже странно.
Будем смотреть дальше...
Словом, ощущение двойственное. Жалко, что инструкции нет - в 2.хх она была часто выручала.
Luka
Цитата
3. Я так и не разобрался, как заполнить классификатор

Перед глазами нет, но работает. Чего-то там где-то правой кнопой. Будет под рукой - отпишусь..
Цитата
И зачем не сделали одну процедуру - вызрузить ВСЕ? И потом загрузить ВСЕ.

Абсолютно согласен, хорошо, когда данных мало..
Цитата
5.1 Пароль на доступ к файлсерверу TDMS хранится в БД в открытом виде.

Я и внимания не обратил ... -(
Luka
По классификаторам. Создавать и управлять - два раза быстро кликнув маусом на Классификаторы, можно через верхнее меню Системные -> Классификаторы...
В который раз, сидишь и вспоминаешь.. если б хоть каждый день.. тогда б отложилось..
Alxd
Обнаружен баг в TDMS. Когда создаешь выборку в ветке Системые->Выборки то все вроде ок. Но если опосля поменять в ней колонки местами, то фиг увидишь результат своих перестановок. Колонки будут в результате отображаться как попало. Переставляются себе на уме. Приходится удалять их все и заново создавать! (обходной путь)
Обходной путь хоть и найден, а все равно фигово.

И не понятно, почему не дана в API такая очевидная функция, как ColumnWidth в TDMSSheet? А также ColumnVisible? Ведь очевидно, что если добавляется колонка, то ее размеры придется править, а также управлять видимостью. Очевидные вещи спрятали! Зачем?! Однако состояние ширины колонок TDMS запоминает, т.е. если я ширину колонки мышкой уменьшил до нуля, то после закрытия и открытия TDMS вновь, ширина колонки сохраниться. Отрадно. Но не исключает выше описанные функции.
Luka
Alxd
Утречко доброе..
Ты бы уж сразу про обходные тоже -))))
DIvan
Цитата(Alxd @ 11.04.2007 - 02:29) *
Обнаружен баг в TDMS. Когда создаешь выборку в ветке Системые->Выборки то все вроде ок. Но если опосля поменять в ней колонки местами, то фиг увидишь результат своих перестановок. Колонки будут в результате отображаться как попало. Переставляются себе на уме. Приходится удалять их все и заново создавать! (обходной путь)
Обходной путь хоть и найден, а все равно фигово.

Можно поступить проще - не пересоздать выборку заново, а поменять порядок полей в ветке Системные->Выборки. При этом порядок отображения полей в выборке на рабочем столе тоже изменится.
Alxd
Дык он меняется некорректно у меня! Меняю порядок полей, а фиг, по своему становятся.

Еще один недочет/баг вроде нашел. Не смог найти в API функцию, которая вернет TDMSObjects всех объектов, которые использовали указанный TDMSUser. Что-то типа TDMSUser.Uplinks. А еще лучше, если с фильтром по типам объектов smile.gif Типа TDMSUser.Uplinks(filter_as_object_name).

В документации на странице "TDMSQuery Объект" ищем описание свойства "Sheet Результат выполения выборки. Таблица." и в нем опечатка smile.gif

И я никак не пому, нафига нужны параметры в выборке??? Вернее понятно для чего, но как их использовать? Например, как указать, что объект должен быть найден с учетом параметра?
DIvan
Цитата(Alxd @ 11.04.2007 - 05:49) *
Дык он меняется некорректно у меня! Меняю порядок полей, а фиг, по своему становятся.

Если редактировать выборку в диалоге, а не перетаскивать столбцы в окне просмотра результатов выборки, то порядок изменяется, и запоминается. Хотя и не без глюков, но после нескольких попыток результат достигается.
Выборка физически сохраняется в TQueryDefs поле F_QUERYPARAMSD, но при изменении текста в этом поле выборка просто рушится sad.gif Видимо, я чего-то не учитываю.
Luka
_zickey
Цитата
вопрос такой: без познаний в SQL и Оракле сам поставить эту штуку смогу? хелпы вроде умею дальше второй страницы читать... или бежать за пивом для "головастых"?

Понимаю вопрос глупый, но... какбы времени свободного мало и если придется выделываться с ТДМС долго, то... может ну его.


Можно и без знаний SQL. Но без понимания зачем, для чего - лучше не соваться..

Цитата
Подскажите, какой пароль на базу TDMS?
Пароль, что в pdf-ке не пляшет!


Что значит на базу? При создании?
Пароль тот что был поставлен на админа MSDE, MS SQL или Oracle при установке этих СУБД..
_zickey
2 Luka
Спасибо, буду пытаться...

Цитата
Можно и без знаний SQL. Но без понимания зачем, для чего - лучше не соваться..


А почему у тя сомнения что я понимаю зачем и для чего? ТДМС мне порекомендовали разработчики, объяснив зачем и для чего...
Luka
Цитата
А почему у тя сомнения что я понимаю зачем и для чего?

Нет. Я высказал, при каких условиях лучше не лезть, что бы не терять время. В остальных - можно. -))
_zickey
2.gif Приступил к тесту своего интеллекта, тьфу! к установке ТДМС, ждать нескоро...

Luka! спасибо, что не дал моему мозгу расслабиться и выложил третью версию smile.gif
caspara
Luka!
Romeo пытается ставить SQL, тот что при инсталляции, вводит инсталляху с параметром из коммандной строки (из инструкции в ПДФ), пытается запустить SQL-администратор - пароль не воспринимает... wallbash.gif

Или подскажи, как правлиьно поставить MS SQL, который идет с TDMS!
Alxd
Тот что идет с TDMS - это MSDE. Фтопку его. Не парься. Поставь полноценный MS SQL 2000 SP4. При установке укажи mixed для авторизации, соответственно укажи пароль для пользователя SA. По нему всегда в базу войдешь. И будет тебе счастье, если ты об этом.
DIvan
Alxd, хочу узнать твое мнение еще по одному поводу. Я таки обошелся без прямого доступа к SQL - таблицам, реализовал все в виде дерева объектов, как TDMS и предполагает. Дерево, если вкратце, такое
Папка с заказами
--Заказ
----Спецификация
------Деталь
У детали уже около десятка различных атрибутов, часть из которых заполняет конструктор, а часть - технолог. У технолога самая главная часть работы - написать технологию по типу
1. Входной контроль
2. Фрезеровка
3. Разметка
4. Расточка
5. Токарная
6. Разметка
7. ....
20. Слесарная.
Т.е. надо составить цепочку операций из стандартных вариантов, но при этом учесть еще, что в каждом из элементов иногда нужно указать параметры операции (условно 1 строка текста на каждый элемент).
Еще было бы неплохо иметь возможность сохранять готовые цепочки типовых технологий для дальнейшего использования. Количество элементов в цепочке неопределено, но не более 30, скажем.

Как бы это лучше реализовать? На ум приходит текстовое поле, куда заносятся готовые слова из классификатора. Но я хочу получить не просто текст, а еще и возможность сортировки деталей заказа по наличию тех или иных характерных элементов в цепочке.
Alxd
Каждая технологическая операция - один объект со своими атрибутами и порядоковым номером. Подчинена объекту Технологический процесс или технологическая карта. Причем технологическая операция может в составе иметь себя же, тогда можно делать сложные ветвящиеся деревья технологических операций. Вот и все.

Под типовые, создай отдельную папку, в которую складывай целые цепочки. Можно их туда копировать, скажем.

Lotsia PDM Plus научила меня не скупить на объекты разных типов. Потом проще жить.
DIvan
Цитата(Alxd @ 13.04.2007 - 05:44) *
Каждая технологическая операция - один объект со своими атрибутами и порядоковым номером. Подчинена объекту Технологический процесс или технологическая карта. Причем технологическая операция может в составе иметь себя же, тогда можно делать сложные ветвящиеся деревья технологических операций. Вот и все.

Под типовые, создай отдельную папку, в которую складывай целые цепочки. Можно их туда копировать, скажем.

Lotsia PDM Plus научила меня не скупить на объекты разных типов. Потом проще жить.

В плане интерфейса не лучший выбор. Представь, то ли дело создать один объект, то ли 20 eek.gif
Мои технологи и так компьютера бояцца, а за такое меня просто убъют, и я их понимаю smile.gif
Хотя, возможен компромис - все объекты-операции создаются скриптом из одной формы. Что, если каждая Операция - это абстрактный класс, входящий в состав абстрактного класса Технологическая карта? Когда создается экземпляр Технологической карты, он, в свою очередь, может создать несколько экземпляров входящих в него Операций. Но как это изобразить на одной форме тремя доступными в TDMS контролами?
Alxd
2 DIvan
Я тебе про идеологию, ты мне про реализацию. О разных вещах говорим.
То, как ты (или не ты) будешь создавать объекты, дело десятое, главное четко представить себе, как храниться информация в системе, чтобы потом ее в любой момент и в любом разрезе оттуда взять. При этом не идти поперек самой системы.

Если у тебя возникала необходимость влезть внутрь базы TDMS, то уже стоило задуматься, может ты что-то не так делаешь? Ведь копание в кишочках - последнее дело, когда не найден "ровный" путь средствами самой TDMS. Не нарушай логику и идеологию системы и все будет ок.

А то, что кому то придется вводить больше или меньше, твоя забота. Придумай пути минимизации операций. Чтоб большая часть атрибутов заполнялась автоматом, другая часть только спрашивала значения и только третья требовала ввода руками. За это тебя не съедят, а наоборот благодарить будут.

И еще - лирика. Когда внедряешь новую систему (aka TDMS), обязательно с ней предложи конечному пользователю какое-то удобство вместе с ней. Какое-то преимущество, чтобы не выглядело заменой одного карандаша на другой, а обязательно с чем то клевым. Удобным до писка. smile.gif Так проще всем.
DIvan
Цитата(Alxd @ 13.04.2007 - 07:04) *
2 DIvan
Я тебе про идеологию, ты мне про реализацию. О разных вещах говорим.
То, как ты (или не ты) будешь создавать объекты, дело десятое, главное четко представить себе, как храниться информация в системе, чтобы потом ее в любой момент и в любом разрезе оттуда взять. При этом не идти поперек самой системы.

Если у тебя возникала необходимость влезть внутрь базы TDMS, то уже стоило задуматься, может ты что-то не так делаешь? Ведь копание в кишочках - последнее дело, когда не найден "ровный" путь средствами самой TDMS. Не нарушай логику и идеологию системы и все будет ок.


100% согласен! Если тебе хочется лезть в потроха - значит, ты не понял замысла создателя программы.
Я согласился, подумал. и реализовал проект обычным деревом TDMS. Ты же понимаешь, чтобы перестроиться с SQL на TDMS мне потребовалось время smile.gif

Цитата(Alxd @ 13.04.2007 - 07:04) *
А то, что кому то придется вводить больше или меньше, твоя забота. Придумай пути минимизации операций. Чтоб большая часть атрибутов заполнялась автоматом, другая часть только спрашивала значения и только третья требовала ввода руками. За это тебя не съедят, а наоборот благодарить будут.

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

Цитата(Alxd @ 13.04.2007 - 07:04) *
И еще - лирика. Когда внедряешь новую систему (aka TDMS), обязательно с ней предложи конечному пользователю какое-то удобство вместе с ней. Какое-то преимущество, чтобы не выглядело заменой одного карандаша на другой, а обязательно с чем то клевым. Удобным до писка. smile.gif Так проще всем.

Я этот намек уловил сразу, да и сам знаю, что без "сладкого" человек не станет хлебать "первое" и "второе", которое ты приготовил smile.gif

Если мы друг друга правильно поняли в идеологии, подскажи мне теперь немного в практической области: как же все-таки создавать такое большое кол-во объектов (технологические цепочки и операции), не нагружая пользователя? В классической идеологии TDMS, если я не ошибаюсь, объекты создаются либо вручную (по одному), либо копированием (по одному или группой). Мой случай явно потребует групповых операций создания объектов. Что посоветуете, коллега? confused_1.gif
Alxd
А API на что? Там же можно через VBScript хоть черта с рогами наделать!
Пиши код, который создает объект и добавляй его к существующему. Можешь кнопок наклепать на форме технологической карты - десяток. Каждая под свой объект с атрибутом.

Если хочешь более детальную подсказку, более детально опиши задачу.
DIvan
Цитата(Alxd @ 13.04.2007 - 10:15) *
А API на что? Там же можно через VBScript хоть черта с рогами наделать!
Пиши код, который создает объект и добавляй его к существующему. Можешь кнопок наклепать на форме технологической карты - десяток. Каждая под свой объект с атрибутом.

Если хочешь более детальную подсказку, более детально опиши задачу.

Я извиняюсь, если утомил своими вопросами, но ведь все чайники ведут себя одинаково 2.gif
Я подозреваю, что в АПИ есть функции создания объектов, я практически уверен, что из VB - скрипта их можно запустить. Но ведь я не знаю о возможностях TDMS API, иначе я не был бы 2.gif , и не задавал бы вопросы. А ты, как практик, должен видеть гораздо больше возможностей, чем я. Возможно, динамическое создание объектов - не лучший путь.
Поэтому давай я еще раз постараюсь сформулировать задачу, может, на этот раз и получится что-то.
Итак, существует дерево объектов, листья которого - детали изделия. Многие из этих деталей требуют описания технологии изготовления в виде текста, состоящего из упорядоченного набора стандартных операций + уточнений к ним (например стандартная операция "копать" - выбрано из классификатора и уточнение "полчаса" - введено вручную). Логично предположить, что такие технологии удобно было бы сохранять в виде шаблонов для дальнейшего использования.
Пример технологии:
1. Копать канаву полчаса
2. Перекурить
3. Положить в канаву кабель П258
4. Закопать всю канаву
5. Отмыть лопату.
Кроме того, требуется делать выборки деталей, содержащих в своей технологии определенные операции (ТВЧ, огнерез, копать канаву) для выдачи задания соответствующим подразделениям.
Давай не будем останавливаться на технических подробностях, а просто подумаем, какой для этой задачи нужен интерфейс.
1. Нужно видеть всю цепочку одновременно
2. Нужно иметь возможность переставлять операции местами
3. И редактировать, разумеется, тоже
В Делфи я бы не колебался: TGrid с полями
- порядковый номер,
- выпадающий спискок операций,
- комментарий.
Может быть, нам стоит использовать табличный тип атрибута для этой цели? Иного способа поместить Grid на форму, похоже, нет.
Заранее тебе спасибо за ответ, причем торопиться не стоит - я с завташнего дня на неделю уезжаю в отпуск. 23 буду опять здесь, с новыми силами smile.gif
Alxd
Все таки каждая технологическая операция должна быть отдельным объектом. Возможно даже для каждого вида операции свой объект, если отличия в атрибутике велики.
Можешь накидать кучу типовых операций в одну папку или с подпапками. Создать у детали или технологической карты атрибут типа таблица с атрибутом типа ссылка на объект и выбирать из типовых операций подходящие.
Однако лучше, как мне кажется, создавать каждую операцию либо на базе типовой, либо вручную, нумеровать, описывать и комментировать.

Технологическая карта
|
---Операция 1 (Номер, Наименование, Время, Комментарий)
|
---Операция 2 (Номер, Наименование, Время, Комментарий)
и т.д.

А технологическая карта обладает атрибутом ссылающимся на объект типа деталь (горизонтальная связь).

Примерно так.
MCAD
Цитата(Alxd @ 13.04.2007 - 21:42) *
Все таки каждая технологическая операция должна быть отдельным объектом.

Ну блин...
Деталь (сборка)
--> Технология (понятие, а не объект)
--> --> Операция (тип) Атрибуты : оборудование, оснастка, вспомогательные материалы, СОЖ
--> --> --> Переход (тип) Атрибуты: инструмент, меритель
--> --> --> --> Параметры перехода (атрибуты состава) режим резания, скорость, и фиг его знает, что еще ВАМ понадобится!!! причем на деталь, на заказ, на партию деталей, не завершенку\брак\покупнину.
PS:
Технологическая карта , сама по себе, бумажка. Ради неё не стоит заниматься автоматизацией можно и от руки написать. Тут рядом тема плавает про технологию...
standart
Нифига не разберусь как в ней работать, чего делать! подскажите , плз, с чего начинать, может пример в видео у кого есть?
Alxd
2 standart
Может ты для начала определишься, что именно ты хочешь с TDMS делать? Какие задачи решить? Что первое хотел бы в ней реализовать? Тогда и ответ, глядишь, найдется... опиши!
Luka
Alxd
Спишь же с ТДМС. Нарисовал бы мелкую структурку и показал, как её набросать в ТДМС. Простенькую. Объекты, атрибуты, формы.. Типа, с чего начать...
Полчаса работы, народ счаcтлив будет.. От СиСофта не дождесся, только если за штуку зеленых персонально.. -)) Врубил видеозахват на компе и поехал.. Я постоянное не сижу на ТДМС, вспоминать придется... рука дрожжать будет.. -)))

Нажмите для просмотра прикрепленного файла
Alxd
Ты бы, Luka, спал побольше по ночам и рука бы не дрожала. Скриншот он захотел... а как я его прикреплю, если у меня нет кнопочки аттач в окне Replying to TDMS?

А с кем я сплю, не твоя забота. Мне еще и Delphi нравится. Надо ведь ATable под 2007 писать.... иногда. А то будут пользователи ведомость рабочих чертежей руками клепать имея при этом TDMS!

А вот и скриншот.
http://forum.lavteam.net/index.php?act=mod...=si&img=613
Luka
Alxd
Ну да.. у тебя "толше".. wink.gif
Alxd
Думаю через месяц будет примерчик еще "потолше" smile.gif

Разобрался я с выполнением выборок (query) с параметрами. Ура! Оказывается все просто и легко. Просто для указания условия поиска с параметром надо не ждать выпадающий список, а открыть контекстное меню. Кто б догадался...

Проверил возможность предварительного просмотра в TDMS.
1. Использовал CsViewer - не пашет почему то. Не показывает ни один формат файла, если кто знает почему - скажите.
2. Установил CsView, подцепил к TDMS. Сначала TDMS молча закрывалась при попытке хоть что-то поглядеть. Потом вроде они подружились и просмотр заработал! Вау!
3. Установил для интереса DWG True View. Подцепил к TDMS. Первая загрузка просмотрщика такая долгая, что ОС думает, что надо бы переключиться к задаче вручную. Жму повтор. Все ок. Подгрузился True View. Однако в окне просмотре серое недоразумение которое исчезает при первом же зуммировании. Клево! Видны закладки Model, Лист1 и Лист2. Можно даже печатать, естественно все настройки печати доступны - Autodesk таки писал. Вот-с.

Скриншот с DWG True View прилагаю http://forum.lavteam.net/index.php?act=mod...=si&img=615
Luka
Alxd
рамка это хорошо.. а ABS, СПДС и пр.?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2010 IPS, Inc.