Thomas68
21st February 2008, 11:33
Wir haben vor in VK-Auftragspositionen verwalten (tdsls4102s000) die Bestellmenge (tdsls041.oqua) abzufragen um diesen Wert in der generellen Preisliste zu verwenden. Der aufgeführte Code funktioniert aber nur teilweise. Kann jemand weiterhelfen ? Vielen Dank im voraus
string vka
double meng
long orno
long pono
vka = [DEB.01]
orno = val(vka)
pono = [DEB.02]
meng = 0.0
!table ttdsls041
!import ("tdsls041.oqua", tdsls041.oqua)
! select tdsls041.oqua
! from tdsls041 where tdsls041.orno = :orno and tdsls041.pono = :pono
! selectdo
! meng = tdsls041.oqua
! selectempty
! meng = 1
! endselect
if meng <= 10 then
price = 25
else
price = 18
endif
Gruß Thomas
günther
21st February 2008, 14:11
Hallo Thomas.
Habe deine Ausführung jetzt mehrfach gelesen, aber mir ist trotzdem nicht klar, was Du eigentlich willst. Aber ich probiers trotzdem ...
Der Beispiel-Code ist für den PCF, den Du als Compiler verwendest (erkennbar an den "!" am Zeilenanfang).
Schritt 1: Zwei PCF-Variablen holen; jeweils String(!); [DEB.01], [DEB.01].
Schritt 2: Zur jeweiligen Domain anpassen (hier: String -> int); das machst Du mit dem ersten String, nicht aber mit dem zweiten String. Somit passt m.E. orno, aber nicht pono!
Gruß Günther
Thomas68
22nd February 2008, 09:04
Hallo Günther,
vka ergibt den nummerischen Wert der Auftragsnummer. DEB.01 ist bei uns als alphanummerischer Wert eingetragen und wird dadurch umgewandelt zu einem nummerischen Wert.
DEB.02 ist die Positionsnummer, die bei uns als Ganzzahliger Wert hinterlegt ist und somit nicht umgewandelt werden muss.
Gruß Thomas
günther
22nd February 2008, 09:11
Alles klar; aber was heißt den konkret:
Der aufgeführte Code funktioniert aber nur teilweise.
Unabhänig davon würde ich zwei Dinge vorschlagen:
a) an der passenden Stelle
!message("orno=%d pono=%d -> meng=%f", orno, pono, meng)
oder
b) evtl. nicht am Stück einzubauen ("you get the idea")
!long fd
!string buf(1024)
!fd = seq.open("/tmp/logfile, "a")
!buf = sprintf$("orno=%d pono=%d -> meng=%f", orno, pono, meng)
!seq.puts(buf, fd)
!seq.close(fd)
Günther
werni48
7th April 2008, 16:45
Hallo,
ich würde das ganze in einer dll programmieren, diese im Debug-modus übersetzen und dann in die Beschränkung einbauen. Da funktioniert die Fehlersuche bestens.
Viel Erfolg
werni48
Andreas
8th April 2008, 09:09
Hallo,
ich würde das ganze in einer dll programmieren, diese im Debug-modus übersetzen und dann in die Beschränkung einbauen. Da funktioniert die Fehlersuche bestens.
Viel Erfolg
werni48
Du kannst auch das Konfiguratorskript im Debug-Mode kompilieren. Ein Beispiel wurde hier im Forum schon mal geposted.
Such einfach mal nach Configurator und debug.
Gruß,
Andreas
werni48
8th April 2008, 09:33
Hallo Andreas,
das ist mir bekannt. Die Methode mit der dll hat aber den Vorteil, dass man nicht bei jeder Aenderung die Beschraenkungen neu uebersetzen muss. Dieser Kompilierungslauf kann unter Umstaenden sehr lange dauern. Eine dll zu aendern und zu kompilieren geht viel schneller und man ist auch nicht auf den Editor fuer die Beschraenkungen angewiesen.
Viel Spass mit Baan
werni48