Форум: "Прочее";
Текущий архив: 2011.11.06;
Скачать: [xml.tar.bz2];
ВнизРаспечатать много листов, шаблон дать менять юзеру Найти похожие ветки
← →
SQLEXPRESS (2011-07-07 13:16) [0]Недолго думая, прикрутил Word.
Лучше что-то чем ниже посоветуете?
SaveChanges := wdDoNotSaveChanges;
W := CreateOleObject("Word.Application");
W.DisplayAlerts := False;
i := 0;
while not(qReestr.Eof) do
begin
D := W.Documents.Open(MyPath + "DD.doc");
ReplaceByRecord(qReestr);
W.PrintOut;
D.Close(SaveChanges);
inc(i);
qReestr.Next;
end;
W.Quit;
procedure TfrmReestr.ReplaceW(This, ToThis: string);
begin
W.Selection.Find.Text := This;
W.Selection.Find.Replacement.Text := ToThis;
W.Selection.Find.Execute(Replace:=2);
end;
procedure TfrmReestr.ReplaceByRecord(Q: TOraQuery);
var
i: Integer;
begin
for i := 0 to Q.FieldCount - 1 do
begin
ReplaceW("#" + Q.Fields[i].FieldName + "#", Q.Fields[i].AsString);
end;
end;
← →
Slym © (2011-07-07 14:46) [1]видел такое...
заполнение таблицы в пару сотен страниц, а такое бывает (например выписка движений по счету за год) формируется пару часов...
удвоение числа результирующих страниц вызывает учетверение времени формирования т.к. слова в ворде не индексированы и поиск идет по всеему постоянно растущему тексту
← →
RWolf © (2011-07-07 14:52) [2]готовим шаблон в RTF.
при формировании отчёта загружаем шаблон в память и заменяем шаблонные слова на осмысленный текст, после чего выгружаем документ во временный файл и распечатываем.
← →
RWolf © (2011-07-07 14:54) [3]а вообще, FastReport включает в себя редактор отчётов, например.
← →
Slym © (2011-07-07 14:58) [4]ускорить заполнение таблицы можно ограничив поиск последней строкой
примерно так (не проверял)Selection.StartOf Unit:=wdRow
Selection.SelectRow
With Selection.Find
.Text =
.Replacement.Text =
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceOne
← →
RWolf © (2011-07-07 15:02) [5]
> [4]
я, кстати, сталкивался с ограничением на длину строки замены (около 250 символов).
по крайней мере, в Word 2003.
← →
Slym © (2011-07-07 15:07) [6]RWolf © (07.07.11 14:52) [2]
или well formed html с xml трансформом и ccs
← →
Inovet © (2011-07-07 15:51) [7]> [3] RWolf © (07.07.11 14:54)
> а вообще, FastReport включает в себя редактор отчётов, например.
Пользователь его испортит скорее, чем отредактирует, тут всё же надо понимать принципы.
← →
Медвежонок Пятачок © (2011-07-07 15:58) [8]html шаблон строки с маркерами атрибутов
+ охватывающий шаблон.
данные тянуть php или чем-то еще, делая реплейс маркерами.
готовый хтмл пиннануть в pdf (для php есть фриварные библиотеки )
← →
Inovet © (2011-07-07 16:17) [9]А как будет выглядеть изменение шаблона юзером? Он же и Ворде всё испортит.
← →
Медвежонок Пятачок © (2011-07-07 16:20) [10]я бы сделал для себя возможность менять шаблон наиболее бесгеморным для меня способом. А юзер присылал бы мне вордовый образец/фрагмент чего он хочет видеть сегодня.
← →
Inovet © (2011-07-07 16:23) [11]> [10] Медвежонок Пятачок © (07.07.11 16:20)
> я бы сделал для себя возможность менять шаблон наиболее бесгеморным для меня способом
Вот и я о том же. Что ФР, что Ворд всё равно надо понимать, что делаешь. Тогда ФР лучше, имхо.
← →
SQLEXPRESS (2011-07-07 16:26) [12]ясно, спасибо.
FR-дизайнер , html - наши это не потянут, однозначно.
Хотя FR, конечно, быстрее будет.. но, чувствую, замучают приставалками на правку.
Не, думаю, правильно у меня.
Шаблон - один лист, но юзер выбирает какой из 5-6 возможных, + сам добавляет если надо, тупо создав в соотв. папке вордовский документ, вставив метки #NAME# куда надо в тексте.
только они должны 1:1 соответствовать именам полей запроса,
но ничего, посмотрят как в оригинале, поставят, если им очень нужно будет
← →
SQLEXPRESS (2011-07-07 16:30) [13]
> А как будет выглядеть изменение шаблона юзером? Он же и
> Ворде всё испортит.
ну и ССЗБ, тогда бери образец-readonly, правь заново..
> я бы сделал для себя возможность менять шаблон наиболее
> бесгеморным для меня способом. А юзер присылал бы мне вордовый
> образец/фрагмент чего он хочет видеть сегодня.
штук по 10 будут слать первые несколько дней.
Сидеть и править? а работать кто будет? :)
← →
b z (2011-07-07 17:04) [14]
> папке вордовский документ, вставив метки #NAME# куда надо
> в тексте.
В ворде есть понятия шаблонов, полей, коментариев, и и.п. штучек.
← →
SQLEXPRESS (2011-07-08 11:36) [15]Подскажите, пожалуйста, какие-нибудь команды, для ускорения работы
(
я сам пока тоже буду искать, просто очень надо побыстрее что бы было..
прошу прощения, знаю что спешку нельзя показывать, даже если очень надо.
Но мне ОООчень нужно, в обед буду сдаваться, надо что б побыстрее отработал этот момент..
)
W := CreateOleObject("Word.Application");
W.DisplayAlerts := False; // что-то вроде этого
в Exccell есть, например,
E.EnableEvents := False;
что-то такое же
← →
DiamondShark © (2011-07-08 11:54) [16]Справка ворда, ключевое слово "слияние"
← →
Dennis I. Komarov © (2011-07-08 12:14) [17]
> Шаблон - один лист, но юзер выбирает какой из 5-6 возможных,
> + сам добавляет если надо, тупо создав в соотв. папке вордовский
> документ, вставив метки #NAME# куда надо в тексте.
*dot[x] + Bookmakrs?
← →
SQLEXPRESS (2011-07-08 12:36) [18]вот чего нашел
W.Options.CheckSpellingAsYouType := False;
W.Options.CheckGrammarAsYouType := False;
вроде, быстрее стало,
еще пока поищу. Кто знает - пишите, не стесняйтесь :)
> *dot[x] + Bookmakrs?
да зачем?
там одна страница - был бы текст, было бы да, по закладкам и меткам.
А на одной странице и replace хорош
← →
b z (2011-07-08 13:56) [19]Документ надо заполнять скрытым. Отображать, если надо, только в конце.
← →
SQLEXPRESS (2011-07-08 14:52) [20]
> Документ надо заполнять скрытым.
это понятно.
Короче, сдался. 200 листов за 2,5 минуты. Скорость устроила.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.11.06;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.035 c