AGB  ·  Datenschutz  ·  Impressum  







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

Abschreibungsprocedur in Delphi

Ein Thema von DelphiE46 · begonnen am 2. Jul 2008 · letzter Beitrag vom 2. Jul 2008
Antwort Antwort
DelphiE46

Registriert seit: 2. Jul 2008
21 Beiträge
 
#1

Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 15:45
Hallo,
ich bin auf dem Gebiet mit Pascal zu programmieren eher neu und kenne mich etwas mehr in Java aus.
Ich wollte eine Procedure für die Abschreibung von z.B. Maschinen in einem Unternehmen schreiben. Wobei es um eine lineare Abschreibung geht.

Hierfür habe ich mir vorgestellt 2 Eingabefelder zu erstellen. Was ich auch schon gemacht habe
Zudem eine Tabelle wo halt die Jahre, Abschreibungsbeträge und Restwert drin stehen. Habe nur eine Tabelle die sich nicht füllt.

Außerdem bekomme ich Probleme mit den Schleifen, weil die Tabelle muss ja immer solang sein, also rows, wie die Anzahl der Jahre?

Habe es bis jetzt so realisiert:

Delphi-Quellcode:

procedure TLinearAbschr(Sender: TObject);
var jahre : integer;
    afabetrag, wert, restwert: double;
stgtabelle.cells[0,0] := 'Nutzjahr';
stgtabelle.cells[1,0] := 'AFA-Betrag';
stgtabelle.cells[2,0] := 'Restbuchwert';

begin
wert := strtofloat (edit1.text);
jahre := strtoint (edit2.text);
afabetrag := (kosten / jahre);
restwert := (wert - afabetrag);
tabel.cells[1,1] := floattostr (afabetrag);
tabel.cells[2,1] := floattostr(restwert);
end;
end.
Bekomme es nur leider nicht weiter hin. Ich möchte das die Tabelle sich dynamisch verlänger, und das die Daten alle eingetragen werden.
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 15:56
das dynamische erweitern der tabelle funktioniert mit

Delphi-Quellcode:
tabel.RowCount := 1234;
tabel.ColCount := 567;
ich denke mal wenn du java kannst solltest du auch ohne probleme in delphi eine schleife hinbekommen. ich denke mal du weißt schon wie es ablaufen soll (das ist ja in jeder sprache ziemlich gleich).


die 3 grundlegenden schleifen heissen in delphi:

Kopfgesteuert:
Delphi-Quellcode:
while ( i > 0 ) do
begin
  // irgendwas
end;
Fußgesteuert:
Delphi-Quellcode:
repeat
  // tu was..
until ( i <= 0 );
und die
Zählschleife:

Delphi-Quellcode:
for i := 1 to n do
begin
  // do sth
end;
ich hoffe damit geholfen zu haben
  Mit Zitat antworten Zitat
DelphiE46

Registriert seit: 2. Jul 2008
21 Beiträge
 
#3

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 16:02
Alles klar.
Also muss ich die Tabelle bei column immer auf 3 setzen und bei row auf anzahl jahre + 1 weil der erste wert für den namen ist?
Das ich Java bisschen kenne hat ja nix damit zu tun, das ich es auch behersche

Weiß halt nur net ganz wo ich die Schleife und das mit der Tabelle in meinem Quellcode einbauen soll.
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 16:22
Delphi-Quellcode:
wert := strtofloat (edit1.text);
jahre := strtoint (edit2.text);
afabetrag := (kosten / jahre);
i := 1; // wird für die reihe verwendet..

while (restwert > afabetrag) do
begin
  restwert:= restwert - afabetrag;
  tabel.cells[ i,1 ] := floattostr( restwert );
  inc(i);
end;
tabel.cells[i,1] := floattostr(restwert);
schnell zusammengetippt. vielleicht hilft das auch noch bissl weiter. denke nicht dass es fehlerfrei ist. hab grad kein delphi zur hand. anschauen und verstehen und dann so ändern dass es funzt
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 16:24
Delphi-Quellcode:
procedure LinearAbschr(Sender: TObject);
var
  jahre, i : integer;
  afabetrag, wert, restwert: double;
begin
  stgtabelle.cells[0,0] := 'Nutzjahr';
  stgtabelle.cells[1,0] := 'AFA-Betrag';
  stgtabelle.cells[2,0] := 'Restbuchwert';

  wert := StrToFloat(Edit1.Text);
  jahre := StrToInt (Edit2.Text);

  afabetrag := (kosten / jahre); // Abschreibungsbetrag
  stgtabelle.RowCount := jahre + 1; // Länge Tabelle

  for i := 1 to jahre do // für jedes Jahr
    begin
      restwert := (wert - i * afabetrag); // Restwert berechnen

      stgtabelle.Cells[0, i] := IntToStr (i);
      stgtabelle.cells[1, i] := floattostr (afabetrag);
      stgtabelle.cells[2, i] := floattostr (restwert);
  end;
end;
So würde ich das machen.

*** Zu langsam. xD Naja, andere Schleife. Such dir was raus! ***
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Gravitar

Registriert seit: 8. Okt 2006
94 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 16:35
Hi,

müsste die Abschreibung nicht monatsgenau erfolgen?

Guckst Du hierSteuerlexikon

Gruß, Andreas
  Mit Zitat antworten Zitat
DelphiE46

Registriert seit: 2. Jul 2008
21 Beiträge
 
#7

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 16:56
Funktioniert bei mir irgendwie noch net, aber verstehe auch was net.
Nun wird doch immer nur der Restwert gesetzt? Den ermittelten Afa-Betrag kann ich mit einer Schleife, wo anzahl jahre > 0 ist durchlaufen lassen und eintragen?

Und zum anderen: jährlich reicht mir aber
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 17:27
Herzlich willkommen in der Delphi-PRAXiS, DelphiE46.

Du musst in der Schleife den Wert korrigieren, wenn er den Restwert reflektieren soll:

Delphi-Quellcode:
const
  SP_JAHR = 0;
  SP_AFA = 1;
  SP_REST = 2;

procedure TDemoForm.ButtonClick(Sender: TObject);
var
  iJahr, nJahre: Integer;
  cAfa, cWert: Currency;
  d: Double;
begin
  if TryStrToFloat(WertEdit.Text, d)
  and TryStrToInt(JahreEdit.Text, nJahre) then
    with StringGrid do
    begin
      cWert := d;
      RowCount := nJahre + FixedRows;
      cAfa := Trunc(cWert / nJahre);
      for iJahr := 1 to nJahre do
      begin
        if iJahr = nJahre then
          cAfa := cWert;
        cWert := cWert - cAfa;
        Cells[SP_JAHR, Pred(FixedRows + iJahr)] := IntToStr(iJahr);
        Cells[SP_AFA, Pred(FixedRows + iJahr)] := Format('%m', [cAfa]);
        Cells[SP_REST, Pred(FixedRows + iJahr)] := Format('%m', [cWert]);
      end;
    end;
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
DelphiE46

Registriert seit: 2. Jul 2008
21 Beiträge
 
#9

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 17:30
Cool sieht ja aus wie das fertige Programm. Werde es gleich mal testen, danke
Muss ich nun noch was beachten oder geht das so??
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Abschreibungsprocedur in Delphi

  Alt 2. Jul 2008, 17:37
Das sieht nur fertig aus.

Was du sonst noch beachten musst, das merkst du beim Spielen mit deinem Programm.
  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 16:23 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