SVWARE

 

Auf der SVWARE Maske wird nach jeder Eingabe eines Wertes und nach der Kontraktabwahl das zu aktualisieren AIS aufgerufen.

Folgende Nummer, IDs werden in Abhängigkeit des Feldes an das Makro übergeben. Ist der Typ eine Funktion wie z.B. die Kontraktabwahl, so konnte dem Aufruf zum aktualisieren des AIS kein eindeutiges Feld auf der SVWARE Maske zugeordnet werden.

Maskenfeld

Übergebene IDs

Nummer

Typ

LagerNummer$

ID_LAGERNUMMER

1008

Maskenfeld

ArtikelNummer$

ID_ARTIKELNUMMER

1006

Maskenfeld

LagerPlatzNummer$

ID_LAGERPLATZ

1103

Maskenfeld

Menge$

ID_MENGE

1001

Maskenfeld

ME_Nummer$

ID_ME_NUMMER

1108

Maskenfeld

FremdKtrNummer$

ID_KTRNUMMER

3003

Maskenfeld

KTR.KtrNummer$

ID_KTRNUMMER

3003

Maskenfeld

Preis$

ID_PREIS

1000

Maskenfeld

PreisEinh$

ID_PREISEINHEIT

1078

Maskenfeld

ME_NummerPreis$

ID_ME_NUMMERPREIS

1077

Maskenfeld

Netto$

ID_BETRAG

1464

Maskenfeld

SkontoKennz$

ID_SKONTIERFAEHIG

1030

Maskenfeld

ZusatzInfo$

ID_ZUSATZINFO

1353

Maskenfeld

ZusatzInfo2$

ID_ZUSATZINFO2

1358

Maskenfeld

LiefDat$

ID_LIEFDAT

1009

Maskenfeld

Liefernummer$

ID_LIEFNUMMER

1042

Maskenfeld

FiktivMenge$

ID_ME_NUMMER_FIKTIV

1825

Maskenfeld

KolloMEErgebnis$

ID_PREISBEZUG

540

Maskenfeld

GeschaeftsArt$

ID_GESCHAEFTSART

458

Maskenfeld

artirab$

ID_ZUABNUMMER

1343

Maskenfeld

rabsatz$

ID_ZUABPREIS

1242

Maskenfeld

rabnetto$

ID_BETRAGZUAB

1465

Maskenfeld

PartieGrid

ID_PARTIENUMMER

1473

Funktion

Kontraktabwahl

ID_KTRNUMMER

3003

Funktion

Nachhaltig

ID_NH_STATUS

7050

Funktion

 

Benötigte JVARS

JAVR

Funktion

Bedeutung

VORGANGHANDLE

Lesend

Mit dieser JAVR wird der aktuelle Handle des Vorgangs übergeben

WAPOSITIONHANDLE

Lesend

 

Mit dieser JVAR wird der Handle der Warenposition übergeben.

ID

Lesend

 

Mit dieser JVAR wird die Nummer der ID übergeben

FELDNAME

Lesend

Diese JVAR enthält den Namen des aufrufenden Feldes. Das Feld kann aber auch eine Funktion sein. Es wird der Feldname aus der Spalte Maskenfeld von der Tabelle drüber an das Makro übermittelt.

 

Makro Beispiel

CONST

  BUFLEN = 256;

  ID_PARTIENUMMER = 1473;

PROCEDURE TesteSVWARE();

  var

    lAus          :string;

    lsVorHandle   :string;

    lsWaposHandle :string;

    lParameter    :string;

    lFeldName     :string;

    lBuf          :string;

    lVorgHandle   :integer;

    lWaposHandle  :integer;

    lStrId        :integer;

    lFeldId       :integer;

BEGIN

    lAus          := alloc(BUFLEN);

    lBuf          := alloc(BUFLEN);

    lsVorHandle   := alloc(BUFLEN);

    lsWaposHandle := alloc(BUFLEN);

    lParameter    := alloc(BUFLEN);

    lFeldName     := alloc(BUFLEN);

    strcpy(lAus, "");

    strcpy(lsVorHandle, "");

    strcpy(lsWaposHandle, "");

    bagget("VORGANGHANDLE", lsVorHandle, BUFLEN);

    bagget("WAPOSITIONHANDLE", lsWaposHandle, BUFLEN);

    bagget("ID", lParameter, BUFLEN);

    bagget("FELDNAME", lFeldName, BUFLEN);

    StrRTrim(lFeldName);

    lWaposHandle := strtoint(lsWaposHandle);

    lFeldId      := strtoint(lParameter);

    lStrId  := StrCmp(lFeldName,  "PartieGrid" );

    if ( lStrId = 0 ) then

    Begin

      strcpy(lAus, "");

      GetValPos(lWaposHandle, ID_PARTIENUMMER, lBuf,0);

      sprintf(lAus,"Hier kommt meine UNIT TesteSVWARE Feldname <%s> Wert der Partienummer <%s>", lFeldName, lBuf);

      MessageBox( lAus , "Unit Test" , 1 );

      dbx_io ("AISREFRESH","Zeit$", "", "") ;

    End;

    free(lAus);

    free(lBuf);

    free(lsVorHandle);

    free(lsWaposHandle);

    free(lParameter);

    free(lFeldName);

END; 

 

In diesem Beispiel wird geprüft, ob das auslösende Feld, welches das Makro aufruft, die Partie ist. Wenn dies der Fall ist, wird das AIS aktualisiert. Bei jedem anderen Aufruf des Makros wird das AIS nicht aktualisiert.

Bei einem Vergleich des Feldnamen mit einem string (wie in obigen Beispiel), muss dies über die StrCmp Funktion passieren. Wenn der Feldname gleich dem zu vergleichendem Text ist, so liefert die Funktion eine 0 zurück.

lStrId  := StrCmp(lFeldName,  "PartieGrid" );

if ( lStrId = 0 ) then