This is Interesting: Free Magazines for Graphics designers and webmasters  


Home > Archive > Dreamweaver > December 2005 > Hiding a recordset





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Hiding a recordset
peelola

2005-12-29, 6:31 pm

Hi

I am using Dreamweaver 8 and have created an ASP page which displays the
results from a crosstab in access. It returns 5 rows of data, but one of these
rows I want to hide as it contains test data.

Any idea how to do this? I cant seem to find the option to be able to hide a
particular row of data returned.

Probably easy, but it's got me stumpped.

THanks

Neil

Murray *TMM*

2005-12-29, 6:32 pm

Is that row always the same record number in the recordset?

If so, in your looper, you would test for that record number before doing
each iteration of the record write code.

--
Murray --- ICQ 71997575
Team Macromedia Volunteer for Dreamweaver
(If you *MUST* email me, don't LAUGH when you do so!)
==================
http://www.dreamweavermx-templates.com - Template Triage!
http://www.projectseven.com/go - DW FAQs, Tutorials & Resources
http://www.dwfaq.com - DW FAQs, Tutorials & Resources
http://www.macromedia.com/support/search/ - Macromedia (MM) Technotes
==================


"peelola" <webforumsuser@macromedia.com> wrote in message
news:dp0l7m$1hl$1@forums.macromedia.com...
> Hi
>
> I am using Dreamweaver 8 and have created an ASP page which displays the
> results from a crosstab in access. It returns 5 rows of data, but one of
> these
> rows I want to hide as it contains test data.
>
> Any idea how to do this? I cant seem to find the option to be able to hide
> a
> particular row of data returned.
>
> Probably easy, but it's got me stumpped.
>
> THanks
>
> Neil
>



peelola

2005-12-29, 10:14 pm

It's not always the same number, but it always has the same value.

I did try and only show the first four records as it will only ever be five
lines. The problem being is that it may only be 2 record and if it is it will
show the final record, which is the one I want to hide.

I've posted the code just in case it helps.

Thanks again

Neil




<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/sdc.asp" -->
<%
var Recordset1 = Server.CreateObject("ADODB.Recordset");
Recordset1.ActiveConnection = MM_sdc_STRING;
Recordset1.Source = "SELECT * FROM statusreporthsc_Crosstab";
Recordset1.CursorType = 0;
Recordset1.CursorLocation = 2;
Recordset1.LockType = 1;
Recordset1.Open();
var Recordset1_numRows = 0;
%>
<%
var Repeat1__numRows = -1;
var Repeat1__index = 0;
Recordset1_numRows += Repeat1__numRows;
%>
<%
// *** Recordset Stats, Move To Record, and Go To Record: declare stats
variables

// set the record count
var Recordset1_total = Recordset1.RecordCount;

// set the number of rows displayed on this page
if (Recordset1_numRows < 0) { // if repeat region set to all records
Recordset1_numRows = Recordset1_total;
} else if (Recordset1_numRows == 0) { // if no repeat regions
Recordset1_numRows = 1;
}

// set the first and last displayed record
var Recordset1_first = 1;
var Recordset1_last = Recordset1_first + Recordset1_numRows - 1;

// if we have the correct record count, check the other stats
if (Recordset1_total != -1) {
Recordset1_numRows = Math.min(Recordset1_numRows, Recordset1_total);
Recordset1_first = Math.min(Recordset1_first, Recordset1_total);
Recordset1_last = Math.min(Recordset1_last, Recordset1_total);
}
%>
<%
// *** Recordset Stats: if we don't know the record count, manually count them

if (Recordset1_total == -1) {

// count the total records by iterating through the recordset
for (Recordset1_total=0; !Recordset1.EOF; Recordset1.MoveNext()) {
Recordset1_total++;
}

// reset the cursor to the beginning
if (Recordset1.CursorType > 0) {
if (!Recordset1.BOF) Recordset1.MoveFirst();
} else {
Recordset1.Requery();
}

// set the number of rows displayed on this page
if (Recordset1_numRows < 0 || Recordset1_numRows > Recordset1_total) {
Recordset1_numRows = Recordset1_total;
}

// set the first and last displayed record
Recordset1_last = Math.min(Recordset1_first + Recordset1_numRows - 1,
Recordset1_total);
Recordset1_first = Math.min(Recordset1_first, Recordset1_total);
}
%>
<% var MM_paramName = ""; %>
<%
// *** Move To Record and Go To Record: declare variables

var MM_rs = Recordset1;
var MM_rsCount = Recordset1_total;
var MM_size = Recordset1_numRows;
var MM_uniqueCol = "";
MM_paramName = "";
var MM_offset = 0;
var MM_atTotal = false;
var MM_paramIsDefined = (MM_paramName != "" && String(Request(MM_paramName))
!= "undefined");
%>
<%
// *** Move To Record: handle 'index' or 'offset' parameter

if (!MM_paramIsDefined && MM_rsCount != 0) {

// use index parameter if defined, otherwise use offset parameter
r = String(Request("index"));
if (r == "undefined") r = String(Request("offset"));
if (r && r != "undefined") MM_offset = parseInt(r);

// if we have a record count, check if we are past the end of the recordset
if (MM_rsCount != -1) {
if (MM_offset >= MM_rsCount || MM_offset == -1) { // past end or move last
if ((MM_rsCount % MM_size) != 0) { // last page not a full repeat region
MM_offset = MM_rsCount - (MM_rsCount % MM_size);
} else {
MM_offset = MM_rsCount - MM_size;
}
}
}

// move the cursor to the selected record
for (var i=0; !MM_rs.EOF && (i < MM_offset || MM_offset == -1); i++) {
MM_rs.MoveNext();
}
if (MM_rs.EOF) MM_offset = i; // set MM_offset to the last possible record
}
%>
<%
// *** Move To Record: if we dont know the record count, check the display
range

if (MM_rsCount == -1) {

// walk to the end of the display range for this page
for (var i=MM_offset; !MM_rs.EOF && (MM_size < 0 || i < MM_offset +
MM_size); i++) {
MM_rs.MoveNext();
}

// if we walked off the end of the recordset, set MM_rsCount and MM_size
if (MM_rs.EOF) {
MM_rsCount = i;
if (MM_size < 0 || MM_size > MM_rsCount) MM_size = MM_rsCount;
}

// if we walked off the end, set the offset based on page size
if (MM_rs.EOF && !MM_paramIsDefined) {
if ((MM_rsCount % MM_size) != 0) { // last page not a full repeat region
MM_offset = MM_rsCount - (MM_rsCount % MM_size);
} else {
MM_offset = MM_rsCount - MM_size;
}
}

// reset the cursor to the beginning
if (MM_rs.CursorType > 0) {
if (!MM_rs.BOF) MM_rs.MoveFirst();
} else {
MM_rs.Requery();
}

// move the cursor to the selected record
for (var i=0; !MM_rs.EOF && i < MM_offset; i++) {
MM_rs.MoveNext();
}
}
%>
<%
// *** 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) {
Recordset1_first = Math.min(Recordset1_first, MM_rsCount);
Recordset1_last = Math.min(Recordset1_last, MM_rsCount);
}

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

// create the list of parameters which should not be maintained
var MM_removeList = "&index=";
if (MM_paramName != "") MM_removeList += "&" + MM_paramName.toLowerCase() +
"=";
var MM_keepURL="",MM_keepForm="",MM_keepBoth="",MM_keepNone="";

// add the URL parameters to the MM_keepURL string
for (var items=new Enumerator(Request.QueryString); !items.atEnd();
items.moveNext()) {
var nextItem = "&" + items.item().toLowerCase() + "=";
if (MM_removeList.indexOf(nextItem) == -1) {
MM_keepURL += "&" + items.item() + "=" +
Server.URLencode(Request.QueryString(items.item()));
}
}

// add the Form variables to the MM_keepForm string
for (var items=new Enumerator(Request.Form); !items.atEnd(); items.moveNext())
{
var nextItem = "&" + items.item().toLowerCase() + "=";
if (MM_removeList.indexOf(nextItem) == -1) {
MM_keepForm += "&" + items.item() + "=" +
Server.URLencode(Request.Form(items.item()));
}
}

// create the Form + URL string and remove the intial '&' from each of the
strings
MM_keepBoth = MM_keepURL + MM_keepForm;
if (MM_keepBoth.length > 0) MM_keepBoth = MM_keepBoth.substring(1);
if (MM_keepURL.length > 0) MM_keepURL = MM_keepURL.substring(1);
if (MM_keepForm.length > 0) MM_keepForm = MM_keepForm.substring(1);
%>
<%
// *** Move To Record: set the strings for the first, last, next, and previous
links

var MM_moveFirst="",MM_moveLast="",MM_moveNext="",MM_movePrev="";
var MM_keepMove = MM_keepBoth; // keep both Form and URL parameters for moves
var MM_moveParam = "index";

// if the page has a repeated region, remove 'offset' from the maintained
parameters
if (MM_size > 1) {
MM_moveParam = "offset";
if (MM_keepMove.length > 0) {
params = MM_keepMove.split("&");
MM_keepMove = "";
for (var i=0; i < params.length; i++) {
var nextItem = params[i].substring(0,params[i].indexOf("="));
if (nextItem.toLowerCase() != MM_moveParam) {
MM_keepMove += "&" + params[i];
}
}
if (MM_keepMove.length > 0) MM_keepMove = MM_keepMove.substring(1);
}
}

// set the strings for the move to links
if (MM_keepMove.length > 0) MM_keepMove = Server.HTMLEncode(MM_keepMove) + "&";
var urlStr = Request.ServerVariables("URL") + "?" + MM_keepMove + MM_moveParam
+ "=";
MM_moveFirst = urlStr + "0";
MM_moveLast = urlStr + "-1";
MM_moveNext = urlStr + (MM_offset + MM_size);
MM_movePrev = urlStr + Math.max(MM_offset - MM_size,0);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>HSC activity</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
}
body {
background-image: url(background.jpg);
}
.style3 {color: #0000FF; font-weight: bold; }
-->
</style></head>

<body>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center"><a href="index.html">index</a> | <a href="in1.asp">add a
record</a> | <a href="Untitled-16.asp">update a record</a> | <a
href="master2.asp">view a record</a></p>
<p align="center"><strong>HSC Activity</strong></p>
<table align="center" border="1">
<tr>
<td align="left" width="14%"><span class="style3"> Current status
</span></td>
<td align="left" width="14%"><span class="style3"> HOD (SDC) Request
</span></td>
<td align="left" width="14%"><span class="style3"> Mini Consultancy
</span></td>
<td align="left" width="14%"><span class="style3"> Mini Project
</span></td>
<td align="left" width="14%"><span class="style3">Site Project </span></td>
<td align="left" width="14%"><span class="style3">Total </span></td>
</tr>
<% while ((Repeat1__numRows-- != 0) && (!Recordset1.EOF)) { %>
<tr>
<td align="left"
width="14%"><%=(Recordset1.Fields.Item("date2").Value)%> </td>
<td align="left" width="14%"><%=(Recordset1.Fields.Item("HOD (SDC)
Request").Value)%> </td>
<td align="left" width="14%"><%=(Recordset1.Fields.Item("Mini
Consultancy").Value)%> </td>
<td align="left" width="14%"><%=(Recordset1.Fields.Item("Mini
Project").Value)%> </td>
<td align="left" width="14%"><%=(Recordset1.Fields.Item("Site
Proj
Murray *TMM*

2005-12-29, 10:17 pm

Just test for some field's value that is unique to the test record.

Or in your SQL SELECT statement, eliminate the test record in the WHERE
clause, e.g.,

SELECT * from tablename WHERE fieldname<>'whatever'

--
Murray --- ICQ 71997575
Team Macromedia Volunteer for Dreamweaver
(If you *MUST* email me, don't LAUGH when you do so!)
==================
http://www.dreamweavermx-templates.com - Template Triage!
http://www.projectseven.com/go - DW FAQs, Tutorials & Resources
http://www.dwfaq.com - DW FAQs, Tutorials & Resources
http://www.macromedia.com/support/search/ - Macromedia (MM) Technotes
==================


"peelola" <webforumsuser@macromedia.com> wrote in message
news:dp0pfb$6gs$1@forums.macromedia.com...
> It's not always the same number, but it always has the same value.
>
> I did try and only show the first four records as it will only ever be
> five
> lines. The problem being is that it may only be 2 record and if it is it
> will
> show the final record, which is the one I want to hide.
>
> I've posted the code just in case it helps.
>
> Thanks again
>
> Neil
>
>
>
>
> <%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
> <!--#include file="Connections/sdc.asp" -->
> <%
> var Recordset1 = Server.CreateObject("ADODB.Recordset");
> Recordset1.ActiveConnection = MM_sdc_STRING;
> Recordset1.Source = "SELECT * FROM statusreporthsc_Crosstab";
> Recordset1.CursorType = 0;
> Recordset1.CursorLocation = 2;
> Recordset1.LockType = 1;
> Recordset1.Open();
> var Recordset1_numRows = 0;
> %>
> <%
> var Repeat1__numRows = -1;
> var Repeat1__index = 0;
> Recordset1_numRows += Repeat1__numRows;
> %>
> <%
> // *** Recordset Stats, Move To Record, and Go To Record: declare stats
> variables
>
> // set the record count
> var Recordset1_total = Recordset1.RecordCount;
>
> // set the number of rows displayed on this page
> if (Recordset1_numRows < 0) { // if repeat region set to all
> records
> Recordset1_numRows = Recordset1_total;
> } else if (Recordset1_numRows == 0) { // if no repeat regions
> Recordset1_numRows = 1;
> }
>
> // set the first and last displayed record
> var Recordset1_first = 1;
> var Recordset1_last = Recordset1_first + Recordset1_numRows - 1;
>
> // if we have the correct record count, check the other stats
> if (Recordset1_total != -1) {
> Recordset1_numRows = Math.min(Recordset1_numRows, Recordset1_total);
> Recordset1_first = Math.min(Recordset1_first, Recordset1_total);
> Recordset1_last = Math.min(Recordset1_last, Recordset1_total);
> }
> %>
> <%
> // *** Recordset Stats: if we don't know the record count, manually count
> them
>
> if (Recordset1_total == -1) {
>
> // count the total records by iterating through the recordset
> for (Recordset1_total=0; !Recordset1.EOF; Recordset1.MoveNext()) {
> Recordset1_total++;
> }
>
> // reset the cursor to the beginning
> if (Recordset1.CursorType > 0) {
> if (!Recordset1.BOF) Recordset1.MoveFirst();
> } else {
> Recordset1.Requery();
> }
>
> // set the number of rows displayed on this page
> if (Recordset1_numRows < 0 || Recordset1_numRows > Recordset1_total) {
> Recordset1_numRows = Recordset1_total;
> }
>
> // set the first and last displayed record
> Recordset1_last = Math.min(Recordset1_first + Recordset1_numRows - 1,
> Recordset1_total);
> Recordset1_first = Math.min(Recordset1_first, Recordset1_total);
> }
> %>
> <% var MM_paramName = ""; %>
> <%
> // *** Move To Record and Go To Record: declare variables
>
> var MM_rs = Recordset1;
> var MM_rsCount = Recordset1_total;
> var MM_size = Recordset1_numRows;
> var MM_uniqueCol = "";
> MM_paramName = "";
> var MM_offset = 0;
> var MM_atTotal = false;
> var MM_paramIsDefined = (MM_paramName != "" &&
> String(Request(MM_paramName))
> != "undefined");
> %>
> <%
> // *** Move To Record: handle 'index' or 'offset' parameter
>
> if (!MM_paramIsDefined && MM_rsCount != 0) {
>
> // use index parameter if defined, otherwise use offset parameter
> r = String(Request("index"));
> if (r == "undefined") r = String(Request("offset"));
> if (r && r != "undefined") MM_offset = parseInt(r);
>
> // if we have a record count, check if we are past the end of the
> recordset
> if (MM_rsCount != -1) {
> if (MM_offset >= MM_rsCount || MM_offset == -1) { // past end or move
> last
> if ((MM_rsCount % MM_size) != 0) { // last page not a full repeat
> region
> MM_offset = MM_rsCount - (MM_rsCount % MM_size);
> } else {
> MM_offset = MM_rsCount - MM_size;
> }
> }
> }
>
> // move the cursor to the selected record
> for (var i=0; !MM_rs.EOF && (i < MM_offset || MM_offset == -1); i++) {
> MM_rs.MoveNext();
> }
> if (MM_rs.EOF) MM_offset = i; // set MM_offset to the last possible
> record
> }
> %>
> <%
> // *** Move To Record: if we dont know the record count, check the display
> range
>
> if (MM_rsCount == -1) {
>
> // walk to the end of the display range for this page
> for (var i=MM_offset; !MM_rs.EOF && (MM_size < 0 || i < MM_offset +
> MM_size); i++) {
> MM_rs.MoveNext();
> }
>
> // if we walked off the end of the recordset, set MM_rsCount and MM_size
> if (MM_rs.EOF) {
> MM_rsCount = i;
> if (MM_size < 0 || MM_size > MM_rsCount) MM_size = MM_rsCount;
> }
>
> // if we walked off the end, set the offset based on page size
> if (MM_rs.EOF && !MM_paramIsDefined) {
> if ((MM_rsCount % MM_size) != 0) { // last page not a full repeat
> region
> MM_offset = MM_rsCount - (MM_rsCount % MM_size);
> } else {
> MM_offset = MM_rsCount - MM_size;
> }
> }
>
> // reset the cursor to the beginning
> if (MM_rs.CursorType > 0) {
> if (!MM_rs.BOF) MM_rs.MoveFirst();
> } else {
> MM_rs.Requery();
> }
>
> // move the cursor to the selected record
> for (var i=0; !MM_rs.EOF && i < MM_offset; i++) {
> MM_rs.MoveNext();
> }
> }
> %>
> <%
> // *** 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) {
> Recordset1_first = Math.min(Recordset1_first, MM_rsCount);
> Recordset1_last = Math.min(Recordset1_last, MM_rsCount);
> }
>
> // set the boolean used by hide region to check if we are on the last
> record
> MM_atTotal = (MM_rsCount != -1 && MM_offset + MM_size >= MM_rsCount);
> %>
> <%
> // *** Go To Record and Move To Record: create strings for maintaining URL
> and
> Form parameters
>
> // create the list of parameters which should not be maintained
> var MM_removeList = "&index=";
> if (MM_paramName != "") MM_removeList += "&" + MM_paramName.toLowerCase()
> +
> "=";
> var MM_keepURL="",MM_keepForm="",MM_keepBoth="",MM_keepNone="";
>
> // add the URL parameters to the MM_keepURL string
> for (var items=new Enumerator(Request.QueryString); !items.atEnd();
> items.moveNext()) {
> var nextItem = "&" + items.item().toLowerCase() + "=";
> if (MM_removeList.indexOf(nextItem) == -1) {
> MM_keepURL += "&" + items.item() + "=" +
> Server.URLencode(Request.QueryString(items.item()));
> }
> }
>
> // add the Form variables to the MM_keepForm string
> for (var items=new Enumerator(Request.Form); !items.atEnd();
> items.moveNext())
> {
> var nextItem = "&" + items.item().toLowerCase() + "=";
> if (MM_removeList.indexOf(nextItem) == -1) {
> MM_keepForm += "&" + items.item() + "=" +
> Server.URLencode(Request.Form(items.item()));
> }
> }
>
> // create the Form + URL string and remove the intial '&' from each of the
> strings
> MM_keepBoth = MM_keepURL + MM_keepForm;
> if (MM_keepBoth.length > 0) MM_keepBoth = MM_keepBoth.substring(1);
> if (MM_keepURL.length > 0) MM_keepURL = MM_keepURL.substring(1);
> if (MM_keepForm.length > 0) MM_keepForm = MM_keepForm.substring(1);
> %>
> <%
> // *** Move To Record: set the strings for the first, last, next, and
> previous
> links
>
> var MM_moveFirst="",MM_moveLast="",MM_moveNext="",MM_movePrev="";
> var MM_keepMove = MM_keepBoth; // keep both Form and URL parameters for
> moves
> var MM_moveParam = "index";
>
> // if the page has a repeated region, remove 'offset' from the maintained
> parameters
> if (MM_size > 1) {
> MM_moveParam = "offset";
> if (MM_keepMove.length > 0) {
> params = MM_keepMove.split("&");
> MM_keepMove = "";
> for (var i=0; i < params.length; i++) {
> var nextItem = params[i].substring(0,params[i].indexOf("="));
> if (nextItem.toLowerCase() != MM_moveParam) {
> MM_keepMove += "&" + params[i];
> }
> }
> if (MM_keepMove.length > 0) MM_keepMove = MM_keepMove.substring(1);
> }
> }
>
> // set the strings for the move to links
> if (MM_keepMove.length > 0) MM_keepMove = Server.HTMLEncode(MM_keepMove) +
> "&";
> var urlStr = Request.ServerVariables("URL") + "?" + MM_keepMove +
> MM_moveParam
> + "=";
> MM_moveFirst = urlStr + "0";
> MM_moveLast = urlStr + "-1";
> MM_moveNext = urlStr + (MM_offset + MM_size);
> MM_movePrev = urlStr + Math.max(MM_offset - MM_size,0);
> %>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
> <title>HSC activity</title>
> <style type="text/css">
> <!--
> body,td,th {
> font-family: Arial, Helvetica, sans-serif;
> }
> body {
> background-image: url(background.jpg);
> }
> .style3 {color: #0000FF; font-weight: bold; }
> -->
> </style></head>
>
> <body>
> <p align="center">&nbsp;</p>
> <p align="center">&nbsp;</p>
> <p align="center">&nbsp;</p>
> <p align="center"><a href="index.html">index</a> | <a href="in1.asp">add a
> record</a> | <a href="Untitled-16.asp">update a record</a> | <a
> href="master2.asp">view a record</a></p>
> <p align="center"><strong>HSC Activity</strong></p>
> <table align="center" border="1">
> <tr>
> <td align="left" width="14%"><span class="style3"> Current status
> </span></td>
> <td align="left" width="14%"><span class="style3"> HOD (SDC) Request
> </span></td>
> <td align="left" width="14%"><span class="style3"> Mini Consultancy
> </span></td>
> <td align="left" width="14%"><span class="style3"> Mini Project
> </span></td>
> <td align="left" width="14%"><span class="style3">Site Project
> </span></td>
> <td align="left" width="14%"><span class="style3">Total </span></td>
> </tr>
> <% while ((Repeat1__numRows-- != 0) && (!Recordset1.EOF)) { %>
> <tr>
> <td align="left"
> width="14%"><%=(Recordset1.Fields.Item("date2").Value)%> </td>
> <td align="left" width="14%"><%=(Recordset1.Fields.Item("HOD (SDC)
> Request").Value)%> </td>
> <td align="left" width="14%"><%=(Recordset1.Fields.Item("Mini
> Consultancy").Value)%> </td>
> <td align="left" width="14%"><%=(Recordset1.Fields.Item("Mini
> Project").Value)%> </td>
> <td align="left" width="14%"><%=(Recordset1.Fields.Item("Site
> Proj



Sponsored Links


Copyright 2003 - 2008 forum4designers.com  Software forum  Computer Hardware reviews