PMS32 Online- Hilfereferenz

Neuerungen der Version V 1.0.04

Hier finden Sie die wichtigsten Neuerungen von PMS32


Inhalt:

Ø                 Grundsätzliches

Ø                 Losbaugruppen

Ø                 Edelmetalle

Ø                 Neue Menüstrukturen (C-Structure)

Ø                 Einkaufsdaten und Bestellvorschlag

Ø                 OPOS – Verwaltung

Ø                 Vertragsverwaltung

Ø                 Controlling

Ø                 Kalkulation

Ø                 Navigator

Ø                 WEB-Buttons

Ø                 Farben in Listen

Ø                 Barcode Scanner Funktionen

Ø                 ECM (Enterprise Content Management) System (Archivieren per PDF)


Grundsätzliches

In Vorbereitung auf die SQL-Server Unterstützung von PMS32 wurden viele interne Änderungen vorgenommen, die dem Anwender verborgen bleiben. Dadurch sind wir dem Mehrschichtmodel, bei dem die Datenbank ausgetauscht werden kann, einen erheblichen Schritt näher gekommen.

Zudem liegt aber auch noch ein Stück Arbeit vor uns welche auch die Umstrukturierung der Masken beinhaltet.

 


Größenveränderbare Masken

Um Anwendern mit großen Bildschirmen und hohen Auflösungen entgegen zu kommen haben wir es ermöglicht, die Maskengröße auf den PMS Desktop anzupassen und somit die Anzeige von Listen vergrößern zu können.

Die Einstellung wird im Standard pro Maske und Benutzer gespeichert und beibehalten, auch nach einem Neustart von PMS32. Über eine globale Einstellung in der Datei Globals.Define kann diese Einstellung für das gesamte System vorgegeben werden. U. A. ist es auch möglich, generell alle Masken im Vollbildmodus öffnen zu lassen.

 


Variable Benutzer – Menüs

Um das System noch flexibler zu machen und es dem Systembetreuer zu ermöglichen, PMS an die eigenen Wünsche anpassen zu können, wurden umfangreiche Änderungen an den Eingriffsmöglichkeiten vorgenommen. Eine detaillierte Beschreibung finden sie in der Hilfe unter „Neue Menüstrukturen“.

Wegen den umfangreichen Umstrukturierungen können leider nicht alle Anpassungen der System- und Usermenüs vollständig übernommen werden. Beim ersten Start der neuen Version werden alle Menü- und Scriptdateien aus dem Verzeichnis .\PMS32\MENUS\ konvertiert und in der neuen Struktur im Verzeichnis .\PMS32\SYS\MYSYS\ gespeichert.

Menüdateien,  die sich in vorhandene PMS-Menüs nahtlos einfügten können leider nicht konvertiert werden. Die Funktion selbst und der Aufruf werden konvertiert, aber der Einsprung muss ggf. neu definiert werden.

Häufig vorkommende Einsprünge wurden im Menüpunkt „Datenaustausch“ vorgenommen, daher hier ein Beispiel wie diese Struktur geändert werden muss:

Diese Datei enthält Informationen, wenn Änderungen an Menüs der Version 1.0.03 vorgenommen wurden,

und diese jetzt nicht mehr korrekt angezeigt werden, da man sich vorher auf ein POPUP aufgeschaltet hatte.

Ein Beispiel für eine "alte" Menüdefinition:

 

[B01]                                                                     */ In der Artikelstammumgebung

(DATENAUSTA)                                                       */ Definiton des PAD's

       {DATENAUSTA}                                                */ Definition des POPUP's

       ?1?                                                                       */ BAR-1

       def='PROMPT "\<Import" SKIP FOR .F.'

       ?4?                                                                       */ BAR-4

       def='PROMPT "\<Transfer" SKIP FOR .F.'

       {IMPORT}                                                           */ POPUP

             ?200?

             def='PROMPT "\-"'

             ?201?

             def    ='PROMPT "EPLAN electric P8"'

             ON     ="ACTIVATE POPUP SPEZPOPI"

             {SPEZPOPI}

             def    ="MARGIN RELATIVE SHADOW SCROLL COLOR SCHEME 4"

                    ?101?

                    def='PROMPT "EPLAN electric P8 Datenimport nur Neuanlage (Artikeldaten)"'

                    ON_SELECTION="=DOMENSC('SYSTEM26.INI','EPLANP8.IMPORT','',1,1)"

 

