Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Vfp 9 +word


Автор: Jolia 28.7.2010, 19:51
Всем доброго времени суток)
Что хотела у Вас спросить.. в ворде на основе данных курсора формируется таблица, все данные отображаются, все нештяк, единственно хотелось бы немного красивей ее сделать.
вот собственно .прг, формирующая таблицу
Код


 #include msword.olb
 PARAMETERS curname,n_cols,shapka,polya,tosave
 LOCAL wordapp,worddoc,WordTbl

wordapp=CREATEOBJECT('Word.Application')
worddoc=wordapp.Documents.Add
WITH worddoc.PageSetup
    .LeftMargin =35
    .TopMargin = 35
    .RightMargin = 35
    .BottomMargin = 35
ENDWITH

WITH worddoc.Paragraphs
    .Add
    WITH .First.Range
        .Font.Bold = 1
        .Font.Size = 14
        .Text = br_zag
    ENDWITH 
    *.First.Format.Alignment = wdAlignParagraphCenter
ENDWITH
worddoc.Paragraphs.Add

n_rows=1

SELECT &curname
wor=shapka
SCAN
    &polya
    n_rows = n_rows + 1
ENDSCAN
LOCAL RS, RE

worddoc.Paragraphs.Add
RS = worddoc.Paragraphs.Last.Range.Start
worddoc.Paragraphs.Last.Range.InsertAfter(wor)
RE = worddoc.Paragraphs.Last.Range.End

WordDoc.Range(RS, RE).Select
WordDoc.Range(RS, RE).ConvertToTable(";", n_rows, n_cols, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

LOCAL WordTbl
WordTbl = WordDoc.Tables.Item(1)

WordTbl.Borders.Item(1).LineStyle=1
WordTbl.Borders.Item(2).LineStyle=1
WordTbl.Borders.Item(3).LineStyle=1
WordTbl.Borders.Item(4).LineStyle=1

WordTbl.Borders.Item(5).LineStyle=1
WordTbl.Borders.Item(6).LineStyle=1

WordTbl.Rows.Alignment=-1

WordTbl.Range.Font.Bold=.F.
WordTbl.Range.Font.Size=12
WordTbl.Rows.SpaceBetweenColumns = 0

WordTbl.Rows.Item(1).Range.Font.Bold=1
WordTbl.Rows.Item(1).Range.Paragraphs.Alignment=1

worddoc.saveas(tosave)
worddoc.close

release wordapp

wordapp=0


какие проблемы возникли:
1) в листинге Базияна подключается MsWord.h, мне же пишет что файл не найден, поэтому пришлось подключать msword.olb.. а почему?)

2) как закрыть приложение после сохранения документа? quit не компилится, а клоуз и релиз не помгаь = процесс винворда в диспетчере так и продолжает висеть.

3) и еще хотелось бы узнать как выровнять содержимое определенного столбца?
пробовала обращаться  к WordTbl.Columns(1).Alignment=1 но не получается так..() 

плиз хэлп)

Автор: Данкинг 29.7.2010, 02:08
Цитата(Jolia @  28.7.2010,  20:51 Найти цитируемый пост)
) в листинге Базияна подключается MsWord.h, мне же пишет что файл не найден, поэтому пришлось подключать msword.olb.. а почему?)

MsWord.h - это явно что-то из С.  smile А зачем вообще что-то стороннее подключать, разве создания OLE-объекта недостаточно?
Цитата(Jolia @  28.7.2010,  20:51 Найти цитируемый пост)
2) как закрыть приложение после сохранения документа? quit не компилится, а клоуз и релиз не помгаь = процесс винворда в диспетчере так и продолжает висеть.

Так не работает?
Код

wordapp.application.quit

Цитата(Jolia @  28.7.2010,  20:51 Найти цитируемый пост)
3) и еще хотелось бы узнать как выровнять содержимое определенного столбца?

А как сам Word делает? Посмотри макросы и перенеси на Фокс. smile 

Автор: Jolia 29.7.2010, 18:28
> А зачем вообще что-то стороннее подключать, разве создания OLE-объекта недостаточно?

ну да, воббще-то незачем, но я побоялась, что так работать не будет..оказывается все норм работает)

> 
Код
wordapp.application.quit


угу, получилось, спасииибо!!

>вот в вордовском макросе просто идет
Код
 Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

я уже по разному пробовала обратиться
Код
 
wordtbl.columns.item(1).range.paragraphs.alignment=1
wordtbl.Columns.item(1).Range.ParagraphFormat.Alignment=1
wordtbl.columns.item(1).alignment=1
wordtbl.columns.item(1).paragraphs.alignment=1
wordtbl.Columns.item(1).ParagraphFormat.Alignment=1

но никак..я сейчас конечно еще поищу..может повезет)

спасибо что откликнулись))


Автор: Jolia 29.7.2010, 18:48
нашла я про выравнивание

Код

worddoc.Tables(1).Columns(1).Select
wordapp.Selection.ParagraphFormat.Alignment =1


вопрос снят, всем спасибо за внимание)

Автор: Данкинг 29.7.2010, 20:14
Цитата(Jolia @  29.7.2010,  19:28 Найти цитируемый пост)
но я побоялась, 

Оказалось совсем не страшно. smile 
Цитата(Jolia @  29.7.2010,  19:48 Найти цитируемый пост)
нашла я про выравнивание

Смотри, как сам Word формулирует макросы. Это вообще полезно, и для Excel'я в том числе.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)