(Datenbank)-Grid
-
- Beiträge: 35
- Registriert: 24.04.2005 03:49
(Datenbank)-Grid
Hallo zusammen.
Gibt es ein brauchbares Grid, um Datensätze tabellarisch darstellen zu können?
Ich habe mir CSGrid und EzGrid angesehen, jedoch benötige ich eine Möglichkeit in dem Grid auch neue Datensätze anlegen zu können.
Habt ihr da noch Ideen (oder doch Ideeen?!) oder Denkanstösse?
Ist ein richtiges Grid in absehbarer Zeit als festes Gedget in Pb geplant?
Grüsse
Frank
Gibt es ein brauchbares Grid, um Datensätze tabellarisch darstellen zu können?
Ich habe mir CSGrid und EzGrid angesehen, jedoch benötige ich eine Möglichkeit in dem Grid auch neue Datensätze anlegen zu können.
Habt ihr da noch Ideen (oder doch Ideeen?!) oder Denkanstösse?
Ist ein richtiges Grid in absehbarer Zeit als festes Gedget in Pb geplant?
Grüsse
Frank
Grid für datensätze
Hi garfield!
vielleicht kann dir das helfen arbeite selber schon die ganze zeit damit.
Da sowas nicht existierte hab ich mir selber eins gebastelt.
Die ganze Include kannst Du bei mir runterladen mit Beispieldatei
PS:
http://people.freenet.de/mike.teesch
MfG Mike
vielleicht kann dir das helfen arbeite selber schon die ganze zeit damit.
Da sowas nicht existierte hab ich mir selber eins gebastelt.
Code: Alles auswählen
;a ListIconGadget with Binding an a Recordset ; Max 10 Columns
Procedure db_ListIconGadget(num.l,LigNum.l,x.l,y.l,Width.l,Height.l,Titelw.l,Flags.l,Tablename.s)
ListIconGadget(ligNum, x, y, Width, Height, "", Titelw,Flags)
db_Recordset_Open(num,Tablename,"","")
column.l = DatabaseColumns(num)
For col = 0 To column
colName.s = DatabaseColumnName(num,col)
AddGadgetColumn(ligNum,col,colName,100)
Next col
While NextDatabaseRow(num)
a.s=GetDatabaseString(num,0)
b.s=GetDatabaseString(num,1)
c.s=GetDatabaseString(num,2)
d.s=GetDatabaseString(num,3)
e.s=GetDatabaseString(num,4)
f.s=GetDatabaseString(num,5)
g.s=GetDatabaseString(num,6)
h.s=GetDatabaseString(num,7)
i.s=GetDatabaseString(num,8)
j.s=GetDatabaseString(num,9)
AddGadgetItem(ligNum,-1,a+Chr(10)+b+Chr(10)+c+Chr(10)+d+Chr(10)+e+Chr(10)+f+Chr(10)+g+Chr(10)+h+Chr(10)+i+Chr(10)+j)
Wend
EndProcedure
PS:
http://people.freenet.de/mike.teesch
MfG Mike
PB 4.0
Wer programmiert greift ins volle Leben!
Herzrasen,Haareraufen aber auch jubeln und jauchzen
Wer programmiert greift ins volle Leben!
Herzrasen,Haareraufen aber auch jubeln und jauchzen

Auch kein DBGrid
aber für ne reine Darstellung geht's auch mit folgendem Code.
Dass das Ergebnis vorab erst in einer dynamischen Liste gespeichert
wird muss trotz etwas höherem Speicherverbrauch nicht unbedingt ein
Nachteil sein. Listen kann z.B. man sortieren (sortlist()) oder
sonstwie nett behandeln.
Demo's wie man in Listicons Einträge direkt editieren kann gibt's übrigens im Codearchiv auf purearea.net (El Choni hatte 2003 mal was gemacht was mit ganz wenig Anpassung auch auf PB4 läuft)
Diese Änderung könnte dann auch gleich eine Änderung der Daten in der
Datenbank verursachen.
Es fehlt dann nur noch ein Zufügen von Daten im ListiconGadget (und DB)
in der letzten Zeile.
aber für ne reine Darstellung geht's auch mit folgendem Code.
Dass das Ergebnis vorab erst in einer dynamischen Liste gespeichert
wird muss trotz etwas höherem Speicherverbrauch nicht unbedingt ein
Nachteil sein. Listen kann z.B. man sortieren (sortlist()) oder
sonstwie nett behandeln.
Code: Alles auswählen
If InitDatabase()=0
MessageRequester("","ODBC zu alt. Ein neueres ODBC gibt's bei Obi",0)
End
EndIf
Enumeration
#Window_0
#ListIcon_0
#Button_OK
#Button_Exit
#Datenbank
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
;-
ListIconGadget(#ListIcon_0, 0, 120, WindowWidth(#window_0), WindowHeight(#window_0)-120, "", 100)
ButtonGadget(#Button_OK, 10, 10, 140, 30, "OK - neuladen")
ButtonGadget(#Button_Exit, 160, 10, 170, 30, "EXIT")
EndIf
EndIf
EndProcedure
Open_Window_0()
NewList result.s()
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If event=#PB_Event_SizeWindow
ResizeGadget(#Listicon_0,0, 120, WindowWidth(#window_0), WindowHeight(#window_0)-120)
EndIf
If Event = #PB_Event_Gadget
If GadgetID = #ListIcon_0
ElseIf GadgetID = #Button_OK
query.s="Select * from tabelle" ; hier die Abfrage rein
DBopen=OpenDatabase(#Datenbank,"Datenbank","User","Passwort")
row=0
If DatabaseQuery(#Datenbank,query)
ClearList (result())
lout.s=""
NbColumns = DatabaseColumns(#Datenbank)
lout+DatabaseColumnName(#datenbank,0)+Chr(10)
For c=1 To nbcolumns-1
lout+DatabaseColumnName(#datenbank,c)+Chr(10)
Next c
lout=Left(lout,Len(lout)-1)
; Liste füllen
AddElement(result())
result()=lout
While NextDatabaseRow(#Datenbank) ; alle Einträge durchlaufen
lout.s=""
For c=0 To nbcolumns
lout.s+GetDatabaseString(#Datenbank, c)+Chr(10)
Next c
While Right(lout,1)=Chr(10)
lout=Left(lout, Len(lout)-1 )
Wend
AddElement(result())
result()=lout
lout=""
row+1
Wend
If dbopen
CloseDatabase(#Datenbank)
dbopen=0
EndIf
;ListIcon aus Liste bestücken
FirstElement(result())
felder=CountString(result(),Chr(10))
ListIconGadget(#Listicon_0,0, 120, WindowWidth(#window_0), WindowHeight(#window_0)-120,StringField(result(),1,Chr(10)),20,#PB_ListIcon_GridLines)
For c=2 To felder+1
AddGadgetColumn(#Listicon_0, c, StringField(result(),c,Chr(10)), 20)
Next c
While NextElement(result())
AddGadgetItem(#Listicon_0,-1,result())
Wend
; Breite automatisch anpassen
For c=0 To felder
SendMessage_(GadgetID(#Listicon_0),#LVM_SETCOLUMNWIDTH,c,#LVSCW_AUTOSIZE_USEHEADER)
Next
Else
Debug query
Debug "Mag nicht abfragen"
EndIf
ElseIf GadgetID = #Button_Exit
If dbopen
CloseDatabase(#Datenbank)
dbopen=0
EndIf
End
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
Diese Änderung könnte dann auch gleich eine Änderung der Daten in der
Datenbank verursachen.
Es fehlt dann nur noch ein Zufügen von Daten im ListiconGadget (und DB)
in der letzten Zeile.
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Hier gibt es eines (kostenpflichtig, $29,95):
http://syberden.net/
Auf der Liberty Basic Seite wird Gutes darüber geschrieben.
http://syberden.net/
Auf der Liberty Basic Seite wird Gutes darüber geschrieben.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
In den PBOSL Examples ist ein Beispiel für RaGrid, unter den Beispielen für
CreateGadget. Bietet zwar keine eingebaute Datenbank-Funktionalität,
irgendwas sollte man schon selber proggen
, hilft aber Geld sparen,
das Grid selber kann eigentlich mehr als das kostenpflichtige
CreateGadget. Bietet zwar keine eingebaute Datenbank-Funktionalität,
irgendwas sollte man schon selber proggen

das Grid selber kann eigentlich mehr als das kostenpflichtige
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Selber Schuld, wer die Examples nicht lädt und ausprobiertbobobo hat geschrieben:und sowas wird einem jetzt erst gesagt![]()

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 35
- Registriert: 24.04.2005 03:49
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Von dem kostenpflichtigem Grid gibts noch ne kostenlose Lite-Version:
http://lbasic.atomysk.com/wiki/index.ph ... AGRID_LITE
http://www.syberden.net/downloads/sd_datagrid_lite.zip
http://lbasic.atomysk.com/wiki/index.ph ... AGRID_LITE
http://www.syberden.net/downloads/sd_datagrid_lite.zip
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