Nach der Umsetzung des obigen Codes (funktioniert so nicht mehr):

 

*/ Originalfile: .....

<+DATENAUSTA:§&poChild.AddItem(m.pcName)>

       <+DATENAUSTA:§&poChild.AddItem(m.pcName)>

             <+_NO_VALID_NAME_:§&poChild.AddItem(m.pcName)>

                    Skipfor=§=.F.

                    Caption=§\<Transfer

             <>

       <>

       <+IMPORT:§&poChild.AddItem(m.pcName)>

             <+_NO_VALID_NAME_:§&poChild.AddItem(m.pcName)>

                    Caption=§EPLAN electric P8

             <>

       <>

       <+SPEZPOPI:§&poChild.AddItem(m.pcName)>

             Colorclauses=§ COLOR SCHEME 4

             <+_NO_VALID_NAME_:§&poChild.AddItem(m.pcName)>

                    Caption=§EPLAN electric P8 Datenimport nur Neuanlage (Artikeldaten)

                    Clickcommand=§=DOMENSC('SYSTEM26.INI','EPLANP8.IMPORT','',1,1)

             <>

       <>

<> 

 

Das umgesetzte Menü würde so nicht unbedingt ausgeführt und angezeigt werden...

Durch die Umstellung der Menüstrukturen sind alle Menüs in viele "kleine" Dateien zerlegt worden.

Gehen wir zunächst vom Menü für fast alle B01xx Masken aus...

 

Menüdatei: menu.b01.mpc

       */ Komplettes Menü für B01 Masken

       <_precord:§&poChild.AddItem(m.pcName)>

       </#§popup._precord.mpc>

       <_pedit:§&poChild.AddItem(m.pcName)>

       </#§popup._pedit.mpc>

       <_pnews:§&poChild.AddItem(m.pcName)>

       </#§popup._pnews.mpc>

 

       */ Um diesen Eintrag geht es...

       <_pexchange:§&poChild.AddItem(m.pcName)>

       </#§popup._pexchange.mpc>

 

       <_pfile:§&poChild.AddItem(m.pcName)>

       </#§popup.file.b01.mpc>

       <_pblock:§&poChild.AddItem(m.pcName)>

       </#§popup._pblock.mpc>

       <_pextras:§&poChild.AddItem(m.pcName)>

       </#§popup.extras.b01.mpc>

       <_phelp:§&poChild.AddItem(m.pcName)>

       </#§popup._phelp.mpc>

 

Das Popup _pexchange...

 

*/ POPUP Datenaustausch via EXCEL und andere

|§&poOTS.CopyItems("_pexchange")

 

*/ Weitere Definition...

 

<_pexchange_import:§&poChild.AddItem(m.pcName)>

</#§popup._pexchange_import.mpc>

 

<_pexchange_export:§&poChild.AddItem(m.pcName)>

</#§popup._pexchange_export.mpc>

<Bar?:§&poChild.AddItem("_PMS_SP")>>

<_pexchange_grid:§&poChild.AddItem(m.pcName)>

</#§popup._pexchange_grid.mpc>

<Bar?:§&poChild.AddItem("_PMS_SP")>>

<_ptransfer:§&poChild.AddItem(m.pcName)>

</#§popup._ptransfer.mpc>

<Bar?:§&poChild.AddItem("_PMS_SP")>>

<_pbarcode:§&poChild.AddItem(m.pcName)>

</#§popup._pbarcode.mpc>

 

