Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
Внизкак быть? Найти похожие ветки
← →
mor (2002-04-25 14:22) [0]Здравствуйте!
Жизнь заставила сделать некую программу... Имеется некоторый
юридический документ в ворде 2000, формат которого выверен до
миллиметра и изменениям не подлежит. Нужно, что-бы пользователь
набирал данные, а они вставлялись в поля того
документа. Подскажите, как мне это все смастерить? Глупый, конечно
вопрос, но я не специалист в этой области. Спасибо!
← →
PaRL (2002-04-25 16:07) [1]По-моему Delphi не работает с вордом... хотя я не знаток.
> Глупый, конечно
> вопрос
Да нет.
← →
SPeller (2002-04-25 16:18) [2]На сколько я знаю Office это надо делать через элементы управления в самом документе - текстовые поля и программировать их там же. Наверно можно как-то через другие программы хуков понаставить тучу или ещё чего-нибудь, но это геморрой полнейший.
Полазь по справке в ворде по VB и посмотри как чего делается.
Если знаешь VB то сильно трудным это не окажется.
← →
Song (2002-04-25 16:19) [3]Работает.
CreateOLEObject()
← →
kalinka (2002-05-07 16:22) [4]Я делала так:
Создала в Word"е шаблон документа. Затем, в места, куда надо данные вставлять, написала свои переменные, в начале которых стоит знак @.
Var Template, OrgFileName : OleVariant;
WrdApp, WrdDoc : OleVariant;
.....
WrdApp := CreateOLEObject("Word.Application");
WrdApp.Documents.Add(Template, EmptyParam);
WrdDoc := WrdApp.ActiveDocument;
WrdApp.Visible := False;
......
//Skidka, NDS, Srok_Opl и т.д. - переменные типа String
InDoc(WrdApp, "@Skidka", Skidka);
InDoc(WrdApp, "@NDS", NDS);
InDoc(WrdApp, "@Srok_Opl", Srok_Opl);
.............
WrdDoc.SaveAs(MyFileName);
......
где InDoc - это:
procedure InDoc(Wa: OleVariant; FText, WText : String);
Var FindText, WriteText : OleVariant;
Begin
FindText := FText;
WriteText := Trim(WText);
Wa.Selection.Find.Wrap := wdFindContinue;
Wa.Selection.Find.Execute(FindText, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
If Wa.Selection.Find.Found Then
Begin
Wa.Selection.Font.ColorIndex := wdRed;
If WriteText <> "" Then
Wa.Selection.TypeText(WriteText)
Else Wa.Selection.TypeText(" ");
End;
End;
Вот, в принципе, и всё.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c