k4fu Geschrieben 7. August 2006 Geschrieben 7. August 2006 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 Zitieren
DevHB Geschrieben 8. August 2006 Geschrieben 8. August 2006 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 ? Zitieren
k4fu Geschrieben 8. August 2006 Autor Geschrieben 8. August 2006 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") Zitieren
DevHB Geschrieben 8. August 2006 Geschrieben 8. August 2006 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 ? Zitieren
k4fu Geschrieben 8. August 2006 Autor Geschrieben 8. August 2006 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? Zitieren
DevHB Geschrieben 8. August 2006 Geschrieben 8. August 2006 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. Zitieren
k4fu Geschrieben 8. August 2006 Autor Geschrieben 8. August 2006 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 Zitieren
DevHB Geschrieben 8. August 2006 Geschrieben 8. August 2006 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. Zitieren
k4fu Geschrieben 8. August 2006 Autor Geschrieben 8. August 2006 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 Zitieren
Empfohlene Beiträge
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.