|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Delphi и Word, работа c SaveDialog
Добрый день! Подскажите пожалуйста, как сделать, чтобы при создании отчета появлялось окно "Сохранить как"?
На данный момент все отчеты сохраняются в папку "Мои документы" Код:
procedure TForm7.Button1Click(Sender: TObject); var Command, // строка команды NameTemplate, // путь к файлу шаблона NameResult: string; // путь до отчета Macros: PChar; // строка команды на выполнение в Word begin If (DBEdit1.Text<>'') and (Memo1.Text<>'') then begin NameTemplate := GetCurrentDir + '\Шаблон.doc'; // задаем путь до файла шаблона NameResult := DBEdit1.Text+' '+DBEdit2.Text+' '+DBEdit3.Text+' '+DateToStr(Now)+'.doc'; // Далее в переменную Command добавляем команды, разделяя их [] // открываем файл шаблона и переходим в начало документа Command := '[FileOpen "' + NameTemplate + '"][StartOfDocument]'; // сохраняем документ под новым именем Command := Command + '[FileSaveAs "' + NameResult + '"]'; // переходим на закладку «Дата» Command := Command + '[EditBookmark.name = "Дата", .Goto]'; // Вставляем текущую дату Command := Command + '[Insert "' + DBEdit5.Text + '"]'; Command := Command + '[EditBookmark.name = "Фамилия", .Goto]'; Command := Command + '[Insert "' + DBEdit1.Text + '"]'; Command := Command + '[EditBookmark.name = "Имя", .Goto]'; Command := Command + '[Insert "' + DBEdit2.Text + '"]'; Command := Command + '[EditBookmark.name = "Отчество", .Goto]'; Command := Command + '[Insert "' + DBEdit3.Text + '"]'; Command := Command + '[EditBookmark.name = "Должность", .Goto]'; Command := Command + '[Insert "' + DBEdit4.Text + '"]'; Command := Command + '[EditBookmark.name = "Результат1", .Goto]'; Command := Command + '[Insert "' + Memo1.Text + '"]'; Command := Command + '[EditBookmark.name = "Результат2", .Goto]'; Command := Command + '[Insert "' + Memo2.Text + '"]'; Command := Command + '[EditBookmark.name = "Результат3", .Goto]'; Command := Command + '[Insert "' + Memo3.Text + '"]'; Command := Command + '[EditBookmark.name = "Результат4_1", .Goto]'; Command := Command + '[Insert "' + Memo4.Text + '"]'; Command := Command + '[EditBookmark.name = "Результат4_2", .Goto]'; Command := Command + '[Insert "' + Memo5.Text + '"]'; Command := Command + '[EditBookmark.name = "Результат4_3", .Goto]'; Command := Command + '[Insert "' + Memo6.Text + '"]'; Command := Command + '[EditBookmark.name = "Результат4_4", .Goto]'; Command := Command + '[Insert "' + Memo7.Text + '"]'; Command := Command + '[EditBookmark.name = "Результат4_5", .Goto]'; Command := Command + '[Insert "' + Memo8.Text + '"]'; Command := Command + '[FileSave]'; // сохраняем файл Macros := PChar(Command); // Преобразуем тип String в PChar DDE.OpenLink; // Откываем соединение с Word DDE.ExecuteMacro(Macros, false); // Отправляем команды на выполнение end else MessageDlg('Нет данных для отчета!', mtError, [mbOK],0) end; |
#2
|
|||
|
|||
решение найдено. добавить:
Код:
SaveDialog1.FileName:=NameResult; if SaveDialog1.Execute then begin NameResult := SaveDialog1.FileName; Macros := PChar(Command); // Преобразуем тип String в PChar DDE.OpenLink; // Открываем соединение с Word DDE.ExecuteMacro(Macros, false); // Отправляем команды на выполнение end; |