LoMo
Erfahrenes Mitglied
Hi community,
gestern hab ich angefangen mich ein bischen in List & Label einzuarbeiten. Heute bin ich auf ein Problem gestoßen und zwar:
Beim Aufruf von den Designer z.B. muss man die Datenbankfelder definieren und übergeben
Aufruf:
Funktion zum definieren und übergeben der Felder:
Die Funktion hab ich aus einen Beispiel kopiert allerdings wurde beim Beispiel mit der Komponente ADO gearbeitet. Ich habs dann so umgeändert wie ich standartmäßig mich verbinde.
Problem:
Die Felder werden zwar richtig definiert aber das Problem ist er übergibt nicht alle Felder.
Beispiel:
2 Datensätze sind in einer Tabelle vorhanden => er übergibt nur die ersten 2 Felder (Obwohl es eigentlich gehen sollte, da ich ne Schleife mit Fields(i).count mach)
Weiß evtl. jemand wo der Fehler liegen könnte ?
mfg
gestern hab ich angefangen mich ein bischen in List & Label einzuarbeiten. Heute bin ich auf ein Problem gestoßen und zwar:
Beim Aufruf von den Designer z.B. muss man die Datenbankfelder definieren und übergeben
Aufruf:
Code:
Private Sub ButtonDesign_Click()
ADOCON.ConnectionTimeout = 0
ADOCON.CursorLocation = adUseClient
ADOCON.Open COMADOCon
SQL_Suchstring = " SELECT * FROM Interessenten_Berichte itb, Interessenten_Stammdaten its "
SQL_Suchstring = SQL_Suchstring & " where itb.InteressentenNr = its.InteressentenNr "
SQL_Suchstring = SQL_Suchstring & " order by itb.Wiedervorlage_am desc"
ADORS1.Open SQL_Suchstring, ADOCON, adOpenKeyset, adLockReadOnly
If ADORS1.RecordCount = 0 Then
ADORS1.Close
ADOCON.Close
Exit Sub
End If
ADORS1.MoveFirst
'D: Startet den Designer mit dem Titel "Desgin reports und der Datei "simple.lst"
ListLabel1.Design 2, hWnd, "Design reports", LL_PROJECT_LIST, "Test2.lst", 0
ADOCON.Close
End Sub
Funktion zum definieren und übergeben der Felder:
Code:
Private Sub ListLabel1_CmndDefineFields(ByVal nUserData As Long, ByVal bDummy As Long, pnProgressInPerc As Long, pbLastRecord As Long)
Dim para As String
Dim content As String
Dim nRet As String
Dim i As Integer
'D: Wiederholung für alle Felder eines Datensatzen
'UR: Loop for each field in the present recordset
For i = 0 To ADORS1.RecordCount - 1
'D: Wiederholung für alle Felder eines Datensatzen
'UR: Loop for each field in the present recordset
For X = 0 To ADORS1.Fields.Count
Select Case ADORS1.Fields(i).Type
'D: Numerisches Feld
'US: Numeric field
Case 3, 4, 6, 7: para = LL_NUMERIC: content = ADORS1.Fields(i)
'D: Falls der Datentyp "Datum" ist, Umwandlun in einen numerischen Datumswert
'US: If datatyp "Date" convert to numeric date-value
Case 8: para = LL_DATE_MS: content = CDate(ADORS1.Fields(i))
'D: Entscheidungsfeld (Ja/Nein), Boolean
'US: True/False field, boolean
Case 1: para = LL_BOOLEAN: content = ADORS1.Fields(i)
'D: Zeichenformat = Text
'US: Characterformat = Text
Case Else: para = LL_TEXT:
If Not IsNull(ADORS1.Fields(i)) Then
content = ADORS1.Fields(i)
End If
End Select
nRet = ListLabel1.LlDefineFieldExt(ADORS1.Fields(i).Name, content, para)
Next X
Next i
'D: Werden Echt-Daten benötigt? (nicht bei Designer-Aufruf)
'US: Is real data needed? (not when method Design has been called)
If bDummy = 0 Then
'D: Gehe zum nächsten Datensatz
'US: Jump to next record
ADORS1.MoveNext
'D: Wenn kein weiterer Datensatz mehr folgt, dann wird der Druck beendet
'US: If there is no more recordset printing will be finished
If ADORS1.EOF = True Then pbLastRecord = 1
End If
End Sub
Die Funktion hab ich aus einen Beispiel kopiert allerdings wurde beim Beispiel mit der Komponente ADO gearbeitet. Ich habs dann so umgeändert wie ich standartmäßig mich verbinde.
Problem:
Die Felder werden zwar richtig definiert aber das Problem ist er übergibt nicht alle Felder.
Beispiel:
2 Datensätze sind in einer Tabelle vorhanden => er übergibt nur die ersten 2 Felder (Obwohl es eigentlich gehen sollte, da ich ne Schleife mit Fields(i).count mach)
Weiß evtl. jemand wo der Fehler liegen könnte ?
mfg
Zuletzt bearbeitet: