as1234
Век живи , век учись ))
Участник

Offline
Пол: 
Сообщений: 35
|
Вообще ничего так и не могу разобраться , не тот уровень наверно ))) Подумал о том что может можно сделать общую переменную или общее поле для всех этих документов ?
|
|
|
Записан
|
|
|
|
JohnSUN
|
Знаешь, у программистов есть такой прием: если долго бодаешься с каким-то фрагментом задачи (программы), который ну никак не хочет работать как задумывалось, нужно кому-нибудь подробно рассказать, что именно задумывалось, как ты это сделал и что получается не правильно... Причем слушатель совсем не обязательно должен быть программистом. Приблизительно в 20% случаев слушатель тычет пальцем в явную ошибку, которую ты просто не заметил. В остальных 4/5 случаев вдруг сам понимаешь, где нахомутал...
Не хочешь подробно, как для совсем неграмотных, рассказать как ставится задача, что за документы создаются, как с ними будут поступать после создания, что у них общее и чем отличаются, сколько разных людей с ними работают, и т.д., и т.п.?.. А то ведь больше месяца возишься с проблемой, а она всё ещё не решена.
|
|
|
Записан
|
|
|
|
as1234
Век живи , век учись ))
Участник

Offline
Пол: 
Сообщений: 35
|
Суть облегчить работу , при помощи автоматизации документов . В данном случае заполнения проектов , чтоб как говорят "ручками не забивать" . Суть в принципе такова , что есть основной файл в нем содержиться информация (Допустим код , название , и многое прочих) и нужно сделать так чтобы этаже информация появилась в нужных местах другого документа (в полях) . Я подумал этом можно сдлеать обьединив свойства пользолвателя в общие для двух документов . Тоесть открывая шаблон с теми же свойствами задать им значения что и в основном файле . Почему именно свойства пользователя , наверно потому что у них при надобности легче всего редактировать значение и они есть в каждом документе . Незнаю понятно или нет  Открываем документ , в нем задана информация , из него с помощью макроса запускаем шаблон нужного нам проекта , и нужно так чтобы поля заполнились информацией именно для этого проекта
|
|
« Последнее редактирование: 17 Май 2012, 18:11 от as1234 »
|
Записан
|
|
|
|
JohnSUN
|
О, проясняется дело... А давай еще чуток подробнее, а? Суть облегчить работу , при помощи автоматизации документов Это типа эпиграфа?  Вступительная часть, для разгону  В данном случае заполнения проектов , чтоб как говорят "ручками не забивать" . Что за проекты? Это пачка документов или цепочка? В смысле, вбиваем куда-то данные и получаем фиксированный набор документов, всегда один и тот же? Или создаем основной документ (договор, что ли?), в нем заполняем набор полей... Приходит время создания очередного документа в проекте - дергаем шаблон, создается новый документ (например, смета), макрос спрашивает "На основании какого договора?", указываем документ-основание, макрос всасывает имеющиеся поля и их значения, отыскивает в текущем (новом) документе такие же поля и по имени заполняет их родительскими значениями... Если находит еще какие-то поля, для которых нет аналогичных в документе-основании, пристает с вопросами "Введите то-то..." пока не заполнит их все. Документ готов, сохраняется. Следующий шаблон запросит документ-основание - укажем или договор или смету, макрос по той же схеме обработает поля очередного документа... Суть в принципе такова , что есть основной файл в нем содержиться информация (Допустим код , название , и многое прочих) и нужно сделать так чтобы этаже информация появилась в нужных местах другого документа (в полях) . Я подумал этом можно сделать объединив свойства пользователя в общие для двух документов. Но объединять оба документа в один просто не хочется? Или почему не понравился вариант, когда все-все по проекту собрано в одном файле? Почему именно свойства пользователя , наверно потому что у них при надобности легче всего редактировать значение и они есть в каждом документе. Ну, это не единственные элементы, которые есть в каждом документе  Незнаю понятно или нет  Открываем документ , в нем задана информация , из него с помощью макроса запускаем шаблон нужного нам проекта , и нужно так чтобы поля заполнились информацией именно для этого проекта Бр-р-р... Только-только показалось, что понятно... И тут же опять - упс!.. Проект - это что?
|
|
|
Записан
|
|
|
|
as1234
Век живи , век учись ))
Участник

Offline
Пол: 
Сообщений: 35
|
"Вступительная часть, для разгону " а то Точнее это части проекта (П.с -сорри  ) , пояснительная записка , спецификация, смета, это и чертежи с рамками в которых тоже присутствуют поля . Первый документ всегда один и тот же . "в нем заполняем набор полей" нужной информацией и от туда впринципе будет браться информация для запускаемого шаблона . Приходит время создания очередного документа в проекте - дергаем шаблон, создается новый документ (например, смета), макрос спрашивает "На основании какого договора?", указываем документ-основание, макрос всасывает имеющиеся поля и их значения, отыскивает в текущем (новом) документе такие же поля и по имени заполняет их родительскими значениями... Если находит еще какие-то поля, для которых нет аналогичных в документе-основании, пристает с вопросами "Введите то-то..." пока не заполнит их все. Документ готов, сохраняется. Следующий шаблон запросит документ-основание - укажем или договор или смету, макрос по той же схеме обработает поля очередного документа... Вот это то что нужно !!!Но для каждой части будет свой шаблон , скажем для сметы свой для пояснительной записки свой . "всасывает поля и их значения " по сути должно происходить из первого (основного документа , где все эти поля забиты ) Задача пока поставлена чтоб все части проекта заполнялись по отдельности , потому что в проект не всегда входят те или инные его части )) а там уже из обработанных частей , можно слепить в один Воооот 
|
|
|
Записан
|
|
|
|
JohnSUN
|
Всё чудесатее и чудесатее! То есть, головной документ проекта хранит все нужные данные... Давай ему имя какое-то дадим, а? Ну чтобы в дальнейшем разговоре этим погонялом пользоваться. "Макет"? "Печка"? "Словарь"?
В общем, задача сводится к созданию пакета шаблонов, каждый из которых представляет собой один (или несколько однотипных) документ в проекте. Тут вопрос о информации в Словаре. Если что-то изменят в словаре (ну, ачепятку поздно заметили или еще что-то в этом роде), то изменения должны разползтись по всем дочерним документам... А если какой-то недалёкий сотрудник поправит такое поле в дочернем документе? Прибить гада?
|
|
|
Записан
|
|
|
|
as1234
Век живи , век учись ))
Участник

Offline
Пол: 
Сообщений: 35
|
пусть будет "словарь" =) Всё чудесатее и чудесатее! с этим не поспоришь конечно Изменения (ачепятка)по сути же будут только при создании новых документов , разве нет ? А те которые будут уже до этого созданы (неважно правильно или нет ) уже не должны быть затронуты . Поле будет поправленно уже в готовом документе , поэтому я думаю это не архи страшно , потому как его можно пересоздать , так как в самом шаблоне они врятле что смогут поменять , либо сверх "везучий" сотрудник )))
|
|
|
Записан
|
|
|
|
JohnSUN
|
Отлично! То есть мы приходим к выводу, что в в готовом документе нам ПОЛЯ не нужны. Нужно в заранее определенные места шаблона вписать значения. Поле - не единственный способ это сделать. Изменения (ачепятка)по сути же будут только при создании новых документов , разве нет ? Мы говорим об опечатке в Словаре? При заполнении полей Словаря какой-то из элементов записывается с ошибкой, затем создается несколько документов с этими данными... В какой-то момент ошибку замечают. Что должно произойти дальше? Наша песня хороша - начинай сначала?
|
|
|
Записан
|
|
|
|
as1234
Век живи , век учись ))
Участник

Offline
Пол: 
Сообщений: 35
|
Приходим , если поле это не единственный способ =)
Получаеться что так, думаю это в разы легче и быстрее , чем если оствавлять поля в готовых документах и потом возиться с ними ища ошибку и исправляя ее , а если без полей то вообще уфь уфь времени уйдет )))
|
|
|
Записан
|
|
|
|
|
as1234
Век живи , век учись ))
Участник

Offline
Пол: 
Сообщений: 35
|
Наша песня хороша - начинай сначала? получаеться так , иного быстрого способа исправить не вижу . Нужно в заранее определенные места шаблона вписать значения. Поле - не единственный способ это сделат Приходим , если поле это не единственный способ =) вот только как это все делаеться без полей ?
|
|
|
Записан
|
|
|
|
JohnSUN
|
Да погоди ты расстраиваться! Если бы документы, рожденные из шаблонов в рамках проекта были фиксированными... Ну, в смысле, текст один и тот же. Типа "Уважаем<Пол_Клиента> <Имя_Клиента> <Отчество_Клиента>! С <Эмоция> сообщаем Вам, что в ближайшее время <Состояние_проекта>. Но Вы должны перечислить нам <Сумма_очередного_взноса> до <Дата_очередного_взноса>. С уважением <ФИО_Руководителя_проекта>". И в зависимости от содержимого каких-то там полей пачками штампуются письма: "Уважаемый Василий Пупкин! С глубоким прискорбием сообщаем Вам, что в ближайшее время ничего не будет сделано. Но Вы должны перечислить нам 250 руб. до 31.05.2012. С уважением начальник отдела снабжения Петров И.К.". "Уважаемая Анна Геннадиевна! С радостью сообщаем Вам, что в ближайшее время Ваш заказ будет выполнен. Но Вы должны перечислить нам 15000 руб до 01.02.2012. С уважением финансовый директор Крохоборов Е.Д.". Я имею в виду, что такие писульки генерируются только для того, чтобы распечатать, подписать, отправить и забыть. Их даже хранить не обязательно, поскольку можно пересоздать в любой момент точно в таком же виде. Но ты упомянул чертежи, пояснительные записки... Для таких документов из шаблонов создается только болванка, остальное содержимое вносится руками. При этом ты хочешь облегчить задачу пользователям и взвалить обязанности по внесению некоторых значений документа на компьютер... Точнее - на себя, поскольку без твоих стараний писишка ничего не сделает... И вот тут я, похоже, тебя огорчу... Реализовать такую штуку можно. Это довольно трудоёмкая задача, хотя и решаемая. Но в рамках одного только офисного пакета такая система может работать только для небольшой группы людей, два-три человека, каждый из которых делает только свой кусок работы, свой набор документов и не лезет в файлы соседа. Если рабочая группа больше, то придется вводить системы хранения, управления версиями, разделения полномочий... Иначе порядка в ней никогда не будет. Ты просмотри на досуге статьи в Википедии. Начни, например, с "Система автоматизации документооборота", а дальше по ссылкам пройдись по "Система управления документами", "Система управления содержимым" и т.д. Вот теперь можешь расстраиваться... Хотя тоже не обязательно. Мы же пока обсуждаем, а не лепим решение с бухты-барахты! Глядишь и придумаем чего-то умного... вот только как это все делаеться без полей ? Ну, кроме полей можно использовать тэги в тексте (как в моем примере типового письма), которые подменяются на нужный текст обычным поиском/заменой. Можно вспомнить про механизм Закладок (Bookmark) - вставка текста в закладки у Питоньяка подробно расписана, просто берешь готовый листинг 5.40: Insert text at a bookmark и пользуешься. Там всего-то две строчки кода. Есть еще такая фишка, как связь по DDE. В принципе, это что-то среднее между полями, о которых ты говорил с самого начала, и закладками. В Справочнике все нужные куски помечаются закладками, а в подчиненном шаблоне в нужных местах вставляются поля DDE, которые отображают эти данные. В чем отличие от полей, о которых ты говорил с самого начала? Связь DDE можно разорвать в любой момент и поле заменится на обычный текст, документ больше не будет привязан к Словарю. Такой документ даже можно отправлять клиенту, он не увидит всей внутренней кухни, как это было бы в случае полей пользователя...
|
|
|
Записан
|
|
|
|
as1234
Век живи , век учись ))
Участник

Offline
Пол: 
Сообщений: 35
|
Есть еще такая фишка, как связь по DDE. В принципе, это что-то среднее между полями, о которых ты говорил с самого начала, и закладками. В Справочнике все нужные куски помечаются закладками, а в подчиненном шаблоне в нужных местах вставляются поля DDE, которые отображают эти данные. В чем отличие от полей, о которых ты говорил с самого начала? Связь DDE можно разорвать в любой момент и поле заменится на обычный текст, документ больше не будет привязан к Словарю C этого места можно поподробней ? Я видел что можно создать поле DEE , но как им пользоватьс понятия не имею и информации про него КРАЙНЕ мало =) Справочнике?Эмм в словаре всмысле?
|
|
« Последнее редактирование: 19 Май 2012, 20:07 от as1234 »
|
Записан
|
|
|
|
worktowork
Участник

Offline
Сообщений: 22
|
По-моему хочет соединить базу данных с электронной таблицей , draw и writer . Затем красиво оформленный вывод на печать. В принципе то , что as1234 возможно.Для начала в Draw или на бумаге надо написать (начертить) схему что с чем будет связано , какой поиск будет производиться , будет ли математический расчёт - должно быть максимально подробно описано с чем будете работать и дальнейшие действия.
|
|
« Последнее редактирование: 20 Май 2012, 18:03 от worktowork »
|
Записан
|
OC Altlinux WMdesktop+Libreoffice 3.6.5.2
|
|
|
as1234
Век живи , век учись ))
Участник

Offline
Пол: 
Сообщений: 35
|
Кое-что отыскал  Sub GetDocumentProperties Dim oProps Dim oDocProps Dim s$ Dim i As Integer Dim prop oDocProps = ThisComponent.getDocumentProperties() s = s & "Author = " & oDocProps.Author & CHR$(10) & _ "AutoLoadSecs = " & oDocProps.AutoloadSecs & CHR$(10) & _ "AutoLoadURL = " & oDocProps.AutoloadURL & CHR$(10) & _ "CreationDate = " & DateSTructToString(oDocProps.CreationDate) & _ CHR$(10) & _ "Default Target = " & oDocProps.DefaultTarget & CHR$(10) & _ "Description = " & oDocProps.Description & CHR$(10) & _ "EditingCycles = " & oDocProps.EditingCycles & CHR$(10) & _ "EditingDuration = " & oDocProps.EditingDuration & CHR$(10) & _ "Generator = " & oDocProps.Generator & CHR$(10) & _ "Language = (" & oDocProps.Language.Country & ", " & _ oDocProps.Language.Language & ", " & _ oDocProps.Language.Variant & ")" & CHR$(10) & _ "ModificationDate = " & _ DateSTructToString(oDocProps.ModificationDate) & CHR$(10) & _ "ModifiedBy = " & oDocProps.ModifiedBy & CHR$(10) & _ "PrintDate = " & DateSTructToString(oDocProps.PrintDate) & _ CHR$(10) & _ "PrintedBy = " & oDocProps.PrintedBy & CHR$(10) & _ "Subject = " & oDocProps.Subject & CHR$(10) & _ "TemplateDate = " & _ DateSTructToString(oDocProps.TemplateDate) & CHR$(10) & _ "TemplateName" & oDocProps.TemplateName & CHR$(10) & _ "TemplateURL" & oDocProps.TemplateURL & CHR$(10) & _ "Title = " & oDocProps.Title & CHR$(10) & _ "" oProps = oDocProps.UserDefinedProperties s = s & "Info 1 = " & oProps.[Info 1] & CHR$(10) & _ "Info 2 = " & oProps.[Info 2] & CHR$(10) & _ "Info 3 = " & oProps.[Info 3] & CHR$(10) & _ "Info 4 = " & oProps.[Info 4] MsgBox s If LBound(oDocProps.Keywords) <= UBound(oDocProps.Keywords) Then MsgBox Join(oDocProps.Keywords, CHR$(10)),,"Keywords" End If s = "" Dim oStats : oStats = oDocProps.DocumentStatistics For i = LBound(oStats) To UBound(oStats) s = s & oStats(i).Name & " = " & oStats(i).Value & CHR$(10) Next MsgBox s End Sub
Function DateSTructToString(ostruct) As String DateSTructToString() = ostruct.Month & "/" & _ ostruct.Day & "/" & ostruct.Year & " at " & _ ostruct.Hours & ":" & ostruct.Minutes & ":" & _ ostruct.Seconds & "." & ostruct.HundredthSeconds End Function К макросу прилагалась записка - Вы должны получить свойства документа, как показано в макросе выше в обеих документах, а затем присвоить значения от одного к другому Пробую , но выскакивают ошибки , помогите разобраться , толи это вообще что нужно ? =)))
|
|
« Последнее редактирование: 20 Май 2012, 20:19 от Helen »
|
Записан
|
|
|
|
|