tvplanit - Datenanbindung aktualisieren [gelöst]

Rund um die LCL und andere Komponenten

tvplanit - Datenanbindung aktualisieren [gelöst]

Beitragvon VB_Lazarus » 25. Mär 2018, 08:17 tvplanit - Datenanbindung aktualisieren [gelöst]

Hallo,

ich benötige wieder einmal eure Hilfe.
Ich habe ein Programm, das einen Zeitmananger (tvplanit) hat.
Ich habe nun folgendes Problem:
Wenn das Programm ein 2. mal gestartet ist und ich Änderungen in der 1. Instanz mache, werden die Daten in der 2. Instanz nicht angezeigt. Was ja acu erst mal logisch ist.
Ich habe schon folgende Befehle versucht:
Code: Alles auswählen
 
        DM.VpZeosDatastore.Load;
        DM.VpZeosDatastore.LoadEvents;
        DM.VpZeosDatastore.RefreshResource;
        DM.VpZeosDatastore.RefreshEvents;
        DM.VpZeosDatastore.LoadEventsOfResource(0);
 

Aber nichts hat funktioniert.
Folgende Info muss ich noch geben:
Die Datenbank ist eine sqlite. Diese wird über die zeos komponente angebunden.
Hat irgendjemand eine Idee, wie ich zu meinem Ziel komme?
Danke.

Gruß
Zuletzt geändert von VB_Lazarus am 26. Mär 2018, 04:35, insgesamt 1-mal geändert.
VB_Lazarus
 
Beiträge: 68
Registriert: 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10 64bit / Windows 7 32bit, L 1.6.4 32bit, FPC 3.0.2 32bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon wp_xyz » 25. Mär 2018, 10:28 Re: tvplanit - Datenanbindung aktualisieren

Im Demo "examles/datastores/sqlite3" gibt es einen ähnlichen Fall. Hier werden die TvPlanit-Termine zusätzlich in einem DBGrid angezeigt, und wenn man etwas im DBGrid ändert, erscheint die Änderung ohne weiteres nicht in TvPlanIt. Probier mal den Code unter BtnApplyToPlannerClick() aus, der löst das Problem zumindest für das DBGrid und könnte auch in deinem Fall funktionieren (auf einen Button "Refresh" legen).
wp_xyz
 
Beiträge: 2485
Registriert: 8. Apr 2011, 08:01

Beitragvon VB_Lazarus » 26. Mär 2018, 04:35 Re: tvplanit - Datenanbindung aktualisieren

Danke, für den Tip.

Ich konnte das Beispiel nicht so benutzen, aber es hat mich zur Lösung gebracht.
VB_Lazarus
 
Beiträge: 68
Registriert: 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10 64bit / Windows 7 32bit, L 1.6.4 32bit, FPC 3.0.2 32bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon af0815 » 26. Mär 2018, 06:35 Re: tvplanit - Datenanbindung aktualisieren [gelöst]

Es wäre schön, wenn wir die Lösung auch wissen würden :-)

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3379
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon VB_Lazarus » 26. Mär 2018, 15:11 Re: tvplanit - Datenanbindung aktualisieren [gelöst]

Natürlich sende ich auch die Lösung.

Dieser Code ist im Ereignis FormShow
Code: Alles auswählen
 
     DM.ZConnection.Database:=DatenbankDateiName;
     DM.ZConnection.AutoCommit:=true;
 
     DM.VpZeosDatastore.Connection := DM.ZConnection;
     DM.VpZeosDatastore.AutoCreate := true;
     DM.VpZeosDatastore.Connected := true;
 
     if DM.VpZeosDatastore.Resources.Count = 0 then DM.VpZeosDatastore.Resources.AddResource(1);
     if DM.VpZeosDatastore.Resources.Count > 0 then
       begin
            DM.VpZeosDatastore.ResourceID := DM.VpZeosDatastore.Resources.Items[0].ResourceID;
         end;
 
     DM.VpControlLink.DataStore:=DM.VpZeosDatastore;
     VpDayView.DataStore:=DM.VpZeosDatastore;
     VpWeekView.DataStore:=DM.VpZeosDatastore;
     VpMonthView.DataStore:=DM.VpZeosDatastore;
 
 


Dieser Code ist im Ereignis Timer
Code: Alles auswählen
 
           DM.VpZeosDatastore.Resources.ClearResources;
           DM.VpZeosDatastore.Load;
           DM.VpZeosDatastore.ResourceID := DM.VpZeosDatastore.Resources.Items[0].ResourceID;
           DM.VpZeosDatastore.LoadEvents;
           DM.VpZeosDatastore.RefreshEvents;
           DM.VpZeosDatastore.EventsTable.Refresh;
 

Folgende Erklärung:
Datenbank: SQLite; Komponente: ZEOS; BS: Win10
Der Timer wird alle x Sekunden abgerufen. Ist so eine simultane MehrUserBenutzung.
Ich habe hier nur die Events, weil ich den Rest (Contacts...) nicht benötige.

Ich hatte am Anfang versucht, dies mit dem XML zu lösen.
TVPlanit speichert die XML aber nur, wenn die Anwendung beendet wird.
Ein Zwischendruch abrufen von geänderten Daten war nicht möglich.
VB_Lazarus
 
Beiträge: 68
Registriert: 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10 64bit / Windows 7 32bit, L 1.6.4 32bit, FPC 3.0.2 32bit | 
CPU-Target: 32Bit
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried