AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Joblist - Aufgabenplaner

Joblist - Aufgabenplaner

Ein Thema von AlexII · begonnen am 18. Sep 2014 · letzter Beitrag vom 19. Nov 2014
Antwort Antwort
Seite 2 von 3     12 3   
AlexII
Registriert seit: 28. Apr 2008
Hallo,

ich habe eine kleine Anwendung zum Aufgabenplanung geschrieben. Man kann eine Aufgabe mit bestimmten Eigenschaften (Beginn, Priorität, Status, Beschreibung, Ort, usw.) anlegen und verwalten, aber am besten siehe Screenshot.

Die Anwendung hat bis jetzt nur die nötigsten Funktionen, da ich erst das "Fundament" stabil schreiben möchte. Daher werde ich mich als Hobbyprogrammierer sehr freuen wenn sie mir dabei helfen, vor allem mein Umgang mit der DB bewerten und gute Tipps gibt. Der Quellcode liegt bei. ))

Danke!

19.09.2014 Version 0.4 alpha
- Bug Post #2 beseitigt!

22.09.2014 Version 0.5 beta
- Vorschlag aus Post #3 umgesetzt
- Fehlerausgabe in MessageDlg() erweitert



P.S. falls jemand Lust und Laune hat, kann mir bei der Entwicklung helfen. ))
Miniaturansicht angehängter Grafiken
screenshot.png   db-modell.png  
Angehängte Dateien
Dateityp: zip Joblist-05.zip (2,35 MB, 61x aufgerufen)
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!

Geändert von AlexII (22. Sep 2014 um 15:11 Uhr)
 
Benutzerbild von freak4fun
freak4fun

 
Delphi 10.2 Tokyo Starter
 
#11
  Alt 19. Sep 2014, 19:28
Habe den Fehler aus Post #2 beseitigt... man war das eine Quälerei... Aber es läuft jetzt. Jetzt sind die nächsten Tipps dran.
Super, weiter so!
  Mit Zitat antworten Zitat
AlexII

 
FreePascal / Lazarus
 
#12
  Alt 22. Sep 2014, 11:51
Guten Morgen.

Find´s gut.
Funktioniert.

Ich habe mir natürlich auch mal den Quelltext angeschaut.

Es gibt einige Dinge, die ich anders machen würde, da diese redundant sind.

Du hast zwei Funktionen, die bis auf die Reihenfolge der Selektierung die gleichen Felder abfragen. Einzige Unterschiede sind das Flag zum Einen und die Listview zum Anderen.

Besser wäre es, du würdest einfach einen Boolean übergeben und die ListView.

Delphi-Quellcode:
procedure LoadJobslistByStart(aClosedOnes: Boolean; aListView: TListView);
begin
  //Irgendwo unterscheidest du dann.
  ...
  + 'LEFT JOIN tbplace ON tbmain.fk_place_id=tbplace.id_tbplace WHERE flag = :flag';

  if aClosedOnes then
  begin
   SQLiteQuery1.ParamByName('flag').value:= 0;
  end
  else
  begin
   SQLiteQuery1.ParamByName('flag').value:= 1;
  end;

  //Weitere Verarbeitung
end;
Gruß,
Stefan
Äh.... sag ma und wie übergebe ich die Parameter? Etwa so?

Delphi-Quellcode:
// procedure aufrufen
LoadJobslistByStart(True, ListView1);
  Mit Zitat antworten Zitat
-=ZGD=-

 
Delphi 10.1 Berlin Professional
 
#13
  Alt 22. Sep 2014, 11:57
Äh.... sag ma und wie übergebe ich die Parameter? Etwa so?

Delphi-Quellcode:
// procedure aufrufen
LoadJobslistByStart(True, ListView1);
Korrekt.
Stefan Michalk
  Mit Zitat antworten Zitat
AlexII

 
FreePascal / Lazarus
 
#14
  Alt 22. Sep 2014, 12:46
ok ))

Geändert von AlexII (22. Sep 2014 um 12:51 Uhr)
  Mit Zitat antworten Zitat
-=ZGD=-

 
Delphi 10.1 Berlin Professional
 
#15
  Alt 22. Sep 2014, 12:52
Du verwendest in der Prozedur auch immer
Code:
ListView1
.
Du musst
Code:
aListView
verwenden, da so der Übergabeparameter/Variable heißt.
Stefan Michalk
  Mit Zitat antworten Zitat
