OBS/Adminhilfe/Pax Listenrework: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Für diese Seite wurde eine Zugriffsbeschränkung eingerichtet. Falls du diese Nachricht siehst, bist du nicht berechtigt, diese Seite einzusehen.
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
==Funktionen==
==Funktionen==
===Gruppen/Spalten hinzufügen===
===Gruppen/Spalten hinzufügen===
 
{{Hinweis|Bei Mehrfachdrucken können Probleme auftreten, wenn im Druck die Spalten auf jeder Seite neu definiert werden. Diese Probleme können entweder mit '''qRep_SReset(EZ);''' am Anfang des Drucks oder '''qRep_SDeleteGruppe(EZ, 'gruppenname');''' vor dem Anlegen der Gruppe verhindert werden.}}
{|
{|
|-
|-
Zeile 21: Zeile 21:
  end;
  end;
|  
|  
qRep_SDeleteGruppe(EZ, 'neu'); //Nötig, da sonst beim Mehrfachdruck die Spalten immer kleiner werden.
  begin
  begin
     qRep_SAddGruppe(EZ, 'neu','neu1',20,tajLeftJustify,'C');
     qRep_SAddGruppe(EZ, 'neu','neu1',20,tajLeftJustify,'C');
Zeile 66: Zeile 65:


==Anwendungsbeispiele==
==Anwendungsbeispiele==
Die neuen Funktionen werden auch in einer Beispieldatei zusammengefasst. Diese Datei kann als Auftrags-Userdruck in ein Test-OBS kopiert und durch das Öffnen der Vorschau des normalen Drucks eines beliebigen Auftrags ausgeführt werden. [http://wiki.bergau.de/images/6/6e/Auftrag.pax '''>> Download Beispieldatei <<''']


Anstatt für kleine Änderungen die PublicVarInit kopieren zu müssen, kann jetzt nach dem Aufruf der PublicVarInit eine eigene Funktion aufgerufen werden, die die Spalten modifiziert.
Anstatt für kleine Änderungen die PublicVarInit kopieren zu müssen, kann jetzt nach dem Aufruf der PublicVarInit eine eigene Funktion aufgerufen werden, die die Spalten modifiziert.
Zeile 99: Zeile 100:
Regex:
Regex:
  ([a-zA-Z0-9]*?)\.AddField\('','([a-zA-Z0-9]*?)'[\s]*,[\s]*([a-zA-Z0-9\s\-\+\_]*?)[\s]*,(tajLeftJustify|tajRightJustify)[\s]*,'(C|N)'\);
  ([a-zA-Z0-9]*?)\.AddField\('','([a-zA-Z0-9]*?)'[\s]*,[\s]*([a-zA-Z0-9\s\-\+\_]*?)[\s]*,(tajLeftJustify|tajRightJustify)[\s]*,'(C|N)'\);
Ersetzen durch:
Ersetzen durch:
  qRep_SAddGruppe(EZ, '\1', '\2', \3, \4, '\5'); //Ersetzt
  qRep_SAddGruppe(EZ, '\1', '\2', \3, \4, '\5'); //Ersetzt
oder
(\s*\/{0,2}\s*)(.*?)\.AddField\((?:\s*'.*'\s*),(\s*'.*?'\s*),(\s*.*?\s*),\s*(tajLeftJustify|tajRightJustify|tajCenter)\s*,\s*('[CDN]')\s*\);
Ersetzen durch:
$1qRep_SAddGruppe(EZ, '$2', $3, $4, $5, $6);
{{Hinweis|Manuelles ersetzen von SetRowLength mit SCalc nötig!}}
{{Hinweis|Manuelles ersetzen von SetRowLength mit SCalc nötig!}}

Aktuelle Version vom 15. Juli 2016, 09:09 Uhr

Dies ist eine zugriffsgeschützte Seite.


Admin-Hilfe

OBS-Administration / Installation
kundenspezifische Anpassungen
OBS Protokolle
Shop-Administration

Mit Version 001601 wurden das Spaltenlistenobjekt der Drucke überarbeitet. Es beinhaltet jetzt nicht nur die absoluten Größen und den Namen, sondern auch die vorgesehene relative Größe und einen Gruppennamen, anhand dessen nachträgliche Änderungen einfacher möglich sind.

Funktionen

Gruppen/Spalten hinzufügen

HINWEIS: Bei Mehrfachdrucken können Probleme auftreten, wenn im Druck die Spalten auf jeder Seite neu definiert werden. Diese Probleme können entweder mit qRep_SReset(EZ); am Anfang des Drucks oder qRep_SDeleteGruppe(EZ, 'gruppenname'); vor dem Anlegen der Gruppe verhindert werden.
var alt : TStandardListe;
begin
    xPosition  := iLinkerRand;
    nGesBreite := 0;
    alt := TStandardListe.Create();
    alt.AddField(,'alt1',20,tajLeftJustify,'C');
    alt.AddField(,'alt2',30,tajLeftJustify,'C');
    alt.AddField(,'alt3',10,tajLeftJustify,'C');
    alt.AddField(,'alt4',15,tajLeftJustify,'C');
    SetRowLength(alt);
    alt.free;
end;
begin
    qRep_SAddGruppe(EZ, 'neu','neu1',20,tajLeftJustify,'C');
    qRep_SAddGruppe(EZ, 'neu','neu2',30,tajLeftJustify,'C');
    qRep_SAddGruppe(EZ, 'neu','neu3',10,tajLeftJustify,'C');
    qRep_SAddGruppe(EZ, 'neu','neu4',15,tajLeftJustify,'C');
    qRep_SCalc(EZ, 'neu', iLinkerRand, iSeitenbreite);
end;

Die Nutzung der Standardliste entfällt, Spalten werden direkt über qRep_SAddGruppe(EZ, cGruppenname, cSpaltenname, nRel.Größe, Ausrichtung, Datentyp); definiert.
Anschließend muss die absolute Größe der Spalten der erstellten Gruppe mit qRep_SCalc(EZ, cGruppenname, nAnfang, nEnde); neu berechnet werden.

Berechnen der Spaltenbreiten

qRep_SCalc(EZ, cGruppenname, nAnfang, nEnde);

Gruppen/Spalten löschen

Zum Löschen gibt es zwei Befehle:

qRep_SDelete(EZ, cSpaltenname);
qRep_SDeleteGruppe(EZ, cGruppenname);
HINWEIS: Nach dem Löschen von einzelnen Spalten muss die Gruppe mit qRep_SCalc neu berechnet werden!

Spalten nach einer anderen einfügen

Es können jetzt Spalten an einer bekannten Position eingefügt werden:

qRep_SAddGruppeNach(EZ, cGruppenname, cSpaltenname, nRel.Größe, Ausrichtung, Datentyp, cVorgruppe);
HINWEIS: Nach dem Hinzufügen von Spalten muss die Gruppe mit qRep_SCalc neu berechnet werden!

Relative Größe von Spalten anpassen

Die relative Größe von Spalten kann jetzt einfach über eine Funktion geändert werden.

qRep_SSetRelSize(EZ, cSpaltenname, nNeueGröße);
HINWEIS: Nach dem Ändern der relativen Größe von Spalten muss die Gruppe mit qRep_SCalc neu berechnet werden!

Eigenschaften abrufen

Anzahl der Gruppen

qRep_SCount(EZ);

Relative Gesamtbreite einer Gruppe

qRep_SGruppeRelSize(EZ, cGruppenname);

Anwendungsbeispiele

Die neuen Funktionen werden auch in einer Beispieldatei zusammengefasst. Diese Datei kann als Auftrags-Userdruck in ein Test-OBS kopiert und durch das Öffnen der Vorschau des normalen Drucks eines beliebigen Auftrags ausgeführt werden. >> Download Beispieldatei <<

Anstatt für kleine Änderungen die PublicVarInit kopieren zu müssen, kann jetzt nach dem Aufruf der PublicVarInit eine eigene Funktion aufgerufen werden, die die Spalten modifiziert. Diese Funktion löscht die Positionsspalte und fügt eine Spalte Bemerkung hinter die Spalte Einheit ein.

procedure CustomVarInit();
begin
    qRep_SDelete(EZ, 'Posnr');
    qRep_SAddGruppeNach(EZ, 'aBody', 'Bemerkung',20 ,tajLeftJustify ,'C', 'Einheit');
    qRep_SCalc(EZ, 'abody', iLinkerRand, iSeitenbreite);
end;

Diese Funktion kann beispielsweise bedingt Spalten entfernen:

procedure CustomVarInit();
begin
    if (not Ja('Preis anzeigen?')) then begin
        qRep_SDelete(EZ, 'epreis');
        qRep_SDelete(EZ, 'gpreis');
        qRep_SCalc(EZ, 'abody', iLinkerRand, iSeitenbreite);
    end;
end;

Übersicht

qRep_SAddGruppe(EZ, cGruppenname, cSpaltenname, nRel.Größe, Ausrichtung, Datentyp);
qRep_SAddGruppeNach(EZ, cGruppenname, cSpaltenname, nRel.Größe, Ausrichtung, Datentyp, cVorgruppe);
qRep_SCalc(EZ, cGruppenname, nAnfang, nEnde);
qRep_SDelete(EZ, cSpaltenname);
qRep_SDeleteGruppe(EZ, cGruppenname);
qRep_SSetRelSize(EZ, cSpaltenname, nNeueGröße);
qRep_SCount(EZ);
qRep_SGruppeRelSize(EZ, cGruppenname);

Ersetzen RegEx

Regex:

([a-zA-Z0-9]*?)\.AddField\(,'([a-zA-Z0-9]*?)'[\s]*,[\s]*([a-zA-Z0-9\s\-\+\_]*?)[\s]*,(tajLeftJustify|tajRightJustify)[\s]*,'(C|N)'\);

Ersetzen durch:

qRep_SAddGruppe(EZ, '\1', '\2', \3, \4, '\5'); //Ersetzt

oder

(\s*\/{0,2}\s*)(.*?)\.AddField\((?:\s*'.*'\s*),(\s*'.*?'\s*),(\s*.*?\s*),\s*(tajLeftJustify|tajRightJustify|tajCenter)\s*,\s*('[CDN]')\s*\);

Ersetzen durch:

$1qRep_SAddGruppe(EZ, '$2', $3, $4, $5, $6);
HINWEIS: Manuelles ersetzen von SetRowLength mit SCalc nötig!