Seite 1 von 1

Python script gibt keine ausgabe ins formular

Verfasst: Freitag 3. November 2006, 08:55
von mexi
Guten morgen:)

Habe zwei formulare; eins für die eingabe der daten und das zweite soll die suchergebnisse anzeigen. Das erste formular ruft ein script auf, das dann das formular für die ausgaben anzeigt.
Wenn ich das script teste, bekomme ich ergebnisse, nur leider kann ich die nicht im formular ausgeben :cry:

Code: Alles auswählen

# Import a standard function, and get the HTML request and response objects.
from Products.PythonScripts.standard import html_quote
request = container.REQUEST
RESPONSE =  request.RESPONSE

res=container['sqlSelect']
page=container['resultOnly_pt']

if res(gruppe = gruppe, messmittel=messmittel, ident_nr=ident_nr, kalibrierschein=kalibrierschein, fabrikat_nr = fabrikat_nr):
    return page([{'gruppe':x.gruppe, 'messmittel':x.messmittel, 'typ':x.typ, 'hersteller':x.hersteller,
'fabrikat_nr':x.fabrikat_nr, 'ident_nr':x.ident_nr, 'kalibrierschein':x.kalibrierschein, 'messbereich':x.messbereich,
'standort':x.standort, 'standort':x.standort, 'kalibrierung':x.kalibrierung, 'kalibrierdatum':x.kalibrierdatum,
'brauchbar':x.brauchbar, 'naechste_kalibrierung':x.naechste_kalibrierung, 'bemerkung':x.bemerkung,
'bemerkung_zur_entnahme':x.bemerkung_zur_entnahme, 'kms':x.kms, 'entnahme':x.entnahme} for x in res])
else:
    return[{'messmittel':"keine Daten gefunden"}]



die daten frage ich im formular so ab:
<div tal:repeat="result here/searchScript" >
  
         <tr>
          <td><div tal:content="result/messmittel">Messmittel goes here</div></td>
          <td><div tal:content="result/typ">Typ goes here</div></td>
          <td><div tal:content="result/ident_nr">Ident_nr goes here</div></td>
          <td><div tal:content="result/messbereich">Messbereich goes here</div></td>
          <td><div tal:content="result/kalibrierschein">Kalibrierschein goes div</div></td>
          <td><div tal:content="result/standort">Standort goes here</div></td>
          <td><div tal:content="result/naechste_kalibrierung">Naechste_kalibrierung goes here</div></td>
          <td><div tal:content="result/entnahme">Entnahme goes here</div></td>
          <td><div tal:content="result/kms">KMS goes here</div></td>
        </tr>


Sitze bestimmt gewaltig aufm schlauch und seh den wald vor lauter bäumen nicht :oops: 
Bin für jeden tipp dankbar
Mexi

Verfasst: Freitag 3. November 2006, 08:57
von mexi
oops und hab das code ende vergessen. Entschuldigung, dass es jetzt so unübersichtlich ist

Verfasst: Freitag 3. November 2006, 10:20
von gerold
mexi hat geschrieben:oops und hab das code ende vergessen. Entschuldigung, dass es jetzt so unübersichtlich ist
Hi mexi!

Du kannst deinen Beitrag noch einmal editieren. Suche den Button [edit].

mfg
Gerold
:-)

Re: Python script gibt keine ausgabe ins formular

Verfasst: Freitag 3. November 2006, 10:39
von gerold
mexi hat geschrieben:

Code: Alles auswählen

if res(gruppe = gruppe, messmittel=messmittel, ident_nr=ident_nr, kalibrierschein=kalibrierschein, fabrikat_nr = fabrikat_nr):
Hallo mexi!

Das löst jetzt nicht dein Problem. Es ist nur mal ein Versuch, den Code etwas kompakter zu machen: Probier mal stattdessen

Code: Alles auswählen

if res(request):
aus. Vielleicht funktioniert es. Sicher bin ich mir nicht, da ich es im Moment nicht testen kann.

mfg
Gerold
:-)

Re: Python script gibt keine ausgabe ins formular

Verfasst: Freitag 3. November 2006, 10:52
von gerold
mexi hat geschrieben:

Code: Alles auswählen

if res(gruppe = gruppe, messmittel=messmittel, ident_nr=ident_nr, kalibrierschein=kalibrierschein, fabrikat_nr = fabrikat_nr):
    return page([{'gruppe':x.gruppe, 'messmittel':x.messmittel, 'typ':x.typ, 'hersteller':x.hersteller,
'fabrikat_nr':x.fabrikat_nr, 'ident_nr':x.ident_nr, 'kalibrierschein':x.kalibrierschein, 'messbereich':x.messbereich,
'standort':x.standort, 'standort':x.standort, 'kalibrierung':x.kalibrierung, 'kalibrierdatum':x.kalibrierdatum,
'brauchbar':x.brauchbar, 'naechste_kalibrierung':x.naechste_kalibrierung, 'bemerkung':x.bemerkung,
'bemerkung_zur_entnahme':x.bemerkung_zur_entnahme, 'kms':x.kms, 'entnahme':x.entnahme} for x in res])
else:
    return[{'messmittel':"keine Daten gefunden"}]
Hi mexi!

Code: Alles auswählen

result = res(request)
if result:
    return page(result)
else:
    return page(result = [])
In ``resultOnly_pt`` könntes du dann so damit arbeiten:

Code: Alles auswählen

<table tal:condition="options/result">
  <tr ral:repeat="row options/result">
    <td tal:content="row/messmittel">
      [messmittel]
    </td>
  </tr>
</table>
Der Weg der Daten muss aber so laufen:
1.) Formular, das die benötigten Daten abfragt.
2.) Python-Script, das die Daten entgegen nimmt, die SQL-Abfrage ausführt und die Ergebnisseite aufruft.
3.) Ergebnisseite, die die Variablen über ``options`` abfragt und anzeigt.

mfg
Gerold
:-)

Verfasst: Freitag 3. November 2006, 13:53
von mexi
leider bekomme ich jetzt ständig diese fehlermeldung:Error Type: KeyError
Error Value: 'result' :roll:

danke für den edit-tipp :oops: werde ich in zukunft beherzigen :D

Verfasst: Freitag 3. November 2006, 21:29
von gerold
Hallo mexi!

Ich habe da mal ein kleines Beispiel zusammengestellt:
http://gerold.bcom.at/zope_plone/zope_c ... _beispiel/

Darin wird demonstriert, wie man einen Wert von einem Formular an eine SQL-Abfrage weitergibt und das Ergebnis in einer Seitenvorlage anzeigt.

mfg
Gerold
:-)

Stichworte: SQL, Datenbank, Datenbankabfrage, weitergeben