Zum Inhalt springen

datasource / recordset


Empfohlene Beiträge

Geschrieben

hi,

ich will einen ausdruck mit list und label machen (vielleicht kennt das jemand?)

dieses benötigt als parameter eine datasource

in dem fall ein data object

dieses kann man ja füllen in dem man eine datenbank (access) angibt...

ich krieg aber meine daten von einem adodb recordset;

wie kann ich dieses data object mit den recordset daten füllen?

mfg

k4fu

Geschrieben

Hi,

habe vor ein paar Jahren mal damit gearbeitet, aber das mit dem DataObject ist mir nicht bekannt.

Welche Version verwendest Du?

Habe mir grade mal testweise die 11er als Trial runtergeladen, aber auch nichts entspr. (DataSource) gefunden.

Welches Control von L&L nimmst Du ?

Geschrieben

also ich hab mit vb.net ein programm entwickelt, welches auch list und label hatte und da gings; hab hier ein dataset übergeben

in vb6 geht das nicht so einfach

ListLabelVB1.AddVarsToFields = True


ListLabelVB1.AutoDatasource = Data1 '<----- wie krieg ich das mit

'Daten gefüllt? über accessdb gehts einfach... aber daten aus einem 

'adodb recordset???


ListLabelVB1.AutoDesignerFile = App.Path & "\abgeschlossene wartungen.lst"

ListLabelVB1.AutoProjectType = LL_PROJECT_LIST

ListLabelVB1.AutoDesign ("Test")

Geschrieben

Hi,

mein Problem ist, dass ich folgende Eigenschaft gar nicht habe (ListLabelVB1.AutoDatasource).

In den Beispielen durchlaufen die einen Datencontainer (Data.Recordset) und fügen dem Report die Werte hinzu.

Eventuell ist das eine Möglichkeit ?

Geschrieben

evtl ja

nur wie fülle ich diesen datacontainer?

gibts irgendwo beispiele...

oder stelle ich mich einfach nur doof an?

wie gesagt hole ich mir die werte aus der datenbank über ein adodb recordset...

wie speichere ich diese dann in den datacontainer?

Geschrieben

Hi,

habe ich mich wohl ein wenig quer ausgedrückt, mit Datencontainer meine ich Dein Recordset.

Schau Dir mal das Beispiel "MultiTab" an, falls Du es hast, wenn nicht, kann ich Dir das schicken.

Geschrieben

ist dies wirklich die einzige lösung?

ich mein: egal ob c++, vb.net, usw kann man die felder mit 5 zeilen code übergeben...

außerdem dauert hier das öffnen von ll knapp 3 minuten, weil er ja die schleife durchrennt.

das kanns ja auch nicht sein

Geschrieben

Hi,

ich meine, ich habe es damals auch anders gemacht.

Jedoch war das nicht Version 11, sondern 9 oder 10.

Ich schaue zu Hause nochmal nach.

Ansonsten hab ich auch keine Ahnung mehr, sorry.

Geschrieben

ich habs jetzt geschafft, ein feld zu übergeben;

jedoch sollten im feld (im gegensatz zur variable) mehrere werte drinstehn;

bei mir steht aber nur ein wert (des selects) drin

Private Sub vDruck()


    Dim oRs             As New ADODB.Recordset

    Dim nRet            As Long

    Dim para            As Long

    Dim content

    Dim FileName        As String

    Dim CleanUpBmpArr()

    Dim nBmpFileCounter As Long

    Dim oConnDruck      As New ADODB.Connection

    Dim sName           As String

    Dim sUser           As String

    Dim sIP             As String


    sName = clsAP.RegRead("HKCU\SOFTWARE\F.EE Maintenance\DB_1_Name")

    sUser = clsAP.RegRead("HKCU\SOFTWARE\F.EE Maintenance\DB_1_User")

    sIP = clsAP.RegRead("HKCU\SOFTWARE\F.EE Maintenance\DB_1_IP")


    oConnDruck.ConnectionString = "Provider=SQLOLEDB.1;Data Source=" & sIP & _

                             ";Initial Catalog=" & sName & _

                             "; UID=" & sUser & ";"

    oConnDruck.Open


    oRs.Open " select bezeichnung from auftrag ", oConnDruck


    Dim oField

    For Each oField In oRs.Fields

        Select Case oField.Type

            Case adVarWChar, adVarChar, adChar, adLongVarChar, adLongVarWChar, adBSTR:

                para = LL_TEXT

                content = oField

            Case adDate:

                para = LL_DATE_MS

                If Not IsNull(oField) Then

                    content = CStr(CSng(CDate(oField)))

                End If

            Case adBoolean:

                para = LL_BOOLEAN

                If oField Then

                    content = ".T."

                Else

                    content = ".F."

                End If

            Case adLongVarBinary:

               para = LL_DRAWING

               content = WriteBitmap(oField)

               nBmpFileCounter = nBmpFileCounter + 1

               ReDim Preserve CleanUpBmpArr(nBmpFileCounter)

               CleanUpBmpArr(nBmpFileCounter) = content

            Case Else:

                para = LL_NUMERIC

                content = oField

        End Select


        While Not oRs.EOF

            nRet = ListLabel1.LlDefineFieldExt(oField.Name, oRs(0).Value, para)

            oRs.MoveNext

        Wend

    Next

    oRs.Close


    ListLabel1.LlDefineLayout frmWartung.hWnd, "Design report", LL_PROJECT_LIST, FileName

End Sub

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...