Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > C# Документооборот для бедных. Как лучше реализовать?

C# Документооборот для бедных. Как лучше реализовать?

Ответ
Поиск в этой теме
Непрочитано 05.09.2011, 17:01 #1
C# Документооборот для бедных. Как лучше реализовать?
Petrov-Vodkin
 
Регистрация: 30.10.2010
Сообщений: 123

Offtop: Работаю в маленькой фирме, соотв. проекты чаще всего приходится делать маленькие, но в большом количестве.
Запарки с оформлением короче, как у взрослых


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

Организовал всё следующим образом:
- Чертежи просто разложены по папкам на сервере (ни в какие базы данных не загоняются).
- Там же на сервере лежит файл базы данных, в нем получилось под 50 текстовых полей на каждый проект.
- Из AutoCAD-a вызывается окошко для редактирования карточки конкретного проекта (привязка по № проекта идет).
- Записи попадают в чертежи и документы Office через таблицу пользовательских свойств (см. картинки).

Работаем по такой системе 3й месяц, вроде все довольны

Собственно хочется узнать:
- На сколько такой подход жизнеспособен, может как-то по-другому надо было делать?
- Какие могут быть подвоные камни, если наша фирма не дай бог начнет расти?
=========================================
Дополнено:
Выложил архив с программой. Инструкция внутри.

Миниатюры
Нажмите на изображение для увеличения
Название: Form.JPG
Просмотров: 1202
Размер:	61.0 Кб
ID:	65735  Нажмите на изображение для увеличения
Название: OOo.jpg
Просмотров: 939
Размер:	41.4 Кб
ID:	65736  Нажмите на изображение для увеличения
Название: ACAD.jpg
Просмотров: 940
Размер:	46.1 Кб
ID:	65737  

Вложения
Тип файла: zip DBREDAKTOR.zip (143.9 Кб, 540 просмотров)


Последний раз редактировалось Petrov-Vodkin, 05.09.2011 в 22:19.
Просмотров: 20702
 
Непрочитано 05.09.2011, 17:59
#2
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Проект нежизнеспособен на перспективу.

1. Файл базы данных - это файловый сервер? Ненадолго. Заполнится БД, появится больше пользователей и работа станет. При файловой работе по сети каждый раз качаются все данные, забивая сеть и память.

Надо сразу делать сервер баз данных, даже если он сначала будет локально работать. Это позволит масштабировать работу, при желании хоть в Интернет, хоть где угодно БД разместить. Причем это можно сделать не меняя в программе ни строчки кода.

2. 50 полей? Да ещё текстовых? В одном файле-таблице-БД? Совершенно неверно.Так базы данных не делают! Должно быть много таблиц, связанных отношениями. Справочники и прочее. А вот выборка на каждый проект может и 50, и 250 сведений иметь, но собранных из разных таблиц. Подробности - в любом учебнике.

Советую хорошенько ознакомиться с теорией и практикой БД. В таких работах самое главное - проектирование базы данных. Даже в самых примитивных системах документоборота для самых бедных обычно имеются десятки таблиц, связанных отношениями.
ShaggyDoc вне форума  
 
Непрочитано 05.09.2011, 19:12
#3
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
Файл базы данных - это файловый сервер? Ненадолго. Заполнится БД, появится больше пользователей и работа станет. При файловой работе по сети каждый раз качаются все данные, забивая сеть и память.
Можно, по мере обращения приложения к тем или иным файлам из такой базы, кэшировать их на локальных компьютерах, таким образом постепенно снижая сетевой трафик почти до нуля. Останутся обновления, которые можно выкладывать на сервере, например, в виде zip-архивов с заранее известными именами, скажем update1.zip, update2.zip и т.д. При старте AutoCAD всякий раз проверяется наличие очередного файла обновления на сервере и если такой архив присутствует, то он копируется на лок. компьютер и распаковывается (разумеется, программно), тем самым заменяя устаревшие файлы и добавляя новые. Как то так, по крестьянски.
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 05.09.2011, 19:31
#4
Tyhig

Оснащение проходки горных выработок, ПОС, нормоконтроль, КР, АР
 
Блог
 
Регистрация: 30.01.2008
Ленинград
Сообщений: 18,695


Да фигня это всё. В РФ русских программ таких нет. За рубежом свои реалии и нормы.
Сами вы не сделаете.

Бумажный документооборот (или так же но письмами в аутлуке) и сознательность сотрудников - ключ к решению проблемы.
Ну и ГИПов надо жёстко контролировать главному инженеру. Очень жёстко...
__________________
"Безвыходных ситуаций не бывает" барон Мюнхаузен
Tyhig вне форума  
 
Непрочитано 05.09.2011, 19:37
#5
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
Да фигня это всё.
"...Ну и дураки же вы все" (с) (А. Райкин)
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Автор темы   Непрочитано 05.09.2011, 20:17
#6
Petrov-Vodkin


 
Регистрация: 30.10.2010
Сообщений: 123


Объясню поподробнее:
"Документооборот" - слишком громко я ляпнул. На самом деле у нас всё очень маленькое.

Проектный отдел - целых 3 человека.
Раньше каждый выполнял небольшие проекты целиком и хранил у себя на компьютере.
Как только пошла путаница и стали зашиваться - нарекли один из компьютеров "сервером", стиснув зубы разобрали свои помойки и сделали общий файловый архив с чертежами. Стали уже работать по сети.

Опять стали зашиваться, хотелось побыстрее работать. Теперь моей целью стояло собрать воедино всю информацию о проектах (зачем объяснять думаю не нужно) и заодно немного автоматизировать рутину. Выбрал для этого простой файл базы данных, в котором хранятся все названия проектов, сроки, координаты и прочее. Редактируется он непосредственно из формы в автокаде, попутно заполняя штампы основных надписей и прочую муть.

Сами файлы чертежей никакого отношения к БД не имеют и могут находиться где угодно в сети. Принадлежность конкретного чертежа к своей записи в БД определяется просто по номеру проекта, который записан в пользовательских свойствах.
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
2. 50 полей? Да ещё текстовых? В одном файле-таблице-БД? Совершенно неверно.Так базы данных не делают! Должно быть много таблиц, связанных отношениями. Справочники и прочее. А вот выборка на каждый проект может и 50, и 250 сведений иметь, но собранных из разных таблиц. Подробности - в любом учебнике.
Так и хотел сначала сделать, но знаний не хватило.
Petrov-Vodkin вне форума  
 
Непрочитано 05.09.2011, 21:03
#7
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
В РФ русских программ таких нет
"А мужики-то не знают!" (С) Такие программы были с самого появления ЭВМ. А уж сейчас-то.... Сейчас по документообороту надо, чтобы он был уже единым и межведомственным.

А уж у автора темы вообще простейшая учетная задача, на уровне курсового. Только её надо правильно делать. Чтобы потом всю жизнь не переделывать.

Разумеется, надо сделать электронный файловый архив чертежей. Только с жестким порядком. Возможно - электронный архив типовых решений. И система учета документации - это база данных.

Как сделать - я описывал в книге "САПР на базе AutoCAD - как это делается".
ShaggyDoc вне форума  
 
Непрочитано 05.09.2011, 21:11
#8
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Лично для меня писать "заполнитель" файловых данных геморней, чем реализовать это через какую-нибудь" стандартную" БД. Необходимый SQL минимум изучается за 2 дня. У меня в "библиотеке" есть 3 (на 30 строк кода все всесте) функции по работе через ODBC: Создать соеденение, выполнить sql запрос, выполнить и получить список списков ответа. 98% всей работы с БД они закрывает - ни надо никакого гемора с файлами и пр. Работать с БД гораздо проще, "совместемей" и удобней - почитайте что-нибудь по БД и SQL - там ничего сложного нет - переделаете Ваши формы под БД и всего делов.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 05.09.2011, 21:58
#9
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
У меня в "библиотеке" есть 3 (на 30 строк кода все всесте) функции по работе через ODBC
А можно глянуть?
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 05.09.2011, 22:19
#10
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


По идее там ничего сложного быть не может - объявить коннект к БД, выполнить запрос, закрыть коннект к БД.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.09.2011, 22:24
#11
Petrov-Vodkin


 
Регистрация: 30.10.2010
Сообщений: 123


К первому посту прицепил архив с программой. Компилировал под AutoCAD 2011 rus. Инструкция внутри.
Цитата:
Сообщение от Дима_ Посмотреть сообщение
Лично для меня писать "заполнитель" файловых данных геморней, чем реализовать это через какую-нибудь" стандартную" БД.
Так я и работаю со стандартной БД. Файл Access (.mdb) у меня там с помощью SQL редактируется, а как же иначе.
Petrov-Vodkin вне форума  
 
Непрочитано 05.09.2011, 22:26
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Цитата:
Сообщение от Petrov-Vodkin Посмотреть сообщение
Файл Access (.mdb)
Мсье знает толк в извращениях... Пока не поздно, советую перейти на любой другой движок. Хоть на Firebird.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.09.2011, 22:39
#13
Petrov-Vodkin


 
Регистрация: 30.10.2010
Сообщений: 123


Это ж первая проба пера была (с MSDN пример небось срисовал). Поумнею - обязательно улучшу )
Задача стояла "проколупать дырку" любой ценой, чтобы работа побыстрей и поорганизованней пошла.


"Не стреляйте в пианиста! Он играет как умеет..."
Petrov-Vodkin вне форума  
 
Непрочитано 05.09.2011, 22:51
#14
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Цитата:
Сообщение от Pastor Посмотреть сообщение
А можно глянуть?
Об чем речь, это "рекурсивка" в автолиспе подойдет для не очень больших таблиц (тыс до 20 записей) - т.к. хвостовая рекурсия не оптимизированна - где-то "валялась" то-же самое через while, но она "не красивая", до и в итоге все равно где предполагались большие запросы - в итоге пришлось "прогонять" не автолиспом - т.к. он "подторамаживал" на обработке.
Код:
[Выделить все]
 (defun connection (driver password)
  ((lambda (con)
     (vlax-invoke-method con "open" driver nil password nil)
     con)
   (vlax-create-object "adodb.connection")))

(defun runsql (con sql)
 (vlax-invoke-method con "execute" sql nil nil))
   
