Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Export ASP To Excel in server Problems

Status
Not open for further replies.

hugoscp

Programmer
Oct 30, 2007
2
PT
Hi i have this strange problem i generate an excel file in my computador and works fine but, when i put the program in my server it generates always the same file, for example: i enter the client 141 who has for one code produt the price of 2,65 and i generate the excel file and it works fine but, when i enter the client 534 who has the price 2,67 it generates the same price (2,65), why???!!!
the code that generate the excel file is at the end.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/Profarin.asp" -->
<%
Dim Recordset1__MMColParam
Recordset1__MMColParam = "1"
If (Request.QueryString("farm") <> "") Then
Recordset1__MMColParam = Request.QueryString("farm")
End If
%>
<%
Dim Recordset2__MMColParam
Recordset2__MMColParam = "2"
If (Request.QueryString("farm2") <> "") Then
Recordset2__MMColParam = Request.QueryString("farm2")
End If
%>
<%
Dim Recordset3__MMColParam
Recordset3__MMColParam = "3"
If (Request.QueryString("familia") <> "") Then
Recordset3__MMColParam = Request.QueryString("familia")
End If
%>
<%
'Dim Recordset1__MMColParam1
'Recordset1__MMColParam1 = "1"
'If (Request.QueryString("teste") <> "") Then
' Recordset1__MMColParam1 = Request.QueryString("teste")
Set Recordset0 = Server.CreateObject("ADODB.Recordset")
Recordset0.ActiveConnection = MM_Profarin_STRING
Recordset0.Source = "SELECT * FROM Consulta2 WHERE CodCliente = '" & Session("delegado") & "'"
Recordset0.CursorType = 0
Recordset0.CursorLocation = 2
Recordset0.LockType = 1
Recordset0.Open()
While (NOT Recordset0.EOF)
Tipo_Farm = Recordset0.Fields.Item("Tipo_farm").Value
Recordset0.MoveNext()
wend
Recordset0.Close()
'End If
%>
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_Profarin_STRING
if Tipo_Farm = "A" then
if request("xpto") = "Cod" then
Recordset1.Source = "SELECT * FROM Produtos_A where Cod_Art = " + Replace(Recordset1__MMColParam, "'", "''") + ""
else
if request("xpto") = "Nome" then
Recordset1.Source = "SELECT * FROM Produtos_A WHERE Nome_Art like '" + Replace( Recordset1__MMColParam, "'", "''") + "%' order by Nome_Art"
end if
end if
else
if Tipo_Farm = "B" then
if request("xpto") = "Cod" then
Recordset1.Source = "SELECT * FROM Produtos_B where Cod_Art = " + Replace( Recordset1__MMColParam, "'", "''") + ""
else
if request("xpto") = "Nome" then
Recordset1.Source = "SELECT * FROM Produtos_B WHERE Nome_Art like '" + Replace( Recordset1__MMColParam, "'", "''") + "%' order by Nome_Art"
end if
end if
else
if Tipo_Farm = "C" then
if request("xpto") = "Cod" then
Recordset1.Source = "SELECT * FROM Produtos_C where Cod_Art = " + Replace( Recordset1__MMColParam, "'", "''") + ""
else
if request("xpto") = "Nome" then
Recordset1.Source = "SELECT * FROM Produtos_C WHERE Nome_Art like '" + Replace( Recordset1__MMColParam, "'", "''") + "%' order by Nome_Art"
end if
end if
end if
end if
end if

if request("farm2") = "*" then
Recordset1.Source = "SELECT * FROM Produtos order by Nome_Art"
else
if request("familia") <> "" then
Recordset1.Source = "SELECT * FROM Produtos where Familia = " + Replace( Recordset3__MMColParam, "'", "''") + " order by Nome_Art"
end if
end if
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<%
Dim Recordset2
Dim Recordset2_numRows

Set Recordset2 = Server.CreateObject("ADODB.Recordset")
Recordset2.ActiveConnection = MM_Profarin_STRING
if Tipo_Farm = "A" then
Recordset2.Source = "SELECT * FROM Produtos_A order by Nome_Art"
else
if Tipo_Farm = "B" then
Recordset2.Source = "SELECT * FROM Produtos_B order by Nome_Art"
else
if Tipo_Farm = "C" then
Recordset2.Source = "SELECT * FROM Produtos_C order by Nome_Art"
end if
end if
end if
Recordset2.CursorType = 0
Recordset2.CursorLocation = 2
Recordset2.LockType = 1
Recordset2.Open()

Recordset2_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 150
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows
%>
<%
' *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

Dim Recordset1_total
Dim Recordset1_first
Dim Recordset1_last

' set the record count
Recordset1_total = Recordset1.RecordCount

' set the number of rows displayed on this page
If (Recordset1_numRows < 0) Then
Recordset1_numRows = Recordset1_total
Elseif (Recordset1_numRows = 0) Then
Recordset1_numRows = 1
End If

' set the first and last displayed record
Recordset1_first = 1
Recordset1_last = Recordset1_first + Recordset1_numRows - 1

' if we have the correct record count, check the other stats
If (Recordset1_total <> -1) Then
If (Recordset1_first > Recordset1_total) Then
Recordset1_first = Recordset1_total
End If
If (Recordset1_last > Recordset1_total) Then
Recordset1_last = Recordset1_total
End If
If (Recordset1_numRows > Recordset1_total) Then
Recordset1_numRows = Recordset1_total
End If
End If
%>
<%
Dim MM_paramName
%>
<%
' *** Move To Record and Go To Record: declare variables

Dim MM_rs
Dim MM_rsCount
Dim MM_size
Dim MM_uniqueCol
Dim MM_offset
Dim MM_atTotal
Dim MM_paramIsDefined

Dim MM_param
Dim MM_index

Set MM_rs = Recordset1
MM_rsCount = Recordset1_total
MM_size = Recordset1_numRows
MM_uniqueCol = ""
MM_paramName = ""
MM_offset = 0
MM_atTotal = false
MM_paramIsDefined = false
If (MM_paramName <> "") Then
MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
End If
%>
<%
' *** Move To Record: handle 'index' or 'offset' parameter

if (Not MM_paramIsDefined And MM_rsCount <> 0) then

' use index parameter if defined, otherwise use offset parameter
MM_param = Request.QueryString("index")
If (MM_param = "") Then
MM_param = Request.QueryString("offset")
End If
If (MM_param <> "") Then
MM_offset = Int(MM_param)
End If

' if we have a record count, check if we are past the end of the recordset
If (MM_rsCount <> -1) Then
If (MM_offset >= MM_rsCount Or MM_offset = -1) Then ' past end or move last
If ((MM_rsCount Mod MM_size) > 0) Then ' last page not a full repeat region
MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
Else
MM_offset = MM_rsCount - MM_size
End If
End If
End If

' move the cursor to the selected record
MM_index = 0
While ((Not MM_rs.EOF) And (MM_index < MM_offset Or MM_offset = -1))
MM_rs.MoveNext
MM_index = MM_index + 1
Wend
If (MM_rs.EOF) Then
MM_offset = MM_index ' set MM_offset to the last possible record
End If

End If
%>
<%
' *** Move To Record: if we dont know the record count, check the display range

If (MM_rsCount = -1) Then

' walk to the end of the display range for this page
MM_index = MM_offset
While (Not MM_rs.EOF And (MM_size < 0 Or MM_index < MM_offset + MM_size))
MM_rs.MoveNext
MM_index = MM_index + 1
Wend

' if we walked off the end of the recordset, set MM_rsCount and MM_size
If (MM_rs.EOF) Then
MM_rsCount = MM_index
If (MM_size < 0 Or MM_size > MM_rsCount) Then
MM_size = MM_rsCount
End If
End If

' if we walked off the end, set the offset based on page size
If (MM_rs.EOF And Not MM_paramIsDefined) Then
If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
If ((MM_rsCount Mod MM_size) > 0) Then
MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
Else
MM_offset = MM_rsCount - MM_size
End If
End If
End If

' reset the cursor to the beginning
If (MM_rs.CursorType > 0) Then
MM_rs.MoveFirst
Else
MM_rs.Requery
End If

' move the cursor to the selected record
MM_index = 0
While (Not MM_rs.EOF And MM_index < MM_offset)
MM_rs.MoveNext
MM_index = MM_index + 1
Wend
End If
%>
<%
' *** Move To Record: update recordset stats

' set the first and last displayed record
Recordset1_first = MM_offset + 1
Recordset1_last = MM_offset + MM_size

If (MM_rsCount <> -1) Then
If (Recordset1_first > MM_rsCount) Then
Recordset1_first = MM_rsCount
End If
If (Recordset1_last > MM_rsCount) Then
Recordset1_last = MM_rsCount
End If
End If

' set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

Dim MM_keepNone
Dim MM_keepURL
Dim MM_keepForm
Dim MM_keepBoth

Dim MM_removeList
Dim MM_item
Dim MM_nextItem

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then
MM_removeList = MM_removeList & "&" & MM_paramName & "="
End If

MM_keepURL=""
MM_keepForm=""
MM_keepBoth=""
MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each MM_item In Request.QueryString
MM_nextItem = "&" & MM_item & "="
If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
End If
Next

' add the Form variables to the MM_keepForm string
For Each MM_item In Request.Form
MM_nextItem = "&" & MM_item & "="
If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
If (MM_keepBoth <> "") Then
MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
End If
If (MM_keepURL <> "") Then
MM_keepURL = Right(MM_keepURL, Len(MM_keepURL) - 1)
End If
If (MM_keepForm <> "") Then
MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
End If

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
If (firstItem <> "") Then
MM_joinChar = "&"
Else
MM_joinChar = ""
End If
End Function
%>
<%
' *** Move To Record: set the strings for the first, last, next, and previous links

Dim MM_keepMove
Dim MM_moveParam
Dim MM_moveFirst
Dim MM_moveLast
Dim MM_moveNext
Dim MM_movePrev

Dim MM_urlStr
Dim MM_paramList
Dim MM_paramIndex
Dim MM_nextParam

MM_keepMove = MM_keepBoth
MM_moveParam = "index"

' if the page has a repeated region, remove 'offset' from the maintained parameters
If (MM_size > 1) Then
MM_moveParam = "offset"
If (MM_keepMove <> "") Then
MM_paramList = Split(MM_keepMove, "&")
MM_keepMove = ""
For MM_paramIndex = 0 To UBound(MM_paramList)
MM_nextParam = Left(MM_paramList(MM_paramIndex), InStr(MM_paramList(MM_paramIndex),"=") - 1)
If (StrComp(MM_nextParam,MM_moveParam,1) <> 0) Then
MM_keepMove = MM_keepMove & "&" & MM_paramList(MM_paramIndex)
End If
Next
If (MM_keepMove <> "") Then
MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
End If
End If
End If

' set the strings for the move to links
If (MM_keepMove <> "") Then
MM_keepMove = Server.HTMLEncode(MM_keepMove) & "&"
End If

MM_urlStr = Request.ServerVariables("URL") & "?" & MM_keepMove & MM_moveParam & "="

MM_moveFirst = MM_urlStr & "0"
MM_moveLast = MM_urlStr & "-1"
MM_moveNext = MM_urlStr & CStr(MM_offset + MM_size)
If (MM_offset - MM_size < 0) Then
MM_movePrev = MM_urlStr & "0"
Else
MM_movePrev = MM_urlStr & CStr(MM_offset - MM_size)
End If
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style5 {font-family: "Times New Roman", Times, serif}
#Layer1 {
position:absolute;
width:109px;
height:2px;
z-index:1;
left: 336px;
top: 58px;
}
#Layer2 {
position:absolute;
width:299px;
height:22px;
z-index:2;
left: 532px;
top: 113px;
}
#Layer3 {
position:absolute;
width:10px;
height:12px;
z-index:3;
left: 248px;
top: 117px;
}
#Layer4 {
position:absolute;
width:186px;
height:15px;
z-index:4;
left: 268px;
top: 114px;
}
-->
</style>

</head>

<body>
<form action="hugo.asp" method="get" name="form1" target="_blank" id="form1">
<%
'While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))
%>
<div id="Layer2">
<table border="0" width="80%" align="center">
<tr>
<td width="23%" align="center"><% If MM_offset <> 0 Then %>
<a href="<%=MM_moveFirst%>">Primeiro</a>
<% End If ' end MM_offset <> 0 %>
</td>
<td width="31%" align="center"><% If MM_offset <> 0 Then %>
<a href="<%=MM_movePrev%>">Anterior</a>
<% End If ' end MM_offset <> 0 %>
</td>
<td width="23%" align="center"><% If Not MM_atTotal Then %>
<a href="<%=MM_moveNext%>">Seguinte</a>
<% End If ' end Not MM_atTotal %>
</td>
<td width="23%" align="center"><% If Not MM_atTotal Then %>
<a href="<%=MM_moveLast%>">Último</a>
<% End If ' end Not MM_atTotal %>
</td>
</tr>
</table>
</div>
<table width="800" height="63" border="0" cellpadding="0" cellspacing="1">
<tr>
<td colspan="6"><strong>P - Preço de Venda ao Público (PVP) </strong></td>
</tr>
<tr>
<td colspan="6"><strong>V - Preço de Venda Livre (PVL)</strong></td>
</tr>
<tr>
<td colspan="6"><strong><a href="PRF_motivos.asp">Motivos da Não Existência de Stock </a></strong>
<div id="Layer1"><marquee scrollamount=490 scrolldelay=700 width="500" height=30><strong><a href="PRF_ProdutosNovos.asp">Produtos Novos</a> </strong>
</marquee></div></td>
</tr>
<tr>
<td colspan="6"><strong><a href="PRF_passwordccredito.asp">Mapa de Controlo de Credito</a></strong></td>
</tr>
<tr>
<td colspan="6"><strong><a href="PRF_passwordextracto.asp">Extracto de Clientes</a></strong></td>
</tr>
<tr>
<td> </td>
<td><div id="Layer3"><a href='produtos.xls'><img src="icon_excel_small.gif" width="12" height="12"></a></div>
<div id="Layer4"><a href='produtos.xls'>Download Todos os Produtos</a></div>
<a href='produtos.xls'></a></td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><div align="justify"><img src="PRFCod_Art.png" width="100" height="20"></div></td>
<td><img src="PRFDes_Art.png" width="340" height="20"></td>
<td><img src="PRFPreco_Venda.png" width="100" height="20"></td>
<td><img src="Tipo.png" width="50" height="20"></td>
<td><img src="bonus.png" width="103" height="20"></td>
<td><img src="Stock_Exist.png" width="100" height="20"></td>
</tr>
<% i = 1%>
<%
' Name for the ouput document
'file_being_created= "states.xls"

' create a file system object
'set fso = createobject("scripting.filesystemobject")

' create the text file - true will overwrite any previous files
' Writes the db output to a .xls file in the same directory
'Set act = fso.CreateTextFile(server.mappath(file_being_created), true)


While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))

if i > 0 then %>
<tr>
<td width="100"><div align="center"><strong><span class="style5"><font size="3">

<%=(Recordset1.Fields.Item("Cod_Art").Value)%></font></span></strong></div></td>
<td width="340"><div align="left"><strong><span class="style5"><font size="3"><%=left(Recordset1.Fields.Item("Nome_Art").Value,40)%></font></span></strong></div></td>
<td width="100"><div align="right"><strong><span class="style5"><font size="3">
<%if Recordset1.Fields.Item("Preco Venda").Value <> 0 then%>
<%=(Recordset1.Fields.Item("Preco Venda").Value)%>
<%else%>
<%=(Recordset1.Fields.Item("Preco Venda MNSRM").Value)%>
<%end if%>
</font></span></strong></div></td>
<td width="50"><div align="center"><strong><font size="3"><%=(Recordset1.Fields.Item("Tipo").Value)%></font></strong></div></td>
<td width="107"><strong><font size="3"><%=(Recordset1.Fields.Item("Em Cada 1").Value)%>-<%=(Recordset1.Fields.Item("Da 1").Value)%> / <%=(Recordset1.Fields.Item("Em Cada 2").Value)%>-<%=(Recordset1.Fields.Item("Da 2").Value)%> / <%=(Recordset1.Fields.Item("Em Cada 3").Value)%>-<%=(Recordset1.Fields.Item("Da 3").Value)%></font></strong></td>
<td width="104"><div align="center"><strong><span class="style5"><font size="3">
<%if (Recordset1.Fields.Item("QuantExi").Value) > 0 then %>
<%=response.write("S")%>
<%else%>
<%=response.write("N")%> -
<%=(Recordset1.Fields.Item("S").Value)%>
<%end if%>
</font></span></strong></div></td>
</tr>
<% i = i * -1
else %>
<tr bgcolor="#00CCFF">
<td width="100"><div align="center"><strong><span class="style5"><font size="3">

