Страницы: 1
RSS
Умный шаблонизатор для создания счетов, договоров и т.п., Вопрос по выводу договора
 
Здравствуйте. Пытался до последнего решить свои вопросы по созданию шаблонизатора сам: http://yadi.sk/d/FnDGj4pXJd7GN
Возможно ход решения своих вопросов я выбрал не совсем правильный, но суть такова:

В файл импортируется исходный документ онлайн бухгалтерии (во время запуска выдатс запрос, что не нашел файл, можно отменить выбор)
кроме импорта значения для формирования цен можно вставить вручную в другую вкладку, далее создается автоматически: Коммерческое предложение, Товарный чек, Счёт фактура, и Договор.
Все кроме договора уже готово.
Сам договор создается из шаблона с переменными, которые при нажатии кнопки "Сформировать" перегоняет шаблон с заменой переменных на нужные значения в колонку С12:K41 (или другой указанный мной), все уже работает как надо. Однако если прошлые документы выводятся без проблем, то с текстом договора оказалось сложнее, Ексель на экране в Страничном режиме показывает одно, а по факту в просмотре и при печати другое.

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

Пытался:
1. Как ни подгоняй, а для универсального шаблона красиво вывести договор без появившегося пустого места между графами и в конце страницы да и еще с проблемой высоких по содержанию неразделимых ячеек, у меня не получилось.
2. Задумал вывести текст договора в объекте WinWord (по нажатию Кнопка 45, пока еще не назвал)

возникли вопросы:
По коду возможно много мусора, так как копирую с разных источников, и иногда делаю что-то по аналогии, не понимая полностью всей сути.
Код
 Sub Кнопка45_Щелчок()

If Cells(3, "BS") = 0 Then
Dim x As OLEObject
Set x = ActiveSheet.OLEObjects.Add(ClassType:="Word.Document", Link:=True _
        , DisplayAsIcon:=True, Left:=400, Top:=120, Width:=800, Height:=2000)

Cells(3, "BS") = 1
End If

textinsert = Cells(12, "C") & Chr(10) & Cells(13, "C") & Chr(10) & Cells(14, "C") & Chr(10) & Cells(15, "C") & Chr(10) & Cells(16, "C") & Chr(10) & Cells(17, "C") & Chr(10) & Cells(18, "C") & Chr(10) & Cells(19, "C") & Chr(10)

Dim oOLEObj As OLEObject, oWD As Object, oNewDoc As Object, oRng As Object, _
    blStBarState As Boolean, sOLE As String, iOLE As Long

For Each oOLEObj In ActiveSheet.OLEObjects
    iOLE = iOLE + 1

   With oOLEObj
        If .progID Like "Word.Document*" Then
           .Activate
           .Object.Range.Text = textinsert
            Range("C12:K41").Copy
            .Object.Range.Paste
    End If
    End With
Next

If iOLE = 0 Then

Cells(3, "BS") = 0
End If
End Sub
вообще процедура вставки происходит здесь:
Код
For Each oOLEObj In ActiveSheet.OLEObjects
    iOLE = iOLE + 1
   With oOLEObj
        If .progID Like "Word.Document*" Then
           .Activate
           .Object.Range.Text = textinsert
            Range("C12:K41").Copy
            .Object.Range.Paste
       End If
    End With
Next
Мне нужно не табличной вставкой вставить  textinsert,
Код
 .Object.Range.Text = textinsert
которая выше получает нужный текст договора, это происходит, на данном этапе было бы идеально макросом в ворде автоматически произвести форматирирование
потом я хочу вставить (т.е. добавить) в табличном виде реквизиты контрагентов, кодом
Код
Range("C41:K41").Copy
однако на даном шаге у меня не получилось добавить текст, он только заменяется. Т.е. предыдущий текст пропадает, новый вставляется. А мне нужно чтобы добавилось.

После вставки почему то ширина листа внедренно объекта постоянно сбивается, хотя если закрыть внедрение и открыть по значку Внедрения (иконка возле названия Договора, форматирование сохраняется, пробывал вставлять область, а не иконку, не меняет проблемы)
Итоговые вопросы:
1. Как в один объект внедрения вставить 2 и более (далее например если понадобиться) текста из таблицы.
2. Как при открытие внедренного объекта запустить записанный макрос или набранный макрос (записанный мною ранее макрос никак не сохранялся в этом документе)

Я согласен на создание отдельного вордовского файла, но с Олеобъектами и передачей туда данных что=то у меня не пошло.
Пожалуйста помогите. заранее спасибо.
Изменено: norpe3s - 28.02.2014 04:43:37
 
Вы считаете, интересно кому-то просматривать Вашу простыню? Пустые строки, код с кучей пустот, файл не на форуме...
Ответ нужен Вам. Исправить не хотите?
 
пустоту подчистил
файл на форум не загрузился, выдает ошибку, он весит 0,5 мб
 
Цитата
norpe3s пишет:
весит 0,5 мб
А допускается сколько?
 
я знаю что допускается не более 100 кб, что мне с ним сделать, если там все вкладки завязаны между собой и удалить их нельзя. По поводу в архив, мне кажется проще скачать без проблем файл на стороне, чем загонять его в архив сюда чтобы все его пришлось разархивировать, тем более, после редактирования этого файла мною, по той же ссылке можно будет скачать обновленный файл.

Я понимаю вы администраторы, но может замечания в личку написать,  а так это флуд получается. Я реально нуждаюсь в помощи, а не прошу сделать все за меня, для вас я конечно новичек, но это не повод, тут вместо помощи цепляться к посту.

Суть да дело я сам пытаюсь решить этот вопрос, а пока меня тут только "трущат"
 
Цитата
norpe3s пишет:
Я понимаю вы администраторы, но может замечания в личку написать,а так это флуд получается.
Разберитесь сначала с определением слова "флуд", а потом прочитайте Правила: это Вы должны в личке реагировать, а не на форуме.
 
Юрий, вы мне можете помочь?
 
Файл не смотрел. Я бы попробовал поработать с закладками в Word. Или с инструментом "Слияние".
 
Цитата
Юрий М пишет:
Или с инструментом "Слияние".
Немного изучил, к сожалению не подходит.

Закладки хорошая вещь, и для фиксированного шаблона было бы идеально, но у меня и переменные динамичны, и шаблон динамичен.
 
Что значит динамичный шаблон?
 
Цитата
Юрий М пишет:
Что значит динамичный шаблон?
не в классическом майкрософтовом понимании шаблон документа

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

Буду изучать вставку в уже созданный вордовский файл, чтобы решить проблемы не сохранения вордовского макроса во внедренном объекте, в уже созданном ворд. файле макрос нужного доформатирования будет сохранен.
 
Конечное форматирование можно задать в Word.
И при использовании Закладок и при Слиянии - текст договора будет растягиваться/сжиматься, в зависимости от подставляемых значений. На мой взгляд  самый оптимальный вариант.
Страницы: 1
Читают тему
Наверх