| главная -> статьи -> сетевые приложения | |
|
Подготовка отчетов
Просто разберите кодовую лапшу (так часто называют PHP программисты ситуацию, когда код сценария перемешан с HTML) на предлагаемом листинге. Отчет ориентирован на использование Excell, содержит формулы, которые позволяют модифицировать на стороне клиента отчет, сохраненный в виде книги Excell.
<% @LANGUAGE=VBScript%>
<% Option Explicit %>
<% Response.Expires = -1%>
<%
Response.Buffer = TRUE
Response.ContentType = "application/vnd.ms-excel"
Dim dbConn, dbQuery, tmp, newRecset, sprRecset, kormRecset, I, k_div
If IsObject(Session("ra_dbConn")) Then
Set dbConn = Session("ra_dbConn")
Else
Call Response.Redirect("index.htm")
End If
I = 1
%>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="_css/style.css" rel="stylesheet" type="text/css">
<body>
<center>
Рацион N<%=Session("rac_num")%> от <%=Date()%><br>
Составитель <%=Session("userName")%> <p>
</center>
<%
Set newRecset = Server.CreateObject( "ADODB.Recordset" )
dbQuery = "SELECT * FROM racion WHERE rac_id = " & Session("rac_num")
Call newRecset.Open(dbQuery, dbConn)
Set sprRecset = Server.CreateObject( "ADODB.Recordset" )
dbQuery = "SELECT * FROM anim_all WHERE id_anim = " & newRecset("id_anim")
Call sprRecset.Open(dbQuery, dbConn)
%>
Животное: <%=sprRecset("name")%> <%=sprRecset("param1")%> = <%=newRecset("param1")%>
<%=sprRecset("param2")%> = <%=newRecset("param2")%>
<%
newRecset.Close()
sprRecset.Close()
%><br>
<table width="90%" border = "1">
<tr>
<td width="27"> N </td>
<td width="350" align="center"> Наименование </td>
<td width="57"> Кол-во </td>
<td width="67"> Ед. изм. </td>
<td width="57"> Цена </td>
<td width="57"> Стоим. </td>
<td width="67"> Прим. </td>
</tr>
<%
dbQuery = "SELECT * FROM racion_korma INNER JOIN (name_korma INNER JOIN tip_korma " & _
"ON name_korma.id_tipa = tip_korma.id) ON racion_korma.korm_id =name_korma.id " & _
"WHERE racion_korma.rac_id = " & Session("rac_num") & " ORDER BY racion_korma.id"
Set kormRecset = Server.CreateObject( "ADODB.Recordset" )
Call kormRecset.Open(dbQuery, dbConn)
If Not kormRecset.BOF AND Not kormRecset.EOF Then
Call kormRecset.MoveFirst()
While Not kormRecset.EOF
%>
<tr>
<td width="27"><% =I%></a></td>
<td>
<% =kormRecset("tip_korma.name")%>: <% =kormRecset("name_korma.name")%>
<td align="center"><% =CInt(kormRecset("korm_kol")*100)/100%></td>
<%
k_div = 1
If kormRecset("korm_id")>500 Then
Set sprRecset = Server.CreateObject( "ADODB.Recordset" )
dbQuery = "SELECT * FROM name_dob WHERE id = " & kormRecset("korm_id")
Call sprRecset.Open(dbQuery, dbConn)
tmp = sprRecset("ed_izmer")
' k_div = 0.001
sprRecset.Close()
Else
tmp = "кг."
' k_div = 1
End If
'If tmp = "г." Then k_div = 1000 End If
If tmp = "мг." Then k_div = 0.001 End If
%>
<td align="center"><% =tmp%></td>
<td width="33">1</a></td>
<td width="57">=(c<%=I+5%>*e<%=I+5%>)*<% =k_div%></td>
<td width="67"> </td>
</tr>
<%
I=I+1
Call kormRecset.MoveNext()
Wend
End If
kormRecset.Close()
%>
<tr>
<td> </td><td> </td><td> </td><td> </td>
<td align="right"><b>Итого:</b></td>
<td>=сумм(f6:f<% =5+ I-1%>)</td><td> </td>
</tr>
<tr>
<td colspan="7" align="center"> Кормление группы животных за период</td>
</tr>
<tr>
<td> </td><td> </td><td> Живот.</td><td> Дней</td>
<td></td>
<td><b>Всего</b></td><td> </td>
</tr>
<tr>
<td> </td><td> </td><td>100</td><td>30</td>
<td> </td>
<td>=(c<%=I+8%>*d<%=I+8%>)*f<% =I+5%></td><td> </td>
</tr>
</table>
<p> Примечание: цена кормов - в рублях за килограмм, а минеральных добавок в рублях за грамм.
</body>
</html>
|
|
|
© 2007 Сединко А.М.
© 2004 design by kir |