Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Feld / Zelle aus DBGrid auslesen (https://www.delphipraxis.net/40992-feld-zelle-aus-dbgrid-auslesen.html)

AndreT 24. Feb 2005 09:25


Feld / Zelle aus DBGrid auslesen
 
Irgendwie hängt es bei mir im Augenblick mal wieder und hoffe, auf Eure Hilfe.

Ich habe ein DBGrid mit 2 aus einer Query erzeugen Spalten (10 Zeilen) und einer manuell angehängten Spalte (auch 10 Zeilen).

jetzt möchte ich ein Feld der 2 Spalte (aus Query) mit einem festen Wert verrechnen und das Ergebnis soll in der manuell angelegten 3. Spalte geschrieben werden.

Wie muss ich es machen?

DP-Maintenance 24. Feb 2005 09:35

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Hier wirt es sicher schneller eine Antwort geben ;-)

Albi 24. Feb 2005 09:50

Re: Feld / Zelle aus DBGrid auslesen
 
Hallo,

ich würde versuchen in der Query direkt dieses Ergebnis zu bekommen. Somit fügt das DBGrid die Spalte alleine an und du sparst dir eventuell ne Menge Schreiberei.

Ich habe das zwar nicht getestet aber ich denke das es auf diesem Wege gehen sollte.

joachimd 24. Feb 2005 09:54

Re: Feld / Zelle aus DBGrid auslesen
 
Zitat:

Zitat von AndreT
Ich habe ein DBGrid mit 2 aus einer Query erzeugen Spalten (10 Zeilen) und einer manuell angehängten Spalte (auch 10 Zeilen).
jetzt möchte ich ein Feld der 2 Spalte (aus Query) mit einem festen Wert verrechnen und das Ergebnis soll in der manuell angelegten 3. Spalte geschrieben werden.

Stichwort calculated fields in der OH, falls der Vorschlag mit Berechnung direkt in der Query nicht geht.

AndreT 24. Feb 2005 10:01

Re: Feld / Zelle aus DBGrid auslesen
 
Zitat:

Zitat von Albi
Hallo,

ich würde versuchen in der Query direkt dieses Ergebnis zu bekommen. Somit fügt das DBGrid die Spalte alleine an und du sparst dir eventuell ne Menge Schreiberei.

Ich habe das zwar nicht getestet aber ich denke das es auf diesem Wege gehen sollte.


Daran hab ich auch gedacht, wußte nur nicht, wie und wo ich ansetzen soll.
Der Wert der 3. Spalte (=das Ergebnis) soll eine Prozentzahl sein, die sich aus dem Wert der 2.Spalte und einem Ergebnis eines weitern Querys.

Wie bau ich ein solches Query auf?

joachimd 24. Feb 2005 10:05

Re: Feld / Zelle aus DBGrid auslesen
 
Zitat:

Zitat von AndreT
Wie bau ich ein solches Query auf?

Zeig mal, was Du bisher hast.

AndreT 24. Feb 2005 10:17

Re: Feld / Zelle aus DBGrid auslesen
 
Zitat:

Zitat von joachimd
Zitat:

Zitat von AndreT
Wie bau ich ein solches Query auf?

Zeig mal, was Du bisher hast.

Query, was die ersten beiden Spalten erzeugt

[code]

DataModule_CCR.ADOQuery_topten_code.Close;
DataModule_CCR.ADOQuery_topten_tcode.Active:=false ;

With DataModule_CCR.ADOQuery_topten_code.SQL do
begin
clear;
add('SELECT Top 10 code, Count(code)As Anzahl');
add(' FROM prod_report ');
add(' where (jahr_monat = '+QuotedStr(CB_jahr_monat.Text)+')');
add(ausdruckok); // =string, der eine Where-Klausel beinhaltet
add('Group by code order by Anzahl DESC');
end;
DataModule_CCR.ADOQuery_topten_clientcode.Active:= true;
DataModule_CCR.ADOQuery_topten_clientcode.open;

[\code]

die Query, die mir den Wert liefert, mit dem das Feld Anzahl aus der ersten Query verrechnet werden soll.

Code:
 DataModule_CCR.ADOQuery_anzahlDS.Close;
DataModule_CCR.ADOQuery_anzahlDS.Active:=false;

with DataModule_CCR.ADOQuery_anzahlDS.SQL do
  begin
  clear;
  add('SELECT COUNT (*) AS Anzahl FROM prod_report ');

  add(' Where (jahr_monat = '+QuotedStr(CB_jahr_monat.Text)+')');
  add(ausdruckok);
  end;
Label1.Caption:=DataModule_CCR.ADOQuery_anzahlDS.SQL.Text;
DataModule_CCR.ADOQuery_anzahlDS.Active:=true;
DataModule_CCR.ADOQuery_anzahlDS.open;
Edit: Sorry, irgenwie klappt das bei mir gerade auch nicht mit dem Code einfügen.

AndreT 24. Feb 2005 10:52

Re: Feld / Zelle aus DBGrid auslesen
 
Danke für Euch, hab es gerade hinbekommen.

Code:
SELECT TOP 10 code, COUNT(code) AS Anzahl, COUNT(code) * 100 /'+QuotedStr(DBEdit1.text)+ ' AS Prozent')
// DBEdit1 = Ergebnis aus dem anderen Query

joachimd 24. Feb 2005 10:55

Re: Feld / Zelle aus DBGrid auslesen
 
ich würde vorschlagen, Du drehst die beiden Queries um: erst die Gesamtanzahl berechnen:
Code:
('SELECT COUNT (*) AS Anzahl FROM prod_report Where (jahr_monat = '+QuotedStr(CB_jahr_monat.Text)+')');
Diese Anzahl speicherst Du Dir ja schon in ein Label.
Deine 2. Query sieht dann wie folgt aus:
Code:
('SELECT Top 10 code, Count(code) As Anzahl, Count(code)*100/'+label1.caption+' AS procentual FROM prod_report '+
 ' where (jahr_monat = '+QuotedStr(CB_jahr_monat.Text)+')'+
 ausdruckok+ // =string, der eine Where-Klausel beinhaltet
 'Group by code order by Anzahl DESC')
HTH

joachimd 24. Feb 2005 10:56

Re: Feld / Zelle aus DBGrid auslesen
 
Zitat:

Zitat von AndreT
Danke für Euch, hab es gerade hinbekommen.

...und das, solang ich getippt habe:(


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 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 by Thomas Breitkreuz