|
Программный код
Word
*создаем объект типа приложения Ворда
oWord=CREATEOBJECT('Word.application')
*создаем новый документ
oWord.Documents.Add()
*записываем в документ его заголовок (строку текста)
oWord.Selection.TypeText("Список Менеджеров")
*объявляем ее как параграф
oWord.Selection.TypeParagraph
*две строки пропуска для красоты
oWord.Selection.TypeParagraph
oWord.Selection.TypeParagraph
SELECT menegers
GO top
*добавляем в документ таблицу
*первый параметр - в качестве диапазона указываем текущий
*второй параметр - количество строк указываем равным количеству записей в таблице GOODS
*третий параметр - количество столбцов равно 2
oWord.Selection.Tables.Add(oWord.Selection.Range,RECCOUNT(),1)
*i - переменная с номером строки таблицы в Ворде
i=1
*перебираем все записи в GOODS
SCAN
WITH oWord.Selection
*в таблице с индексом 1 выбираем ячейку в первом столбце строки i
.Tables(1).Cell(i,1).Select()
*в выбранную ячейку записываем название товара
.TypeText(menegers.fio)
*во второй столбец строки заносим цену товара
*.Tables(1).Cell(i,2).Select()
*.TypeText(ALLTRIM(STR(nunitprice)))
ENDWITH
*переходим к следующей строке
i=i+1
ENDSCAN
*для второго столбца таблицы указываем авторазмер
*oWord.Selection.Tables(1).Columns(2).autofit()
*делаем Ворд видимым
oWord.visible=.T.
Excel
*создаем объект приложения
oExcel=CREATEOBJECT('Excel.Application')
*создаем в приложении новую книгу
oMyBook=oExcel.Workbooks.Add()
*получаем ссылку на первый рабочий лист
oMySheet=oMyBook.Worksheets(1)
*выбираем источник данных, в нашем случае - таблицу goods
SELECT pokupateli
*перемещаем указатель в таблице в начало
GO top
*переменная i будет определять номер строкина рабочем листе Excel
i=1
*цикл SCAN перебирает все записи в таблице
SCAN
*помещаем в i-ю строку в первый столбец название товара
oMySheet.cells(i,1).value=pokupateli.fio
*помещаем в i-ю строку во второй столбец цену товара
oMySheet.cells(i,2).value=pokupateli.telefon
*переходим к следующей строке
i=i+1
ENDSCAN
*выделяем весь лист Excel
oMySheet.cells.select
*подгоняем ширину столбцов по содержимому
oMySheet.cells.EntireColumn.AutoFit
*переводим курсор на ячейку А1
oMySheet.cells(1,1).select
*делаем приложение видимым на экране
oExcel.Visible=.T.
Word
*создаем объект типа приложения Ворда
oWord=CREATEOBJECT('Word.application')
*создаем новый документ
oWord.Documents.Add()
*записываем в документ его заголовок (строку текста)
oWord.Selection.TypeText("Список товаров")
*объявляем ее как параграф
oWord.Selection.TypeParagraph
*две строки пропуска для красоты
oWord.Selection.TypeParagraph
oWord.Selection.TypeParagraph
SELECT tovari
GO top
*добавляем в документ таблицу
*первый параметр - в качестве диапазона указываем текущий
*второй параметр - количество строк указываем равным количеству записей в таблице GOODS
*третий параметр - количество столбцов равно 2
oWord.Selection.Tables.Add(oWord.Selection.Range,RECCOUNT(),3)
*i - переменная с номером строки таблицы в Ворде
i=1
*перебираем все записи в GOODS
SCAN
WITH oWord.Selection
*в таблице с индексом 1 выбираем ячейку в первом столбце строки i
.Tables(1).Cell(i,1).Select()
*в выбранную ячейку записываем название товара
.TypeText(tovari.na_izd)
*во второй столбец строки заносим цену товара
.Tables(1).Cell(i,2).Select()
.TypeText(ALLTRIM(STR(tovari.prise)))
.Tables(1).Cell(i,3).Select()
.TypeText(ALLTRIM(STR(tovari.prise*0.15)))
ENDWITH
*переходим к следующей строке
i=i+1
ENDSCAN
*для второго столбца таблицы указываем авторазмер
oWord.Selection.Tables(1).Columns(2).autofit()
*делаем Ворд видимым
oWord.visible=.T.
Excel
*создаем объект приложения
oExcel=CREATEOBJECT('Excel.Application')
*создаем в приложении новую книгу
oMyBook=oExcel.Workbooks.Add()
*получаем ссылку на первый рабочий лист
oMySheet=oMyBook.Worksheets(1)
*выбираем источник данных, в нашем случае - таблицу goods
qqq=VAL(ALLTRIM(thisform.text1.Value))
SELECT Firmi.num_zak, Firmi.fam, Firmi.imya, Zakaz.k_izd, Zakaz.kol,;
Tovar.prise;
FROM;
ELIT!FIRMI;
INNER JOIN ELIT!ZAKAZ;
ON Firmi.num_zak = Zakaz.num_zak;
INNER JOIN ELIT!TOVAR;
ON Zakaz.k_izd = Tovar.k_izd;
WHERE Firmi.num_zak = qqq;
ORDER BY Firmi.num_zak INTO TABLE result
SELECT result
*перемещаем указатель в таблице в начало
GO top
*oMySheet.cells(11,11).value=ALLTRIM(qqq)
*a=VAL(qqq)
*переменная i будет определять номер строкина рабочем листе Excel
oMySheet.cells(1,1).value=("номер заказа")
oMySheet.cells(1,2).value=("фамилия")
oMySheet.cells(1,3).value=("имя")
oMySheet.cells(1,4).value=("код изделия")
oMySheet.cells(1,5).value=("количество")
oMySheet.cells(1,6).value=("цена за 1")
oMySheet.cells(1,7).value=("цена по 1 товару")
oMySheet.cells(10,6).value=("общая цена = ")
i=2
*цикл SCAN перебирает все записи в таблице
SCAN
*помещаем в i-ю строку в первый столбец название товара
*oMySheet.cells(i,1).value=l12z4.num_zak
*помещаем в i-ю строку во второй столбец цену товара
oMySheet.cells(i,1).value=result.num_zak
oMySheet.cells(i,2).value=result.fam
oMySheet.cells(i,3).value=result.imya
oMySheet.cells(i,4).value=result.k_izd
oMySheet.cells(i,5).value=result.kol
oMySheet.cells(i,6).value=result.prise
s="=E"+ALLTRIM(STR(i))+"*F"+ALLTRIM(STR(i))
oMySheet.cells(i,7).formula = s
*oMySheet.cells(10,7).value=oMySheet.cells(10,2)
*k="=СУММ(G"+ALLTRIM(STR(i))+":G10"
*oMySheet.cells(10,i).formula = k
*переходим к следующей строке
k = CAST(i as c)
oMySheet.cells(10,7).formula = "=СУММ(G2:G"+k+")"
i=i+1
ENDSCAN
*r=2
*DO while oMySheet.cells(r,5).value<>" "
*s="=E"+ALLTRIM(STR(r))+"*F"+ALLTRIM(STR(r))
*oMySheet.cells(r,7).formula = s
*r=r+1
*ENDDO
*выделяем весь лист Excel
oMySheet.cells.select
*подгоняем ширину столбцов по содержимому
oMySheet.cells.EntireColumn.AutoFit
*переводим курсор на ячейку А1
*oMySheet.cells(1,1).select
*делаем приложение видимым на экране
oExcel.Visible=.T.
Дата добавления: 2015-08-28; просмотров: 48 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
к Правилам организации и проведения | | | Автомобиль Нива CHEVROLET, декабрь 2013 года, в хорошем состоянии, максимальная комплектация (GLC), один владелец, пробег 14000 км., цвет черно-синий металлик (млечный путь), тонировка, магнитола, |