AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

functions aufruf

Ein Thema von Walter Landwehr · begonnen am 1. Jun 2013 · letzter Beitrag vom 1. Jun 2013
Antwort Antwort
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#1

functions aufruf

  Alt 1. Jun 2013, 09:50
Hallo,

ich habe folgende function:


Delphi-Quellcode:
function TModul.GetKontoBalance(Anfang, Ende: String):Currency;
var Jahr,i : Integer;
    Kontonummer : String;
begin
  BuchungenQry.Close;
  BuchungenQry.SQL.Clear;
    Kontonummer := EmptyStr;
  for i := 0 to dmMain.Memo1.Lines.Count - 1 do
  begin
     Kontonummer := Kontonummer + '''' + dmMain.Memo1.Lines[i] + '''' + ',';
  end;
  Kontonummer := Copy(Kontonummer, 0, Length(Kontonummer) - 1);[CODE][/CODE]

  BuchungenQry.SQL.Add('SELECT SUM(B.Soll) as SollBetrag, SUM(B.Haben) as HabenBetrag ');
  BuchungenQry.SQL.Add('FROM Konto K INNER JOIN ');
  BuchungenQry.SQL.Add('Buchung B ON B.DVKontonummer = K.DVKontonummer INNER JOIN ');
  BuchungenQry.SQL.Add('Beleg BL ON BL.DVBelegnummer = B.DVBelegnummer ');
  BuchungenQry.SQL.Add('WHERE (BL.Buchungsperiode Between :Anfang and :Ende) ');
  BuchungenQry.SQL.Add(Format('and BL.Belegart in (%s, %s)',[QuotedStr('ER'),QuotedStr('EG')]));
  BuchungenQry.SQL.Add(Format('and K.Kontonummer in (%s) ',[Kontonummer]));
  BuchungenQry.SQL.Add(Format('and B.InfoGegenkonto in (%s, %s)',[QuotedStr('3425'),QuotedStr('3410')]));
  BuchungenQry.Parameters.ParamByName('Anfang').Value := Anfang;
  BuchungenQry.Parameters.ParamByName('Ende').Value := Ende;
  BuchungenQry.Open;
  Result := BuchungenQry.FieldByName('HabenBetrag').AsCurrency - BuchungenQry.FieldByName('SollBetrag').AsCurrency;
  BuchungenQry.Close;
end;
den Aufruf mache ich so:
Delphi-Quellcode:
 Anfang := '01-01-2012';
 Ende := '31-12-2012';
 SuVorjahr.Value := TModul.GetKontoBalance(Anfang, Ende);

es kommt die Meldung:
[DCC Fehler] Einkauf.pas(97): E2076 Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt

Was mache ich hier falsch?

Walter
Walter Landwehr
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.431 Beiträge
 
Delphi 12 Athens
 
#2

AW: functions aufruf

  Alt 1. Jun 2013, 10:10
Moin...
 SuVorjahr.Value := TModul.GetKontoBalance(Anfang, Ende); Du mußt mit einer Instanz von TModul arbeiten. Diese muß erzeugt sein.
Delphi-Quellcode:
MyModul:= TModul.Create;
.
.
SuVorjahr.Value := MyModul.GetKontoBalance(Anfang, Ende);
Wenn die Funktion eine class function wäre würde das funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: functions aufruf

  Alt 1. Jun 2013, 10:17
... oder eben als class function deklarieren, ist aber bestimmt nicht so gewollt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: functions aufruf

  Alt 1. Jun 2013, 11:02
Hm vestehe ich nicht ganz.

MyModul:= TModul.Create; Wo wird MyModul deklariert?
Walter Landwehr
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#5

AW: functions aufruf

  Alt 1. Jun 2013, 11:03
In der aufrufenden Methode:
Delphi-Quellcode:
var
  MyModul: TModul;
begin
  MyModul:= TModul.Create;
  try
    ...
    Anfang := '01-01-2012';
    Ende := '31-12-2012';
    SuVorjahr.Value := MyModul.GetKontoBalance(Anfang, Ende);
  finally
    MyModul.Free;
  end;
end;
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
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: functions aufruf

  Alt 1. Jun 2013, 11:14
MyModul:= TModul.Create;
Kommt Meldung :
[DCC Fehler] Einkauf.pas(94): E2035 Nicht genügend wirkliche Parameter
Walter Landwehr
  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 11:05 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