Скачиваний:
52
Добавлен:
10.05.2015
Размер:
591.87 Кб
Скачать

Комментарии к каждой строке листинга

  1. - создается локальная переменная, используемая только в рамках этой процедуры

  2. - создается COM-объект Word и ему присваивается имя локальной переменной loWord

  3. - устанавливается свойство объекта loWord не выдавать предупреждающих сообщений

  4. - создается новый документ Word

  5. по 58) - команда WITH … ENDWITH работает с объектом loWord

  6. - открываем наш документ Word

  7. по 57) - команда WITH … ENDWITH работает внутри объекта loWord

  8. - жирное начертание текста

  9. - размер шрифта

  10. - тип шрифта

  11. - выравнивание текста по центру

  12. - вывод текста в скобках на экран

  13. по 16) - задание свойств для печати после вывода текта “Динамика выполнения дипломного проектирования на кафедре ИТС ”

  1. - открытие таблицы rukovoditely из базы данных data1

  2. - выбор атрибутов для отображения результатов запроса, функция “TRIM” возвращает выражение без концевых пробелов

  3. указание на таблицу и базу данных к которой формируется запрос

  4. - Оператор сортировки по номеру группы и по фамилии

  5. - into – оператор указывает, где следует хранить результаты запроса, ARRAY – массив а

  6. - переменная TALLY содержит количество записей, обработанной последней табличной командой, т.е. это число записей, отображенных из таблицы rukovoditely

  7. - переход на новый абзац

  8. - пустая строка (пропуск)

  9. по 26) - создаем две переменные и присваиваем им значение количества строк и столбцов в массиве а с помощью функции VTF Alen()

  1. - создаем с помощью метода Add (VisBas) таблицу с rowsCount+1 строками (+1 – строка для шапки таблицы, rowsCount – для данных) и colsCount столбцами

  2. - создаем переменную T и присваиваем ей текущую таблицу с помощью метода (VisBas) – Tables(1)

  3. - работаем с переменной T (таблица)

  4. по 39) - с помощью функции .cell (N_строки, N_столбца), свойства Text и Bold создаем в Word шапку таблицы

  1. - создаем переменную j для работы с номером строк

(первая строка таблицы уже создана операторами 30)-39), работаем со 2-ой строки)

  1. - организуем начало цикла для управления строкам таблицы от 2-ой строки до rowsCount+1

  2. по 46) - последовательно заполняем 5 ячеек каждой строки таблицы в Word из массива а

  1. конец цикла FOR

  2. окончание тела команды WITH задающей свойства объекта T (оператор 29))

  3. снимает в операторе 7) добавление .Selection

  4. переход на новый абзац

  5. удаляет из памяти массив а

  6. если условие, указанное в строке 22) не выполняется, то

  7. по 55) пропуск абзаца, печать текста в скобках, пропуск абзаца

  1. конец тела оператора условия IF

  2. окончание тела команды WITH (оператор 7))

  3. окончание тела команды WITH (оператор 5))

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

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

  1. loExcel=CREATEOBJECT("Excel.Application")

  2. loExcel.displayAlerts=.F.

  1. with loExcel

  2. .Visible=.t.

  3. .WorkBooks.Add

  4. .Sheets(1).Select

** Выполнение запроса для занесения в таблицу Excel

  1. Use data1!rukovoditely

  2. SELECT TRIM(r_fam)+' '+TRIM(r_im)+' '+TRIM(r_ot),TRIM(s_fam)+' '+TRIM(s_im)+' '+TRIM(s_ot),TRIM(group);

  3. FROM data1!rukovoditely;

  4. order by r_fam;

  5. INTO ARRAY a

  6. rowsCount=ALEN(a,1)

  7. colsCount=ALEN(a,2)

** Код программы получен как макрос VBA

  1. .Columns("A:A").ColumnWidth = 30

  2. .Columns("B:B").ColumnWidth = 30

  3. .Columns("C:C").ColumnWidth = 14

  4. .Range("A1").Select

  5. .ActiveCell.FormulaR1C1 = "Руководитель"

  6. .Range("B1").Select

  7. .ActiveCell.FormulaR1C1 = "Дипломник"

  8. .Range("C1").Select

  9. .ActiveCell.FormulaR1C1 = "Группа"

  10. .Range("D1").Select

  1. j=2

  2. FOR j=2 TO rowsCount+1

  3. .Range("A1").Select

  4. .Activecell(j,1).FormulaR1C1= a[j-1,1]

  5. .Range("B1").Select

  6. .Activecell(j,1).FormulaR1C1= a[j-1,2]

  7. .Range("C1").Select

  8. .Activecell(j,1).FormulaR1C1 = a[j-1,3]

  9. ENDFOR

  1. RELEASE a

  1. ENDWITH

  1. CLOSE DATA ALL

  1. RELEASE TO Excel

  1. RETURN

Макрос VBA

  1. Открыть Excel

  2. Включить VBA Вид Макросы

  3. Нажать Запись макроса

  1. Дать свое имя или оставить Макрос1, нажать ОК

  1. Установить ширину колонок (например А,В,С)

  2. Ввести наименование колонок

А Руководители

В Дипломник

С Группа

Уйти на свободную колонку

  1. Нажать Остановить запись

  1. Перейти по Вид → Макросы и нажать Выполнить

  1. Перейти по Вид → Макросы и нажать Изменить

  2. Скопировать код макроса

  3. Вставить в VFA с модификацией

Соседние файлы в папке Лекции по Базам данных - версия 9.01.10