
- •Работа с “Word”, “Excel” и ActiveX
- •Понятие о com-клиенте и com-сервере
- •Листинг программы экспорта в Word
- •.TypeParagraph
- •Основные структуры программы.
- •Комментарии к каждой строке листинга
- •Листинг программы экспорта в Excel
- •Use data1!rukovoditely
- •From data1!rukovoditely;
- •Into array a
- •Release a
- •Endwith
- •ActiveX → Календарь
- •Процедура определения календарной даты
Листинг программы экспорта в Excel
Процедуру необходимо адаптировать к Вашему проекту.
-
loExcel=CREATEOBJECT("Excel.Application")
-
loExcel.displayAlerts=.F.
-
with loExcel
-
.Visible=.t.
-
.WorkBooks.Add
-
.Sheets(1).Select
** Выполнение запроса для занесения в таблицу Excel
-
Use data1!rukovoditely
-
SELECT TRIM(r_fam)+' '+TRIM(r_im)+' '+TRIM(r_ot),TRIM(s_fam)+' '+TRIM(s_im)+' '+TRIM(s_ot),TRIM(group);
-
From data1!rukovoditely;
-
order by r_fam;
-
Into array a
-
rowsCount=ALEN(a,1)
-
colsCount=ALEN(a,2)
** Код программы получен как макрос VBA
-
.Columns("A:A").ColumnWidth = 30
-
.Columns("B:B").ColumnWidth = 30
-
.Columns("C:C").ColumnWidth = 14
-
.Range("A1").Select
-
.ActiveCell.FormulaR1C1 = "Руководитель"
-
.Range("B1").Select
-
.ActiveCell.FormulaR1C1 = "Дипломник"
-
.Range("C1").Select
-
.ActiveCell.FormulaR1C1 = "Группа"
-
.Range("D1").Select
-
j=2
-
FOR j=2 TO rowsCount+1
-
.Range("A1").Select
-
.Activecell(j,1).FormulaR1C1= a[j-1,1]
-
.Range("B1").Select
-
.Activecell(j,1).FormulaR1C1= a[j-1,2]
-
.Range("C1").Select
-
.Activecell(j,1).FormulaR1C1 = a[j-1,3]
-
ENDFOR
-
Release a
-
Endwith
-
CLOSE DATA ALL
-
RELEASE TO Excel
-
RETURN
Макрос VBA
-
Открыть Excel
-
Включить VBA Вид → Макросы
-
Нажать Запись макроса
-
Дать свое имя или оставить Макрос1, нажать ОК
-
Установить ширину колонок (например А,В,С)
-
Ввести наименование колонок
А → Руководители
В → Дипломник
С → Группа
Уйти на свободную колонку
-
Нажать Остановить запись
-
Перейти по Вид → Макросы и нажать Выполнить
-
Перейти по Вид → Макросы и нажать Изменить
-
Скопировать код макроса
-
Вставить в VFA с модификацией
ActiveX → Календарь
-
Создаем новую форму:
-
Выберем в Form Controls кнопку View Classes
→ ActiveX
-
Выберем из ActiveX календарь и разместим его на форме
-
Создадим процедуру
Command1.Click
Thithform.text1.value = dtoc (date())
-
Создадим процедуру Olecontrol1.click
Процедура определения календарной даты
-
LPARAMETERS cur_date
-
cur_day = ALLTRIM(STR(thisform.olecontrol1.day))
-
cur_mon = ALLTRIM(STR(thisform.olecontrol1.month))
-
cur_year = ALLTRIM(STR(thisform.olecontrol1.year))
-
cur_date = cur_day + "/" + cur_mon + "/" + cur_year
-
thisform.text2.value = cur_date