Sachmerkmale mit Averp.exe Vers. 3.6.0.15 und 4.0.0.12

Allgemeine Diskussionen um die ERP Software AvERP

Moderator: SYNERPY

Antworten
HSR
Beiträge: 2
Registriert: Di Feb 24, 2009 9:18 am
Wohnort: Schweiz

Sachmerkmale mit Averp.exe Vers. 3.6.0.15 und 4.0.0.12

Beitrag von HSR »

Mehrere Sachmerkmale welche die ArtikelbBez. generieren funktionieren mit der Programm Version 3.0.0.18 von AVERP.exe.

z.B. Script zum ersten Einzelmerkmal, der Rest ist ähnlich aufgebaut.

PascalScript BeforePost:

Begin

//DebugOn := true;
sWert0 := '';
mWert0 := '';

// Aktuellen Artikel holen
nBSA_ID := AsInteger(Self.o_MyQuery.FieldByName('ID'));

// Alte Artikelbezeichnung, WG-Text und Werkstoff holen
M := Self.o_MyQuery.FieldByName('ARTBEZ');
N := Self.o_MyQuery.FieldByName('BARTG4_BEZ');
W := Self.o_MyQuery.FieldByName('BWERK_MASKENKEY');

oStr := Self.StringGrid1;
sWert0 := oStr.ReadCell(8,0);

// Neue Artikelbezeichnung generieren
M.AsString := N.AsString + ' '+W.AsString + ' Ø' + sWert0 + 'mm';

End;


In der Version 3.6.0.15 und 4.0.0.12 löscht es die Artikel.Bez und Artikel.Bez.2 und ersetzt es nur durch den N.AsString und sonst erscheint nur "Ømm"

Es ist immer die gleiche DB.

Datenbank2008-A

Hat dafür jemanden eine Erklärung?
SYN26

Beitrag von SYN26 »

Hallo,

die Artikelbezeichnung ist im neu zusammengesetzen String nicht enthalten und wird somit überschrieben. Das muss in allen EXE-Versionen identisch sein. Wie wurde der Vergleich durchgeführt - Komplettinstallation, AvERP.EXE auf Client, ..?
HSR
Beiträge: 2
Registriert: Di Feb 24, 2009 9:18 am
Wohnort: Schweiz

Beitrag von HSR »

Hallo,

es wurden nur die Clients von den Averp Versionen gewechselt.
Alles andere blieb gleich. (FB2.1)
wkrista
Beiträge: 17
Registriert: Sa Nov 05, 2005 9:34 am
Wohnort: Amriswil Schweiz

Beitrag von wkrista »

Hallo allerseits,

das von HSR beschriebene Verhalten kann ich genau so reproduzieren.
@SYN26
Ihre Analyse ist zwar zutreffend, aber geht nicht auf die Frage ein. Die Prozedur tut nämlich Folgendes:

- erstmal die Zeiger auf die Datenbankfelder besorgen
- SCHNIPP
// Alte Artikelbezeichnung, WG-Text und Werkstoff holen
M := Self.o_MyQuery.FieldByName('ARTBEZ');
N := Self.o_MyQuery.FieldByName('BARTG4_BEZ');
W := Self.o_MyQuery.FieldByName('BWERK_MASKENKEY');
-SCHNAPP

- dann das Sachmerkmal aus dem StrinGrid (Zeile 0, Spalte 8 holen)
-SCHNIPP
oStr := Self.StringGrid1;
sWert0 := oStr.ReadCell(8,0);
- SCHNAPP

- und schlussendlich soll die neue Artikelbezeichnung (Variable M) aus:
- Bezeichnung der Warengruppe Sonstiges (Variable N)
- Einem Leerzeichen
- Dem Werkstoff Kz. (Variable W)
- Einem Leerzeichen und dem Durchmesserzeichen
- Dann dem Eintrag im Sachmerkmal (Variable sWert0)
- und abschliessend die Einheit Milimeter
bestehen

- SCHNIPP
// Neue Artikelbezeichnung generieren
M.AsString := N.AsString + ' '+W.AsString + ' Ø' + sWert0 + 'mm';
- SCHNAPP

so weit, so gut. Das Problem ist, dass die neuen AvERP.exe (bei mir 4.1.0.7) mir ReadCell(8,0) auf das StringGrid keinen bzw. eine leeren Wert zurückliefern. Hingegen liefert ein ReaadCell(7,0) den alten Wert.

Gibt es vielleicht eine Dokumentation wie sich die Sachmerkmale mit den neuen EXE auslesen lassen?

Viele Grüsse
Werner Krista
****************************
REWaG Feinmechanik AG

Hauptwilerstrasse 8
9205 Waldkirch
Schweiz

www.rewag.ch
werner.krista@short.ch
Skype : wkrista
wkrista
Beiträge: 17
Registriert: Sa Nov 05, 2005 9:34 am
Wohnort: Amriswil Schweiz

Beitrag von wkrista »

Hallo allerseits,

laut Synerpy lässt sich das Problem wie folgt beheben:

der Ausdruck ReadCell(8,0) muss durch ReadCell(11,0) ersetzt werden. Damit sieht der Code folgendermassen aus:

Code: Alles auswählen

PascalScript BeforePost:

Begin

//DebugOn := true;
sWert0 := '';
mWert0 := '';

// Aktuellen Artikel holen
nBSA_ID := AsInteger(Self.o_MyQuery.FieldByName('ID'));

// Alte Artikelbezeichnung, WG-Text und Werkstoff holen
M := Self.o_MyQuery.FieldByName('ARTBEZ');
N := Self.o_MyQuery.FieldByName('BARTG4_BEZ');
W := Self.o_MyQuery.FieldByName('BWERK_MASKENKEY');

oStr := Self.StringGrid1;
sWert0 := oStr.ReadCell(11,0);

// Neue Artikelbezeichnung generieren
M.AsString := N.AsString + ' '+W.AsString + ' Ø' + sWert0 + 'mm';

End;
wobei anzumerken ist, dass der zweite Wert hinter dem Komma (in diesem Fall 0) die fragliche Zeile bezeichnet.
Wenn man also den Wert des ersten Sachmerkmals auslesen will lautet die Anweisung : ReadCell(11,0); beim zweiten ReadCell(11,1) usw.
Damit sollte ist auch klar, dass neue Datenbanken nicht mit den alten Clients laufen und umgekehrt. Also darauf achten dass Datenbank und EXE zusammenpassen.

@SYN26
Die Dokumentation für Sachmerkmale wäre trotzdem hilfreich.

Viele Grüsse
Werner Krista
****************************
REWaG Feinmechanik AG

Hauptwilerstrasse 8
9205 Waldkirch
Schweiz

www.rewag.ch
werner.krista@short.ch
Skype : wkrista
Antworten