Вопросы по работе с MS Word из Clarion 6.0

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
sasa72
Новичок
Сообщения: 6
Зарегистрирован: 26 Январь 2013, 10:01

Вопросы по работе с MS Word из Clarion 6.0

Сообщение sasa72 »

Здравствуйте Все.
На Кларионе пишу давно, но очень периодически. Ole никогда не применял до этого случая. Поэтому ответы, если можно , разжуйте побольше :)

Из Clarion 6.0 данные выводятся в шаблон word/
За основу взял пример Андрея Попова
loc:WordFileName='C:\atest.doc'
d=DAY(today())&MONTH(today())&YEAR(today())
loc:SaveWordFileName='C:\atest '&d&' .doc'
feqOLE=create(0,CREATE:Ole)
feqOLE{Prop:Create}='Word.Application'
feqOLE{Prop:ReportException}=TRUE
feqOLE{'Visible'}=1
feqOLE{'Documents.Open("'&clip(loc:WordFileName)&'")'}
loc:FindStr='[DATA:obr]'
loc:ReplaceString=SPS:obr !строка из базы
feqOLE{'Selection.Find.ClearFormatting'}
feqOLE{'Selection.Find.Replacement.ClearFormatting'}
feqOLE{'Application.Selection.Find.Execute("'&clip(loc:FindStr)&'", , , , , , 1, 1, , "'&clip(loc:ReplaceString)&'", 2)'}


На этом уровне все работает, но есть вопросы:
1. Где мне найти описание, например, строки
feqOLE{'Application.Selection.Find.Execute("'&clip(loc:FindStr)&'", , , , , , 1, 1, , "'&clip(loc:ReplaceString)&'", 2)'}
А то никак не понимаю почему "это" является поиском и заменой метки до конца документа.
2. Нужно вставить большой текст (например 1000 символов). Один из путей - срастить несколько string из базы.
Как это будет выглядеть? Какие варианты еще есть? Ну там BLOB может можно использовать?
Просто в интернете встретил инфу об ограничении ReplaceString в 256 символов
3. В Шаблоне есть таблица.
Нужно добавлять строки.
Можно поставить в последнюю ячейку метку и имитировать нажатие Tab.
Но как? Или есть более простой путь?

Где скачать шаблоны SoftMasters не нашел. Может с ними было бы все проще :(
С уважением, Александр.
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

Re: Вопросы по работе с MS Word из Clarion 6.0

Сообщение gromov »

1. Где мне найти описание, например, строки
feqOLE{'Application.Selection.Find.Execute("'&clip(loc:FindStr)&'", , , , , , 1, 1, , "'&clip(loc:ReplaceString)&'", 2)'}
А то никак не понимаю почему "это" является поиском и заменой метки до конца документа.
В VBA
2. Нужно вставить большой текст (например 1000 символов). Один из путей - срастить несколько string из базы.
Как это будет выглядеть? Какие варианты еще есть? Ну там BLOB может можно использовать?
Отрезать от текста куски по 256 символов и отправлять в Ворд
Просто в интернете встретил инфу об ограничении ReplaceString в 256 символов
3. В Шаблоне есть таблица.
Нужно добавлять строки.
Как вариант сделать таблицу в Экселе и копипастом отправить в Ворд
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Вопросы по работе с MS Word из Clarion 6.0

Сообщение kreator »

В Word'е пишешь макрос, а оттуда (из Visual Basic) вытягиваешь текст. Правда, его надо подрихтовать по Clarion, но это другой вопрос.
We are hard at work… for you. :)
sasa72
Новичок
Сообщения: 6
Зарегистрирован: 26 Январь 2013, 10:01

Re: Вопросы по работе с MS Word из Clarion 6.0

Сообщение sasa72 »

Спасибо за ответы.
Может кому пригодится:
feqOLE{'Selection.TypeParagraph'} !Перевод каретки
feqOLE{'Selection.Font.Size'} = 14 !Размер шрифта 14
loc:ReplaceString=i&'. '&clip(qw) !Вставляем 1 часть вопроса в word на текущую позицию
feqOLE{'Selection.Find.ClearFormatting'}
feqOLE{'Selection.Find.Replacement.ClearFormatting'}
feqOLE{'Application.Selection.TypeText ("'&clip(loc:ReplaceString)&'"),'}
loc:ReplaceString=' '&clip(qw1) !Через пробел добавляем второй string
feqOLE{'Selection.Find.ClearFormatting'}
feqOLE{'Selection.Find.Replacement.ClearFormatting'}
feqOLE{'Selection.TypeParagraph'} !Перевод каретки
feqOLE{'Application.Selection.TypeText ("'&clip(loc:ReplaceString)&'"),'}
С уважением, Александр.
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

Re: Вопросы по работе с MS Word из Clarion 6.0

Сообщение gromov »

А тебе м.б. это пригодится

wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 9 ! верхний колонтитул
! здесь можно установить параметры шрифта и вставить текст
wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 10 ! нижний колонтитул
! здесь можно установить параметры шрифта и вставить текст
wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 0
sasa72
Новичок
Сообщения: 6
Зарегистрирован: 26 Январь 2013, 10:01

Re: Вопросы по работе с MS Word из Clarion 6.0

Сообщение sasa72 »

Спасибо
С уважением, Александр.
Ответить