Von der Root aus gesehen müssen unsere Änderungen unter: root._pexchange._pexchange_import vorgenommen werden...

Die Datei sollte dann unter MySys\ mit dem Namen popup._pexchange_import.mpc gespeichert wreden...

 

*/ Mein spezielles Popup für den Import

 

<_EplanElP8:§&poChild.AddItem(m.pcName)>

       Caption = "EPLAN electric P8"

       ClickCommand = §=DOMENSC('SYSTEM26.INI','EPLANP8.IMPORT','',1,1)

<> 

 

Wenn man das ganze unter dem Menüpunkt B01 speichern möchte...

 

<+_pexchange>

       <+_pexchange_import>

             <_EplanElP8:§&poChild.AddItem(m.pcName)>

                    Caption = "EPLAN electric P8"

                    ClickCommand = §=DOMENSC('SYSTEM26.INI','EPLANP8.IMPORT','',1,1)

             <>

       <>

<> 

 

Dann muss obige C-Structure unter dem Namen menu.b01.mpc im Ordner SYS\MySys\ gespeichert werden!

 

Die neuen Menüstrukturen können relativ einfach abgefragt werden...

In jedem Menü kann unter Hilfe-Informationen zum Menü die "neue" Struktur abgefragt werden.

Öffnen Sie nach dem Menüaufruf einen Editor und kopieren Sie die Daten aus der Zwischenablage in den Editor

 


Die „NameSpace“ – Struktur

Zudem wurden zahlreiche PMS-Funktionen bereits in eine sog. Namespace-Struktur umgesetzt um so eine bessere Übersicht und Dokumentation der Funktionen zu erhalten. Die komplette Struktur ist offen gelegt so dass Entwickler von Funktionserweiterungen oder Benutzer die sich mit Reporterstellung oder Scriptanpassungen beschäftigen eine detaillierte Hilfe erhalten. Damit können Anpassungen zeitnah und effizient umgesetzt werden.

Eine Strukturierte Anzeige der Funktionen erhalten Sie durch Aufruf des Programms PMS32M.EXE

 


Optimiertes Scripting

Um das Nachladen und Umwandeln der C-Structur-Textdateien zu optimieren, werden diese nach dem ersten Aufruf in der O-Structure-Objekten gespeichert. Dies hat zur Folge, dass Änderungen in den Textdateien sich erst nach dem Neustart von PMS32 auswirken. Um jedoch die Änderungen vernünftig testen zu können wäre es sehr umständlich immer wieder neustarten zu müssen, deshalb wurde eine Funktion implementiert um die gespeicherten Objekt-Informationen zurücksetzen zu können. Diese Funktion kann über das Hauptmenü unter dem Punkt „Nützliches – Tools – Alle C-Strukturen zurücksetzen“ aufgerufen werden.

 


TAPI-Interface

Über das TAPI-Interface können Telefonnummern von PMS an ein angeschlossenes Telefon übergeben werden. Voraussetzung dafür ist ein installierter TAPI-Treiber im Betriebssystem und die Einstellung welche Station an welches Telefon angeschlossen ist. Diese Information wird in der Datei TAPI.DEFINE vorgenommen.

Wird die TAPI-Schnittstelle aus PMS heraus aktiviert, wird automatisch ein Beispiel im LOG-Verzeichnis der Station abgelegt. Aus dieser Datei können die nötigen Informationen zur Einstellung in der Datei TAPI.DEFINE entnommen werden.

Bitte denken Sie daran nie direkt Änderungen an Dateien im Verzeichnis .\SYS\ vorzunehmen. Kopieren Sie Datei zuvor in das Verzeichnis .\SYS\MYSYS\ und fügen Sie dann die Änderungen ein! (Alle Dateien im Verzeichnis .\SYS\ werden bei einem Update überschrieben)

 

