Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.93/46: Рейтинг темы: голосов - 46, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 66
1

Выгрузить представление в word

15.03.2016, 11:02. Показов 8805. Ответов 35
Метки нет (Все метки)

Добрый день Уважаемые.
Подскажите ПЖ а может будет даже пример.
Есть представление его надо вывести в Word с выбором периода.

Подскажите ПЖ.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2016, 11:02
Ответы с готовыми решениями:

Выгрузить представление в файл
Здравствуйте, стоит задача: нужен отчет, состоящий из определенных полей, на каждый день, то есть...

Выгрузить данные из Edit и ComboBox в Word
Помогите написать процедуру что из Edit и ComboBox выгрузить данные в шаблон Word

Как выгрузить данные из DGV в Word
Привет всем! Как бысрий выгрузить DGV в Word

Выгрузить данные в файлы формата Microsoft Word и Excel
Написать программу, которая выгружает текстовые данные из Memo в формат Microsoft Word. Добавляет...

35
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
15.03.2016, 11:27 2
почему в ворд?
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 66
15.03.2016, 11:28 3
Цитата Сообщение от lmike
почему в ворд?
Пользователи хотят вывести именно в ворд, ну если с вордом сложно то буду навязывать им excel.
у них есть установленная форма вот и хотят ее заполнить.
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
15.03.2016, 11:35 4
Файл-Экспорт-
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
15.03.2016, 11:38 5
Ctrl-A, Edit -> Copy Selected As Table
Ctl-V где оно надо
ограничение будет по большим вьюшкам


--- Добавлено 16 мар 2016. Первое сообщение размещено 16 мар 2016 ---

варианты сложнее
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 66
15.03.2016, 11:42 6
Цитата Сообщение от ToxaRat
Файл-Экспорт-
А тогда не удастся вывести и заполнить шаблон.
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 66
15.03.2016, 11:52 7
Цитата Сообщение от lmike
Ctrl-A, Edit -> Copy Selected As Table
Ctl-V где оно надо
ограничение будет по большим вьюшкам
Данные вариант так же не подходить. мне надо кнопку в представлении "Выгрузить" - затем запрос периода. открыть шаблон и заполнить его данными с представления удовлетворяющими периода.
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
15.03.2016, 12:27 8
@Ruska132, тогда надо программировать.
Если есть шаблон, то там можно сделать вычисляемые поля с алиасами ( [URL="https://blogs.technet.microsoft.com/tasush/2011/06/15/word-2010-2/"]https://blogs.technet.microsoft.com/tasush/2011/06/15/word-2010-2/[/NICK] ).
В лотусе делается агент, который собирает данные и заполняет некую структуру.
Затем эта структура переносится в шаблон.
Тот же принцип, что и с excel, только вместо обращения к ячейке идет обращение к вычисляемому полю.
Примерно так:

LotusScript
1
wdoc.formfields(ListTag(dt)).Range.Text = "" & dt
тут dt список, тэг списка - имя вычисляемого поля в ворде, а значение - значение =)
Можно хоть класс, хоть тип сделать, не важно, главное принцип.
Это на LS естественно, через COM.

Наверняка есть решения и на java, но я не искал.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
15.03.2016, 12:45 9
здесь выкладывал БД, кот. берет вьюшку и выгружает Excel файл, причем описание (что и откуда) задается доком настроек
НО код достаточно увесистый (и не причесанный), требует POI
есть вариант от @garrick - плагин
выше ссылка на готовую БД для jasperreport (@oshmianski), как поставить jasper и его настроить - там же в ветке


--- Добавлено 16 мар 2016. Первое сообщение размещено 16 мар 2016 ---

джаспер грузит во чтохошь
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 812
15.03.2016, 14:53 10
Вариантов "выплюнуть" содержимое базы Lotus Notes в какой-нибудь файл есть огромное множество. Вам этот Word потом править или распечатывать? Если распечатывать, то количество вариантов сильно увеличивается, Word при этом, соответственно, выбрасываем совсем.

Нарисовать диалоговое окошко с запросом парметоров;
Создать вьюху, которая умеет отбирать из базы документы по указанным параметрам;
Заполняем шаблон данными (не обязательно Wordовый, в зависимости от того, что вам надо в конечном итоге)
Отдаём что получилось пользователю.
По поводу технологии заполнения шаблона есть масса вариантов, но надо точно понимать нужен ли вам именно Word. Если Word обязательно, то через OLE на VBA или в RTF через какой-нибудь шаблонизатор или через XML/XSL Transformer.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
15.03.2016, 18:46 11
небольшой ОФФ
замена текста в ворде (docx) http://stackoverflow.com/questions/22268898/replacing-a-text-in-apache-poi-xwpf/22269035#22269035
код агента и либа (написано на коленке и "грязно")

Код (Java):
import lotus.domino.*;

public class JavaAgent extends AgentBase {

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
String[/URL][] arrFrom= {"<SPA_POSITION>","<SPA_WHOM>"}, arrTo= {"Генерал","Кузнецов"};
String[/URL] path="C:/Documents and Settings/mikelocal/Local Settings/Temp/notesD6014A/";
String[/URL] fnameIN=path+"ADD18_.docx";
String[/URL] fnameOUT=path+"output.docx";
//XWPFTest.Test(fnameIN, fnameOUT);
XWPFUtils.replaceFromArray(arrFrom, arrTo, fnameIN, fnameOUT);
} catch(Exception[/URL] e) {
e.printStackTrace();
}
}
}


Код (Java):
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
//http://stackoverflow.com/questions/22268898/replacing-a-text-in-apache-poi-xwpf
public class XWPFUtils {
public static void replaceFromArray(String[/URL] []arrFrom, String[/URL][] arrTo, String[/URL] fnameIN, String[/URL] fnameOUT) {
XWPFDocument doc=null;
try {
doc = new XWPFDocument(OPCPackage.open(fnameIN));
} catch (InvalidFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException[/URL] e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
for (XWPFParagraph p : doc.getParagraphs()) {
List<XWPFRun> runs = p.getRuns();
if (runs != null) {
for (XWPFRun r : runs) {
paragraphReplace(arrFrom,arrTo,r);
}
}
for (XWPFTable tbl : doc.getTables()) {
for (XWPFTableRow row : tbl.getRows()) {
for (XWPFTableCell cell : row.getTableCells()) {
for (XWPFParagraph p1 : cell.getParagraphs()) {
for (XWPFRun r : p1.getRuns()) {
paragraphReplace(arrFrom,arrTo,r);
}
}
}
}
}
}
try {
doc.write(new FileOutputStream[/URL](fnameOUT));
System[/URL].out.println("Done");
} catch (FileNotFoundException[/URL] e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException[/URL] e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
/* if (pkg!=null)
try {
pkg.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
*/ }

}
private static void paragraphReplace( String[/URL][] arrFrom, String[/URL][] arrTo, XWPFRun r) {
String[/URL] text = r.getText(0);
if (text != null) {
for(int i=0; i<arrFrom.length;i++) {
if (text.contains(arrFrom[i])) {
text = text.replace(arrFrom[i], arrTo[i]);
System[/URL].out.println("Replacement:"+arrFrom[i]+"|"+arrTo[i]);
r.setText(text, 0);
}
}
}
}
}



--- Добавлено 16 мар 2016. Первое сообщение размещено 16 мар 2016 ---

подразумевается что в "нормальном" варианте д.б. не массив, а ArrayList или HashMap (зависит от задачи)
POI 3.14 (символичный релиз ;) )
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 812
16.03.2016, 10:08 12
Тут как-то возникла проблема - надо было вставить поля в header или footer (уж и не помню куда точно). Сам Word умеет встявлять туда свои поля, например номер страницы, но не позволяет вставлять пользовательские поля. Или не текущая на тот момент версия не позволяла, но в общем никак не получалось. В результате безуспешной борьбы с этим безобразием было найдено решение, которое в принципе можно использовать для заполнения всего документа не задействовав при этом сам Word.

В Worde готовится шаблон документа с полями, у которых должно быть заполнено свойство "Текст по умолчанию" значением типа $name;
Сохраняем шаблон в формате RTF;
Открываем в простом текстовом редакторе типа notepad (я предаочитаю Notepad++), доавляем аналогичный текст в "труднодоступные места";
При формировании документа, заполняем RTF файл данными с помощью Apache Velocity (можно импользовать любой "шаблонизатор", заменив $name на нотацию наименования полей вашего шаблонизатора);
Открываем готовый документ в Wordе и делаем довольное лицо.



--- Добавлено 17 мар 2016. Первое сообщение размещено 17 мар 2016 ---




Цитата Сообщение от lmike
POI 3.14 (символичный релиз ;) )
ПОИ пи....?
Вот не надо больше номер версии увеличивать, просто далее дописывать циферки справа в необходимой последовательности.
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 66
16.03.2016, 10:28 13
Что то сильно много умной информации, я думал будет проще. Мне надо заполнить таблицу, хотел бы использовать что уже получалось:
Dim WrdApp, WrdDoc As Variant
Dim docSotrTmp As NotesDocument
.....
открытие шаблона
....
Set WrdApp = CreateObject("Word.Application")
Call WrdApp.Documents.Add(шаблон)
Set WrdDoc = WrdApp.ActiveDocument

и вот так заполнить таблицу
WrdDoc.Tables.Item(2).Cell(WrdDoc.Tables.Item(2).Rows.Count, 1).Range.Text=docSotrTmp.поля(0)

такой просто способ мне бы очень как подошел.
в Worde простая таблица и все данные с одного документа.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 812
16.03.2016, 11:09 14
Цитата Сообщение от Ruska132
в Worde простая таблица и все данные с одного документа.
А в чём проблема-то?
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 66
16.03.2016, 11:10 15
Цитата Сообщение от garrick
А в чём проблема-то?

проблема в том как организовать отбор в представление документов удовлетворяющий условию, и потом вывести их поочередно.
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
16.03.2016, 11:17 16
никак.
Только перед записью в Word проверять дату.
Ну или делать поиск по базе, но тогда рисовать структуру отчета самому.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.03.2016, 11:31 17
Цитата Сообщение от Ruska132
и вот так заполнить таблицу
WrdDoc.Tables.Item(2).Cell(WrdDoc.Tables.Item(2).Rows.Count, 1).Range.Text=docSotrTmp.поля(0)
а вот вам и объясняют - не проще это
а вот использовать шаблоны джаспера или воспользоваться POI http://www.tutorialspoint.com/apache_poi_word/apache_poi_word_tables.htm
или использовать xdocreport
вот в таком ключе http://stackoverflow.com/questions/...in-a-word-table-using-velocity-and-xdocreport
достаточно простая задача с заделом на будущее, но таки - да придется потратить день на изучение темы
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.03.2016, 11:46 18
использование джаспер http://flaz.biz/2008/11/jasper... tus-notes/ как пример
там подключаются в БД, но джаспер понимает и CSV https://openntf.org/XSnippets.... aagent(т.е. - просто выгрузить из вьюшки в CSV)
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.03.2016, 12:05 19
в POI ваще кода - наразпоссать, в чем проблема использования нормальных инструментов с туториалами документацией, примерами...?
вместо вопросов про проприетарный ворд КОМ
вот он точно - не проще
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 66
16.03.2016, 12:10 20
Мне показалось там все за мудрено и слишком умно.
Создам диалог с выбором периода, и буду пробегаться по представлению и если подходит буду выводить в ворд.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2016, 12:10

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Представление расчётов из Excel в Word и AutoCAD
Здравствуйте уважаемые программисты:) Занимаюсь разработкой типовых проектов в области...

Файл: Выгрузить файл через нажатие кнопки pushButton и выгрузить его в listWidget
здравствуйте давно не заходил в QT и впринцепи им особо не когда не занимался не подскажите хочу...

Если известно десятичное представление числа 255, 7, то его двоичное представление
1. 11111111, 0111 2. 111111111,1110 3. 11111111, 111 4. FF, 3 5. 255, 111

Программа переводит строковое представление числа в числовое представление
Программа получает запись действительного числа в виде строки. Входная переменная, то есть, имеет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.