<%=(Recordset1.Fields.Item("Cod_Art").Value)%></font></span></strong></div></td>
<td width="340"><div align="left"><strong><span class="style5"><font size="3"><%=left(Recordset1.Fields.Item("Nome_Art").Value,40)%></font></span></strong></div></td>
<td width="100"><div align="right"><strong><span class="style5"><font size="3">
<%if Recordset1.Fields.Item("Preco Venda").Value <> 0 then%>
<%=(Recordset1.Fields.Item("Preco Venda").Value)%>
<%else%>
<%=(Recordset1.Fields.Item("Preco Venda MNSRM").Value)%>
<%end if%>
</font></span></strong></div></td>
<td width="50"><div align="center"><strong><font size="3"><%=(Recordset1.Fields.Item("Tipo").Value)%></font></strong></div></td>
<td width="107"><strong><font size="3"><%=(Recordset1.Fields.Item("Em Cada 1").Value)%>-<%=(Recordset1.Fields.Item("Da 1").Value)%> / <%=(Recordset1.Fields.Item("Em Cada 2").Value)%>-<%=(Recordset1.Fields.Item("Da 2").Value)%> / <%=(Recordset1.Fields.Item("Em Cada 3").Value)%>-<%=(Recordset1.Fields.Item("Da 3").Value)%></font></strong></td>
<td width="104"><div align="center"><strong><span class="style5"><font size="3">

<%if (Recordset1.Fields.Item("QuantExi").Value) > 0 then %>
<%=response.write("S")%>
<%else%>
<%=response.write("N")%> -
<%=(Recordset1.Fields.Item("S").Value)%>
<%end if%>

</font></span></strong></div></td>
</tr>
<% i = i * -1
end if %>
<%
'act.WriteLine("Teste")
'act.WriteLine("<tr>")
'act.WriteLine("" & Recordset1.Fields.Item("Cod_Art").Value & "")




Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Recordset1.MoveNext()
Wend
' close the object (excel)
'act.close

%>
</table>
</form>
<p> </p>

</body>
</html>
<%

Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8


' Name for the ouput document
file_being_created= "produtos.xls"

' create a file system object
set fso = createobject("scripting.filesystemobject")

' create the text file - true will overwrite any previous files
' Writes the db output to a .xls file in the same directory
Set act = fso.CreateTextFile(server.mappath(file_being_created), true)
act.WriteLine("<html><body>")
act.WriteLine("<table border=""1"">")
act.WriteLine("<tr>")
act.WriteLine("<th nowrap>Cod_Art</th>")
act.WriteLine("<th nowrap>Nome_Art</th>")
act.WriteLine("<th nowrap>Preço_Venda</th>")
act.WriteLine("<th nowrap>Bonus</th>")
act.WriteLine("</tr>")

while not recordset2.eof
act.WriteLine("<tr>")
act.WriteLine("<td>" & Recordset2.Fields.Item("Cod_Art").Value & "</td>" )
act.WriteLine("<td>" & Recordset2.Fields.Item("Nome_Art").Value & "</td>" )
if Recordset2.Fields.Item("Preco Venda").Value <> 0 then
act.WriteLine("<td>" & Recordset2.Fields.Item("Preco Venda").Value & "</td>" )
else
act.WriteLine("<td>" & Recordset2.Fields.Item("Preco Venda MNSRM").Value & "</td>" )
end if
act.WriteLine("<td>" & Recordset2.Fields.Item("Em Cada 1").Value & "=" & Recordset2.Fields.Item("Da 1").Value & " / " & Recordset2.Fields.Item("Em Cada 2").Value & "=" & Recordset2.Fields.Item("Da 2").Value & " / " & Recordset2.Fields.Item("Em Cada 3").Value & "=" & Recordset2.Fields.Item("Da 3").Value & "</td>" )

act.WriteLine("</tr>")
Recordset2.MoveNext()
Wend
act.WriteLine("</table></body></html>")
act.close
%>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>
<%
Recordset2.Close()
Set Recordset2 = Nothing
%>


 
first:
it looks like this line:

Recordset0.Source = "SELECT * FROM Consulta2 WHERE CodCliente = '" & Session("delegado") & "'"

retrieves one or more record2 from CONSULTA2.
You go through the recordsset:

While (NOT Recordset0.EOF)
Tipo_Farm = Recordset0.Fields.Item("Tipo_farm").Value
Recordset0.MoveNext()
wend

and after this Tipo_Farm has a value, but always the value of the last record from your recordset0...


second:
i presume the client has to to with the Session("delegado") , are you sure this vaiable is set correctly *before* you start this program?

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top