Ввод исходных данных |
|
|
Внимание! Данная версия урока предназначена для работы
на локальной машине. Необходимо скачать урок и файл
urok2_3.xls (архив). Разместите файл urok2_3.xls в каталоге С:\ASed.
Итак, перед нами фрагмент учебного приложения. При нажатии
на кнопку "Считать", данные из окон ввода направляются в MSExcel, обрабатываются
по заданным правилам (urok2_3.xls), результаты обработки возвращаются в SPAN
области результатов. Разберем механизм обеспечения этих процедур.
Во первых, при загрузке файла осуществляется подключение
MSExcel и открытие соответствующего файла (urok2_3.xls), для этого в теге BODY
прописывается следующее:
<body bgcolor="#bbbbbb" text="#000000" topmargin="3"
onLoad="onLoaded()"
onBeforeUpdate="close_ex()" onUnload="close_ex()">
Обратите внимание, что обрабатывается не только событие
"загрузка", но и "перед обновлением", и "выгрузка" с вызовом соответствующих функций.
Для подключения MSExcel используется "двухэтажная" обработка, т.е. сначала вызывается
функция javascript, а из нее - VBScript. Но это совершенно необязательно, так
написалось.
function onLoaded(){
document.all["voskl"].style.visibility="hidden";//дань первым урокам
conn_ex();
//setInterval("onTick()",500);
}
Далее фрагмент VBScript, где определены три фунции: conn_ex() - создание обекта MSExcel и
открытие файла; calc_ex() - пересылка данных в MSExcel и возврат результатов обработки;
close_ex() - закрытие файла. Код достаточно прозрачен и не требует пояснений, но обратите
внимание на закомментированную строку:
'objExcel.Visible = True
Если снять символ комментария, то увидим рабочую книгу MSExcel.
<script language="VBScript">
Dim objExcel
Sub conn_ex()
On Error Resume Next
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open("D:\USER_SA\ASed\lessons2\urok2_3.xls")
'objExcel.Visible = True
End Sub
Sub calc_ex()
objExcel.Worksheets("Лист1").Range("a2")=param1.value
objExcel.Worksheets("Лист1").Range("a3")=param2.value
objExcel.Worksheets("Лист1").Range("a4")=param3.value
objExcel.Worksheets("Лист1").Range("a5")=param4.value
result1.innerHTML=objExcel.Worksheets("Лист1").Range("c2")
result2.innerHTML=objExcel.Worksheets("Лист1").Range("c3")
result3.innerHTML=objExcel.Worksheets("Лист1").Range("c4")
result4.innerHTML=objExcel.Worksheets("Лист1").Range("c5")
End Sub
Sub close_ex()
objExcel.Workbooks("urok2_3.xls").Close
End Sub
</script>
Как видите, обмен между интерфейсной частью и
обработчиком данных, в качестве которого используется MSExcel, организуется довольно
просто, но за этой простотой скрывается масса новых возможностей, которые определят
совершенство вашего приложения, простоту подготовки отчетов и т.д., и т.д.
Вернемся к статье?
|