Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Strings aus dbgrid auslesen (https://www.delphipraxis.net/112349-strings-aus-dbgrid-auslesen.html)

The_Doomed 19. Apr 2008 10:31

Datenbank: xml auslesen • Zugriff über: das ist mein problem

Strings aus dbgrid auslesen
 
hi
hab da n kleines problem und zwar hab ich bei meinem prog im
hintergrund eine dbgrid in die werte eingetragen werden

diese will ich jetzt auslesen und in einer listbox ausgeben lassen
mein problem ist dass ich nicht weiß wie ich auf die felder bzw
die strings in den feldern zugreife

hatte an ein array gedacht aber das klappt ni wirklich

und wenn ich die felder anspreche kommt immer das string und TField
nicht kompatibel sind was ja auch nur logisch ist ^^

danke schon mal im voraus
:coder2:

The_Doomed

mkinzler 19. Apr 2008 10:44

Re: Strings aus dbgrid auslesen
 
Da ein DBGrid nur eine Visualisierung des dahinterliegende DataSet ist, würde ich die Informationen dort auslesen.

Delphi-Quellcode:
DBGrid.DataSource.DataSet

The_Doomed 19. Apr 2008 11:04

Re: Strings aus dbgrid auslesen
 
dann bleibt aber trotzdem das problem wie ich dann auf die strings zugreife welche dort gespeichert sind

mkinzler 19. Apr 2008 11:07

Re: Strings aus dbgrid auslesen
 
1. Sind es Werte (konnen neben Strings auch Integer, Floats usw. sein)
2. Mit
Delphi-Quellcode:
DBGrid.DataSource.DataSet.FieldByName('<Feldname>').Value
kann auf den Wert des Feldes mit dem Name zugegriffen werden

The_Doomed 19. Apr 2008 11:20

Re: Strings aus dbgrid auslesen
 
danke klappt wunderbar
ps klar sind es werte, in meinem programm halt aber eben strings
und es hätte ja sein können dass es beim auslesen unterschiede gibt
deswegen hab ich strings geschrieben

The_Doomed 19. Apr 2008 21:32

Re: Strings aus dbgrid auslesen
 
noch mal ne frage wie kann ich strings bzw. werte aus editfeldern in diese DBGrid übertragen

mkinzler 19. Apr 2008 21:40

Re: Strings aus dbgrid auslesen
 
Auch in dem man sie in das DataSet schreibt.

The_Doomed 19. Apr 2008 21:43

Re: Strings aus dbgrid auslesen
 
wies sieht der befehl dazu aus
DBGrid.DataSource.Dataset.???

DeddyH 19. Apr 2008 21:45

Re: Strings aus dbgrid auslesen
 
Append zum Anlegen, Edit zum Ändern. Zum Schluss mit Post schreiben.

mkinzler 19. Apr 2008 22:06

Re: Strings aus dbgrid auslesen
 
Delphi-Quellcode:
DBGrid.DataSource.Dataset.Append;
DBGrid.DataSource.Dataset.FieldByName('<1. Feld'>).Value := <1. Wert>;
...
DBGrid.DataSource.Dataset.Post;

The_Doomed 19. Apr 2008 22:18

Re: Strings aus dbgrid auslesen
 
danke

The_Doomed 21. Apr 2008 17:55

Re: Strings aus dbgrid auslesen
 
hab noch mal ne frage ^^

und zwar will ich dass er den aus der DBGrid gelesenen Wert vorher noch mit dem list eintrag vergleicht
und wenn er doppelt ist ihn nicht hinzufügt sondern erst fragt
weiteres problem ich möchte dass die listeinträge ein TObject ranbekommen der mit einem autoinc eintrag aus dem
DBGrid identisch is um einen rückbezug zu haben aber autoinc und integer verstehen sich nicht

Code:
procedure TForm1.Button3Click(Sender: TObject);
var n,i:integer;
f:array [0..100] of string;
begin

for n := 1 to Listbox1.Count +1 do
  begin
    if DBGrid1.DataSource.DataSet.FieldbyName('Name').Value=f[i] then //Vergleich von Name aus liste und DBGrid funzt nicht
edit2.text:='1';
  end;
  if edit2.Text='1' then
  begin
   form2.showmodal;

      end
      else Listbox1.Items.Addobject(DBGrid1.DataSource.DataSet.FieldbyName('Name').Value, Tobject(DBGrid1.DataSource.DataSet.FieldbyName('ID').Value)); // anfügen eines TObjects welches den wert von ID aus dem DBGrid liest funzt nicht
  end;

mkinzler 21. Apr 2008 18:01

Re: Strings aus dbgrid auslesen
 
Dann wäre DataSet.Lookup() aber besser.

The_Doomed 21. Apr 2008 18:19

Re: Strings aus dbgrid auslesen
 
das beantwortet weder meine frage vollständig noch hilft es mir viel ^^

mkinzler 21. Apr 2008 18:23

Re: Strings aus dbgrid auslesen
 
StrToInt() bzw. TryStrToInt()
-IndexOf ersetzt Schleife über Eintraäge

The_Doomed 21. Apr 2008 18:25

Re: Strings aus dbgrid auslesen
 
hm na ja bei der schleife ist das prob dass der die irgendwie ni vergleicht

mkinzler 21. Apr 2008 18:35

Re: Strings aus dbgrid auslesen
 
Ich würde statt einem Array ein Stringliste verwenden und dann .IndexOf verwenden.

The_Doomed 21. Apr 2008 18:45

Re: Strings aus dbgrid auslesen
 
aber mit ner listbox geht ja indexof auch habs jetzt kapiert worauf du hinauswolltest muss jetzt noch testen obas das mit dem strtoint bei der ID klappt dann wärs perfekt

mkinzler 21. Apr 2008 18:47

Re: Strings aus dbgrid auslesen
 
Wo kommen die werte her?

The_Doomed 21. Apr 2008 18:59

Re: Strings aus dbgrid auslesen
 
na das sind autoinc werte die schreibt die dbGrid selbst aber es scheit zu klappen
(sind einfach nur zahlen, aber konnte sie halt ni als integer laden wusste aber auch ni dass es strings sind)

das vergleichen klappt übrigens danke

gibts ne procedure die dann beginnt wenn ich ein list item selecte also auswähle?

mkinzler 21. Apr 2008 19:01

Re: Strings aus dbgrid auslesen
 
Dann würde ich eine Lookup-Kompo nehmen.

The_Doomed 21. Apr 2008 19:05

Re: Strings aus dbgrid auslesen
 
wie funktioniert die ?

mkinzler 21. Apr 2008 19:08

Re: Strings aus dbgrid auslesen
 
.ListSource auf DataSource setzten und bei .ListField anzuzeigendes Feld, bei .KeyField zu übernehmendes Feld auswählen.

The_Doomed 21. Apr 2008 19:17

Re: Strings aus dbgrid auslesen
 
und was soll mir das bringen ?? ich seh grad nich durch

mkinzler 21. Apr 2008 19:26

Re: Strings aus dbgrid auslesen
 
Ich versteh auch nicht ganz was du willst.
Erst habe ich verstanden, dass du ermitteln willst, ob ein Wert in der Tabelle schon existiert (Lookup ist dann erfolgreich)
Dann sah es für mich aus, als ob es um sich um verhandene Werte einer weiteren Tabelle jandelt, dann wäre eine Lookup-Komponente die Lösung; hierbei bekommst du dessen Werte zur Auswahl.

The_Doomed 21. Apr 2008 19:43

Re: Strings aus dbgrid auslesen
 
nee also ich hab eine DBGrid da werden werte reingespeichert
so diese Werte werden dann in eine listbox übertragen - dabei soll ermittelt werden ob der wert der übertragen wird schon vorhanden ist - das funzt jetzt prima
außerdem soll dem listboxeintrag eine art platznummer zugeteilt werden welche mit der in der DBGrid übereinstimmt
so das klappt jetzt alles

mein prob jetzt besteht darin dass ich jetzt diesen rückbezug herstellen muss

das prog soll jetzt also wenn ich auf einen listbox eintag klicken eine procedure beginnen -

1. prob kp wie ich das hinbekomme dass er die procedure ausführt wenn ich ein item selecte (in der listbox)

2.Prob er soll anhand der vorher zugewiesenen platznummer die restlichen werte aus der DBGrid lesen und in edits oder labels wieder ausgeben

frage ist jetzt also was ich am besten als platznummer nehme (momentan hab ich TObject(StrToInt(DBGrid...FildByname('ID').value))
das scheint auch zu funzten man muss jetzt im prinzip diese Tobject auslesen und in der DBGRid den wert der diese zugewiesene ID hat suchen

mkinzler 21. Apr 2008 19:52

Re: Strings aus dbgrid auslesen
 
Sollen nur bestimmte Werte oder alle übertragen werden?
Bei allen wäre doch eine DBLookupListBox ideal.

The_Doomed 21. Apr 2008 20:05

Re: Strings aus dbgrid auslesen
 
na ja es soll wenn ich ein listbox.item selecte nur von diesem einen der wert (Tobject) ermittelt werden z.B 5
und dann in der dbGrid gesucht werden (würde bedeuten dass der eintrag an der 5 stelle steht)
und die zeile (row) worin er sich befindet markiert werden
theoretisch könnte auch gleich die zahl aus dem TObject als zeilennummer in der DBGrid verwendet werden
nur weiß ich nicht wie ich das mache dass er in der Grid die richtige zeile markiert und wie ich es hinbekomme dass er das jedes mal macht wenn ich in der listbox die auswahl ändere (müsste sowas wie OnChangeSelction geben)

mkinzler 21. Apr 2008 20:11

Re: Strings aus dbgrid auslesen
 
Wir drehen uns im Kreis:
-Wo kommen die Werte der ListBox her?
-Sind diese Werte mit den des Grids identisch?

The_Doomed 21. Apr 2008 20:18

Re: Strings aus dbgrid auslesen
 
also die tobjcts kommen von der DBGrid spalte ID sind also mit denen der listbox identisch
allerdings kommen die elemente in der listbox durch sortieren durcheinander behalten aber ihre werte

mkinzler 21. Apr 2008 20:22

Re: Strings aus dbgrid auslesen
 
Dann schau die die Lookup-ListBox nochmal genau an :zwinker:

The_Doomed 21. Apr 2008 20:31

Re: Strings aus dbgrid auslesen
 
ok also das was dazu in der hilfe steht klingt schon mal
vielversprechend aber das wir trotzdem wieder ein akt da ich
das erste mal sowas programmiere ^^
also danke erstmal ich meld mich wenn ich noch mal fragen haben sollte ^^
:bounce1: :bouncing4: :freak:

The_Doomed 22. Apr 2008 14:30

Re: Strings aus dbgrid auslesen
 
so also hab das jetzt mal mit ner lookoutlist probiert das klappt auch
nur hab ich da jetzt festgestellt das ich jetzt werder das prüfen auf
doppelte einträge noch das sorted=true verwenden kann
und dann muss es ja trotzdem noch irgendwie gehen dass ich die
anderen werte sofort angezeigt bekommen wenn ich ein item selecte

The_Doomed 23. Apr 2008 16:55

Re: Strings aus dbgrid auslesen
 
??? wäre wichtig

mkinzler 23. Apr 2008 20:03

Re: Strings aus dbgrid auslesen
 
Mir ist leider immer noch nicht klar, was du eigentlich vor hast.

Der.Kaktus 23. Apr 2008 20:13

Re: Strings aus dbgrid auslesen
 
Zitat:

Zitat von mkinzler
Mir ist leider immer noch nicht klar, was du eigentlich vor hast.

Ich denke mal, er will z.B. einen Namen in der einen DB selektieren und dadurch z.B. die Auftraege dieses Namens aus einer anderen DB angezeigt bekommen.

The_Doomed 23. Apr 2008 20:18

Re: Strings aus dbgrid auslesen
 
fast ich will dass wenn ich in einer list (lookuplist) einen eintrag auswähle er in labels die anderen sachen aus der dbgrid die zu diesem wert gehören anzeigt z.B. ich klicke einen namen an und das prog liefert den nachnamen und die adresse
diese wiederum befindet sich in der dbgrid in der gleichen zeile wie der name

mkinzler 23. Apr 2008 20:18

Re: Strings aus dbgrid auslesen
 
Hab ich zwischendurch auch mal gedacht
Zitat:

fast ich will dass wenn ich in einer list (lookuplist) einen eintrag auswähle er in labels die anderen sachen aus der dbgrid die zu diesem wert gehören anzeigt z.B. ich klicke einen namen an und das prog liefert den nachnamen und die adresse
diese wiederum befindet sich in der dbgrid in der gleichen zeile wie der name
Dann reagiere bei Änderung der Auswahl mit einem Locate auf das DataSet.

The_Doomed 23. Apr 2008 20:28

Re: Strings aus dbgrid auslesen
 
ja aber genau das is ja mein prob was muss ich benutzten damit er bei einer änderung reagiert
außerdem hab ich ja noch das prob dass er meine lookupliste nicht sortiert und dass ich den algo fürs
überprüfen ob ein eintrag schon vorhanden is ni mehr verwenden kann

mkinzler 23. Apr 2008 20:36

Re: Strings aus dbgrid auslesen
 
-onClick
-Die Einträge im Lookup sind sortiert, wenn die Datenmenge, die dahinterliegt, sortiert ist.
-Locate auf Datenmenge


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz