Hello All,

Problem: In a multiform survey values have to be saved into SQL DB
after last form is finished. So data have to be passed from a form to
next forms. Except this, each form must "know" which survey it belongs
to (SID is an unique survey ID) and a reference ID of the next form. If
it is last form, the reference is empty.

Solution: values of fields of previous forms and service data (SID and
a next form ID) are saved to <INPUT TYPE="HIDDEN">.
When the last form is completed, from REQUEST.form.items() we need to
extract only data fileds, without SIDs and IDs of forms. It is done by
def filterList (list): 
    fl = list
    res = []
    for el in fl:
      if el[0] not in ['sid','form','submit','nform']:
    return res

The Python method is called from this DTML-method:

<dtml-let fl="filterList(REQUEST.form.items())">
<dtml-call "storeResultsSQL(table_name=id, 
This seems to work.

Then this SQL-Method has to save data:
Arguments: table-name, fields, sid

UPDATE <dtml-var table_name> SET
<dtml-in fields>
<dtml-var sequence-key>=<dtml-sqlvar sequence-item type=nb>
<dtml-unless sequence-last>, </dtml-unless>

And after this piece of code an error appears:

Error Type: TypeError
Error Value: getattr, argument 2: expected string, int found


  File D:\TESTSITE\lib\python\DocumentTemplate\DT_Let.py, line 147, in render
    (Object: fl="filterList(REQUEST.form.items())")
  File D:\TESTSITE\lib\python\DocumentTemplate\DT_Util.py, line 337, in eval
    (Object: storeResultsSQL(table_name=id, fields=fl, sid=REQUEST['sid']))
    (Info: fl)
  File <string>, line 0, in ?
  File D:\TESTSITE\lib\python\Shared\DC\ZRDB\DA.py, line 443, in __call__
    (Object: storeResultsSQL)
  File D:\TESTSITE\lib\python\DocumentTemplate\DT_String.py, line 528, in __call__
    (Object: <string>)
  File D:\TESTSITE\lib\python\DocumentTemplate\DT_In.py, line 691, in renderwob
    (Object: fields)
  File D:\TESTSITE\lib\python\DocumentTemplate\DT_InSV.py, line 395, in __getitem__
  File D:\TESTSITE\lib\python\DocumentTemplate\DT_InSV.py, line 194, in last
  File D:\TESTSITE\lib\python\DocumentTemplate\DT_InSV.py, line 182, in value

Any suggestions?
THX in advance.

Best regards,
    Alexander N. Chelnokov
Ural Scientific Institute of Traumatology and Orthopaedics
7, Bankovsky str. Ekaterinburg 620014 Russia
ICQ: 25640913  

Zope maillist  -  [EMAIL PROTECTED]
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-dev )

Reply via email to