AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensatz aus Stringgrid in Editfelder ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatz aus Stringgrid in Editfelder ausgeben

Ein Thema von MCFEED · begonnen am 26. Jan 2009 · letzter Beitrag vom 29. Jan 2009
Antwort Antwort
Benutzerbild von MCFEED
MCFEED

Registriert seit: 16. Dez 2008
Ort: Thüringen/Artern
27 Beiträge
 
Delphi 5 Enterprise
 
#1

Datensatz aus Stringgrid in Editfelder ausgeben

  Alt 26. Jan 2009, 09:10
Datenbank: SQL Server • Version: 2005 • Zugriff über: ODBC
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

MFG MCFEED
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datensatz aus Stringgrid in Editfelder ausgeben

  Alt 26. Jan 2009, 09:15
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).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Stutz

Registriert seit: 3. Apr 2006
Ort: Bad Waldsee
11 Beiträge
 
#3

Re: Datensatz aus Stringgrid in Editfelder ausgeben

  Alt 26. Jan 2009, 09:20
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.
wer versucht das zu finden was er sucht, wird niemals erfolg haben,
um erfolg zu haben muss man das suchen was man findet.
  Mit Zitat antworten Zitat
Benutzerbild von MCFEED
MCFEED

Registriert seit: 16. Dez 2008
Ort: Thüringen/Artern
27 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Datensatz aus Stringgrid in Editfelder ausgeben

  Alt 26. Jan 2009, 09:31
Hehe, jo is ein Stringgrid, lesen kann ich noch keine Angst

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:
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;
[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von MCFEED
MCFEED

Registriert seit: 16. Dez 2008
Ort: Thüringen/Artern
27 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Datensatz aus Stringgrid in Editfelder ausgeben

  Alt 26. Jan 2009, 09:33
@ Stutz

Achso, kann das also über ne Select-Anweisung machen und durch Klick den Datensatz dann anzeigen lassen?Hmmm... denk...

MFG MCFEED
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Datensatz aus Stringgrid in Editfelder ausgeben

  Alt 26. Jan 2009, 09:37
Guten Morgen,

eine Zeile des StringGrids kannst Du mit rows auslesen:

Zitat von DelphiHilfe:
Lists the strings and their associated objects for each row.

property Rows[Index: Integer]: TStrings;

Description

Use Rows to access all the strings for a single row, along with their associated objects. The number of strings and associated objects is always equal to the value of the RowCount property, the number of rows in the grid. The Index parameter is the number of the row, where the value of the first row in the grid is zero.

To get all the strings and objects for a column, rather than for a row, use the Cols property.
Im OnClick Ereignis bekommst Du u.a. die Zeilennummer übermittelt.


Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von MCFEED
MCFEED

Registriert seit: 16. Dez 2008
Ort: Thüringen/Artern
27 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Datensatz aus Stringgrid in Editfelder ausgeben

  Alt 26. Jan 2009, 09:44
Ahhhh

Danke für die Erleuchtung Klaus!

MFG MCFEED
  Mit Zitat antworten Zitat
Benutzerbild von MCFEED
MCFEED

Registriert seit: 16. Dez 2008
Ort: Thüringen/Artern
27 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Datensatz aus Stringgrid in Editfelder ausgeben

  Alt 29. Jan 2009, 11:12
Grüße an alle, hab mein Problem gelöst und möchte für alle die das vielleicht irgendwann auchmal brauchen hier reinstellen:
-------------------------------------------------------------------------------------------------
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"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 Uhr.
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