|
|
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
НА форуме FoxClub Владимир Максимов объяснял, как можно вставить данные в существующий вордовский шаблон с помощью объктов "Поле". Не знаю, откуда у меня растут руки :) но у меня не получается вставить таким образом данные. Может кто в состоянии разжевать тугодоходящему человеку, как нормально это можно сделать. Пожалуста!! На форуме приводиться такой способ *Создаем новый документ MS WORD на базе ранее созданного шаблона LOCAL loWord, loDoc loWord = CREATEOBJECT( 'WORD.APPLICATION') loDoc=m.loWord.Documents.Add('Полный_путь_доступа'+'Имя_файла_шаблона.dot') * Подставляем необходимые значения в поля m.loDoc.Fields(число_порядковый_номер_поля).Result.text="Текст" * Для заполнения данных таблиц WORD принцип такой m.loDoc.Tables(число_порядковый_номер_таблицы).Cell(число_ряд,число_колонка).Range.Text="Текст" * Делаем созданный документ видимым m.loWord.Visible = .T. Я попыталась это немного переделать (по Базияну) oDoc=Createobject('word.application') oDoc.Visible = .t. With oDoc .documents.Add('forma.dot',false) .selection.Fields(1).Result.text="Текст" endwith Пути доступа определены ранее установкой set default to ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:23 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
А по Максимову ты не прбовал что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:40 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
Пробовала но не получается. :( Может неправильно пробовала (скорее всего неправильно :) ). вот в надежде, что может обьяснят, как правильно, и пишу. Фокс стоит 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:48 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
А где ошибка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:49 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
Возьми код Максимова и так как у тебя заполнение по полям, то убери из него то что относится к заполнению таблиц Wordа. Я не думаю что у Базияна написана так как ты привела в посте или приведи полный код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:52 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
А офис какой? У меня по Максимову все прекрасно работает! Может шаблон неправильно сделан? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:52 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
По варианту В.Максимово получилось. Таки руки не отуда растут :) Но хотелось бы узнать, можно ли сделать по варианту, который приводила я. Чтобы не переписывать предыдущий код (мой, который там дальше идет а программе). Заранее спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:53 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
Не вижу смысла переделывать и особой красоты в Вашем коде не нахожу :)) Мне кажется, проблема в .selection ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:58 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
Ты конечно можешь подправить свой код, думаю что вместо selection должно быть Documents(1) или ActiveDocument (вот тут не уверен), НО приучайся писАть как Максимов. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 17:18 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
А может, просто подойдет Tools-Wizards- Mail Merge ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 17:19 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
Ты конечно можешь подправить свой код, думаю что вместо selection должно быть Documents(1) или ActiveDocument (вот тут не уверен), НО приучайся писАть как Максимов. :) Я постараюсь! :) Всем огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 17:40 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
Еще один вопрос. Есть такой код i=1 SCAN FOR i<=(k+1) i=i+1 m.loDoc.Tables(1).Cell(i,1).Range.Text=i-1 m.loDoc.Tables(1).Cell(i,2).Range.Text=kod m.loDoc.Tables(1).Cell(i,3).Range.Text=nazva m.loDoc.Tables(1).Cell(i,4).Range.Text=kilkist m.loDoc.Tables(1).Cell(i,5).Range.Text=prise m.loDoc.Tables(1).Cell(i,6).Range.Text=o_sum m.loDoc.Tables(1).Cell(i,7).Range.Text=prisez m.loDoc.Tables(1).Cell(i,8).Range.Text=o_summaz ENDSCAN Как добавить следующую строку. Точнее передыдущие. Потому что при передаче в Ворд отображается только последняя запись. В Вордовском шаблоне есть только шапка таблицы и одна пустая строка Заранее спастбо всем откликнувшимся. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 17:43 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
Еще один вопрос. Есть такой код i=1 SCAN FOR i<=(k+1) i=i+1 m.loDoc.Tables(1).Cell(i,1).Range.Text=i-1 m.loDoc.Tables(1).Cell(i,2).Range.Text=kod m.loDoc.Tables(1).Cell(i,3).Range.Text=nazva m.loDoc.Tables(1).Cell(i,4).Range.Text=kilkist m.loDoc.Tables(1).Cell(i,5).Range.Text=prise m.loDoc.Tables(1).Cell(i,6).Range.Text=o_sum m.loDoc.Tables(1).Cell(i,7).Range.Text=prisez m.loDoc.Tables(1).Cell(i,8).Range.Text=o_summaz ENDSCAN Как добавить следующую строку. Точнее передыдущие. Потому что при передаче в Ворд отображается только последняя запись. В Вордовском шаблоне есть только шапка таблицы и одна пустая строка Заранее спастбо всем откликнувшимся. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 17:44 |
|
||
|
передача значений в шаблон Word
|
|||
|---|---|---|---|
|
#18+
Snow OwlЯ попыталась это немного переделать (по Базияну) oDoc=Createobject('word.application') oDoc.Visible = .t. With oDoc .documents.Add('forma.dot',false) .selection.Fields(1).Result.text="Текст" endwith Пути доступа определены ранее установкой set default to SET DEFAULT - это настройка FoxPro. Команда oDoc.documents.Add() - это некоторая "функция", которая принимает некий символьный параметр. Разбор этого параметра происходит уже не в среде FoxPro, а непосредственно в COM-объекте. Этот COM-объект ничего не знает о настройках FoxPro. Поэтому SET DEFAULT ему ничего не скажет. Надо передать имя файла с полным путем доступа. Можно так: Код: plaintext 1. 2. 3. 4. 5. Функция FullPath() как раз и сформирует необходимую символьную строку имени файла с полным путем доступа относительно текущей директории. Snow OwlКак добавить следующую строку. m.loDoc.Tables(1).Rows.Add() вставляет одну строку после последней строки данной таблицы. Соответсвенно получаем: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 23:49 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33692500&tid=1591803]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
189ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 532ms |

| 0 / 0 |
