Reporte für alle Benutzer

Übergeordnete Themen zum gesamten Paket passend
Antworten
Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Reporte für alle Benutzer

Beitrag von Werner_Bayern »

Servus,

ich bekomme es nicht hin, dass Reporte für alle Benutzer verfügbar sind. Mit der EXE liefere ich ja die Reporte aus, das funktioniert. Nun soll der Kunde die Möglichkeit haben, die Reporte anzupassen. Dazu hab ich alles lt. Doku veranlasst: Reports & Queries wird mit installiert, alle Reporte dürfen vom Kunden geändert werden.
Das Programm liegt auf dem Netzlaufwerk, die geänderten Reporte sollen selbstverständlich auf einem Netzlaufwerk für alle Benutzer zur Verfügung stehen. Also steht im Initialiserungs-Code des Projektes:

Code: Alles auswählen

fReportsAndQueriesDir(dirShared, System.Reportpfad)
fReportsAndQueriesDir(dirUser, System.Reportpfad)
Das führt jedoch dazu, dass R&Q die Fehlermeldung schmeisst:

Failure checking out <report...> file.

Was mache ich falsch?
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Reporte für alle Benutzer

Beitrag von Herbert »

Ich habe im Moment in einer Applikation das Problem, dass die Funktion nicht das macht, was sie sollte.
Das Verzeichnis wird schlicht nicht angepasst.
Schau, was dir die Funktion für ein Laufwerk zurückgibt.

Code: Alles auswählen

	spath=fReportsAndQueriesDir(dirShared)
	Info("spath_i="+spath)
Ich habe dort die Reports in das Verzeichnis gelegt, welches angezeigt wird und in diesem Fall offenbar nicht änderbar ist (das Verzeichnis, wo ich mit den Daten starte...). So funktioniert das Ganze.

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Reporte für alle Benutzer

Beitrag von Werner_Bayern »

Servus Herbert,

deshalb sieht mein Code auch so aus:

Code: Alles auswählen

	fReportsAndQueriesDir(dirShared, System.Reportpfad)
	fReportsAndQueriesDir(dirUser, System.Reportpfad)
	IF fReportsAndQueriesDir(dirShared) <> System.Reportpfad THEN
		Error("Pfad für Reporte konnte nicht gesetzt werden!", fReportsAndQueriesDir(dirShared))
	END
Kommt keine Meldung.

Und es wird offensichtlich auch geändert, sonst käme ja auch nicht bei R&Q die Fehlermeldung wg. checking out.
Ich habe dort die Reports in das Verzeichnis gelegt, welches angezeigt wird und in diesem Fall offenbar nicht änderbar ist
Du arbeitest mit fExtractResource()? Oder nimmst alle Reporte aus der EXE raus und kopierst die manuell?
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Reporte für alle Benutzer

Beitrag von Herbert »

Die Reports sind nicht Teil des Exe-Files und werden extra hineinkopiert. Hat den Vorteil, dass der Kunde frei ändern kann und ev. eine Aenderung durch uns ohne grossen Aufwand beim Kunden leicht ersetzt werden kann.

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Reporte für alle Benutzer

Beitrag von satmax »

Ich mache das etwas anders. Alle Reports sind im Unterordner des Programmes unter ..\Desgin\.. zu finden, als *.rpt files.

Der Start des Reports erfolgt über mein eigenes Fenster:


sFormularPath is string = "Reinigungsauftrag\" // = Unterordner im Ordner ..\Desgin\
gstrPrint = Open(WIN_PrintDlg,sFormularPath,"RPT_Reinigungsauftrag2S.wde", nCopy, bNoPrompt) // Da passiert alles mit Druckerwahl und EInstellung.

IF NOT gstrPrint.bPrintAbort THEN
FOR i =1 TO nCopy
SWITCH i
CASE = 1
sTextKopie = ""
sMyPrinter = gstrPrint.sPrinter
// case = 2
// sTextKopie="Kunde"
// sMyPrinter = gstrPrint.sPrinterCopy
// case = 3
// sTextKopie="für .."
// sMyPrinter = gstrPrint.sPrinterCopy
// case = 4
// sTextKopie="für ..."
// sMyPrinter = gstrPrint.sPrinterCopy
// case = 5
// sTextKopie="für... 2"
// sMyPrinter = gstrPrint.sPrinterCopy
OTHER CASE
sTextKopie = "Kopie"
sMyPrinter = gstrPrint.sPrinterCopy
END
IF gstrPrint.bIsPreview
// Parameter für Vorschau
//iParameterPreview(iButtonAll,100)
iParameterViewer(iButtonAll)

// Vorschau vor Druck
iPreview()
ELSE // Export usw.... SONST drucken
// Drucker vorbereiten
// Immer 3x drucken: Original, Kunde, Staplerfahrer
iConfigure(sMyPrinter)

END
// Drucken
iParameter(iDuplex)
iPrintReport(gstrPrint.sReportName,nReingungsauftragId,sTextKopie) //

END


END

// Achtung ************************************************************************************
// In den Reporteigenschaften MUSS unter Option "Include the compiled Code" markiert sein!
// Achtung ************************************************************************************


Klappt eigentlich immer und überall.

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Reporte für alle Benutzer

Beitrag von Werner_Bayern »

Das sollte aber das Standardverhalten unter Windev sein: Reporte werden in der EXE ausgeliefert, sobald der Kunde mit R&Q ändert, werden die im entsprechenden Ordner abgelegt. Beim Aufruf eines Reports wird ja erst unter shared, user und dann in der EXE nachgesehen.

Bin jetzt aber fündig geworden in der <programmname>.wx - Datei! Dort steht:

Code: Alles auswählen

[WDREPORT]
LOCAL_DIR=C:\Users\...\AppData\Roaming\...\exename\Reports and Queries
GLOBAL_DIR=\\....local\...\Programme\exeordner\Shared Reports and Queries
(persönliche Infos entfernt).
Local_dir ist falsch, global_dir korrekt. Werde da mal ändern...
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Reporte für alle Benutzer

Beitrag von Werner_Bayern »

Seit wir die WX-Datei manuell auf allen Endgeräten anpassen, passt es. Die Automatik in Windev scheint da nicht lt. Doku zu funktionieren.
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Reporte für alle Benutzer

Beitrag von Werner_Bayern »

Oder so:

Code: Alles auswählen

INIWrite("WDREPORT", "LOCAL_DIR", System.Reportpfad, fExeDir() + [fSep] + "<EXENAME>.wx")
INIWrite("WDREPORT", "GLOBAL_DIR", System.Reportpfad, fExeDir() + [fSep] + "<EXENAME>.wx")
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Reporte für alle Benutzer

Beitrag von Herbert »

Werner, in deinem Fall wäre das besser, wenn du die Pfadangaben in eine Tabelle legen würdest. INi-Files sind super für individuelle Einstellungen, sollten aber für Globales nicht verwendet werden.

Werner_Bayern
Member
Beiträge: 91
Registriert: 2. Dezember 2019, 15:35

Re: Reporte für alle Benutzer

Beitrag von Werner_Bayern »

Servus Herbert,

System ist die globale Tabelle und exename.wdx wird von Windev selbst angelegt. Mit diesen Pfaden arbeitet dann offensichtlich Report&Queries.
Servus,

Werner

[Windev, Webdev und Windev Mobile Version 25 und 26, sobald in Englisch verfügbar]

Antworten