AlexII

 
FreePascal / Lazarus
 
#16
  Alt 22. Sep 2014, 12:55
Du verwendest in der Prozedur auch immer
Code:
ListView1
.
Du musst
Code:
aListView
verwenden, da so der Übergabeparameter/Variable heißt.
Ja hab's gemerkt.

Mache jetzt noch die selber Geschichte für's Suchen und dann ist wohl alles ok bei mir, oder gibt's noch Vorschläge bzw. Kritik?
  Mit Zitat antworten Zitat
AlexII

 
FreePascal / Lazarus
 
#17
  Alt 30. Sep 2014, 14:11
Ich nutze hier mehrere Querys (SQLQuery1 und SQLQueryCategory), wäre es auch nur mit einem gegangen?

Delphi-Quellcode:
    // -------------------------- Category ---------------------------------------
    // Kategorie leer
    if CategoryComboBox.Text = 'then
    begin
      Form1.SQLQuery1.ParamByName('fk_category_id').Clear;
    end else if (CategoryComboBox.Items.IndexOf(CategoryComboBox.Text) = -1) and (CategoryComboBox.Text <> '') then
    begin
      // Kategorie nicht vorhanden, also neue Kategorie in die DB schreiben
      Form1.SQLQueryCategory.Close;
      Form1.SQLQueryCategory.SQL.Text := 'INSERT INTO tbcategory VALUES(NULL, :category)';
      Form1.SQLQueryCategory.ParamByName('category').AsString := CategoryComboBox.Text;
      Form1.SQLQueryCategory.ExecSQL;
      Form1.SQLTransaction1.Commit;

      // Die letzte ID auslesen
      Form1.SQLQueryCategory.Close;
      Form1.SQLQueryCategory.SQL.Text := 'SELECT last_insert_rowid() as id_tbcategory FROM tbcategory';
      Form1.SQLQueryCategory.Open;
      CategoryLastID := Form1.SQLQueryCategory.FieldByName('id_tbcategory').AsInteger;
      Form1.SQLQuery1.ParamByName('fk_category_id').AsInteger := CategoryLastID;
    end else if CategoryComboBox.Items.IndexOf(CategoryComboBox.Text) >= 0 then
    begin
      // String in der CB vorhanden, ID zuweisen
      Form1.SQLQuery1.ParamByName('fk_category_id').AsInteger := Integer(CategoryComboBox.Items.Objects[CategoryComboBox.Items.IndexOf(CategoryComboBox.Text)]);
    end;
    // -------------------------- Ende Category ----------------------------------

    Form1.SQLQuery1.ExecSQL;
    Form1.SQLTransaction1.Commit;
  Mit Zitat antworten Zitat
AlexII

 
FreePascal / Lazarus
 
#18
  Alt 18. Nov 2014, 16:16
Ich lasse jetzt die Anwendung mit Windows mithilfe der Registry starten, aber das Prog will bei dem Autostart die DB nicht laden, es kommt der Fehler:

Code:
EDatabaseError
SQLite3Connection1: unable to open database file
Hat jemand eine Idee wieso das passiert? Ich verstehe nicht was der Unterschied ist wenn ich die Anwendung manuell ausführe, oder das System macht das... hm... komisch.

Geändert von AlexII (18. Nov 2014 um 16:22 Uhr)
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#19
  Alt 18. Nov 2014, 18:34
Möglicherweise ist die Datenbank noch nicht verfügbar oder die Anwendung wird in einem anderen Benutzerkontext gestartet
Markus Kinzler
  Mit Zitat antworten Zitat
hathor
 
#20
  Alt 18. Nov 2014, 19:24
Ich lasse jetzt die Anwendung mit Windows mithilfe der Registry starten, ...
Ich finde das nicht sehr lustig, wenn jedes poplige Programm gleich mit dem WINDOWS-Start die Festplatte blockiert mit solchen Aktivitäten!

Damit verzögert sich der Boot-Vorgang des Betriebssystems.

Um es noch einmal ganz deutlich zu sagen:

Es ist SCHWACHSINNIG, das eigene Programm beim Boot-Vorgang zu laden und zu erwarten, dass alle Funktionen von WINDOWS gleich zur Verfügung stehen!

Lade es verzögert mit einem Timer.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:52 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