Новая строка, Word
От: .silent Россия http://www.bezhetsk.ru
Дата: 09.11.05 09:15
Оценка:
Здравствуйте!

Возникла такая проблема. Нужно сделать отчет в документ Word'а, причем в отчете данные должны быть многострочными, т.е. придется вставлять свой escape'символ. Попытался вставлять #10#13 — два квадратика, #10 или #13 — один квадратик. Но перевода строки так и не удалось добиться.
Причем что интересно — если данные находятся не в таблице, то один только #13 переводит строку без всяких проблем, когда в таблице — ну никак.

Посоветуйте, плиз, что-нибудь.


Delphi.
Re: Новая строка, Word
От: Rius Россия  
Дата: 09.11.05 09:24
Оценка:
Здравствуйте, .silent, Вы писали:

S>Здравствуйте!


S> Возникла такая проблема. Нужно сделать отчет в документ Word'а, причем в отчете данные должны быть многострочными, т.е. придется вставлять свой escape'символ. Попытался вставлять #10#13 — два квадратика, #10 или #13 — один квадратик. Но перевода строки так и не удалось добиться.

S> Причем что интересно — если данные находятся не в таблице, то один только #13 переводит строку без всяких проблем, когда в таблице — ну никак.

S> Посоветуйте, плиз, что-нибудь.



S> Delphi.

а как данные в Word передаются-то?
Re[2]: Новая строка, Word
От: .silent Россия http://www.bezhetsk.ru
Дата: 09.11.05 09:58
Оценка:
Здравствуйте, Rius, Вы писали:

S>> Delphi.

R>а как данные в Word передаются-то?

Используется функция Word'а EditReplace для замены ключевых слов на наши значения.
Re[3]: Новая строка, Word
От: Rius Россия  
Дата: 09.11.05 10:09
Оценка:
Здравствуйте, .silent, Вы писали:

S>Используется функция Word'а EditReplace для замены ключевых слов на наши значения.


Что-то я не пойму, как здесь связаны Delphi, формирование отчета в Word и функция EditReplace Word'а
Re[4]: Новая строка, Word
От: .silent Россия http://www.bezhetsk.ru
Дата: 09.11.05 11:08
Оценка:
Здравствуйте, Rius, Вы писали:

R>Что-то я не пойму, как здесь связаны Delphi, формирование отчета в Word и функция EditReplace Word'а


а зачем тебе это?
вопрос есть, что еще надо? в документе меняются ключевые слова на наши значения.
к примеру,
[Name] меняется на Вася Пупкин

а вот [Names], например, должно меняться на:

Вася Пупкин
Борис Ельцин
Калашников Игорь


т.е. все это через разделитель строки.

я пишу что мне нужно заменить [Names] на что-то там, как раз с помощью функции EditReplace.

надеюсь, все объяснил нормально.
Re[5]: Новая строка, Word
От: Rius Россия  
Дата: 09.11.05 11:31
Оценка:
Здравствуйте, .silent, Вы писали:

S>Здравствуйте, Rius, Вы писали:


R>>Что-то я не пойму, как здесь связаны Delphi, формирование отчета в Word и функция EditReplace Word'а


S>а зачем тебе это?

S>вопрос есть, что еще надо?

вот задам я вопрос:

почему при сохранении изменений в базе прога вылетает, а при вставке новых записей — работает?

и попробуй ответить

S>в документе меняются ключевые слова на наши значения.

S>к примеру,
S>[Name] меняется на Вася Пупкин

S>а вот [Names], например, должно меняться на:


S>Вася Пупкин

S>Борис Ельцин
S>Калашников Игорь

S>т.е. все это через разделитель строки.

S>я пишу что мне нужно заменить [Names] на что-то там, как раз с помощью функции EditReplace.


S>надеюсь, все объяснил нормально.

не нормально, но в общих чертах...
это делается обычно через закладки (bookmark): составляется документ, в нужных местах ставятся закладки (меню Вставка), и док. сохраняется как шаблон *.dot. далее программно запускается Word, открывается шаблон (автоматически создается документ без назначенного имени), программно же ставится курсор на нужную закладку и вставляется текст. наравне с функцией вставки текста есть и функции печати 'Enter', 'Backspace', 'End Paragraph' и т.п.

а насчет замены... вы в самом Word можете в однострочное поле ввести символ возврата каретки??? так что же пытаетесь программно делать?
Re[6]: Новая строка, Word
От: .silent Россия http://www.bezhetsk.ru
Дата: 09.11.05 11:53
Оценка:
Здравствуйте, Rius, Вы писали:

R>а насчет замены... вы в самом Word можете в однострочное поле ввести символ возврата каретки??? так что же пытаетесь программно делать?


у меня есть функция ReplaceByTag(строка_поиска, строка_замены);, которая в самом документе заменяет все с помощью своей функции Replace.

Например, ReplaceByTag('[Name]', UserName). Это одно имя.

Но иногда нужно разделить строки и я пытался вставить #10#13 вместе и по отдельности, но переводится строка только в случае того, если как разделитель стоит #13 и текст находится не в таблице. В таблице не получается.
Re[7]: Новая строка, Word
От: SeLarin Россия http://selarin.livejournal.com
Дата: 09.11.05 12:02
Оценка:
Здравствуйте, .silent, Вы писали:

S>Здравствуйте, Rius, Вы писали:


R>>а насчет замены... вы в самом Word можете в однострочное поле ввести символ возврата каретки??? так что же пытаетесь программно делать?


S>у меня есть функция ReplaceByTag(строка_поиска, строка_замены);, которая в самом документе заменяет все с помощью своей функции Replace.


S>Например, ReplaceByTag('[Name]', UserName). Это одно имя.


S>Но иногда нужно разделить строки и я пытался вставить #10#13 вместе и по отдельности, но переводится строка только в случае того, если как разделитель стоит #13 и текст находится не в таблице. В таблице не получается.


А попробуйте разделять строки не символами #13#10, а символами ^p. Может быть это поможет? (^p — это спецсимвол Word, обозначающий как раз символ абзаца).


Во всем нужна мера, даже в том, чтобы соблюдать ее.
Re: Новая строка, Word
От: kavlad Россия http://www.wavesoft.ru
Дата: 09.11.05 12:08
Оценка: 2 (1)
Здравствуйте, .silent, Вы писали:

Word -> Document -> Selection -> TypeParagraph
Распознавание изображений на Delphi http://dfreader.sourceforge.net
Re[8]: Новая строка, Word
От: .silent Россия http://www.bezhetsk.ru
Дата: 09.11.05 12:43
Оценка:
Здравствуйте, SeLarin, Вы писали:

SL>А попробуйте разделять строки не символами #13#10, а символами ^p. Может быть это поможет? (^p — это спецсимвол Word, обозначающий как раз символ абзаца).


Если Вы имеете в виду знак , то нет, он просто отображается в Word'е, но ничего не переносит.
Re[2]: Новая строка, Word
От: .silent Россия http://www.bezhetsk.ru
Дата: 09.11.05 12:46
Оценка:
Здравствуйте, kavlad, Вы писали:

K>Word -> Document -> Selection -> TypeParagraph


это я понимаю, просто хотелось более простого решения вроде добавления спец.символов в строку, а тут всю функцию переделывать надо.
но если нельзя, то уж что поделать
Re[9]: Новая строка, Word
От: SeLarin Россия http://selarin.livejournal.com
Дата: 09.11.05 16:01
Оценка:
Здравствуйте, .silent, Вы писали:

S>Здравствуйте, SeLarin, Вы писали:


SL>>А попробуйте разделять строки не символами #13#10, а символами ^p. Может быть это поможет? (^p — это спецсимвол Word, обозначающий как раз символ абзаца).


S>Если Вы имеете в виду знак , то нет, он просто отображается в Word'е, но ничего не переносит.


Нет. Это для Word — именно символ конца абзаца. По крайней мере, ^p используется как подстановка для поиска и замены конца абзаца...


Re: Новая строка, Word
От: AlexWlad  
Дата: 09.11.05 16:42
Оценка:
Здравствуйте, .silent, Вы писали:

S>Здравствуйте!


S> Возникла такая проблема. Нужно сделать отчет в документ Word'а, причем в отчете данные должны быть многострочными, т.е. придется вставлять свой escape'символ. Попытался вставлять #10#13 — два квадратика, #10 или #13 — один квадратик. Но перевода строки так и не удалось добиться.

S> Причем что интересно — если данные находятся не в таблице, то один только #13 переводит строку без всяких проблем, когда в таблице — ну никак.

S> Посоветуйте, плиз, что-нибудь.



S> Delphi.


WordApplication1.Selection.InsertAfter('afdbfgbgf'+#13);

И все дела.
Re[2]: Новая строка, Word
От: Rius Россия  
Дата: 10.11.05 04:05
Оценка:
Здравствуйте, AlexWlad, Вы писали:


AW>WordApplication1.Selection.InsertAfter('afdbfgbgf'+#13);


AW>И все дела.

тогда также:

WordApplication1->Selection->TypeBackspace();
WordApplication1->Selection->TypeParagraph();
WordApplication1->Selection->TypeText(whcar_t *Text);
Re[2]: Новая строка, Word
От: .silent Россия http://www.bezhetsk.ru
Дата: 18.11.05 10:26
Оценка:
Здравствуйте, AlexWlad, Вы писали:

AW>WordApplication1.Selection.InsertAfter('afdbfgbgf'+#13);

AW>И все дела.

прочитайте первый мой пост.
и все дела.
<< RSDN@Home 1.1.4 stable rev. 510>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.