powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как передать данные из базы данных Visual Foxpro в документ Word
12 сообщений из 12, страница 1 из 1
Как передать данные из базы данных Visual Foxpro в документ Word
    #32968062
MikeS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Имеется следующая задача.
В БД Visual Foxpro есть таблица Заказчиков. Есть интерфейс на эту БД. Существует стандартный шаблон контракта в формате MS Word. Необходимо из интерфейса формировать контракт с автоматическим заполнением информации о Заказчике.
Вопросы.
1. Как изменить стандартный шаблон контракта (добавить туда поля)?
2. Как в эти поля передать значения из таблицы?

Заранее благодарен за ответы.
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32968088
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну для начала нужно хотя бы открыть шаблон и посмотреть как организовано слияние, рассказать публике и задать уточняющие вопросы.
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32968121
MikeS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том-то и дело, что пока нет никакого слияния. Есть документ MS Word. В него, видимо, необходимо вставить объекты, взаимодействующие с базой.
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32968137
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай http://forum.foxclub.ru/read.php?f=5&i=97007&t=97007 может подойдет.
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32969902
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi MikeS!

Вот тебе 2 простых варианта на выбор:
1) Формируется временная таблица с данными для "слияния", в Word используется механизм "слияния" (MailMerge) - там указывается откуда брать данные (можно через ODBC к VFP таблице, или "напрямую" если таблицу сохранить как COPY TO ... TYPE FOX2X AS 866 - для простоты СНАЧАЛА сделай такую таблицу, потом рисуй шаблон в Word), выбираются поля для слияния, пишется текст и т.д. - всё можно почитать в хелпе к MS Word - причём "инициировать" процесс слияния конечно можно программно - из фокса, или из макроса в самом Word.
2) В шаблон документа вставляются "закладки", потом он открывается через OLE в фоксе, и уже фоксовая программа ищет закладки и вставляет туда нужный текст.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32970347
den_moroz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если ВЫ не против, то небольшое дополнение:

Довольно часто с этим сталкиваюсь. Для работы с макросом Word необходим файл заголовка данного приложения.

А в принципе: записал макрос, изменил синтаксис (достаточно большое количество различий, но разобраться не очень трудно), вставил в Fox.

Если нужен простенький листинг для примера, то всегда пожалуйста.
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32970624
MikeS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to den_moroz.

Буду очень признателен за листинг примера
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32970632
MikeS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Igor Korolyov.

А можно пример кода 2-го варианта?
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32971171
lo-pata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь уже высказано довольно много рекомендаций, но я тоже вставлю свои пять копеек :)

1. Для работы с Word нужны файлы заголовков (описание вордовских констант): создание файлов заголовков подробно расписано в Базияне (Часть V, Глава 21, "Константы в коде макроса").
2. Форма контракта, насколько я понимаю, постоянная, т.е. можно просто открывать документ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
            loword=CREATEOBJECT('word.application')
		WITH loword
			.windowstate=2
			.visible=.t.
			.application.activate()
			.documents().open('путь\документ')
			
			WITH .selection
                              .....
                         ENDWITH
                ENDWITH

дальше находишь и запоминаешь позиции всех полей, куда надо вставить данные из БД (считаешь вручную, перед использованием в проге). используя loword.selection.movedown (moveright, ...) становишься в нужное место и вставляешь что надо (но обязательно из таблицы с кодировкой 866, как уже отмечал Igor Korolyov).
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32972396
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To MikeS:
Посмотрите у себя в почте - я Вам отправил подробнейшую "инструкцию" (doc-файл в rar-архиве) от Базияна; практически - точно для Вашего случая.
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #32972542
den_moroz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простенький пример:

Есть таблица с 3-мя текстовыми полями (Фамилия-FAM, Имя-NAM, Отчество-OT4 )

Далее листинг:

USE my_table
kl_recc1 = RECCOUNT()

*!* #include Word.h && Все необходимые перененные уже определеы
&& если нужны другие возможности Word
&& необходимо использовать файл заголовка
#Define true .T.
#Define false .F.
#Define wdAlignParagraphCenter 1
#Define wdToggle 9999998
#Define wdAlignParagraphLeft 0
#Define wdOrientLandscape 1
#Define wdPrinterDefaultBin 0
#Define wdSectionNewPage 2
#Define wdAlignVerticalTop 0
#Define wdCellAlignVerticalTop 0
#Define wdStory 6
#Define wdLine 5
#Define wdCharacter 1

***************

old=On('error')
On Error oExcel=.Null.
oExcel=Getobject(,'word.application')
On Error &old
If Isnull(oExcel)
oExcel=Createobject('word.application')
Endi
oExcel.Visible = .t.

With oExcel

.documents.Add('Normal',false)

With .ActiveDocument.PageSetup
.Orientation = wdOrientLandscape
.TopMargin=30
.BottomMargin = 30
.LeftMargin = 115
.RightMargin = 30
Endwith

With .Selection
.Font.Size = 14
.Font.Bold = wdToggle
.TypeText('Какой-то текст')
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeParagraph
.TypeText('Еще что-нибудь в этом роде,')
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeParagraph
.TypeText('ну и еще какая-нибудь информация')
.TypeParagraph
.TypeParagraph
.TypeParagraph
.Font.Size = 12
.Font.Bold = wdToggle
Endwith

.ActiveDocument.Tables.Add (.Selection.Range, kl_recc1,4)
.ActiveDocument.Tables(1).Columns(1).SetWidth(43,0)
.ActiveDocument.Tables(1).Columns(2).SetWidth(73.4,0)
.ActiveDocument.Tables(1).Columns(3).SetWidth(134.65, 0)
.ActiveDocument.Tables(1).Columns(4).SetWidth(190.9, 0)
.ActiveDocument.Tables(1).Select

.Selection.Cells.VerticalAlignment = 1
.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Selection.MoveUp(wdLine,1)

For i = 1 To 4
.Selection.MoveRight(wdCharacter,1)
.Selection.Font.Bold = wdToggle
.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Endfor

iotable = .ActiveDocument.Tables(1)

Declare data_sub[kl_recc1,4]
data_sub[1,1] = '№ п/п'
data_sub[1,2] = 'Фамилия'
data_sub[1,3] = 'Имя'
data_sub[1,4] = 'Отчество'


GO TOP
cur_recc = 0

For i = 2 To kl_recc1
cur_recc = cur_recc+1
data_sub[i,1] = cur_recc
data_sub[i,2] = ALLTRIM(fam)
data_sub[i,3] = ALLTRIM(nam)
data_sub[i,4] = ALLTRIM(ot4)
Skip
Endfor

With iotable
For lnrow = 1 To Alen(data_sub,1)
For lncolumn = 1 To Alen(data_sub,2)
.cell(lnrow,lncolumn).Range.insertAfter(data_sub[lnrow,lncolumn])
Endfor
Endfor
Endwith

.Selection.EndKey (wdStory)

With .Selection
.Font.Size = 14
.Font.Bold = wdToggle
.TypeParagraph
.TypeParagraph
.TypeText('Директор Фамилия')
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.TypeParagraph
.TypeParagraph
.TypeText('Начальник Фамилия')
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.TypeParagraph
.Font.Size = 12
.Font.Bold = wdToggle
ENDWITH
ENDWITH


Буду очень рад любым замечаниям и коментариям.
...
Рейтинг: 0 / 0
Как передать данные из базы данных Visual Foxpro в документ Word
    #33104838
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaTo MikeS:
Посмотрите у себя в почте - я Вам отправил подробнейшую "инструкцию" (doc-файл в rar-архиве) от Базияна; практически - точно для Вашего случая.

И мне, плиз! w_n_b (собака) mail.ru
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как передать данные из базы данных Visual Foxpro в документ Word
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]