<%@ LANGUAGE="VBSCRIPT" %> <% strThisBackPage = "orders" %> <% '=============================================== ' CactuShop ASP Shopping Cart ' ©1999-2004 Cactusoft Ltd. www.cactusoft.com '=============================================== ' All rights reserved. ' Use of this code is covered by the terms and ' conditions in the license agreement. No ' unauthorized duplication or distribution is ' permitted. Cactusoft's copyright notices must ' remain in the ASP sections of the code. '=============================================== '----------------------------------------------- ' DIM VARIABLES ' Need to be dimmed as they'll be used in the ' functions '----------------------------------------------- Dim strResult 'our resulting csv file Dim strStringDelimiter 'char to delimit strings Dim strFieldDelimiter 'char to delimit fields Dim strRecordDelimiter 'char to delimit records '----------------------------------------------- '----------------------------------------------- 'GET FORM FIELDS '----------------------------------------------- 'Dates strFromDate = request.Form("fromdate") strToDate = request.Form("todate") 'Delimiters strStringDelimiter = request.Form("StringDelimiter") strFieldDelimiter = request.Form("FieldDelimiter") 'File name strFileName = request.Form("filename") 'Checkboxes strIncludeDetails = request.Form("IncludeDetails") strIncludeIncomplete = request.Form("IncludeIncomplete") '----------------------------------------------- 'CHECK / SET DATES '----------------------------------------------- If IsDate(strFromDate) then datFromDate = CDate(strFromDate) else datFromDate = CDate("1 Jan 1980") If IsDate(strToDate) then datToDate = CDate(strToDate) else datToDate = dateadd("d", 1, now) '----------------------------------------------- 'SET DELIMITERS '----------------------------------------------- 'set to actual delimiter Select Case strStringDelimiter Case "singlequote": strStringDelimiter = "'" Case "doublequote": strStringDelimiter = chr(34) Case "nothing": strStringDelimiter = "" End Select Select Case strFieldDelimiter Case "comma": strFieldDelimiter = "," Case "tab": strFieldDelimiter = chr(9) Case "semicolon": strFieldDelimiter = ";" Case "space": strFieldDelimiter = " " End Select strRecordDelimiter = chr(13) '----------------------------------------------- '----------------------------------------------- 'FUNCTIONS FOR ADDING TO OUR CSV FILE '----------------------------------------------- 'Adds a new line to the file Sub AddNewLine() strResult = strResult & strRecordDelimiter End Sub '----------------------------------------------- 'Adds a new string value Sub AddString(strValue, blnTrailingFieldDelimiter) If blnTrailingFieldDelimiter then strResult = strResult & (strStringDelimiter & strValue & strStringDelimiter) & strFieldDelimiter Else strResult = strResult & (strStringDelimiter & strValue & strStringDelimiter) End If End Sub '----------------------------------------------- 'Adds a new number value Sub AddNumber(intValue, blnTrailingFieldDelimiter) If blnTrailingFieldDelimiter then strResult = strResult & CStr(intValue & "") & strFieldDelimiter Else strResult = strResult & CStr(intValue & "") End If End Sub '----------------------------------------------- '----------------------------------------------- 'START THE FILE 'Set up the header information to send it as a 'CSV file '----------------------------------------------- Response.ContentType = "text/csv" Response.AddHeader "Content-Disposition", "inline; filename=" & strFileName & "; name=" & strFileName '----------------------------------------------- '----------------------------------------------- 'ADD ON A HEADER ROW 'Adds in a row of the field names '----------------------------------------------- AddString "ON_ID", true AddString "ON_CardholderID", true AddString "CD_Name", true If strIncludeDetails = "y" then AddString "ON_Details", true AddString "ON_ShippingPrice", true AddString "ON_ShippingTax", true AddString "ON_DiscountPercentage", true AddString "ON_AffiliatePercentage", true AddString "ON_TotalPrice", true AddString "ON_Date", true AddString "ON_PurchaseOrderNo", true AddString "ON_SecurityID", true AddString "ON_Sent", true AddString "ON_Invoiced", true AddString "ON_Shipped", true AddString "ON_Paid", true AddString "ON_Status", true AddString "ON_LastModified", true AddString "ON_WishList", true AddString "ON_CouponCode", true AddString "ON_CouponDiscountTotal", true AddString "ON_PricesIncTax", true AddString "ON_TaxDue", true AddString "ON_PaymentGateWay", true AddString "ON_ReferenceCode", true AddString "LANG_BackName", true AddString "CURR_Symbol", true AddString "ON_TotalPriceGateWay", true AddString "ON_AffiliatePaymentID", true AddString "ON_AffiliateTotalPrice", true AddString "ON_SendOrderUpdateEmail", false '----------------------------------------------- '----------------------------------------------- 'ADD IN RECORDS 'loop through the records and write a line to 'the file each one '----------------------------------------------- strWhereClause = "ON_Date > " & strDateDelimiter & ReverseFormatYear(datFromDate) & strDateDelimiter & " AND ON_Date < " & strDateDelimiter & ReverseFormatYear(datToDate) & strDateDelimiter If Not (strIncludeIncomplete = "y") then strWhereClause = strWhereClause & " AND ON_Sent = 'y'" strQuery = "SELECT * FROM ((tblCactuShopOrderNumbers INNER JOIN tblCactuShopCardHolderDetails ON tblCactuShopOrderNumbers.ON_CardholderID = tblCactuShopCardHolderDetails.CD_ID) INNER JOIN tblCactuShopLanguages ON tblCactuShopOrderNumbers.ON_Language = tblCactuShopLanguages.LANG_ID) INNER JOIN tblCactuShopCurrencies ON tblCactuShopOrderNumbers.ON_CurrencyID = tblCactuShopCurrencies.CUR_ID WHERE " & strWhereClause & " ORDER BY ON_Date" call executeSQL(strQuery, numCursorType, objRecordSet) Do while not objRecordSet.Eof AddNewLine AddNumber objRecordSet("ON_ID"), true AddNumber objRecordSet("ON_CardholderID"), true AddNumber objRecordSet("CD_CardHolderName"), true AddNumber objRecordSet("ON_ShippingPrice"), true AddNumber objRecordSet("ON_ShippingTax"), true If strIncludeDetails = "y" then AddString objRecordSet("ON_Details"), true AddNumber objRecordSet("ON_DiscountPercentage"), true AddNumber objRecordSet("ON_AffiliatePercentage"), true AddNumber objRecordSet("ON_TotalPrice"), true AddString ReverseFormatYear(objRecordSet("ON_Date")), true AddString objRecordSet("ON_PurchaseOrderNo"), true AddNumber objRecordSet("ON_SecurityID"), true AddString objRecordSet("ON_Sent"), true AddString objRecordSet("ON_Invoiced"), true AddString objRecordSet("ON_Shipped"), true AddString objRecordSet("ON_Paid"), true AddString objRecordSet("ON_Status"), true AddString objRecordSet("ON_LastModified"), true AddNumber objRecordSet("ON_WishList"), true AddString objRecordSet("ON_CouponCode"), true AddNumber objRecordSet("ON_CouponDiscountTotal"), true AddString objRecordSet("ON_PricesIncTax"), true AddNumber objRecordSet("ON_TaxDue"), true AddString objRecordSet("ON_PaymentGateWay"), true AddString objRecordSet("ON_ReferenceCode"), true AddString objRecordSet("LANG_BackName"), true AddString objRecordSet("CUR_Symbol"), true AddNumber objRecordSet("ON_TotalPriceGateWay"), true AddNumber objRecordSet("ON_AffiliatePaymentID"), true AddNumber objRecordSet("ON_AffiliateTotalPrice"), true AddString objRecordSet("ON_SendOrderUpdateEmail"), false objRecordSet.MoveNext Loop objRecordSet.Close '----------------------------------------------- '----------------------------------------------- ' WRITE OUT THE END RESULT '----------------------------------------------- response.Write strResult objDataConn.Close set objDataConn = nothing %>