главная -> статьи -> сетевые приложения | |
Подготовка отчетов
Просто разберите кодовую лапшу (так часто называют 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 |