Scope z.B. von eXPress++ benutzen

Moderator: Moderatoren

Scope z.B. von eXPress++ benutzen

Beitragvon Rudolf » Mi, 24. Okt 2012 8:09

Hallo,
ich muss einen Report nach gewissen Kriterien filtern. Mit eXPress++ geht das sehr schnell mittels dc_setscopearray(), da kann ich einzelne Sätze filtern. Aber FRAX ignoriert scopes soweit ich sehe. Habe auch im Sourcecode nichts gefunden, müsste die skip() Funktionen dazu auf dc_dbskip() ändern. Wo kann man die Funktion änderun oder gibt es einen andere Möglichkeit fürs schnelle filtern ?
Spirin hat auf meine Mail Anfrage dazu nicht geantwortet.
Grüße
Rudolf
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1150
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: Scope z.B. von eXPress++ benutzen

Beitragvon brandelh » Mi, 24. Okt 2012 8:12

Ist es nicht sinnvoller aus dem eXpress++ scope einen Datenextrakt für den Report zu generieren ?
Dann kannst du diesen auch noch Tage später nachdrucken.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13201
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Scope z.B. von eXPress++ benutzen

Beitragvon Martin Altmann » Mi, 24. Okt 2012 8:17

Hallo Rudolf,
Rudolf hat geschrieben:Spirin hat auf meine Mail Anfrage dazu nicht geantwortet.

das wird er persönlich auch nie wieder tun - er ist vor einigen Monaten (im März) verstorben.
Der Hinweis von Hubert ist aber sicher der bessere Weg.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 12688
Registriert: Fr, 23. Sep 2005 3:58
Wohnort: Berlin

Re: Scope z.B. von eXPress++ benutzen

Beitragvon brandelh » Mi, 24. Okt 2012 8:22

Siehe hier die Mitteilung über seinen Tod:

viewtopic.php?f=83&t=6142&hilit=frax#p69891
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13201
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Scope z.B. von eXPress++ benutzen

Beitragvon Koverhage » Mi, 24. Okt 2012 8:30

Hallo Rudolf,

bei mir werden gesetzte Scopes NICHT ignoriert.
Kannst Du den entsprechenden Code posten ?
Andreas Engler ist Spezialist für FRAX, eventuell kann er Dir einen Tip geben.
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1866
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen

Re: Scope z.B. von eXPress++ benutzen

Beitragvon Rudolf » Mi, 24. Okt 2012 8:51

Hallo,
das ist mein Code mit dem es nicht funktioniert
Grüße
Rudolf



Code: Alles auswählen
     FrPrn := frReportManager():new()
     FrPrn:SetIcon(1)
     FrPrn:SetTitle(cTitle)
     FrPrn:SetVisualActions(FR_ACT_DISABLE);

     FrPrn:SetEventHandler("Report", "OnProgressStart", {|x,y|ShowProgress(x, y, 1)})
     FrPrn:SetEventHandler("Report", "OnProgressStop", {|x,y|ShowProgress(x, y, 2)})
     FrPrn:SetEventHandler("Report", "OnProgress", {|x,y|ShowProgress(x, y, 3)})
     FrPrn:SetEventHandler("Report", "OnBeforePrint", {|ObjName|ShowProcess(ObjName)})

     if fexists(addpath(cResDir,"german.frc"))
          FrPrn:LoadLangRes(addpath(cResDir,"german.frc"))
     endif
     // !!!!!!!!!!!!!!!!!!!!!!
     aScope := {}
     select STD
     std->(setorder("ABR1"))
     std->(seek(auf->nummer))
     do while std->auftrag = auf->nummer
          aadd(aScope,std->(recno()))
          std->(skip())
     enddo
     std->(dc_setscopearray(aScope))
    // !!!!!!!!

     std->(dc_dbgotop())
     FrPrn:SetWorkArea("STD", select("STD"))
     altd()
     cFields := frax_repfields(fielenamefromsel("STD")) //  fields from my data dictonary
     FrPrn:SetFieldAliases("STD",cFields)

     FrPrn:LoadFromFile(cReportFile)

     dc_hourglassoff()
     DO CASE
          CASE cMod = "S"
               FrPrn:ShowReport()
          CASE cMOd = "D"
               FrPrn:DesignReport()
          CASE cMod = "P"
               FrPrn:SetProperty("Report", "ShowProgress", .f.)
               FrPrn:PrepareReport()
               FrPrn:Print(.t.)
               FrPrn:SetProperty("Report", "ShowProgress", .t.)

Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1150
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: Scope z.B. von eXPress++ benutzen

Beitragvon Koverhage » Mi, 24. Okt 2012 11:01

Rudolf,

Frax ignoriert von Express++ gesetzte Scopes, die intern von Express++ verwaltet werden.
Diese sind Frax natürlich nicht bekannt.
Wenn Du statt dessen die Scopes von Xbase+++ benutzt, funktioniert das
ohne Probleme.

Klaus
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1866
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen

Re: Scope z.B. von eXPress++ benutzen

Beitragvon Rudolf » Mi, 24. Okt 2012 11:54

Hallo Klaus,
hab ich befürchtet, hätte sein können dass man im FRAX Sourccode die Funktion anpassen hätte können. Habe die Daten in der Zwischenzeit in eine externe Datei kopiert, geht genausoschnell
LG
Rudolf
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1150
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: Scope z.B. von eXPress++ benutzen

Beitragvon andreas » Do, 25. Okt 2012 11:54

Hallo Rudolf,

ich habe bei mir immer die Daten in einer temporären Datei (FOXCDX) so zusammengesetzt, wie ich für das Report gebraucht habe. Damit konnte ich auch schnell auf die SQL-Daten umsteigen, ohne die Reports umzustellen. Alternativ kannst du auch Arrays verwenden!
Benutzeravatar
andreas
Foren-Moderator
Foren-Moderator
 
Beiträge: 1561
Registriert: Mi, 28. Sep 2005 9:53
Wohnort: Osnabrück


Zurück zu Fast Report / FRAX

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron