Re: Processing multiple records all at once

2002-12-12 Thread Max Cooper
Brad,

Is the RowsForm a session-scoped ActionForm? If it is request-scope, you can
be sure that they are being set on the submit, rather than hanging around in
the session.

The setRows() method was intended to be used in the Action that gets the
Vector of data from the DB (or elsewhere) to copy the data into the arrays,
which would then be copied into RowForm objects when the  tag
calls getRows() and iterates over the Collection of RowForm objects to
display. Or you could skip the bean-array-bean copying, and just hold a
reference (a member variable on RowsForm) so that you can set the row data,
and then if the member variable is already holding a Collection, just return
that from getRows(), instead of copying the data from the arrays to a
collection of new beans. Be sure to null the collection reference when
reset() is called. Something like this:

public class RowsForm extends ActionForm {
   private Collection rows = null;
   public void reset(ActionMapping mapping, HttpServletRequest request) {
rows = null; }
   public void setRows(Collection rows) { this.rows = rows; }
   public Collection getRows() {
  if (rows == null) {
 rows = new ArrayList();
 // copy array data into new RowForm objects, adding each one to the
Collection
  }
  return rows;
   }
}

On submit, Struts will call setRowId() with a String array of values
submitted in the HTTP request. HTTP only supports named fields(like "rowId"
and "rowProperty1") that can have multiple values. For each field name,
Struts creates a String array of the values that were submitted for that
field name, and sets the property on your RowsForm accordingly. HTTP doesn't
support more complicated structures like row objects that each have an Id
and Property1 property, so you won't get a call to setRows(). Ted Husted has
a decription of how this works that is worth a read to understand what is
happening: http://www.husted.com/struts/tips/006.html

The amount of copying has always bothered me, but it seemed to do what I
wanted, so I decided to just live with the excessive copying until I learned
a better way. However, V. Cekvenich's post about indexed properties sounds
like it gets around this problem more elegantly and efficiently, so I'm
going to try to convert one of my pages to this scheme and see how it works.
I'll post a similar example as soon as I work it out. Does anyone know the
URL of the indexed properties FAQ? The link on this page is broken:
http://jakarta.apache.org/struts/userGuide/building_view.html#indexed

Here is something along those lines:
http://www.jguru.com/faq/view.jsp?EID=993534

-Max

- Original Message -
From: "Brad Balmer" <[EMAIL PROTECTED]>
To: "'Struts Users Mailing List'" <[EMAIL PROTECTED]>
Sent: Thursday, December 12, 2002 10:30 AM
Subject: RE: Processing multiple records all at once


> OK,
>
> This makes perfect sense to me and pretty much has worked, but I don't
> get the changes I make to the form data.
>
> I have the following in my Action class.
>
> RowsForm rForm = (RowsForm)form;
> Vector data = rForm.getRows();
> for(int i=0; i {
> RowBean bean = (RowBean)data.get(i);
> log.debug("ID: " + bean.getId() +
> "  -  PROPERTY: " + bean.getProperty1());
> }
>
> When I make a change to the property1 property on the jsp and click
> Submit, I STILL get the original values for all of the RowBean beans
> that I originally placed in the form.
>
> I tried implementing a setRows function, but it was never called.  I
> guess I don't understand how the updated values are set into the
> variables on submit.
>
>
(SNIP)



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>




RE: Processing multiple records all at once

2002-12-12 Thread Brad Balmer
OK,

This makes perfect sense to me and pretty much has worked, but I don't
get the changes I make to the form data.

I have the following in my Action class.

RowsForm rForm = (RowsForm)form;
Vector data = rForm.getRows();
for(int i=0; imailto:[EMAIL PROTECTED]] 
Sent: Thursday, December 12, 2002 3:02 AM
To: Struts Users Mailing List
Subject: Re: Processing multiple records all at once

Brad,

I have written some pages/actions that do what you describe here. I
believe
that one way to go would be to use nested properties, but I haven't
tried
that yet, so I am not sure how to do it. The solution I used was to
create
an ActionForm for the page that has arrays for each field from the rows.
Something like this (generic example -- replace rowId and rowProperty1
with
your real row properties):

public class RowsForm extends ActionForm {
   private String[] rowId;
   private String[] rowProperty1;
   public String[] getRowId() {
  return rowId;
   }
   public void setRowId(String[] rowId) {
  this.rowId = rowId;
   }
   public String[] getRowProperty1() {
  return rowProperty1;
   }
   public void setRowProperty1(String[] rowProperty1) {
  this.rowProperty1 = rowProperty1;
   }
}

The properties are arrays to receive values from each row in the data
set
when you submit the form. For iterating through the data, we added a
method
that would return a Collection of objects, where each represents a
single
row. Something like this:

public class RowForm extends ActionForm { // this could also be a
plain-old
JavaBean, too
   private String id;
   private String property1;
   // getters and setters for the id and property1
}

// add this method to RowsForm
   public Collection getRows() {
  Collection rows = new ArrayList();
  final int size = rowId.length;
  for (int i = 0; i < size; i++) {
 RowForm row = new RowForm();
 row.setId(rowId[i]);
 row.setProperty1(rowProperty1[i]);
 rows.add(row);
  }
  return rows;
   }

So, that setup will allow you to get the data out of the form after the
user
submits their changes (by calling RowsForm.getRows()). You will get data
for
each row, so you still need to decide which rows were changed, and which
ones the user simply left alone.

As for getting the data into the form and displaying it on the page, you
could add another method like populateForm(Vector rowData) to copy the
data
to the arrays like this:

// another method in RowsForm
   public void populateForm(Vector rowData) {
  // get the Vector size
  final int size = rowData.size();
  // initialize the arrays
  rowId = new String[size];
  rowProperty1 = new String[size];
  // copy the data from the objects in the Vector into the arrays
  Vector rowData = new Vector();
  final int size = rowData.size();
  Enumeration enum = rowData.elements();
  for (int i = 0; i < size; i++) {
 Data element = (Data) enum.nextElement();
 rowId[i] = String.valueOf(element.getId());
 rowProperty1[i] = element.getProperty1();
  }
   }

However, it might be a bit wasteful to copy all the data into the arrays
if
you are going to call getRows() to turn them back into a Collection of
objects so that you can use the  tag to display them in
the
JSP. If you can get the data into a Collection instead of a Vector (or
is a
Vector a Collection these days?), you can just have a single Collection
property on RowsForm that you set in the action, and the JSP will call
the
getter to get the Collection to iterate over. The JSP to iterate over
the
Collection and write out the rows might look something like this:



  id
  property1



  
<%-- write the id as text for display, and also as a hidden field
for
submittal --%>


  
  

  




Your Action will get the populated RowsForm on the submit, and you can
call
RowsForm.getRows() to get a Collection of RowForm objects to work with.

-Max

- Original Message -
From: "Brad Balmer" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 11, 2002 5:44 PM
Subject: Processing multiple records all at once


> I've searched the internet and different news groups for an answer to
this
> question, but have yet to find something that matches what I'm trying
to
do.
>
> I have an application that reads records from a table and creates an
> instance of a bean for each row.  Therefore, when I return from my DB
call,
> I have a Vector of beans representing the data.
>
> I need to display all of this on one jsp form, letting the user have
the
> ability to update any of the fields in any of the records and click a
Update
> button, which will send ALL of the data back to the Action class to be
> processed.  I have done this before (not using Struts), but we have
switched
> our Architecture and need to re-implement.
>
> Any help would be GREATLY appreciated.
>
&g

Re: Processing multiple records all at once

2002-12-12 Thread V. Cekvenich
1. make the bean implement a collection interface.
2. use indexed tag
DONE! Struts controller does the magic. The multi row is basis for doing 
master detail and many to many on the screen. Most pages need indexed 
(mutlirow, M/D, etc.) forms processing.

Source Ex:

http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/basicportal/basicportal_07/src/basicWebLib/org/commons/DAO/BaseBeanImpl.java

This is a "base" bean, and it implements collection. See the iterator 
adapter in source above.
Struts sees this bean as a "collection" (but is's a bean) and it auto 
sets all the properties. You do nothing in action, etc., other than set 
up your base bean as a collection like above. Base, as in other beans 
extend this class. This means no code needed in action or concreate 
beans to handle multi row, just some code to set up bus. M/d processing.

Than your JSP is same as before, you just use indexed property as so:
<%@ tag lib uri="struts/html" prefix="html" %>
<%@ taglib uri="struts/logic" prefix="logic" %>
<%@ taglib uri="jstl/c" prefix="c" %>










FieldName:













For more come to my "1 day best practice Struts" class.
http://www.basebeans.com/do/classReservation
money back if you don't like. You'll learn at least 10 more cool things, 
but some Struts is a pre-req., I do not do intro to Struts.

hth, .V
(voted best instructor as per JDJ)

Brad Balmer wrote:
I was looking on the basicPortal site for the example, but couldn't find
it.  Could you give a direct link?

-Original Message-
From: news [mailto:[EMAIL PROTECTED]] On Behalf Of V. Cekvenich
Sent: Thursday, December 12, 2002 6:23 AM
To: [EMAIL PROTECTED]
Subject: Re: Processing multiple records all at once

This is good.

However a bit much copying. Also, quite a few forms could have multi

row processing or master/detail processing. One does not want to to it 
over and over; if you do OO, you could create a basebean that does this 
in the ancestor, by having your formbean implement a collection, as in 
basicPortal.com open source example.

.V

Max Cooper wrote:

Brad,

I have written some pages/actions that do what you describe here. I


believe


that one way to go would be to use nested properties, but I haven't


tried


that yet, so I am not sure how to do it. The solution I used was to


create


an ActionForm for the page that has arrays for each field from the


rows.


Something like this (generic example -- replace rowId and rowProperty1


with


your real row properties):

public class RowsForm extends ActionForm {
  private String[] rowId;
  private String[] rowProperty1;
  public String[] getRowId() {
 return rowId;
  }
  public void setRowId(String[] rowId) {
 this.rowId = rowId;
  }
  public String[] getRowProperty1() {
 return rowProperty1;
  }
  public void setRowProperty1(String[] rowProperty1) {
 this.rowProperty1 = rowProperty1;
  }
}

The properties are arrays to receive values from each row in the data


set


when you submit the form. For iterating through the data, we added a


method


that would return a Collection of objects, where each represents a


single


row. Something like this:

public class RowForm extends ActionForm { // this could also be a


plain-old


JavaBean, too
  private String id;
  private String property1;
  // getters and setters for the id and property1
}

// add this method to RowsForm
  public Collection getRows() {
 Collection rows = new ArrayList();
 final int size = rowId.length;
 for (int i = 0; i < size; i++) {
RowForm row = new RowForm();
row.setId(rowId[i]);
row.setProperty1(rowProperty1[i]);
rows.add(row);
 }
 return rows;
  }

So, that setup will allow you to get the data out of the form after


the user


submits their changes (by calling RowsForm.getRows()). You will get


data for


each row, so you still need to decide which rows were changed, and


which


ones the user simply left alone.

As for getting the data into the form and displaying it on the page,


you


could add another method like populateForm(Vector rowData) to copy the


data


to the arrays like this:

// another method in RowsForm
  public void populateForm(Vector rowData) {
 // get the Vector size
 final int size = rowData.size();
 // initialize the arrays
 rowId = new String[size];
 rowProperty1 = new String[size];
 // copy the data from the objects in the Vector into the arrays
 Vector rowData = new Vector();
 final int size = rowData.size();
 Enumeration enum = rowData.elements();
 for (int i = 0; i < size; i++) {
Data element = (Data) enum.nextElement();
rowId[i] = String.valueOf(element.getId());
rowProperty1[i] = element.getProperty1();
 }
  }

However, it might be a bit wasteful to copy all the data into the


arrays if


RE: Processing multiple records all at once

2002-12-12 Thread Brad Balmer
I was looking on the basicPortal site for the example, but couldn't find
it.  Could you give a direct link?

-Original Message-
From: news [mailto:[EMAIL PROTECTED]] On Behalf Of V. Cekvenich
Sent: Thursday, December 12, 2002 6:23 AM
To: [EMAIL PROTECTED]
Subject: Re: Processing multiple records all at once

This is good.

However a bit much copying. Also, quite a few forms could have multi

row processing or master/detail processing. One does not want to to it 
over and over; if you do OO, you could create a basebean that does this 
in the ancestor, by having your formbean implement a collection, as in 
basicPortal.com open source example.

.V

Max Cooper wrote:
> Brad,
> 
> I have written some pages/actions that do what you describe here. I
believe
> that one way to go would be to use nested properties, but I haven't
tried
> that yet, so I am not sure how to do it. The solution I used was to
create
> an ActionForm for the page that has arrays for each field from the
rows.
> Something like this (generic example -- replace rowId and rowProperty1
with
> your real row properties):
> 
> public class RowsForm extends ActionForm {
>private String[] rowId;
>private String[] rowProperty1;
>public String[] getRowId() {
>   return rowId;
>}
>public void setRowId(String[] rowId) {
>   this.rowId = rowId;
>}
>public String[] getRowProperty1() {
>   return rowProperty1;
>}
>public void setRowProperty1(String[] rowProperty1) {
>   this.rowProperty1 = rowProperty1;
>}
> }
> 
> The properties are arrays to receive values from each row in the data
set
> when you submit the form. For iterating through the data, we added a
method
> that would return a Collection of objects, where each represents a
single
> row. Something like this:
> 
> public class RowForm extends ActionForm { // this could also be a
plain-old
> JavaBean, too
>private String id;
>private String property1;
>// getters and setters for the id and property1
> }
> 
> // add this method to RowsForm
>public Collection getRows() {
>   Collection rows = new ArrayList();
>   final int size = rowId.length;
>   for (int i = 0; i < size; i++) {
>  RowForm row = new RowForm();
>  row.setId(rowId[i]);
>  row.setProperty1(rowProperty1[i]);
>  rows.add(row);
>   }
>   return rows;
>}
> 
> So, that setup will allow you to get the data out of the form after
the user
> submits their changes (by calling RowsForm.getRows()). You will get
data for
> each row, so you still need to decide which rows were changed, and
which
> ones the user simply left alone.
> 
> As for getting the data into the form and displaying it on the page,
you
> could add another method like populateForm(Vector rowData) to copy the
data
> to the arrays like this:
> 
> // another method in RowsForm
>public void populateForm(Vector rowData) {
>   // get the Vector size
>   final int size = rowData.size();
>   // initialize the arrays
>   rowId = new String[size];
>   rowProperty1 = new String[size];
>   // copy the data from the objects in the Vector into the arrays
>   Vector rowData = new Vector();
>   final int size = rowData.size();
>   Enumeration enum = rowData.elements();
>   for (int i = 0; i < size; i++) {
>  Data element = (Data) enum.nextElement();
>  rowId[i] = String.valueOf(element.getId());
>  rowProperty1[i] = element.getProperty1();
>   }
>}
> 
> However, it might be a bit wasteful to copy all the data into the
arrays if
> you are going to call getRows() to turn them back into a Collection of
> objects so that you can use the  tag to display them in
the
> JSP. If you can get the data into a Collection instead of a Vector (or
is a
> Vector a Collection these days?), you can just have a single
Collection
> property on RowsForm that you set in the action, and the JSP will call
the
> getter to get the Collection to iterate over. The JSP to iterate over
the
> Collection and write out the rows might look something like this:
> 
> 
> 
>   id
>   property1
> 
>  type="com.yada.yada.yada.RowForm" scope="request">
> 
>   
> <%-- write the id as text for display, and also as a hidden field
for
> submittal --%>
> 
> 
>   
>   
>     
>   
> 
> 
> 
> 
> Your Action will get the populated RowsForm on the submit, and you can
call
> RowsForm.getRows() to get a Collection of RowForm objects to work
with.
> 
> -Max
> 
> - Original Message -
> From: "Brad Balmer" <[EMAIL PROTECTED]&

Re: Processing multiple records all at once

2002-12-12 Thread V. Cekvenich
This is good.

However a bit much copying. Also, quite a few forms could have multi 
row processing or master/detail processing. One does not want to to it 
over and over; if you do OO, you could create a basebean that does this 
in the ancestor, by having your formbean implement a collection, as in 
basicPortal.com open source example.

.V

Max Cooper wrote:
Brad,

I have written some pages/actions that do what you describe here. I believe
that one way to go would be to use nested properties, but I haven't tried
that yet, so I am not sure how to do it. The solution I used was to create
an ActionForm for the page that has arrays for each field from the rows.
Something like this (generic example -- replace rowId and rowProperty1 with
your real row properties):

public class RowsForm extends ActionForm {
   private String[] rowId;
   private String[] rowProperty1;
   public String[] getRowId() {
  return rowId;
   }
   public void setRowId(String[] rowId) {
  this.rowId = rowId;
   }
   public String[] getRowProperty1() {
  return rowProperty1;
   }
   public void setRowProperty1(String[] rowProperty1) {
  this.rowProperty1 = rowProperty1;
   }
}

The properties are arrays to receive values from each row in the data set
when you submit the form. For iterating through the data, we added a method
that would return a Collection of objects, where each represents a single
row. Something like this:

public class RowForm extends ActionForm { // this could also be a plain-old
JavaBean, too
   private String id;
   private String property1;
   // getters and setters for the id and property1
}

// add this method to RowsForm
   public Collection getRows() {
  Collection rows = new ArrayList();
  final int size = rowId.length;
  for (int i = 0; i < size; i++) {
 RowForm row = new RowForm();
 row.setId(rowId[i]);
 row.setProperty1(rowProperty1[i]);
 rows.add(row);
  }
  return rows;
   }

So, that setup will allow you to get the data out of the form after the user
submits their changes (by calling RowsForm.getRows()). You will get data for
each row, so you still need to decide which rows were changed, and which
ones the user simply left alone.

As for getting the data into the form and displaying it on the page, you
could add another method like populateForm(Vector rowData) to copy the data
to the arrays like this:

// another method in RowsForm
   public void populateForm(Vector rowData) {
  // get the Vector size
  final int size = rowData.size();
  // initialize the arrays
  rowId = new String[size];
  rowProperty1 = new String[size];
  // copy the data from the objects in the Vector into the arrays
  Vector rowData = new Vector();
  final int size = rowData.size();
  Enumeration enum = rowData.elements();
  for (int i = 0; i < size; i++) {
 Data element = (Data) enum.nextElement();
 rowId[i] = String.valueOf(element.getId());
 rowProperty1[i] = element.getProperty1();
  }
   }

However, it might be a bit wasteful to copy all the data into the arrays if
you are going to call getRows() to turn them back into a Collection of
objects so that you can use the  tag to display them in the
JSP. If you can get the data into a Collection instead of a Vector (or is a
Vector a Collection these days?), you can just have a single Collection
property on RowsForm that you set in the action, and the JSP will call the
getter to get the Collection to iterate over. The JSP to iterate over the
Collection and write out the rows might look something like this:



  id
  property1



  
<%-- write the id as text for display, and also as a hidden field for
submittal --%>


  
  

  




Your Action will get the populated RowsForm on the submit, and you can call
RowsForm.getRows() to get a Collection of RowForm objects to work with.

-Max

- Original Message -
From: "Brad Balmer" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 11, 2002 5:44 PM
Subject: Processing multiple records all at once




I've searched the internet and different news groups for an answer to this
question, but have yet to find something that matches what I'm trying to


do.


I have an application that reads records from a table and creates an
instance of a bean for each row.  Therefore, when I return from my DB


call,


I have a Vector of beans representing the data.

I need to display all of this on one jsp form, letting the user have the
ability to update any of the fields in any of the records and click a


Update


button, which will send ALL of the data back to the Action class to be
processed.  I have done this before (not using Struts), but we have


switched


our Architecture and need to re-implement.

Any help would be GREATLY appreciated.





_
MSN 8 with e-m

Re: Processing multiple records all at once

2002-12-12 Thread Max Cooper
Brad,

I have written some pages/actions that do what you describe here. I believe
that one way to go would be to use nested properties, but I haven't tried
that yet, so I am not sure how to do it. The solution I used was to create
an ActionForm for the page that has arrays for each field from the rows.
Something like this (generic example -- replace rowId and rowProperty1 with
your real row properties):

public class RowsForm extends ActionForm {
   private String[] rowId;
   private String[] rowProperty1;
   public String[] getRowId() {
  return rowId;
   }
   public void setRowId(String[] rowId) {
  this.rowId = rowId;
   }
   public String[] getRowProperty1() {
  return rowProperty1;
   }
   public void setRowProperty1(String[] rowProperty1) {
  this.rowProperty1 = rowProperty1;
   }
}

The properties are arrays to receive values from each row in the data set
when you submit the form. For iterating through the data, we added a method
that would return a Collection of objects, where each represents a single
row. Something like this:

public class RowForm extends ActionForm { // this could also be a plain-old
JavaBean, too
   private String id;
   private String property1;
   // getters and setters for the id and property1
}

// add this method to RowsForm
   public Collection getRows() {
  Collection rows = new ArrayList();
  final int size = rowId.length;
  for (int i = 0; i < size; i++) {
 RowForm row = new RowForm();
 row.setId(rowId[i]);
 row.setProperty1(rowProperty1[i]);
 rows.add(row);
  }
  return rows;
   }

So, that setup will allow you to get the data out of the form after the user
submits their changes (by calling RowsForm.getRows()). You will get data for
each row, so you still need to decide which rows were changed, and which
ones the user simply left alone.

As for getting the data into the form and displaying it on the page, you
could add another method like populateForm(Vector rowData) to copy the data
to the arrays like this:

// another method in RowsForm
   public void populateForm(Vector rowData) {
  // get the Vector size
  final int size = rowData.size();
  // initialize the arrays
  rowId = new String[size];
  rowProperty1 = new String[size];
  // copy the data from the objects in the Vector into the arrays
  Vector rowData = new Vector();
  final int size = rowData.size();
  Enumeration enum = rowData.elements();
  for (int i = 0; i < size; i++) {
 Data element = (Data) enum.nextElement();
 rowId[i] = String.valueOf(element.getId());
 rowProperty1[i] = element.getProperty1();
  }
   }

However, it might be a bit wasteful to copy all the data into the arrays if
you are going to call getRows() to turn them back into a Collection of
objects so that you can use the  tag to display them in the
JSP. If you can get the data into a Collection instead of a Vector (or is a
Vector a Collection these days?), you can just have a single Collection
property on RowsForm that you set in the action, and the JSP will call the
getter to get the Collection to iterate over. The JSP to iterate over the
Collection and write out the rows might look something like this:



  id
  property1



  
<%-- write the id as text for display, and also as a hidden field for
submittal --%>


  
  

  




Your Action will get the populated RowsForm on the submit, and you can call
RowsForm.getRows() to get a Collection of RowForm objects to work with.

-Max

- Original Message -
From: "Brad Balmer" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 11, 2002 5:44 PM
Subject: Processing multiple records all at once


> I've searched the internet and different news groups for an answer to this
> question, but have yet to find something that matches what I'm trying to
do.
>
> I have an application that reads records from a table and creates an
> instance of a bean for each row.  Therefore, when I return from my DB
call,
> I have a Vector of beans representing the data.
>
> I need to display all of this on one jsp form, letting the user have the
> ability to update any of the fields in any of the records and click a
Update
> button, which will send ALL of the data back to the Action class to be
> processed.  I have done this before (not using Struts), but we have
switched
> our Architecture and need to re-implement.
>
> Any help would be GREATLY appreciated.
>
>
>
>
>
> _
> MSN 8 with e-mail virus protection service: 2 months FREE*
> http://join.msn.com/?page=features/virus
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
>



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>




Processing multiple records all at once

2002-12-11 Thread Brad Balmer
I've searched the internet and different news groups for an answer to this 
question, but have yet to find something that matches what I'm trying to do.

I have an application that reads records from a table and creates an 
instance of a bean for each row.  Therefore, when I return from my DB call, 
I have a Vector of beans representing the data.

I need to display all of this on one jsp form, letting the user have the 
ability to update any of the fields in any of the records and click a Update 
button, which will send ALL of the data back to the Action class to be 
processed.  I have done this before (not using Struts), but we have switched 
our Architecture and need to re-implement.

Any help would be GREATLY appreciated.





_
MSN 8 with e-mail virus protection service: 2 months FREE* 
http://join.msn.com/?page=features/virus


--
To unsubscribe, e-mail:   
For additional commands, e-mail: