OBS/Adminhilfe/RTF: Unterschied zwischen den Versionen
Nimz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
K (hat „Admin/RTF“ nach „OBS/Adminhilfe/RTF“ verschoben) |
||
| (40 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{ZugriffOBS}} | {{ZugriffOBS}} | ||
= Häufige RTF-Probleme= | |||
== SQL-Querys == | |||
Es kann bei einigen Altlasten passieren das leere RTF-Strings in der Datenbank existieren. Mit folgendem SQL-Statement kann man diese heraus löschen: | |||
<source lang="SQL"> | |||
update artikel set a_langtext = '' | |||
where a_langtext = '{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil MS Sans Serif;}} | |||
\r\n\\viewkind4\\uc1\\pard\\lang1031\\f0\\fs16 \r\n\\par }\r\n\0' | |||
</source> | |||
= Umstellung auf RTF = | = Umstellung auf RTF = | ||
== Was ist zu tun? == | == Was ist zu tun? == | ||
# PMode 916 auf Ja stellen | # PMode 916 auf Ja stellen | ||
| Zeile 8: | Zeile 18: | ||
== Druckanpassungen == | == Druckanpassungen == | ||
'''WICHTIG''' Bei Pax-Drucken müssen alle Inc(y,z) und Dec(y,z) durch y:= y +/- z ersetzt werden<br/> | |||
'''WICHTIG!''' Für den Langtextdruck im RTF-Format gibt feste Funktionen in ''QStandard.inc''. Diese sind hier nur zu verwenden. Zusätzliche Variablen werden nicht benötigt. | |||
In den vars hinzufügen (Vorbildprint nur wenn auch Bilder ausgedruckt werden sollen): | In den vars hinzufügen (Vorbildprint nur wenn auch Bilder ausgedruckt werden sollen): | ||
<source lang="delphi"> | <source lang="delphi"> | ||
vorbildprint : String; | vorbildprint : String; | ||
</source> | </source> | ||
---- | ---- | ||
| Zeile 20: | Zeile 31: | ||
<source lang="delphi"> | <source lang="delphi"> | ||
if (lKopfFuss) then begin | if (lKopfFuss) then begin | ||
cBuffer := A_Query.A2C('a_kopftext'); | |||
if (not empty(Alltrim(cbuffer))) then begin | |||
LangtextDruck(cBuffer,'posnr',cResultVor); | |||
y := y + 0.5; | |||
cBuffer := ''; | |||
end; | |||
end; | end; | ||
</source> | </source> | ||
'''ACHTUNG!''' Nur im Vorgangsdruck Angebot mit Bedingung ''lKopfFuss''! | |||
---- | ---- | ||
Die Variable ''cResultVor'' ist in allen Prozeduren zu deklarieren, in denen Langtexte gedruckt werden. Sie ist am Anfang leer zu initialisieren. | |||
---- | ---- | ||
Nach | Nach | ||
cbuffer := AZ_Query.A2C('az_memofeld'); | |||
oder bei Kasse: | |||
cBuffer := AZ_Query.FieldByName('az_langtext').asString; | |||
cBuffer := AZ_Query.FieldByName(' | |||
in Positionen(); suchen und alles was in nachfolgendem IF vorkommt ersetzen mit: | in Positionen(); suchen und alles was in nachfolgendem IF vorkommt ersetzen mit: | ||
<source lang="delphi"> | <source lang="delphi"> | ||
if (not empty(cBuffer)) then begin | if (not empty(cBuffer)) then begin | ||
if (empty (cResultvor)) then begin | |||
y := y + 1; | |||
end; | |||
if (PositionLangtextDruck(cBuffer,nWelcheZeile,cWo,cWelcheZeile,cResultVor,RTF_LANGTEXT)) then begin | |||
break; | |||
end; | |||
y := y - 1; | |||
end; | end; | ||
</source> | </source> | ||
Falls direkt auf den Langtext folgende Zeilen aufgerufen werden, sollten diee entfernt werden. | |||
<source lang="delphi"> | <source lang="delphi"> | ||
if (y >= iSeitenlaenge - iFusszeilen) then begin | |||
break; | |||
end; | |||
</source> | </source> | ||
Wiederholen, bis alle az_memofeld-Benutzungen (3x) in Positionen so umgestellt sind. | |||
---- | ---- | ||
Die Vorgangslangtexte müssen ebenfalls angepasst werden. Dazu alles im Positionstyp 1 mit folgenden Zeilen ersetzten: | |||
<source lang="delphi"> | <source lang="delphi"> | ||
cBuffer := AZ_Query.A2C('az_memofeld'); | |||
if (not empty(cBuffer)) then begin | |||
y := y + 1; | |||
if (TitelLangtextDruck(cBuffer,nWelcheZeile,cWo,cWelcheZeile,cResultVor,GetTextBreite('1'))) then begin | |||
break; | |||
end; | |||
y := y - 1; | |||
end; | end; | ||
</source> | </source> | ||
Alles was in PosTyp 7 steht, muss durch folgedes ersetzt werden: | |||
<source lang="delphi"> | |||
if (DruckeTitel(cResultvor,cWo,cWelcheZeile,nWelcheZeile,i,'az_memofeld')) then begin | |||
break; | |||
end; | |||
</source> | |||
---- | ---- | ||
= | In Positionen am Ende des Cases einen neuen Punkt | ||
<source lang="delphi"> | |||
17 : begin | |||
if (Pagebreak(cWo,cResultvor)) then begin | |||
break; | |||
end; | |||
end; | |||
</source> | |||
hinzufügen. | |||
---- | ---- | ||
== | Am Ende von Positionen(); | ||
<source lang="delphi"> | |||
if ( (empty (cWo)) | |||
</source> | |||
durch | |||
<source lang="delphi"> | |||
if ( (empty (cWo)) and (AZ_Query.EoF) ) then begin | |||
</source> | |||
ersetzen. | |||
---- | ---- | ||
In der Printfunktion '''!muss!''' <br> | |||
'''TextFussRich();''' <br> | |||
gegen <br> | |||
'''TextFuss();''' | |||
ausgetauscht werden! | |||
---- | ---- | ||
Für den Fall, dass ein Repa umgestellt werden muss, ist folgendes zu beachten!: | |||
<source lang="delphi"> | |||
iZeilen := MLCount(cBuffer,100); | |||
for i := 1 to iZeilen do begin | |||
qRep_Text3(EZ,iLinkerRand,qRep_Ypos(EZ,y),MemoLine(cBuffer,100,i)); | |||
y := y + 0.8; | |||
end; | |||
</source> | |||
Muss durch | |||
<source lang="delphi"> | <source lang="delphi"> | ||
if (not empty(Alltrim(cbuffer))) then begin | |||
LangtextDruck_XPos(cBuffer,iLinkerRand,cResultVor); | |||
y := y + 0.8; | |||
cBuffer := ''; | |||
end; | |||
</source> | </source> | ||
ersetzt werden. | |||
---- | |||
= Bekannte RTF-Bugs = | |||
# Höhenberechnung bei Aufzählungen mit Aufzählungszeichen nicht korrekt (Zeilenhöhe ist etwas höher). Bei nummerierter Aufzählung keine Probleme. | |||
Aktuelle Version vom 9. September 2016, 15:00 Uhr
Dies ist eine zugriffsgeschützte Seite.
- System Überwachung
- DEP deaktivieren
- Darstellung unter Windows 7
- Einwahl auf Windows 2000 Server
- Preislisten
- Datenbank Sicherung
- Customize
- Zentrale
- Support Macro
- Service Debug
- Historienprotokoll (Datenänderung OBS)
- Fernwartungsprobleme
- Startparameter
- Fehler beim Kassenabschluss
- Diverse Informationen
- A ras.pbk
- B Command Line Interpreter
- C File Zilla Benutzer XML erzeugen
- D1 OBS_UPDATE.EXE zum OBS Update Server hochladen
- D2 SUPPORT_MACRO zum OBS Update Server hochladen
- H1 Remote Service Protokoll-Übersicht (Alles)
- H Remote ServiceProtokoll-Übersicht
- I Remote Service Commands
- I1 (Admin) Globaler Hinweis für Updates
- J Liste der OBS Updates
- K Angemeldete Service Firmen
- L Systeminformationen einlesen
- M Kundendaten anzeigen
- M1 Kundendatenbankinformationen anzeigen
- N Kundendaten einlesen
- O Kunden-Update Informationen anzeigen
- P Modul Registrierung OBS
- Q App Verwaltung
- S1 Firmen Statistik Protokolle OBS
- S2 Statistik Notfallkassen
Häufige RTF-Probleme
SQL-Querys
Es kann bei einigen Altlasten passieren das leere RTF-Strings in der Datenbank existieren. Mit folgendem SQL-Statement kann man diese heraus löschen:
update artikel set a_langtext = ''
where a_langtext = '{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil MS Sans Serif;}}
\r\n\\viewkind4\\uc1\\pard\\lang1031\\f0\\fs16 \r\n\\par }\r\n\0'
Umstellung auf RTF
Was ist zu tun?
- PMode 916 auf Ja stellen
- Drucke für RTF anpassen
- Kontrollieren ob die Wörterbuchdateien (Datei:DICT.ZIP) im Verzeichnis (obs\data\DICT\) liegen
Druckanpassungen
WICHTIG Bei Pax-Drucken müssen alle Inc(y,z) und Dec(y,z) durch y:= y +/- z ersetzt werden
WICHTIG! Für den Langtextdruck im RTF-Format gibt feste Funktionen in QStandard.inc. Diese sind hier nur zu verwenden. Zusätzliche Variablen werden nicht benötigt.
In den vars hinzufügen (Vorbildprint nur wenn auch Bilder ausgedruckt werden sollen):
vorbildprint : String;
Nach
// KOPFTEXT ANFANG
suchen und den Abschnitt durch folgendes ersetzen:
if (lKopfFuss) then begin
cBuffer := A_Query.A2C('a_kopftext');
if (not empty(Alltrim(cbuffer))) then begin
LangtextDruck(cBuffer,'posnr',cResultVor);
y := y + 0.5;
cBuffer := '';
end;
end;
ACHTUNG! Nur im Vorgangsdruck Angebot mit Bedingung lKopfFuss!
Die Variable cResultVor ist in allen Prozeduren zu deklarieren, in denen Langtexte gedruckt werden. Sie ist am Anfang leer zu initialisieren.
Nach
cbuffer := AZ_Query.A2C('az_memofeld');
oder bei Kasse:
cBuffer := AZ_Query.FieldByName('az_langtext').asString;
in Positionen(); suchen und alles was in nachfolgendem IF vorkommt ersetzen mit:
if (not empty(cBuffer)) then begin
if (empty (cResultvor)) then begin
y := y + 1;
end;
if (PositionLangtextDruck(cBuffer,nWelcheZeile,cWo,cWelcheZeile,cResultVor,RTF_LANGTEXT)) then begin
break;
end;
y := y - 1;
end;
Falls direkt auf den Langtext folgende Zeilen aufgerufen werden, sollten diee entfernt werden.
if (y >= iSeitenlaenge - iFusszeilen) then begin
break;
end;
Wiederholen, bis alle az_memofeld-Benutzungen (3x) in Positionen so umgestellt sind.
Die Vorgangslangtexte müssen ebenfalls angepasst werden. Dazu alles im Positionstyp 1 mit folgenden Zeilen ersetzten:
cBuffer := AZ_Query.A2C('az_memofeld');
if (not empty(cBuffer)) then begin
y := y + 1;
if (TitelLangtextDruck(cBuffer,nWelcheZeile,cWo,cWelcheZeile,cResultVor,GetTextBreite('1'))) then begin
break;
end;
y := y - 1;
end;
Alles was in PosTyp 7 steht, muss durch folgedes ersetzt werden:
if (DruckeTitel(cResultvor,cWo,cWelcheZeile,nWelcheZeile,i,'az_memofeld')) then begin
break;
end;
In Positionen am Ende des Cases einen neuen Punkt
17 : begin
if (Pagebreak(cWo,cResultvor)) then begin
break;
end;
end;
hinzufügen.
Am Ende von Positionen();
if ( (empty (cWo))
durch
if ( (empty (cWo)) and (AZ_Query.EoF) ) then begin
ersetzen.
In der Printfunktion !muss!
TextFussRich();
gegen
TextFuss();
ausgetauscht werden!
Für den Fall, dass ein Repa umgestellt werden muss, ist folgendes zu beachten!:
iZeilen := MLCount(cBuffer,100);
for i := 1 to iZeilen do begin
qRep_Text3(EZ,iLinkerRand,qRep_Ypos(EZ,y),MemoLine(cBuffer,100,i));
y := y + 0.8;
end;
Muss durch
if (not empty(Alltrim(cbuffer))) then begin
LangtextDruck_XPos(cBuffer,iLinkerRand,cResultVor);
y := y + 0.8;
cBuffer := '';
end;
ersetzt werden.
Bekannte RTF-Bugs
- Höhenberechnung bei Aufzählungen mit Aufzählungszeichen nicht korrekt (Zeilenhöhe ist etwas höher). Bei nummerierter Aufzählung keine Probleme.