Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
50
Добавлен:
10.05.2015
Размер:
244.22 Кб
Скачать

Работа с “Word”, “Excel” и ActiveX

  1. Понятие о com-клиенте и com-сервере

Если VTF использует Word или Excel или любое другое объектное приложение, то такое приложение называется COM-клиент.

Если Access использует VTF как свой объект, то это приложение VTF называется COM-клиент.

  1. VTF как COM-клиент.

Для того чтобы получить ссылку на COM-объект нужно использовать функцию CreateObject(). В скобках указывается имя объекта и его класс.

Листинг программы экспорта в Word

Процедуру необходимо адаптировать к Вашему проекту.

  1. LOCAL loWord

  2. loWord=CREATEOBJECT("Word.Application")

  3. loWord.displayAlerts=.F.

  4. loWord.Documents.Add("Normal",.F.)

  5. with loWord

  6. .Visible=.t.

  7. with .Selection

  8. .Font.Bold=.T.

  9. .Font.SIZE=16

  10. .Font.NAME="Times New Roman"

  11. .ParagraphFormat.ALIGNMENT=1

  12. .typeText('Динамика выполнения дипломного проектирования на кафедре ИТС')

  13. .Font.SIZE=12

  14. .Font.NAME="Times New Roman"

  15. .typeParagraph

  16. .Font.Bold=.F.

  17. Use data1!rukovoditely

  1. SELECT TRIM(s_fam),Trim(r_fam),TRIM(group),Trim(sr_1),Trim(sr_2);

  2. FROM data1!rukovoditely;

  3. order by group,s_fam;

  4. INTO ARRAY a

  5. IF _TALLY>0

  6. .TypeParagraph

  7. .typeText('')

  8. rowsCount=ALEN(a,1)

  9. colsCount=ALEN(a,2)

  10. loWord.ActiveDocument.TABLES.ADD(.RANGE,rowsCount+1,colsCount)

  11. T=.TABLES(1)

  12. WITH T

  13. .cell(1,1).RANGE.TEXT='Дипломник'

  14. .cell(1,1).RANGE.FONT.Bold=.T.

  15. .cell(1,2).RANGE.TEXT='Руководитель'

  16. .cell(1,2).RANGE.FONT.Bold=.T.

  17. .cell(1,3).RANGE.TEXT='Группа'

  18. .cell(1,3).RANGE.FONT.Bold=.T.

  19. .cell(1,4).RANGE.TEXT='На 27.11.06'

  20. .cell(1,4).RANGE.FONT.Bold=.T.

  21. .cell(1,5).RANGE.TEXT='На 12.12.06'

  22. .cell(1,5).RANGE.FONT.Bold=.T.

  23. j=2

  24. FOR j=2 TO rowsCount+1

  25. .cell(j,1).RANGE.TEXT=a[j-1,1]

  26. .cell(j,2).RANGE.TEXT=a[j-1,2]

  27. .cell(j,3).RANGE.TEXT=a[j-1,3]

  28. .cell(j,4).RANGE.TEXT=a[j-1,4]

  29. .cell(j,5).RANGE.TEXT=a[j-1,5]

  30. ENDFOR

  31. ENDWITH

  32. .EndKey(6)

  33. .typeParagraph

  34. RELEASE a

  35. ELSE

  36. .typeParagraph

  37. .typeText("Нет сведений о дипломниках")

  38. .typeParagraph

  39. ENDIF

  40. ENDWITH

  41. ENDWITH

  42. RELEASE TO WORD

Структура таблицы rukovoditely

r_fam

r_im

r_ot

s_im

s_fam

s_ot

group

С помощью этой процедуры выполняется SQL-запрос к таблице базы данных и распечатка результата этого запроса в виде таблицы с заданными полями.

Схема таблицы rukovoditely приведена на листе, где дан листинг программы. В этой таблице хранятся данные о ходе дипломного проектирования на кафедре, где

r_fam

r_im Фамилия, имя и отчество руководителя

r_ot дипломного проекта

s_fam

s_im Фамилия, имя и отчество студента

s_ot

group – учебная группа студента

Соседние файлы в папке Дополнительные лекции