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?
			
			
									
						
										
						Sachmerkmale mit Averp.exe Vers. 3.6.0.15 und 4.0.0.12
Moderator: SYNERPY
- 
				HSR
- Beiträge: 2
- Registriert: Di Feb 24, 2009 9:18 am
- Wohnort: Schweiz
- 
				SYN26
- 
				wkrista
- Beiträge: 17
- Registriert: Sa Nov 05, 2005 9:34 am
- Wohnort: Amriswil Schweiz
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
			
			
									
						
							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
			
						****************************
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
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:
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
			
			
									
						
							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;
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
			
						****************************
REWaG Feinmechanik AG
Hauptwilerstrasse 8
9205 Waldkirch
Schweiz
www.rewag.ch
werner.krista@short.ch
Skype : wkrista