AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
26.05.12 - 00:35:30
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 7
| |-+  ND7: Entwicklung (Moderatoren: eknori, Glombi, koehlerbv)
| | |-+  Tabellen trennen?
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Tabellen trennen?  (Gelesen 309 mal)
Julgo
Frischling
*
Offline Offline

Beiträge: 2


« am: 10.05.11 - 14:25:02 »

Hallo zusammen,
ich habe zwei Tabellen, welche jeweils in temporäre Strings eingelesen und dann getrennt ausgegeben werden sollen, jedoch wird die zweite Tabelle in der ersten verschachtelt. Wie kann ich das umgehen?
(Deklarationen etc. kürze ich mal raus)

Code:
' OVERVIEW  <---- ANFANG DER ERSTEN TABELLE
Call overviewstream.WriteText(cssstyle)

overviewtempstring = |<p><table  border="1"><tr><td><b>Customer Name</b></td><td><b>Material Group</b></td><td><b>Date (From)   </b></td><td><b>Date (to)   </b></td><td><b>Increase</b></td><td><b>Measure Of Increase</b></td><td><b>Comment</b></td></tr><tr>|


While (Not Doc Is Nothing)
For i = 1 To 15
' Material Group is critical and may not be empty

If Cstr(doc.GetItemValue("vaPPMATKL_"&i)(0)) <> "" Then

overviewtempstring = overviewtempstring + "<td>"

If Cstr(doc.AK_Firma1(0)) <> "" Then ' Company
overviewtempstring = overviewtempstring + Cstr(doc.AK_Firma1(0))
Else
overviewtempstring = overviewtempstring + "-"
End If
overviewtempstring = overviewtempstring + "</td><td>"


If Cstr(doc.GetItemValue("vaPPMATKL_"&i)(0)) <> "" Then 'Material Group
overviewtempstring = overviewtempstring +  doc.GetItemValue("vaPPMATKL_"&i)(0)
End If
overviewtempstring = overviewtempstring + "</td><td>"


If Cstr(doc.vaPPFromDate(0)) <> "" Then 'Date From
overviewtempstring = overviewtempstring + Cstr(doc.vaPPFromDate(0))
Else
overviewtempstring = overviewtempstring + "-"
End If
overviewtempstring = overviewtempstring + "</td><td>"


If Cstr(doc.vaPPToDate(0)) <> "" Then 'Datum To
overviewtempstring = overviewtempstring + Cstr(doc.vaPPToDate(0))
Else
overviewtempstring = overviewtempstring + "-"
End If
overviewtempstring = overviewtempstring + "</td><td>"


If Cstr(doc.GetItemValue("vaPPIncrease_"&i)(0)) <> "" Then 'Increase
overviewtempstring = overviewtempstring + Cstr(doc.GetItemValue("vaPPIncrease_"&i)(0))
Else
overviewtempstring = overviewtempstring + "-"
End If
overviewtempstring = overviewtempstring + "</td><td>"


If Cstr(doc.GetItemValue("vaIPPUoM_"&i)(0)) <> "" Then 'Measure of Increase
overviewtempstring = overviewtempstring + doc.GetItemValue("vaIPPUoM_"&i)(0)
Else
overviewtempstring = overviewtempstring + "-"
End If
overviewtempstring = overviewtempstring + "</td><td>"


If Cstr(doc.GetItemValue("vaPPComment_"&i)(0)) <> "" Then 'Comment
overviewtempstring = overviewtempstring + doc.GetItemValue("vaPPComment_"&i)(0)
Else
overviewtempstring = overviewtempstring + "-"
End If
overviewtempstring = overviewtempstring + "</td></tr>"

Call overviewstream.WriteText(overviewtempstring)
overviewtempstring = ""

End If


If i = 15 Then  <---- ENDE DER ERSTEN TABELLE
Call overviewstream.WriteText("</table>")
End If

If Debug = True Then 
'Summarize <--- ANFANG DER ZWEITEN TABELLE

If i = 1 Then
weekstring = |<p><table  border="1"><tr><td><b>Material Group</b></td><b>Measure Of Increase</b></td><td><b>Calendar Week</b></td><td><b>Year         </b></td><td><b>Increase per Calendar Week</b></td></tr><tr>|
End If

Set dateTimeStart = New NotesDateTime(doc.vaPPFromDate(0))
Set dateTimeEnd = New NotesDateTime (doc.vaPPToDate(0))

TimeDiffSec = dateTimeEnd.TimeDifference(dateTimeStart) + 86400

If Cstr(doc.GetItemValue("vaPPMATKL_"&i)(0)) <> "" Then ' Material Group
If Cstr(doc.GetItemValue("vaIPPUoM_"&i)(0)) <> "" Then ' Unit Of Measure
If Cstr(doc.GetItemValue("vaPPIncrease_"&i)(0)) <> "" Then ' Increase

Dim weekNo As Integer
Dim yearNo As Integer
Dim IncrPerDay As Double

While Cdat(dateTimeStart.DateOnly) <= Cdat(dateTimeEnd.DateOnly)
weekNo =  CalculateWeekNo(Cdat(dateTimeStart.DateOnly))
yearNo = Year(dateTimeStart.DateOnly)

SumKey = Cstr(doc.GetItemValue("vaPPMATKL_"&i)(0)) & "|" & Cstr(doc.GetItemValue("vaIPPUoM_"&i)(0)) & "|" & Cstr(weekNo) & "|" & Cstr(yearNo)
Increase = Cstr(doc.GetItemValue("vaPPIncrease_"&i)(0))
IncrPerDay= (Increase/ (TimeDiffSec / 86400)) '86400 sec.= 1day
'IncrPerWeek = Cstr(doc.GetItemValue("vaPPIncrease_"&i)(0) / (TimeDiffSec/604800))   'One week has 604800 seconds

If Iselement (overviewlist(SumKey)) Then
overviewlist(SumKey) = overviewlist(SumKey) + IncrPerDay 
Else
overviewlist(SumKey) = IncrPerDay
End If
datetimestart.AdjustDay(+1)
Wend
End If
End If
End If

End If

Next i
Set doc = view.GetNextDocument(doc)
Wend


i = 0
Forall item In overviewlist
delim = "|"
SplitOutput = Split (Listtag(item), delim)
weekstring = weekstring + SplitOutput(0) + "</td>"
weekstring = weekstring + SplitOutput(1) + "</td>"
weekstring = weekstring + SplitOutput(2) + "</td>"
weekstring = weekstring + SplitOutput(3) + "</td>" + item + "</td></tr>" 
i = i + 1
End Forall

weekstring = weekstring + "</table>"  <--- ENDE DER ZWEITEN TABELLE

Else
overviewtempstring = "Nothing found!"
End If

Call overviewstream.WriteText(overviewtempstring)
Call overviewstream.WriteText(weekstring)
Gespeichert
marschul
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 228



« Antworten #1 am: 16.05.11 - 13:18:15 »

Die 2. Tabelle legst Du an, wenn i=1 ist. Da ist die erste Tabelle aber noch gar nicht geschlossen, denn das machst Du erst, wenn i=15 ist. Damit "landet" die 2. Tabelle natürlich in der Zelle, die bei i=1 gerade zuletzt bearbeitet wurde.
Gespeichert

Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)
marschul
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 228



« Antworten #2 am: 16.05.11 - 15:59:45 »

Ach, was schreibe ich denn da für'n Quatsch Huh Sehe gerade, dass Du da 2 unterschiedliche Stringvariablen verwendest, jede für eine Tabelle und erst am Ende werden die zusammengewürfelt.
ABER: </table> für die erste Tabelle schreibst Du direkt in den Stream, wenn i=15 ist, während Du den Inhalt der Tabelle (overviewtempstring) erst am Ende in den Stream schreibst (vor weekstring).
Sollte es nicht besser lauten
Code:
If i = 15 Then  <---- ENDE DER ERSTEN TABELLE
  overviewtempstring = overviewtempstring & "</table>"
End If
?

EDIT: Irgendwie bin ich heute blind - overviewtempstring wird ja vor If i=15 in den Stream geschrieben - Schade, kann wohl leider doch nicht helfen  Sad
« Letzte Änderung: 16.05.11 - 16:15:41 von marschul » Gespeichert

Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)
marschul
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 228



« Antworten #3 am: 17.05.11 - 11:46:20 »

So, jetzt aber: Hast Du Dir schon mal das Ergebnis angeschaut? Habe Dein Script mal übernommen und auf das Nötigste reduziert:

Code:
Sub Click(Source As Button)

Dim oSession As New NotesSession
Dim oDB As NotesDatabase, oView As NotesView, Doc As NotesDocument
Dim sTarget As String, overviewtempstring As String, weekstring As String

overviewtempstring = |<p><table  border="1"><tr><td><b>Customer Name</b></td><td><b>Material Group</b></td><td><b>Date (From)   </b></td><td><b>Date (to)   </b></td><td><b>Increase</b></td><td><b>Measure Of Increase</b></td><td><b>Comment</b></td></tr><tr>|
Set oDB = oSession.CurrentDatabase
Set oView = oDB.GetView("AllByForm")
Set Doc = oView.GetFirstDocument
sTarget = ""

While (Not Doc Is Nothing)
For i = 1 To 15
overviewtempstring = overviewtempstring + "<td>"
overviewtempstring = overviewtempstring + doc.Form(0)
overviewtempstring = overviewtempstring + "</td></tr>"
sTarget = sTarget + overviewtempstring
overviewtempstring = ""
If i = 15 Then  '<---- ENDE DER ERSTEN TABELLE
sTarget = sTarget + ("</table>")
End If
If i = 1 Then
weekstring = |<p><table  border="1"><tr><td><b>Material Group</b></td><b>Measure Of Increase</b></td><td><b>Calendar Week</b></td><td><b>Year         </b></td><td><b>Increase per Calendar Week</b></td></tr><tr>|
End If
Next i
Set doc = oView.GetNextDocument(doc)
Wend
weekstring = weekstring + "</table>"  '<--- ENDE DER ZWEITEN TABELLE

sTarget = sTarget & overviewtempstring
sTarget = sTarget & weekstring

Set Doc = oDB.CreateDocument
Doc.Form = "NurEinText"
Doc.NurEinText = sTarget
Doc.Save True, False

End Sub

Herausgekommen ist folgender String, der wohl HTML sein soll:
Code:
<p><table  border="1"><tr><td><b>Customer Name</b></td>
<td><b>Material Group</b></td><td><b>Date (From)   </b></td><td><b>
Date (to)   </b></td><td><b>Increase</b></td><td><b>Measure Of Increase</b>
</td><td><b>Comment</b></td></tr><tr><td>fSammelKonten</td>
</tr><td>fSammelKonten</td></tr><td>fSammelKonten</td></tr><td>fSammelKonten</td>
</tr><td>fSammelKonten</td></tr><td>fSammelKonten</td></tr><td>fSammelKonten</td>
</tr><td>fSammelKonten</td></tr><td>fSammelKonten</td></tr><td>fSammelKonten</td>
</tr><td>fSammelKonten</td></tr><td>fSammelKonten</td></tr><td>fSammelKonten</td>
</tr><td>fSammelKonten</td></tr><td>fSammelKonten</td></tr></table><td>MainTopic</td>
</tr><td>MainTopic</td></tr><td>MainTopic</td></tr><td>MainTopic</td></tr><td>MainTopic</td>
</tr><td>MainTopic</td></tr><td>MainTopic</td></tr><td>MainTopic</td></tr><td>MainTopic</td>
</tr><td>MainTopic</td></tr><td>MainTopic</td></tr><td>MainTopic</td></tr><td>MainTopic</td>
</tr><td>MainTopic</td></tr><td>MainTopic</td></tr></table><td>NurEinBody</td></tr>
<td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr></table><td>NurEinBody</td></tr>
<td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr></table><td>NurEinBody</td></tr>
<td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr></table><td>NurEinBody</td></tr>
<td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr><td>NurEinBody</td>
</tr><td>NurEinBody</td></tr><td>NurEinBody</td></tr></table><td>NurEinText</td></tr>
<td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr></table><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr></table><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr></table><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr></table><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td></tr><td>NurEinText</td>
</tr><td>NurEinText</td></tr>
<td>NurEinText</td></tr></table><td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td>
</tr><td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td>
</tr><td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td></tr>
<td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td></tr>
<td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td></tr><td>sfEmbededEditor</td></tr>
<td>sfEmbededEditor</td></tr></table><td>Test Body zweimal</td></tr><td>Test Body zweimal</td>
</tr><td>Test Body zweimal</td></tr><td>Test Body zweimal</td></tr><td>Test Body zweimal</td>
</tr><td>Test Body zweimal</td></tr><td>Test Body zweimal</td></tr><td>Test Body zweimal</td>
</tr><td>Test Body zweimal</td></tr><td>Test Body zweimal</td></tr><td>Test Body zweimal</td>
</tr><td>Test Body zweimal</td></tr><td>Test Body zweimal</td></tr><td>Test Body zweimal</td>
</tr><td>Test Body zweimal</td></tr></table><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td>
</tr><td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr></table><td>TestAuswahlMehrereAliase</td>
</tr><td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
<td>TestAuswahlMehrereAliase</td></tr><td>TestAuswahlMehrereAliase</td></tr>
</table><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr>
<td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td>
</tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td>
</tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td>
</tr></table><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td>
</tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr>
<td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr>
<td>Textfeld</td></tr><td>Textfeld</td></tr><td>Textfeld</td></tr></table>
<p><table  border="1"><tr><td><b>Material Group</b></td><b>Measure Of Increase</b></td>
<td><b>Calendar Week</b></td><td><b>Year         </b></td>
<td><b>Increase per Calendar Week</b></td></tr><tr></table>

Darin fällt auf, dass die erste Tabelle nicht nur einmal, sondern für jedes Dokument einmal geschlossen wird. Anschließend geht's dann munter weiter mit Tabellenzeilen/-spalten.

'Wenn i=15 schreibe </table>' führst Du bei jedem Dokument durch!
Gespeichert

Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig