Dienstag, 22. Mai 2012

Haltbarkeitsdatum in der Medizintechnik

Haltbarkeitsdatum und Chargenverwaltung

AvERP Standard-Funktionalität: Haltbarkeit in Tagen kann im Artikelstamm zugeordnet werden.
Für Chargen verwalteten Artikel wird dann automatisch ein Haltbarkeitsdatum beim Erstellen der Charge berechnet.

-Erweiterung:
Dialog zum Setzen des Haltbarkeitsdatum beim Erzeugen einer Charge im Wareneingang und im Fertigungsauftrag.



Haltbarkeitsdatum und Seriennummernverwaltung

AvERP bietet im Standard nicht die Möglichkeit für Seriennummern verwaltete Artikel ein Haltbarkeitsdatum zu pflegen.

Lösung:

        Führen des Haltbarkeitsdatums im Sachmerkmal "EPD"

Utility "Haltbarkeitsdatum zuordnen"
setzt und ändert das Haltbarkeitsdatum im Sachmerlmal EPD aus dem Kontext der Seriennummer.

 Dialog zum Setzen des Haltbarkeitsdatums

  - im Wareneingang

 - aus dem Fertigungsauftrag

    Über POPUP aus dem Fenster Seriennummern
    aufzurufen nach Anlage der Seriennummern.


Seriennummer : Haltbarkeit zuordnen

Das Utiltity „Haltbarkeit zuordnen" wird aus dem Kontext Seriennummer aufgerufen. (z.B. Seriennummer durch Doppelklick aus einem Buchungsfenster aufrufen.)

Das Tagesdatum wird vorgegeben -
Haltbarkeitsdatum eingetragen und über „Setzen"
der aktuellen Seriennummer zugeordnet.

Anlage des Templates SNREPD und des Sachmerkmals
EPD erfolgt automatisch.

Im Reiter"2.Sachmerkmale" wird anschließend beim Aufruf der Seriennummer das Haltbarkeitsdatum EPD
angezeigt.

Änderung des Haltbarkeitsdatuns ist sowohl über das
Utilitity, als auch direkt im Sachmerkmalsfenster möglich.

Erfassen Haltbarkeitsdatum im Wareneingang und Fertigungsauftrag

Die Seriennummern werden im Fenster „Zugewiesene Seriennummern“ zunächst angelegt.

Über das PopUP „Haltbarkeit“
wird der Dialog „Haltbarkeitsdatum – Für alle SNR setzen“ aufgerufen.



Über Doppelklick auf die Charge wird der Buchungs-kontext - hier Zuordnung F-Auftrag aufgerufen.

Doppelklick öffnet die Chargenposition.

In der Chargenposition wird das Haltbarkeitsdatum
in einem änderbarem Feld angezeigt.


Montag, 14. Mai 2012

Nachtrag: Kalkulation Arbeitsplan/Fremdfertigung - Beistellteile

zum Thema:
Falscher Einstandspreis für die Kosten der Beistellteile!  Der prozentuale Aufschlag für z.B Fracht und Spesen, der auf den Listenpreis des Lieferanten aufgeschlagen wird, wird genauso auf den Einstandspreis der Beistellteile aufgeschlagen -wahrscheinlich falsche Berechnungsreihenfolge - es fallen wahrscheinlich auch Frachtkosten für die Anlieferung der Beistellteile an, aber bestimmt nicht die Spesen des Fremdfertiger, mit denen man die Rüstkosten abgedeckt hat.
gibt es neue Erkenntnisse:
AvERP versucht über den Schalter Mandantenverwaltung 3.Artikel Zusatzkosten in Kalk.Preis
Einkaufs-Zusatzkosten wie Spesen, Fracht, Zoll entweder mit in den Einstandspreis einfließen zu lassen oder aber das zu unterlassen.
Wenn gesetzt, werden die prozentualen Zusatzkosten auch auf die Materialkosten für Beistellteile aufgeschlagen.
Abhilfe schafft eine Anpassung im Trigger TRIGGER BSAL_BIU0 FOR BSAL

 -- Preise rechnen
    EXECUTE PROCEDURE P_BSAL_PREIS (NEW.LISTPREIS, NEW.BWAER_ID_WAERUNGKB, NEW.GPRABATT,
                                    NEW.GPNRABATT, NEW.GPSPESEN, NEW.GSPESEN, NEW.FRACHT,
                                    NEW.GFRACHT, NEW.ZOLL, NEW.GZOLL, NEW.GBEISTELL,
                                    NEW.GPREIS, 'LISTPREIS', NEW.BMAND_ID)
    RETURNING_VALUES ( NEW.LISTPREIS, NEW.GPRABATT, NEW.GPNRABATT, NEW.GPSPESEN, NEW.GSPESEN,
                       NEW.FRACHT, NEW.GFRACHT, NEW.ZOLL, NEW.GZOLL, NEW.GBEISTELL, NEW.GPREIS);

    -- GK 06.06.2006 Rabatt bei Kalkulationspreis berücksichtigen
    IF (NEW.GPRABATT <> 0.0) THEN
      KALKVORGABE = NEW.LISTPREIS * (1 - (NEW.GPRABATT / 100.00));
    ELSE
      KALKVORGABE = NEW.LISTPREIS;
    -- Kosten der Beistellteile berücksichtigen
    SELECT A.BSALZUSATZ
    FROM BMAND A
    WHERE A.ID = NEW.BMAND_ID
    INTO :BSALZUSATZ;
    /* Aenderung US: 14.05.2012 09:57:22 :*/
    IF (BSALZUSATZ = SJA) THEN
      KALKVORGABE = NEW.GPREIS;  /* Aenderung US: 14.05.2012 09:57:01 :*/
    else
      KALKVORGABE = KALKVORGABE + NEW.GBEISTELL;
    -- aber nicht mit %_Aufschlag Spesen,Zoll,Fracht berechnen

    EXECUTE PROCEDURE P_BSAL_KALPREIS(NEW.BSA_ID_LINKKEY, NEW.BLIEF_ID_LIEFNR, :KALKVORGABE,
                                      NEW.BWAER_ID_WAERUNGKB, NEW.PRBASIS,NEW.BMAND_ID)
    RETURNING_VALUES (NEW.KALKPREIS_HW, NEW.KALKPREIS_FW, :NOK);
    --exception debug_me :kalkvorgabe||' '||NEW.KALKPREIS_FW;
    -- nur für Compilermeldung
    NOK = NOK;

    -- Sollen Fracht/Zoll/Spesen auf den Kalkulationspreis aufgeschlagen werden
    /*
    BEGIN
      NEW.KALKPREIS_FW = (((NEW.GPSPESEN / 100) * NEW.KALKPREIS_FW) +
                          ((NEW.ZOLL / 100) * NEW.KALKPREIS_FW) +
                          ((NEW.FRACHT / 100) * NEW.KALKPREIS_FW) +
                          NEW.KALKPREIS_FW);
      NEW.KALKPREIS_HW = (((NEW.GPSPESEN / 100) * NEW.KALKPREIS_HW) +
                          ((NEW.ZOLL / 100) * NEW.KALKPREIS_HW) +
                          ((NEW.FRACHT / 100) * NEW.KALKPREIS_HW) +
                          NEW.KALKPREIS_HW);
    END
    */
    /* Aenderung US: 14.05.2012 09:35:27 :*/

Samstag, 5. Mai 2012

Kalkulation Einstandspreise über Fremdarbeitsgänge

Zum Wochenende mußte ich mit der Frage beschäftigen, wie in AvERP Kosten für Fremdarbeitsgänge in die Kalkulation von Einstandspreisen eingehen. So kam im Stamm-Arbeitsplan den Arbeitsgängen, wenn es sich um Auswärtsarbeitsgänge handel sollte, die St.Arbeitsgang - Bestellinfo zugeordnet werden. 
Hier erfolgt eine Verknüpfung zur Artikel-Lieferanten-Relation, die zur Bestellung der Fremdarbeit beim Ausführenden benutzt wird. Für die Kalkulation der Kosten aus Fremdarbeit werden die Preise aus den Eink. Staffeln verwendet. Nun könnte man annehmen, daß eine Änderung von Preisen unter "Artikelstamm-Lieferanten" wieder in die Arbeitsgang-Besttll Info durchgetriggert wird und dann zu aktuellen Einstandspreisen aus Arbeitsplan führt. Dem ist zur Zeit aber nicht so. Vielmehr erfolgte eine automatische Preis Angleichung erst dann, wenn tatsächlich bestellt wird und die Preispflege bei der Abschluß der Lieferanten-Rechnung durchschlägt. Wird das Modul "Einkauf-Rechnungseingänge" nicht genutzt, muß die Bestellinfo händisch angeglichen werden, es sei denn, man hilft sich mit einem eigenen Trigger.

Um sauber zu kalkulieren, sollten der EK-Preis einschließlich Fracht, Spesen, Zoll, Rabatt dem Fremdarbeitsgang zugeordnet werden.

In dem Zusammenhang sind gleich zwei neue Probleme hervorgetreten:
1. Falscher Einstandspreis für die Kosten der Beistellteile!  Der prozentuale Aufschlag für z.B Fracht und Spesen, der auf den Listenpreis des Lieferanten aufgeschlagen wird, wird genauso auf den Einstandspreis der Beistellteile aufgeschlagen -wahrscheinlich falsche Berechnungsreihenfolge - es fallen wahrscheinlich auch Frachtkosten für die Anlieferung der Beistellteile an, aber bestimmt nicht die Spesen des Fremdfertiger, mit denen man die Rüstkosten abgedeckt hat.

2. Hinterhältiger Aufschlag von Nebenkosten aus "Artikel-Lieferanten" auf den Bestellpreis!

Beim Druck der Standard-Bestellung wird der Listenpreis des Lieferanten ausgewiesen, wenn im Formualr daneben aber nicht der Nettopreis
incl. Zusatzkosten exl. Rabatt ausgewiesen wird, geht im Summenpreis der Aufschlag unter. Für einen Einkäufer macht es ja Sinn Rabatte abzuziehen, aber Kosten für Fracht und Spesen werden nicht so gern schon bei der Bestellung berücksichtigt...


Hier ist der Spieltrieb wieder mit mir durchgegangen, der 1.Versuch per Mail den Blog zu füllen. Bei der Gelegenheit habe ich zuvor nch den Blog-Titel etwas sinniger auf Dr.av.ERP geändert - den durch das averpen4DAUs möchte ich nicht die Intelligenz meiner Leser beleidigen.

Montag, 9. April 2012

der richtige Zeitpunkt, mein Warenwirtschaftsprogramm auf Open Source umzustellen?

2. Frage im Interview
Interview auf SteadyNews: http://www.steadynews.de/allgemein/die-alternative-open-source-erp-und-crm-warenwirtschaftssystem-averp


SteadyNews: Wann genau ist der richtige Zeitpunkt, mein Warenwirtschaftsprogramm auf Open Source umzustellen?
Michael Schwarz: Es gibt verschiedene Gründe auf ein neues oder überhaupt auf ein ERP-System umzustellen. Eines der Gründe ist, alle Geschäftsvorfälle in einem System abzubilden, das war auch der ausschlaggebende Grund ERP-Systeme zu entwickeln.
Einer der Hauptgründe sich für ein OpenSource Programm zu entscheiden ist sich von den lästigen Lizenz-, Wartungs- und Updatekosten der kommerziellen Anbieter zu befreien um das Kapital an anderer Stelle besser einzusetzen.
Auch der Aspekt, selbst am Programm Anpassungen vornehmen zu dürfen und somit unabhängig vom Anbieter zu sein, ist für viele ausschlaggebend.
Es gibt aber auch noch einige Firmen (vor allem kleinere Firmen) die aus Kostengründen mit unterschiedlichen Programmen, die unabhängig von einander sind arbeiten. Zum Beispiel wird oft MS-Office eingesetzt. Die Angebote und Auftragsbestätigungen und der Lieferschein wird Word, die Stücklisten in Excel und die Lagerverwaltung in Access abgebildet. Das ist nur bedingt effektiv und eine Umstellung wäre auf jeden Fall von Vorteil.
Ein weiterer Grund ist, wie schon erwähnt, dass kleinere ERP-Programme oft nicht mehr ausreichen wenn das Unternehmen gewachsen ist, oder sich das Geschäftsfeld geändert hat. Da sollte man sich bei der Auswahl eines neuen Systems auf jeden Fall auch OpenSource Programme anschauen. Wir hatten schon Messekontakte, die sich sehr geärgert haben, dass sie sich AvERP in der Entscheidungsfindung nicht angeschaut hatten und jetzt für viel Geld dieselbe Funktionalität beziehen.
Bei unseren Präsentationen, die wir kostenlos durchführen, und auch bei Messeauftritten ernten wir immer wieder Erstaunen, das es solche Programme lizenzkostenfrei auf dem Markt gibt.

Dienstag, 3. April 2012

Gretchenfrage: Firebird als Classic oder SuperServer

Gibt es Erfahrung egal ob Positiv oder Negativ mit
FB 2.5 Classic-Server? 

Diese Frage stellte ich im Februar 2011 im AvERP-Forum LINUX

Habe unter OpenSuSe 11.3 64Bit, Firebird 2.5.0 (Original Firebird Classic rpm; ) installiert und problemlos mit AvERP zum Laufen gebracht.
Restore eines 1.6 GB FB1.5-AvERP2009-BackUps klappte zügig, ebenso das Kompilieren aller Prozeduren und Trigger. Hier machten sich positiv die üppigen Ressourcen: 2 mal 4-Kern-Prozessor und 12GB RAM bemerkbar.
Etwas enttäuschend war die Arbeit mit AvERP mit einem gemessenem Performance-Gewinn von lediglich 30% bei bisher bemängelten Ladezeiten für häufig benutze Masken wie Artikelstamm, Auftrag-/Pos. - da zählt wahrscheinlich eher die Prozessor-Leistung des Clients zur Interpretation der Pascal-Scripte.

Nun wurde mir von einer Seite geraten, doch lieber auf den SuperServer umzusteigen.

Laut Firebird-Doc. wegen
Superserver: Single-Process aber kein Guardian unter LINUX
Classic: Supports multiprocessing out of the box
hatte ich mich für den Classic-Server entschieden.
(auch geprägt durch die ungenügende Multiprocessing-Unterstützung des FB 1.5 unter Windows) 


Aber Versuch macht klug!!
Nachdem AvERP auf den SuperServer den Eindruck vermittelt hat: Es geht gar nichts mehr -
Administrator sollte den Server booten, damit mit AvERP weitergearbeitet werden kann,
bin ich zu dem Schluß gekommen, daß auf Mehrkern-Maschinen der Firebird-ClassicServer das Maß aller Dinge ist:

Wenn der SuperServer einen Kern zu 100% mit einer Query auslastet warten allen anderen bis diese fertig ist. Gibt es länger laufende Queries hilft nur der ClassicServer.

Vom Hybrid-SuperClassic gibt es hinreichend Hinweise in Foren, das die Stabiltät nicht immer gegeben ist. 

Heute muß ich ergänzen: auch der Firebird-ClassicServer hat in der Version 2.5.0 Bugs und Engpässe.
Unbedingt Firebird 2.5.1 einsetzen! Die Bugfixees zur Version 2.5.0 beheben das Problem:
Ein Prozeß blockiert die Lock-Tabelle - möglicherweise erzeugt eine nicht ordentlich beendet Transaktion einen Lock auf Daten - und kein anderer Firebird-Prozeß kann noch auf Daten zugreifen 
-genau wie der SuperServer hat der ClassicServer einen Bottleneck, der verhindert, daß ordentlich auf AvERP gearbeitet werden kann,
- die typische Situation, wenn mal wieder ein Server Down-Up gefordert wird.
Unter LINUX bringt ein Experimentieren mit dem Firebird Cache gar Nichts - LINUX als Betriebssystem geht mit dem Filesystem-Cache effektiver um - es gibt ja auch mehr LINUX als Firebird-Entwickler....

Unbedingt die Firebird 2.5 Release Notes zum Caching speziell FileSystemCacheThreshold beachten! Auf aktuellen POSIX-Systemen mit schnellen Platten sollte FileSystem-Caching mit dem Default Parameter von 65536 Pages größer als die Anzahl Pages der Datenbank seien!!

Ich bin der Empfehlung hier im Forum gefolgt und habe auf einer 8-Kern-Maschine den Firebird 2.5 Superserver gegen den zuvor ausgewählten Classic Server ausgetauscht.

Jetzt kann ich aber sagen, das die einzige Wahl zum Betrieb von AvERP auf Mehrkern-Maschinen, wenn AvERP hinreichend mit Daten gefüllt ist und länger laufende Queries absetzt, der Classic Server ist.
Exclamation Exclamation Exclamation
Wird der Superserver zu 100% ausgelastet, warten alle Anderen Sitzungen!
Wir hatten ganz unglücklich den Job Artikelstatistik um 14:00 Uhr laufen lassen. Vor Update auf die 2011/2-er-Version lief der Job halt 1 bis 2 Minuten und kam dem Bedürfnis der Anwender entgegen - täglich auf einem aktuellen Artikelkontext zugreifen zu können.
Nach Update läuft der Job um die 4 Stunden - das neu hinzugekommene Ermitteln der Jahresverbräuche über alle verbauten Teile bei einem Maschinenbauer dauert halt etwas länger....
Damit hatten man bis zum Erreichen dieses Kenntnisstandes den SuperServer regelmäßig abzuschießen - geht beim SuperServer bei nur einem über inet.d-gesteuerten Prozeß ja auch einfacher als auf dem ClassicServer

Diese Erfahrungen gesammelt mit:
Averp 2011.A02 / 2012.B08
auf
SUSE 11.3 64 bit
8-Kern zu 2.26 GHZ
12 GB - 4 GB für 4 virtuelle XP
(PS: 100.000 Artikel einem AvERP-Client
auf eine virtuelles WIN-XP rüberzuschicken
lastet auch eine weitere Client genutzte CPU einige Minuten zu 100% aus!) 



Ergänzender Erfahrungswert, der Nachfolgern möglicherweise schmerzliche Probleme vermeiden hilft:

Wenn der firebird keine neuen connections zuläßt:
"When client tries to connect and limit is reached, it would get an error like this one: Connection rejected by remote interface."

Betrachte: http://www.firebirdfaq.org/faq161/


Problem gelöst über erhöhen instances (viel)> 30

#
# xinetd.conf
#
# Copyright (c) 1998-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.
#

defaults
{
log_type = FILE /var/log/xinetd.log
log_on_success = HOST EXIT DURATION
log_on_failure = HOST ATTEMPT
# only_from = localhost
instances = 30

Montag, 2. April 2012

DIE Alternative: Open Source ERP und CRM Warenwirtschaft AvERP


Statement meines Partners Michael Schwarz

Für welche Branchen und welche Unternehmensgrößen ist dieses Warenwirtschaftsprogramm besonders gut geeignet?

Die ERP-Software AvERP ist in ihrem Ursprung für produzierende Unternehmen im Maschinenbausektor entwickelt und eingesetzt worden. Über die Jahre hinweg hat auf Wunsch der Anwender eine enorme Weiterentwicklung der Software, weit über diese Branche hinaus stattgefunden. So wird - und kann das Programm in fast allen Bereichen eingesetzt werden. Als Beispiel sei hier mal der Einsatz in einem Stadion eines renomierten Bundesliga Vereins, im Musikinstrumentenverleih, im Barverkauf von Waren (aber auch von Webshopanbindungen), in Automobilzulieferindustrie bis hin zum Anlagenbaus genannt sein. Natürlich gibt es noch viel mehr Branchen in denen AvERP eingesetzt wird, aber die alle aufzuzählen würde hier mit Sicherheit den Rahmen sprengen.
Das Programm ist modular aufgebaut und deckt die Bereiche Einkauf, Disposition, Verkauf (auch Barkasse), Lagerverwaltung, Fertigung, Reklamationsverwaltung, Projektverwaltung, Barcodeverwaltung Betriebsdatenerfassung, Seriennummern- und Chargenverwaltung, Qualitätssicherung inklusive der Prüfmittelverwaltung, CAD Zeichnungsverwaltung, Zeiterfassung (Personal und BDE), Informationssysteme (Managementinformationsystem und zahlreiche Statistiken), eine Fertigungsplantafel komplett ab.
Zusätzlich bietet es noch ein Dokumentenmanagementsystem und zahlreiche Schnittstellen zu anderen Programmen. AvERP ist mehrmandantenfähig (man kann also mehrere Unternehmen einbinden) und die Oberfläche ist individuell auf verschiedenen Sprachen einstellbar.
Wir selber betreuen Firmen im Maschinenbau / Fördertechnik, der Medizintechnik, der Auftragsfertigung, der Elektronikbranche und der Herstellung von Profilsystemen für den Messe- und Ladenbau.
Die Unternehmensgröße beim Einsatz von AvERP ist eigentlich nicht wirklich ausschlaggebend, da es keine Begrenzung der Useranzahl gibt. Die Hardwareseite muss natürlich entsprechend stimmen. Eingesetzt wird dieses Programm überwiegend bei mittelständischen Unternehmen. Es wird aber ebenso von sehr vielen kleinen Unternehmen genutzt. Der große Vorteil ist ja der lizenzkostenfreie Einsatz dieses Programms. So hat auch das kleine Unternehmen die Möglichkeit eine Software einzusetzen, die man sich durch den Erwerb von Lizenzen anderer Anbieter mit dem selben Leistungsumfang wahrscheinlich nicht geleistet hätte. Es wird dann häufig ein Programm eingesetzt, das gerade die bestehenden Geschäftsvorfälle abdeckt. Wenn das Unternehmen dann wächst, verändern sich oft aber die Ansprüche an die Software und es kommt dann meist nur ein teurer Softwarewechsel in Frage. Auch wir haben Kunden denen es so passiert ist und sie waren ganz erstaunt, dass es eine kostenlose Software gibt, die den großen Herstellern mittlerweile die Stirn bieten können, was bei Vergleichstests auch bewiesen wurde..

Sonntag, 25. März 2012

Keine Angst vor dem AvERP-Designer

Beim Stöbern durch die zahlreichen Reports die AvERP mitbringt trifft man oft auf Nützliches, wie z.B. den Servicebericht unter Angebots-Auftragsverwaltung Drucken. Leider wurde vom Ersteller vergessen das Logo aus dem Mandantenstamm einzublenden, sondern fix das Hersteller-Logo SYNERPY eingebunden.

Öffnen im Bearbeitungmodus aus der Druckvorschau.(Ein "alter Report" über Fast-Report 2 wird über Doppelcklick geöffnet.) zeigt, wieder über Click auf dem Logo, den Objekt Inspektor für "Picture 1".
Über die 3-Punkte-Taste auf der Eigenschaft Picture zeigt sich die direkt eingebundene Bitmap.

Bleibt als 1. die Frage wie der Report benannt ist. Ein aktuelle AvERP-Version - ich nutze zu Zeit meist die 4.2.5.65 aus dem aktuellen Release (die AvERP-Version wird über "AvERP/Hilfe/Info" angezeigt.) - zeigt mit Anmeldung "SYSDBA" den Reportnamen als Tooltip und grau eingeblendet :
hier FRDCBAUFSERV. Hilfreich ist es auch sich einen Reportnamen auszuwählen, der die zu Ändernde Eigenschaft mitbringt - nämlich das Logo aus /Averp/Stanndaten/Mandant/2. Formular zu verwenden- wie der Report "Angebot" alter FastReport   FRDCMAUSMB.

AvERP-Designer aufgerufen - als SYSDBA.
Formuarauswahl "Druckformular" gecheckt.
Reportname "FRDCMA" Anfang reicht - eingetippt um auf FRDCMAUSMB zu positionieren
und "Editieren"


Frage "Bestehendes Formular als Editervorlagebenutzen" Bestätigen und es öffnet sich die
DesignSteuerung und die Maske "FRDCMAUSB".

Rechts-Klick in der Maske läßt die Wahl zwischen
Objektinspektor und
Designreport

Ich prüfe erst einmal im Designreport, wie das Mandanten-abhängige Logo eingebunden ist.

Click auf das Logo blendet die Eigenschaften im Objekt Inspektor innerhalb des Designer eins.
Mit passiert es immer wieder, das das Fenster "Objekt Inspektor" nicht zu sehen ist. Dann hilft
Werkzeuge/Symbolleisten/Objekt Inspektor  wieder über CheckBox zu aktivieren.


 Ich sehe nun das das Objekt fLogo über [q_rep17."LOGO_F"] im DataField mit Daten versorgt wird.

Was mag q_rep17 sein?  Dann die Design Steuerung schließen und den Objekt Inspektor über der Report-Maske öffnen. Um auf q_rep17 zu Positionieren hilft es , so lange  "q" einzutippen
bis auf q_rep17 erreicht ist.
In den Eigenschaft ganz nach unten gescrollt zeigt das passende SQL
mit Click auf [TStrings] - nämlich - wie gedacht - SELECT * FROM V_BMAND.
Interessant sind noch die Verknüpfungen zu anderen Queries in MasterSource und MasterLinks.
Führend für das MandantenLogo sollte die Zuordnung Auftrag - Mandant sein.

MasterSource ist damit über d_rep1 zugeordet - dahinter liegt mit q_rep1 SELECT * FROM V_BAUF und die Verknüpfung erfolgt über MasterLinks (V_BMAND.)ID =V_BAUF.BMAND_ID.

Mit dieser Vorbereitung mach ich mich nun an den Servivebericht und öffne
FRDCBAUFSERV im Designer. Wie erwartet ist das DataField zu Picture1 leer.

Öffnen der q_rep17 im Objekt Inspector zeigt, daß die q_rep17 nicht belegt ist und die q_rep1
wie erwartet auf den Auftrag V_BAUF zeigt. Schnell im Objekt Instpektor einfach die q_rep17
analog dem Druck Angebot gefüllt und zur Sicherheit "Formular + Report speichern".

Design Editor öffnen und dem Report die q_rep17 bekannt machen über

//Design Editor/Datei/Variablenliste/Datenquellen   fr_rep17 hinzufügen
und genauso Feldaliase q_rep17 hinzufügen!
Nach Schließen und Öffnen Designer stehen dem Report wie in der Symbolleiste
DB-Feld einfügen, die Felder der View V_BMAND und damit auch das Mandanten-Logo
als Datenfelder zur Verfügung.


Und der 1.Druckversuch zeigt das wie immer nicht das Gewünschte passiert, es wird statt des Mandanten-Logos einfach "GarNichts" gedruckt!

Warum??

Das fenste Logo wurde bisher im Band "Seitenkopf" gedruckt. Steht dort etwa der aktuelle Auftrag und der daran gebundene Mandant nicht zur Verfügung?

Testweise das Logo ins Band dadrunter verschoben.

Und siehe da - Hypothes bestätigt - jetzt taucht ein Logo auf - natürlich nicht dort wo es gewünscht wird.

Jetzt kann der Rest ja nicht mehr so schwer sein.
Aber mühseelig - 

Die Höhe des bisherigen Seitenkopfes reduziert. Das Unterformular1 auf den frei werdenden Platz
ausdehnen- entweder über Maus - etwas für ruhige Hände - oder durch Eingabe im Objekt Inspektor
bei Top und Height.


Ergebnis wird fürchterlich - der vorher ordentlich desigte Report wird über 3 Seiten verteilt.
Gut wenn man eine Rollback - Möglichkeit hat. Entweder indem die Frage "Report speichern" einmal Bejaht wird, dann wird eine *.frf-Datei im lokalen Programm-Verzeichnis unter MASKEN abgespeichert - und kann über den Designer über Report-Laden zurückgeholt werden, oder man hat sich das vom AvERP angelegt *.RES-File im MASKEN-Verzeichnis unter anderem Namen gesichert
und kann es nach Umbenennen auf Report *. RES über RES-Laden erneut einlesen
oder schafft es im äußersten Notfall das Ressource-File direkt auf der Datenbank aus der Tabelle
A_MASKEN_HIST zu restaurieren. (A_MASKEN.RES per IBExpert BlobViewer nach Datei
FRDCBAUFSERV.RES speichern un die Datei per Designer "aus *RES laden" einlesen.)

Geglückt : jetzt etwas vorsichtiger mit der Kosmetik.
Noch die Lücken im Rahmen schließen und Servicebericht gegen Logo freistellen.

Genau diese Änderung erzeugt ungewüschte Seiten!

Nun halt Schritt für Schritt herantasten.

Das Problem "3 statt eine 1 Seite" hängt irgendwie mit der Fußzeile zusammen. Nach längerem erfolglosen problieren mit dem Seitenfuß erinnere ich mich daran, daß in den AvERP-Reports gerne die Fußzeile übersteuert wird. Und tatsächlich, beim Öffnen des Probedrucks im Bearbeiten Modus
wird ein Feld Seitenfuss_T2 angezeigt das zur allgemeinen Verwirrung des unvoreingenommenen AvERP-DAUs im Seitenkopf liegt, aber die die Parameter für TOP, HEIGHT, LEFT, WIDTH
über das Memofeld ganz brutal überschreibt:

Es lohnt immer im Designer auf ein angedeutetes Script-Feld zu klicken - es kann WerWeißWas dahinter stecken.