Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi HTML-Pläne aufteilen auf mehrere Seiten (https://www.delphipraxis.net/104526-html-plaene-aufteilen-auf-mehrere-seiten.html)

Svenkan 5. Dez 2007 19:02


HTML-Pläne aufteilen auf mehrere Seiten
 
Hallo!
Folgendes: zur Anzeige verschiedener Pläne auf einem Monitor ist es notwendig, dass man einstellen kann, wie viele Zeilen (DB-Ergebnisse) auf eine HTML-Seite gepackt werden.
http://svenkan.sv.ohost.de/delphi/vplan/vplan_index.htm <~~~ Beispiele für diese Dateien
Je nach Auflösung passt natürlich nur eine gewisse Anzahl an Daten drauf, die auch angezeigt werden können.
Nun: die max. Zahl Datensätze (z.B. 10) wird aus einer INI abgerufen und wenn nun diese Anzahl überschritten wird, soll die Datei geschlossen und eine neue angefangen werden.
Doch mit den bisherigen Methoden hatte ich von mir aus immer nur Probleme (z.B. dass plötzlich Leerdateien erzeugt wurden).
Die Dateien sollen dann noch im Namen durchnummeriert werden (z.B. vplan_heute_1.htm).

counter: Datensätze
mps: Maximum pro Seite
l_count: aktuelle Seitenzahl

Prüfen, ob Anzahl erreicht wurde:
Delphi-Quellcode:
 if NOT (counter/mps<=1) then begin
  CloseFile(Datei);
  l_count:=l_count+1;
(...)

DeddyH 5. Dez 2007 19:14

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Äähh, was denn für Dateien? Willst Du die Anzahl der Datensätze einschränken?

Svenkan 5. Dez 2007 19:26

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Also: es werden beim Klick auf n Menüeintrag die oben erwähnten HTML-Pläne erzeugt.
Und wenn nun als max. 10 eingestellt ist, soll nach dem 10. Eintrag ein Schnitt gemacht werden, die Datei 'vplan_heute_1.htm' geschlossen und das Ganze in der 'vplan_heute_2.htm' fortgeführt werden. Solange, bis alle Einträge abgearbeitet und geschrieben worden sind.

Svenkan 15. Dez 2007 09:52

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Keiner ne Idee? :(

DeddyH 15. Dez 2007 10:00

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Ich verstehe nicht ganz, was da jetzt so schwer sein soll.

Pseudo-Code:
Delphi-Quellcode:
var max = 10, Zähler = 1;
begin
  Ergebnismenge.First;
  erste_Seite;
  while not Ergebnismenge.EOF do
    begin  
      if (Zähler mod 10) = 0 then
        begin
          Seite_schließen;
          neue_Seite;
        end;
      Ausgabe;
      inc(Zähler);
      Ergebnismenge.Next;
    end;
  Seite_schließen;
end;
So in der Art könnte das gehen.

Die Muhkuh 15. Dez 2007 10:22

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Warum klopfst Du die DB nicht ins Internet (in eine MySQL-DB) und liest das Zeugs mit PHP aus? :gruebel:

DeddyH 15. Dez 2007 10:46

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Das hab ich mich auch schon gefragt, ist doch eine prädestinierte Anwendung für dynamische Webseiten.

Svenkan 15. Dez 2007 18:56

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Zitat:

Zitat von DeddyH
Ich verstehe nicht ganz, was da jetzt so schwer sein soll.

Pseudo-Code:
Delphi-Quellcode:
var max = 10, Zähler = 1;
begin
  Ergebnismenge.First;
  erste_Seite;
  while not Ergebnismenge.EOF do
    begin  
      if (Zähler mod 10) = 0 then
        begin
          Seite_schließen;
          neue_Seite;
        end;
      Ausgabe;
      inc(Zähler);
      Ergebnismenge.Next;
    end;
  Seite_schließen;
end;
So in der Art könnte das gehen.

Leider funktioniert das eben nicht. Ich hatte etwas ähnliches, und bei mir hats auch nicht getan.
Es wird leider alles in eine Datei geschrieben.

Die Muhkuh 15. Dez 2007 18:57

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Zeig doch mal das, was Du gemacht hast. Dann können wir Dir helfen, Deinen Fehler zu finden. Der Rohbau von Detlef ist schon richtig.

DeddyH 15. Dez 2007 18:58

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Dann zeig doch mal, wie Du es versucht hast, ist bestimmt nur ein Schusselfehler. Im Übrigen fände ich die PHP (oder Perl, ASP oder was weiß ich)-Lösung sinnvoller.

[edit] Ich ziehe mich gleich schmollend in die Ecke zurück :evil: [/edit]

Svenkan 15. Dez 2007 18:59

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Delphi-Quellcode:
 Query1.First;
 [...]
 end
 else begin
 while not Query1.EOF do begin
 if ((rcount mod max_p_seite) = 0) then begin
  //Seite abschließen
  PageProducer.HTMLDoc.LoadFromFile(ExtractFilePath(ParamStr(0))+'\templates\vplan_tableend.tpl');
  vplan_heute.Lines.Add(PageProducer.Content);

  PageProducer.HTMLDoc.LoadFromFile(ExtractFilePath(ParamStr(0))+'\templates\vplan_ende.tpl');
  vplan_heute.Lines.Add(PageProducer.Content);

  vplan_heute.Lines.SaveToFile(dsb_exp_path+'\vplan_heute_'+IntToStr(seite)+'.htm');
  seite:=seite+1;
  rcount:=1;

  //neue Seite öffnen
  vplan_heute.Lines.Clear;
  PageProducer.HTMLDoc.LoadFromFile(ExtractFilePath(ParamStr(0))+'\templates\vplan_start.tpl');
  vplan_heute.Lines.Add(PageProducer.Content);

  Params.Values['seite'] := IntToStr(seite+1);

  PageProducer.HTMLDoc.LoadFromFile(ExtractFilePath(ParamStr(0))+'\templates\vplan_tabledesc.tpl');
  vplan_heute.Lines.Add(PageProducer.Content);
 end;

PageProducer.HTMLDoc.LoadFromFile(ExtractFilePath(ParamStr(0))+'\templates\vplan_vbit.tpl');

[...Bestimmen der Vertretungsvariablen...]

 Params.Values['klasse'] := klasse+' - #'+inttostr(rcount);
 Params.Values['stunde'] := stunde;
 Params.Values['fehlt'] := fehlt1;
 Params.Values['vertritt'] := vertritt1;
 Params.Values['fach'] := fach1;
 Params.Values['raum'] := raum1;
 Params.Values['bemerkung'] := bemerkung_leh;

 vplan_heute.Lines.Add(PageProducer.Content);
   Query1.Next;
  Inc(rcount);
  end;
 end;
 end;

/edit: @ Teddy: Leider ist dies hier nicht angebracht. Das sind Monitorpläne und die Rechner, auf denen das Programm läuft, haben nicht zwangsweise Internetzugang!

DeddyH 15. Dez 2007 19:07

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Auf den ersten Blick sind mir 2 Dinge aufgefallen:
1. müsste rcount auf 0 gesetzt werden, nicht auf 1
2. wird die letzte Seite nicht abgeschlossen.

Die Muhkuh 15. Dez 2007 19:09

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Wie groß ist den max_p_seite?

Ich les mir den Code schon zum dritten Mal durch und wüsste jetzt nicht, wo da was sein könnte (bis auf das, was der liebe Detlef schon sagte).

Bist Du mal mit dem Debugger drübergesteppt und hast Dir die Variablen ausgeben lassen?

DeddyH 15. Dez 2007 19:14

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Mal was anderes: wo wird der Datensatz eigentlich ausgewertet?

Die Muhkuh 15. Dez 2007 19:15

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Ich denk mal da, wo

Zitat:

[...Bestimmen der Vertretungsvariablen...]
steht ;)

DeddyH 15. Dez 2007 19:16

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Keine Ahnung, ich kenne mich mit dem PageProducer nicht aus.

Die Muhkuh 15. Dez 2007 19:18

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Wird sowieso ein Eigengewurschtel von ihm sein.

Btw., wenn Du das ExtractFilePath(ParamStr(0)) in einer Variable abspeicherst, sparst Du Dir die Haufen Aufrufe. Obendrein wird der Code übersichtlicher. ;-)

Svenkan 15. Dez 2007 19:26

Re: HTML-Pläne aufteilen auf mehrere Seiten
 
Zitat:

Zitat von Die Muhkuh
Ich denk mal da, wo

Zitat:

[...Bestimmen der Vertretungsvariablen...]
steht ;)

Rüchtüüüch. :)


Zitat:

Zitat von Die Muhkuh
Wird sowieso ein Eigengewurschtel von ihm sein.

Btw., wenn Du das ExtractFilePath(ParamStr(0)) in einer Variable abspeicherst, sparst Du Dir die Haufen Aufrufe. Obendrein wird der Code übersichtlicher. ;-)

Hehe, ja, das stimmt wohl. ;) Habs mir mal aufgeschrieben.
Zitat:

Zitat von DeddyH
Keine Ahnung, ich kenne mich mit dem PageProducer nicht aus.

Naja, im Grunde isses ganz normal, wie sonst auch. Die Daten aus dem Pageproducer werden in ein Memo geladen und von dort aus in eine Datei exportiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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