![]() |
Datenbank: SQL Server • Version: 2005 • Zugriff über: ODBC
Datensatz aus Stringgrid in Editfelder ausgeben
Schönen Gutem Morgen Delphianer, hätte da mal ne Frage:
Hab ein Stringgrid und ne Datenbank(logisch). Die Daten in meinen Eingabefeldern(Edit) unter meinem Stringgrid(auf einem Formular) gehen in die Datenbank, als Datensatz, werden verarbeitet und an mein Stringgrid übergeben, sind dann dort eingeschrieben. Meine Frage ist jetzt aber, dass ich einen Datensatz gerne wieder in den Editfeldern ausgeben möchte, sprich ich klicke auf eine zelle eines Datensatzes und der komplette Datensatz, so wie ich in eingegeben habe erscheint dann wieder in den Editfeldern. Hoffe ihr könnt daraus schlau werden um mir vielleicht einen Ratschlag zu geben, keinen Quellcode :thumb: MFG MCFEED |
Re: Datensatz aus Stringgrid in Editfelder ausgeben
Handelt es sich wirklich um ein StringGrid oder doch eher um ein DBGrid? Im Falle eines StringGrids schau Dir mal StringGrid.Cells[StringGrid.Col,StringGrid.Row] an. Bei einem DBGrid hingegen musst Du über das darunterliegende Dataset gehen (DBGrid.DataSource.Dataset).
|
Re: Datensatz aus Stringgrid in Editfelder ausgeben
Hi,
also ich hab mich damit noch nicht beschäftigt, aber du könntest es mit einem onclick ereignis des Stringgrids versuchen, bei dem der selektierte Datensatz in deine Edit's eingelesen wird. |
Re: Datensatz aus Stringgrid in Editfelder ausgeben
Hehe, jo is ein Stringgrid, lesen kann ich noch keine Angst :mrgreen:
Ja beim DBgrid hätt ich Dataset nehmen können da haste selbstversändlich recht. Hilft mir aber leider nich weiter. Versuchs schon die ganze Zeit über Stringgrid.Cells(in meinem SG_Ausgang), aber ohne Erfolg, wenn ich ihm eine Zelle zum anklicken gebe, gibt er mir alles in dieser Zelle aus, aber nicht die gesamte Zeile/den Datensatz in dieser zeile. Woran kann das liegen? Hier mal ein bissel Code von mir zu den Zellen p
Delphi-Quellcode:
[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]
rocedure TAusgang_SL_F.SG_AusgangClick(Sender: TObject);
begin SG_Ausgang.Cells[1,1] := E_MANR1.text; //(0 is unserere DS ID) SG_Ausgang.Cells[1,2] := E_MANR2.text; SG_Ausgang.Cells[1,3] := E_MANR3.text; SG_Ausgang.Cells[1,4] := E_MANR4.text; SG_Ausgang.Cells[5,1] := E_BEM.text; SG_Ausgang.Cells[6,1] := E_Grund.text; end; |
Re: Datensatz aus Stringgrid in Editfelder ausgeben
@ Stutz
Achso, kann das also über ne Select-Anweisung machen und durch Klick den Datensatz dann anzeigen lassen?Hmmm... denk... MFG MCFEED |
Re: Datensatz aus Stringgrid in Editfelder ausgeben
Guten Morgen,
eine Zeile des StringGrids kannst Du mit rows auslesen: Zitat:
Grüße Klaus |
Re: Datensatz aus Stringgrid in Editfelder ausgeben
Ahhhh :idea:
Danke für die Erleuchtung Klaus! MFG MCFEED |
Re: Datensatz aus Stringgrid in Editfelder ausgeben
Grüße an alle, hab mein Problem gelöst und möchte für alle die das vielleicht irgendwann auchmal brauchen hier reinstellen: :mrgreen:
------------------------------------------------------------------------------------------------- Thematik/Problem meines programmschnipsels: Zeile in Stringgrid auswählen und den selektierten Datensatz in Editfeld wieder ausgeben/anzeigen. ---------------------------------------------------------------- Quellcode: ---------- procedure TAusgang_SL_F.SG_AusgangSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); var NID : integer; begin if arow > 0 then begin if SG_Ausgang.Cells[0, arow] <> '' then begin NID := strtoint(SG_Ausgang.Cells[0, arow]); Q_Ausgang.closesql; Q_Ausgang.setsqltext('select T.*, '+ 'M.Name as Name1, M.Vorname as Vorname1 , ' + 'M2.Name as Name2, M2.Vorname as Vorname2,' + 'M3.Name as Name3, M3.Vorname as Vorname3,' + 'M4.Name as Name4, M4.Vorname as Vorname4,' + 'K.Name as Kunde, L.Name as Liefer,'+ 'I.Name as Interess, from XTermin T' + #13#10+ 'left outer join MitarBW M on (M.NR = T._Ma_Nr1) ' + 'left outer join MitarBW M2 on (M2.NR = T._Ma_Nr2) ' + 'left outer join MitarBW M3 on (M3.NR = T._Ma_Nr3) ' + 'left outer join MitarBW M4 on (M4.NR = T._Ma_Nr4) ' + 'left outer join Kunden K on (K.Nummer = T._Adressen_NR) ' + 'left outer join Liefer L on (L.Nummer = T._Adressen_NR)'+ 'left outer join Interess I on (I.Nummer = T._Adressen_NR)'+ 'where T.XTermin_ID = ' + inttostr(NID) + ' ') ; Q_Ausgang.opensql; E_Nr1.text := q_ausgang.getfield('_Ma_NR1'); E_MANR1.text := q_ausgang.getfield('Name1'); E_Nr2.text := q_ausgang.getfield('_Ma_NR2'); E_MANR2.text := q_ausgang.getfield('Name2'); E_MANR3.text := q_ausgang.getfield('_Ma_NR3'); E_Nr3.text := q_ausgang.getfield('Name3'); E_MANR4.text:= q_Ausgang.getfield('_Ma_NR4'); E_Nr4.text:= q_ausgang.getfield('Name4'); E_Bemerkung.text:= q_Ausgang.getfield('_BEMERKUNG'); //E_Grund.text:= Q_Ausgang.getfield('_GRUND'); E_TagVon.text:= q_ausgang.getfield('_TAG_VON'); E_TagBis.text:= q_ausgang.getfield('_TAG_BIS'); //E_TagVon.text:= q_Ausgang.getfield('_VON'); //E_TagBis.text:= q_Ausgang.getfield('_BIS'); E_KUNR.Text := ''; E_KUNAME.text := ''; E_INTNR.text := ''; E_LIENR.text := ''; if uppercase(q_ausgang.getfield('_Tab_KZ')) = 'KU' then begin E_KUNAME.text := Q_Ausgang.getfield('Kunde'); E_KUNR.text:= q_Ausgang.getfield('_Adressen_NR'); end; E_LIENR.text:= ''; E_LIENAME.text:= ''; E_INTNR.text:=''; E_KUNR.text:= ''; if uppercase(q_ausgang.getfield('_Tab_KZ')) = 'LI' then begin E_LIENAME.text := Q_Ausgang.getfield('Liefer'); E_LIENR.text:= q_ausgang.getfield('_Adressen_NR'); end; E_LIENR.text:= ''; E_INTNR.text:=''; E_KUNR.text:= ''; E_INTNAME.text:= ''; if uppercase(Q_Ausgang.getfield('_Tab_KZ')) = 'IN' then begin E_INTNAME.text:= Q_Ausgang.getfield('Interess'); E_INTNR.text:= Q_Ausgang.getfield('_Adressen_NR'); end end; end; -------------------------------------------------------------------------------------------- Edit: Is natürlich noch ein bissel mehr dabei, aber alle die sich dafür interessieren können ja die nicht benötigten Sachen "überlesen" :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz