Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2014, 16:54   #1
NURKZ
 
Регистрация: 18.10.2014
Сообщений: 8
Вопрос Вывод данных из Edit в Word файл

Доброго времени суток друзья и коллеги!!! У меня такой случай: я 2 с половиной года не прикасался к Дельфи. Теперь передо мной стоит такая задача: надо сделать программу, в которой будут около 20 Edit(где можно писать если кто не понял) полей, и 1-2 checkbox-ов(ну эти с галочками а не радио баттн), и чтоб вставлять рисунок(если точнее снимок) прям из программы в ворд файл.
Вся информация из каждой ЕДИТ полей должна ложится на свое ранее определенное место в ворд файле. Ранее я определил места тегами вроде: "-name-", "-subname-", "-numberts-", "-sernumsrts-". А надо вот эти теги заменить написанными в ЕДИТ полях словами и цифрами.
А снимок можно сделать так: нажимаем кнопку обзор, выводится диалоговое окно и выбираем снимок. Выбранный снимок должен попасть туда где написан тег - "-pic-". А с чекбоксами я сам как-нибудь разберусь. Помогите освежить память!!! Просто покажите в кодах примеры. готовый файл не нужен. На примерах напишу сам. Я не прошу сделать программу, а прошу лишь подсказать. Пожалуйста мне очень надо...

P.S.: Чуть не забыл, ворд файл уже сделан, то есть программа не должна создавать ворд файл, а изменить уже имеющуюся в "своем"(где лежит программа, там и ворд файл) каталоге ворд файл.
Я не ГУРУ, но, учусь на ГУРУ...

Последний раз редактировалось NURKZ; 18.10.2014 в 17:03. Причина: Добавил постскриптум
NURKZ вне форума Ответить с цитированием
Старый 18.10.2014, 17:10   #2
NURKZ
 
Регистрация: 18.10.2014
Сообщений: 8
По умолчанию

Никто не хочет помочь? Или не поняли мою задачу? Если кто хочет помочь но не до конца понял мою задачу, могу все до мелочей обьяснить. Пожалуйста помогите!!!
Я не ГУРУ, но, учусь на ГУРУ...
NURKZ вне форума Ответить с цитированием
Старый 18.10.2014, 17:45   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Готовых примеров по конкретно твоей задаче у меня конечно нет, но в свое время я вписывал в поля штампа (что в колонтитулах) данные вот так:
Код:
procedure TFormProgressReport.Fields(i: integer; Value: String);
var fls,fld:OleVariant;
begin
   fls:=WordDoc.Sections.Item(1).Footers.Item(wdHeaderFooterFirstPage).Range.Fields;
   if not VarIsClear(fls) then begin
    fld:=fls.Item(i);//.Code:='QUOTE  "'+ModelName+'" \* MERGEFORMAT';
    fld.Code.Text:='QUOTE  "'+Value+'" \* MERGEFORMAT';
    fld.Update;
   end;

   fls:=WordDoc.Sections.Item(1).Footers.Item(wdHeaderFooterEvenPages).Range.Fields;
   if not VarIsClear(fls) then begin
    if (i<1)or(i>fls.Count) then exit;
    fld:=fls.Item(i);//.Code:='QUOTE  "'+ModelName+'" \* MERGEFORMAT';
    fld.Code.Text:='QUOTE  "'+Value+'" \* MERGEFORMAT';
    fld.Update;
   end;
end;
Где
Код:
 try WordApp:=CreateOleObject('Word.Application');except exit; end;
 WordDoc:=WordApp.documents.add(ExtractFilePath(ParamStr(0))+'Шаблон_КС2.dot');
И сам вызов:
Код:
   Fields(1,a.ModelName); // Станок
   Fields(2,a.KsItems('Разработал'));       // Разработал
   Fields(3,a.KsItems('Наименование')); // Наименование
Не исключено что и тебе предстоит использование похожего.
Попробуй почитай про указанные тут свойства документа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2014, 21:04   #4
NURKZ
 
Регистрация: 18.10.2014
Сообщений: 8
По умолчанию

Я тут с текстом разобрался вот так:
Код:
procedure TForm1.Button3Click(Sender: TObject);
 var
  word : variant;
  procedure FindAndReplace (SearchStr, ReplaceStr : string);
begin
    word.Selection.Find.Text := SearchStr;
    word.Selection.Find.Replacement.Text := ReplaceStr;
    word.Selection.Find.Execute (Replace := 2);
end;
begin
    try
      Word := CreateOleObject('Word.Application');
    except
      MessageBox (Handle, 'Не установлен Microsoft Office Word. Формирование ' +
                          'диакарты невозможно.', 'Ошибка',
                          MB_OK or MB_ICONERROR);
      exit;
    end;
  word.documents.open ('C:\LTKSoft\Diagnostic.docx');
  FindAndReplace ('%NAMECTO%', Edit8.Text);
  FindAndReplace ('%GRNZ%', Edit1.Text);
  FindAndReplace ('%VLADELETS%', Edit13.Text);
  FindAndReplace ('%MODELTS%', Edit2.Text);
  FindAndReplace ('%GODVYPUSKA%', Edit3.Text);
  FindAndReplace ('%SERNUMSRTS%', Edit4.Text);
  FindAndReplace ('%RAMA%', Edit6.Text);
  FindAndReplace ('%KUZOV%', Edit5.Text);
  FindAndReplace ('%DKNUMBER%', Edit7.Text);
  FindAndReplace ('%MINMASS%', Edit10.Text);
  FindAndReplace ('%MAXMASS%', Edit11.Text);
  FindAndReplace ('%PROBEG%', Edit12.Text);
  FindAndReplace ('%TOPLIVO%', Edit14.Text);
  FindAndReplace ('%DATE%', Edit9.Text);
  word.Visible := true;
  word := Unassigned;
end;
Только то же самое надо с картинкой сделать надо. Я в форме короче поместил кнопку которая вызывает "openpicturedialog1". Теперь надо сделать так, чтоб выбранный файл картинки вставился вместо "%IMG%". И путь к файлу стоял вместо CAPTION в LABEL2
Я не ГУРУ, но, учусь на ГУРУ...
NURKZ вне форума Ответить с цитированием
Старый 18.10.2014, 21:09   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я так глубоко интерфесы оффиса не копал...
Хотя могу посоветовать попробовать записать макрос вставки картинки обычными действиями пользователя, и посмотреть какой код на VBA сгенерируется. От него и отталкиваться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2014, 23:46   #6
NURKZ
 
Регистрация: 18.10.2014
Сообщений: 8
По умолчанию

Да я сам в первый раз связываюсь с офисом в дельфи. Тут у меня осталась картинка и все. Ну я попробую, отпишусь....
Я не ГУРУ, но, учусь на ГУРУ...
NURKZ вне форума Ответить с цитированием
Старый 19.10.2014, 00:10   #7
NURKZ
 
Регистрация: 18.10.2014
Сообщений: 8
По умолчанию

Тут у меня вот такой макрос выдал:

Код:
Selection.InlineShapes.AddPicture FileName:= _
        "C:\Users\24\Desktop\Новая папка (2)\00.jpg", LinkToFile:=False, _
        SaveWithDocument:=True
дальше как? чет совсем дубом стал раньше хоть как-то справлялся...
Я не ГУРУ, но, учусь на ГУРУ...
NURKZ вне форума Ответить с цитированием
Старый 19.10.2014, 00:27   #8
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,401
По умолчанию

Цитата:
Никто не хочет помочь? Или не поняли мою задачу?
привыкайте начать самому . Читаю название темы
Цитата:
Вывод данных из Edit в Word файл
начинаю
1.
Код:
uses ComObj
2.
Код:
  private
     procedure OpenWord;
3. нажимаю Shift +Ctrl + C и пишу
Код:
procedure TForm1.OpenWord;
 var
   Word: variant;
begin
 try
  Word := CreateOleObject('Word.Application');
  // отображение на экране
   Word.Visible := True;
  // создание нового документа
  Word.Documents.Add;
  // 	Вывод данных из Edit в Word
  Word.ActiveDocument.Range.InsertAfter(Edit1.Text);
 except
  ShowMessage('Не могу запустить MS Word');
 end;

end;
4. вызываю это процедуру при нажатие кнопки
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  OpenWord;
end;
Понятно как ?
Вложения
Тип файла: rar Word_text_Edit.rar (181.8 Кб, 61 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 19.10.2014, 01:56   #9
NURKZ
 
Регистрация: 18.10.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Понятно как ?
Я уже справился с вордом, и с текстом с Edit. Надо теперь выбранное(с помощью opendialog1) изображение вставить вместо тега "%IMG%" в ворд файле.
Ну короче с TImage в Word

Вот скрин программы
Я не ГУРУ, но, учусь на ГУРУ...
NURKZ вне форума Ответить с цитированием
Старый 19.10.2014, 09:25   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
дальше как?
Примерно так:
Код:
 word.Selection.InlineShapes.AddPicture (
   FileName:='C:\Users\24\Desktop\Новая папка (2)\00.jpg', 
   LinkToFile:=False,
   SaveWithDocument:=True
  );
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод данных в MS word в нужном порядке leejack Общие вопросы Delphi 6 14.06.2014 18:21
Ввод данных в txt файл из Edit sinobithug Общие вопросы C/C++ 1 28.03.2014 08:57
Вывод содержимого экр Edit в файл MVN Visual C++ 0 06.09.2013 16:16
Вывод данных из Access в Word GROSS777 БД в Delphi 1 22.11.2011 13:32
Вывод данных из БД в edit'ы через IBQuery alTor БД в Delphi 6 19.10.2011 17:29