(defun getsql (con sql)
  ((lambda (list-rs list-field)
     (list-rs (vlax-invoke-method con "execute" sql nil nil)))
   (lambda (rs);list-rs
    (if (=(vlax-get-property rs 'EOF) :vlax-false)
        (cons (list-field (vlax-get-property rs 'Fields))
              (progn (vlax-invoke-method rs 'MoveNext)
                     (list-rs rs)))))
   (lambda (fld);list-field
     ((lambda (f-rec) (reverse (f-rec (1- (vlax-get-property fld 'Count)))))
      (lambda (i)
        (if (> i -1)
            (cons (vlax-variant-value
                    (vlax-get-property
                      (vlax-get-property fld 'Item i)
                        'Value))
                  (f-rec (1- i)))))))))
формат команд (connection имя_источника_данных пароль_или_nil) - возращает объект соединения
на всякий случай источники данных создаються в контрольная панель->администрирование->источники данных(odbc), можно их и не создавать, а использовать т.н. "строку подключения" - типа "driver={MySQL ODBC 3.51 Driver}..." - все расписывать не буду соответствующей литературы навалом.
(runsql соеденение sql_запрос) - выполнеят команду
(getsql соединение sql-запрос) - список списков запроса.
В автолиспе есть несколько подводных камней - не все типы данных он сможет преобразовать в лисп совместимые, работает "на прямую" только с ansi'шной кодировкой, ну и еще по мелочи - но для "большинства" операций этого функционала - за глаза.
Цитата:
Так я и работаю со стандартной БД. Файл Access (.mdb) у меня там с помощью SQL редактируется, а как же иначе.
тем паче - просто перейдите в "нормальную" БД+про реаляционную модель данных почитайте.
то Крыс - откравыть закрывать коннект "реально" только с локальной БД - с удаленой слишком долго.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 05.09.2011 в 23:12.
Дима_ вне форума  
 
Непрочитано 06.09.2011, 00:10
#15
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Дима_, а почему вы не используете функцию runsql в getsql
gomer вне форума  
 
Непрочитано 06.09.2011, 00:15
#16
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


А бог его знает - вначале getsql была (давно), а runsql из нее выдернута "для инсертов" - но идея хорошая.
P.S. Там "по идее" есть еще косячок - что на каждой записи ее длинна читается - хотя по логике она одинаковая вседа должна быть, но почему-то стандарт рекомендует на каждую смотреть - возможно в каких-то СУБД возможны разное количество полей, но я такого не встречал.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 06.09.2011, 01:37
#17
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Просто длина поля MEMO, по-моему, может быть переменной.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.09.2011, 10:34
#18
Petrov-Vodkin


 
Регистрация: 30.10.2010
Сообщений: 123


И всё-таки в голове у меня не укладывается:
Неужели в проектном отдельчике из трех человек (один из которых ГИП впридачу) правильным решением будет на одном из компов запускать сервер баз данных?
Смахивает на выстрел из пушки по воробьям...

Почитал тут немного про Firebird, какие-то головняки с русской кодировкой тут же всплыли...
А у меня файл базы данных меньше мегабайта, с проектами за пол года (на досуге можно заменить на .odb в рамках перехода на OpenOffice).
Petrov-Vodkin вне форума  
 
Непрочитано 06.09.2011, 11:35
#19
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Цитата:
Сообщение от Petrov-Vodkin Посмотреть сообщение
Неужели в проектном отдельчике из трех человек (один из которых ГИП впридачу) правильным решением будет на одном из компов запускать сервер баз данных?
А в чем здесь проблемма - все равно компьютер должен работать (что файл расшарить, что базу включить). Тут больше разговоров чем дела - если выделенный ip - можешь и "в интернет" выход настроить - ну будет "висеть" у тебя еще одна служба (посмотри в диспетчере задач сколько их там), а если ее правильно настроит, то никто ее случайно не сотрет, не испортит и пр. И тот-же OpenOffice прекрасно к ним подключаеться.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 06.09.2011, 11:50
#20
Сергей Дубина


 
Регистрация: 06.04.2009
Сообщений: 705


Цитата:
Сообщение от Petrov-Vodkin Посмотреть сообщение
Смахивает на выстрел из пушки по воробьям...
Это точно.
А вот когда объемы вырастут- тогда поменяется ваш социальный статус, и вы сможете приобрести готовую систему и переложить весь головняк на руководство или нового сисадмина, или закажете свою систему...
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > C# Документооборот для бедных. Как лучше реализовать?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что лучше подвесной кран или опорный? Albert Технология и организация строительства 22 31.05.2017 23:32
REVIT: как лучше разложить сэндвич панели по стенам и кровли? DJ AntOn Revit 6 14.08.2015 12:59
Какую марку алюминиевого листа лучше использовать? karandaw Машиностроение 31 04.05.2011 13:15
Неужели это правда, что мы стали жить лучше? dermoon Разное 224 19.08.2007 14:10
Что лучше: Mechanicks4 или Компьютерный справочник Анурьева? Getr Прочее. Программное обеспечение 20 25.11.2004 15:00