Derzeit wird das TAPI-Interface über den Navigator im Bereich Adressen aktiviert. Wird ein solcher Bereich im Navigator angewählt und eine Telefonnummer eines Adresseintrags mit doppelklick aktiviert, versucht PMS diese Rufnummer an das TAPI-Interface zu übergeben. Dabei wird die Beispieldatei im LOG-Verzeichnis erstellt. Wurden alle Einstellungen korrekt vorgenommen, wird durch doppelklick auf die Telefonnummer die Rufnummer am angegebenen Telefonapparat gewählt.

 

Weitere Informationen über die TAPI-Schnittstelle finden sie in der MyInfo-Struktur (PMS32M.EXE) unter My.System.TAPI…

 

Aufbau der Datei TAPI.DEFINE:

 

*/ Definitionen der TAPI Steuerung

cPreCall="0"

cPreCallUse=">3"

 

*/ Dieses Script wird benötigt, wenn diese Datei über Vererbung in MYSYS kopiert wird

*/    Damit wird das Array aus der Datei aus dem Verzeichnis SYS dieser Datei gelöscht und hier neu aufgebaut

*/    Diese Vorgehensweise ist bei vererbten Arrays immer notwendig

*/ Wichtig! Damit dieses Script aktiv wird, muss der Eintrag (Prozentzeichen) durch % ersetzt werden

Clear__Array=>

%LOCAL lni

FOR m.lni = oThis.Count TO 1 STEP -1

      IF oThis.GetKey(m.lni)="atapistations"

            oThis.Remove(m.lni)

      ENDIF

NEXT m.lni

< 

 

*/ Definition der TAPI Zuordnung

aTAPIStations[2,2]=.F.

aTAPIStations[1,1]="STATION-1"

aTAPIStations[1,2]="TAPI-INTERFACE-NAME-1"

aTAPIStations[2,1]="STATION-2"

aTAPIStations[2,2]="TAPI-INTERFACE-NAME-1"

 

Über die Eigenschaft „cPreCall“ kann eingestellt werden, welche Vorwahl vor jeden Wahlvorgang vorgewählt werden soll. Hiermit kann die Amts-Kennziffer vorbelegt werden. Um auch Interne Nummern wählen zu können wird in der Eigenschaft „cPreCallUse“ eingestellt, ab welcher Rufnummernlänge die Vorwahlnummer angewendet wird. Wenn Sie Zweistellige Internrufnummern haben geben Sie „>2“ ein um zu erreichen, dass ab einer Rufnummernlänge von drei Zeichen die Amts-Kennziffer vorangestellt wird.

 

Bei den Nachfolgenden Zeilen der Datei bitte den Begriff (Prozentzeichen) durch das Zeichen „%“ zu ersetzen, wie im obigen Beispiel gezeigt.

 

Die Eigentliche Definition und Zuordnung der Telefon-Rufnummern zu den Stationen erfolgt über deren Stations-Namen und den Namen aus dem TAPI-Interface.

Ist das TAPI-Interface auf dem PC installiert, können Sie den Namen auch aus den „Telefon und Modem“ der Windows Systemsteuerung ersehen. Jedoch werden hier meist nicht die benötigten Namen ersichtlich, daher finden Sie diese Werte in der Datei TAPI.DEFINE.LOG im Verzeichnis .\LOG\ der Station bzw. nach dem Beenden von PMS32 in dem Serververzeichnis .\LOG\<Station # User>\TAPI.DEFINE.LOG.

 

 

Die TAPI-Funktion kann ebenso in den Adressmasken aktiviert werden. Lesen Sie dazu den Punkt „Konfiguration der WEB-Buttons

 


Konfiguration der WEB-Buttons

Die Schaltflächen in den Adressmasken lassen sich nun ebenfalls über die C-Structure Definitionen steuern, hierzu ein Beispiel um mit dem Telefon-Button eine Rufnummer über TAPI zu wählen.

 

 

Es gibt verschiedene Arten von sog. WEB-Buttons:

Symbol

Bedeutung

Funktion

Definitionsdatei

PeopleButton

Startet die Internetseite www.123people.de

Web.PeopleButton.usr

MapButton

Startet Google Maps

Web.MapButton.usr

PhoneButton

Startet die Internetseite www.123people.de

Web.PhoneButton.usr

MailButton

Startet den E-Mail Client

Web.MailButton.usr

WebButton

Startet den Browser

Web.WebButton.usr

 

 

Hier ein Beispiel, wie man den PhoneButton so ändert, dass er über die TAPI-Schnittstelle die Rufnummer wählt. Zur Konfiguration siehe auch TAPI-Interface.

 

Das Originalscript wird nur an den rot markierten Stellen geändert:

 

*/ Definition für den PHONE Button

 

*/ Wann wird der Button gedimmt?

ValueDim = §EMPTY(EVALUATE(IIF(EMPTY(This.cControlInfo),"m.telefon",This.cControlInfo)))

*/ Welches ICON soll dargestellt werden?

Icon = §default_favicon.png

 

*/ Dieses Script wird ausgeführt im Click-Event des Button's

*/ Bekannt zu dieser Zeit sind:

*/    poActiveForm      - Aktive Form [O]

*/    poActiveFormset   - Aktives Formset [O]

*/    poThis                  - Der Button [O]

*/ Der Button enthält eine Methode, die Strings WEB Komform umwandelt und umgekehrt...

*/    cWebString = StringToWeb(cString)

*/    cString = WebToString(cWebString)

>cUrlCode

*/ Dies ist der Code, der für den URL Aufruf benötigt wird.

*/ Die Rückgabe muss vom Typ STRING sein!

LOCAL lcCode,lcVorwahl,lcFon,llHeim

llHeim        = EVALUATE(IIF("C52"$poThis.cControlInfo,"m.C52heimat","C09.heimat"))

lcVorwahl = EVALUATE(IIF("C52"$poThis.cControlInfo,"m.C52vorwahl","C09.vorwahl"))

** Vorwahl bereinigen

lcVorwahl = STRTRAN(STRTRAN(STRTRAN(m.lcVorwahl," "),"++","+"),"+","00")

lcVorwahl = IIF(EMPTY(m.lcVorwahl),"+??",m.lcVorwahl)

** Telefonnummer bereinigen

lcFon   = STRTRAN(STRTRAN(STRTRAN(STRTRAN(STRTRAN(EVALUATE(IIF(EMPTY(poThis.cControlInfo),"m.telefon",poThis.cControlInfo)),"-"),"/")," "),"("),")")

lcFon   = IIF(LEFT(m.lcFon,2)="++",SUBSTR(m.lcFon,3),m.lcFon)

lcFon   = IIF(LEFT(m.lcFon,2)="00",SUBSTR(m.lcFon,3),m.lcFon)

lcFon   = IIF(LEFT(m.lcFon,1)="+",SUBSTR(m.lcFon,2),m.lcFon)

lcFon   = IIF(LEFT(m.lcFon,1)="0",SUBSTR(m.lcFon,2),m.lcFon)

lcFon   = IIF(m.llHeim,"0"+m.lcFon,m.lcVorwahl + m.lcFon)

wait window nowait lcFon

=My.SYSTEMS.TAPI.DIAL(lcFon)

*REM* RETURN [http://www.123people.de/phone/] + m.lcFon

RETURN .null.

< 

 


Siehe auch : Hauptmenü /  Hauptindex /  Such Index /  Cursor Index /  Programm Module /  Tabellen Index /  Tabellenmodule /  Masken Index /  Programmcode Index /  Servicepacks /  Sonstiges Index

Lokale Benutzerhilfe : Meine eigene Hilfe /  Zurück zur PMS32 - Hilfe


Dateiversion:1.0.04#0000 - H.U.DD#SSFF 14.12.2010  Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32  Weitere Informationen finden Sie unter der aktuellen PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,  Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.  © PMS Compelec GmbH 2010 ® el-Projekt