Probleme mit Umlauten

Einsatz von AvERP mit Linux als Server- und/oder Anwendungs-OS

Moderator: SYNERPY

Antworten
seemannskiste
Beiträge: 2
Registriert: Di Nov 28, 2006 3:21 pm

Probleme mit Umlauten

Beitrag von seemannskiste »

Hallo,

ich bin gerade dabei AvERP bei uns in der Firma zu testen.
Firebird 1.5.3.4870 (nicht das Debianpaket) läuft auf einem Linuxserver mit Debian 3.1.
Die Verbindung mit dem AvERP Client und der Datenbank funktioniert problemlos, Datensätze anlegen etc.

Das Problem mit den Umlauten taucht z.B. auf, wenn ein Angebot gedruckt werden soll.
In der Kundenadresse wird der Ort in Grossbuchstaben umgewandelt, was ja nicht schlecht ist.
Aber aus Cölbe wird C?LBE, oder aus Osnabrück wird OSNABR?CK.
In der Client-Masken werden die Umlaute richtig angezeigt.

Mit IBExpert habe ich heraus gefunden das die externe Funktion F_ANSIUPPERCASE
in AvERPUDF.so dafür verantwortlich ist.
Die Funktion könnte ich ja in der einen oder anderen Prozedure (z.B. P_REP_ADRESSE) löschen,
jedoch taucht das Problem bei der Suche auch auf.
Will ich unten Kunden->Ansprechpartner nach *Müller* suchen, wird er nicht gefunden.
Suche ich nach *M*ller* oder *ller* wird Müller gefunden.
Das nervt etwas.

Kennt jemand das Problem oder hat jemand eine Lösung dazu?

Versionen:
- Debian 3.1
- Firebird 1.5.3.4870
- Datenbank Ver 2006.b.2.linux.beta
- AvERP Komplettpaket Ver 2006.b.2 auf Windows 2000
- Es wurde die AvERPUDF.so Datei aus 2006.b.2.linux.beta
ins Firebird UDF-Verzeichnis kopiert
- Firebird und Datenbank liegen unter /opt/firebird
seemannskiste
Beiträge: 2
Registriert: Di Nov 28, 2006 3:21 pm

Beitrag von seemannskiste »

Hallo,

habe mir erstmal selbst geholfen.
Der Weg ist zwar nicht schön, aber er funktioniert.

1. Schritt
Mit Hilfe des Forums (Code von ctheuring) die UDF-Abhänigkeiten abgeschaltet und zwar mit:

Code: Alles auswählen

/* Umsetzen AvERPUDF auf FreeAdhocUDF */
/* UDF-Abhängigkeiten vorrübergehend ausschalten */
UPDATE RDB$DEPENDENCIES SET RDB$DEPENDED_ON_NAME = 'x' || RDB$DEPENDED_ON_NAME
WHERE RDB$DEPENDED_ON_TYPE = 15
AND RDB$DEPENDED_ON_NAME STARTING WITH 'F';
/* UDF-Funktionen die auf die AvERPUDF beruhen entfernen */
2. Schritt
Dann mit IBExpert die entsprechende UDF F_ANSIUPPERCASE in AvERPUDF umdefiniert.
Name: F_ANSIUPPERCASE
Bib-Name: FreeAdhocUDF
Eingangsadresse: upper
Eingabeparameter: CSTRING(32760)
Rückgabe: CSTRING(32760)
Rückgabemechanismus: by Reference
Free it: angekreuzt

Dann compiliert und commit durchgeführt.

3. Schritt
UDF-Abhängigkeiten wieder eingeschaltet mit

Code: Alles auswählen

/* dann Abhängigkeiten wiederherstellen */
UPDATE RDB$DEPENDENCIES SET RDB$DEPENDED_ON_NAME = F_MID(RDB$DEPENDED_ON_NAME, 1, F_STRINGLENGTH(RDB$DEPENDED_ON_NAME))
WHERE RDB$DEPENDED_ON_TYPE = 15
AND RDB$DEPENDED_ON_NAME STARTING WITH 'xF';
und siehe da es funktioniert. :D
Man kann nach Namen und Orte suchen die
Umlaute enthalten und die Druckausgabe ist o.k.
Der einzige Nachteil ist das im UDF-Verzeichnis von Firebird die AvERPUDF
und die FreeAdhocUDF liegen. :lol:
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Danke für den Tipp!
denis robel
Beiträge: 203
Registriert: Fr Jul 01, 2005 6:33 pm
Wohnort: Leipzig

Beitrag von denis robel »

Hallo,

das mit dem Umlauten ist mir auch schon aufgefallen...

Danke für den Tip.

Denis
Schöne Grüße aus Leipzig

Denis

-
Linux - my life is too short for reboots
Antworten