Здравствуйте Все.
На Кларионе пишу давно, но очень периодически. 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 не нашел. Может с ними было бы все проще
Вопросы по работе с MS Word из Clarion 6.0
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Старожил
- Сообщения: 263
- Зарегистрирован: 11 Февраль 2009, 8:41
- Откуда: г. Анапа
- Поблагодарили: 3 раза
Re: Вопросы по работе с MS Word из Clarion 6.0
1. Где мне найти описание, например, строки
feqOLE{'Application.Selection.Find.Execute("'&clip(loc:FindStr)&'", , , , , , 1, 1, , "'&clip(loc:ReplaceString)&'", 2)'}
А то никак не понимаю почему "это" является поиском и заменой метки до конца документа.
В VBA
2. Нужно вставить большой текст (например 1000 символов). Один из путей - срастить несколько string из базы.
Как это будет выглядеть? Какие варианты еще есть? Ну там BLOB может можно использовать?
Отрезать от текста куски по 256 символов и отправлять в Ворд
Просто в интернете встретил инфу об ограничении ReplaceString в 256 символов
3. В Шаблоне есть таблица.
Нужно добавлять строки.
Как вариант сделать таблицу в Экселе и копипастом отправить в Ворд
feqOLE{'Application.Selection.Find.Execute("'&clip(loc:FindStr)&'", , , , , , 1, 1, , "'&clip(loc:ReplaceString)&'", 2)'}
А то никак не понимаю почему "это" является поиском и заменой метки до конца документа.
В VBA
2. Нужно вставить большой текст (например 1000 символов). Один из путей - срастить несколько string из базы.
Как это будет выглядеть? Какие варианты еще есть? Ну там BLOB может можно использовать?
Отрезать от текста куски по 256 символов и отправлять в Ворд
Просто в интернете встретил инфу об ограничении ReplaceString в 256 символов
3. В Шаблоне есть таблица.
Нужно добавлять строки.
Как вариант сделать таблицу в Экселе и копипастом отправить в Ворд
-
- ✯ Ветеран ✯
- Сообщения: 4960
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 19 раз
Re: Вопросы по работе с MS Word из Clarion 6.0
В Word'е пишешь макрос, а оттуда (из Visual Basic) вытягиваешь текст. Правда, его надо подрихтовать по Clarion, но это другой вопрос.
We are hard at work… for you.
Re: Вопросы по работе с MS Word из Clarion 6.0
Спасибо за ответы.
Может кому пригодится:
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)&'"),'}
Может кому пригодится:
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)&'"),'}
С уважением, Александр.
-
- Старожил
- Сообщения: 263
- Зарегистрирован: 11 Февраль 2009, 8:41
- Откуда: г. Анапа
- Поблагодарили: 3 раза
Re: Вопросы по работе с MS Word из Clarion 6.0
А тебе м.б. это пригодится
wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 9 ! верхний колонтитул
! здесь можно установить параметры шрифта и вставить текст
wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 10 ! нижний колонтитул
! здесь можно установить параметры шрифта и вставить текст
wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 0
wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 9 ! верхний колонтитул
! здесь можно установить параметры шрифта и вставить текст
wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 10 ! нижний колонтитул
! здесь можно установить параметры шрифта и вставить текст
wdOLE{'ActiveWindow.ActivePane.View.SeekView'} = 0