[Gelöst] Änderung Kopf aus Zeilen?

Bild Microsoft Dynamics NAV 3.xx
(ehem. Navision Attain)

[Gelöst] Änderung Kopf aus Zeilen?

Beitragvon NavHummel » 20. Oktober 2006 11:42

Hallo zusammen,

ich habe "Kopfprobleme" :wink: und hoffe, dass euch etwas einfällt:

Ich habe in den Zeilen einer neuen Tabelle Zeilenstati und im Kopf einen Status, welche sich in Abhängigkeiten ändern sollen.

Nun möchte ich als erstes, dass wenn alle Zeilen erledigt sind, auch der Status im Kopf auf erledigt gesetzt wird.

Wenn ich das auf dem OnValidate des Zeilenstatus in der Zeile programmiere, also mir den Kopf hole, dort den Status validiere und dann ein Kopf.Modify setze, dann sieht lt. Debugger alles prima aus, der Kopf wird validiert und geändert, aber ín Wirklichkeit wird er gar nicht geändert.

Ich habe jetzt schon so einiges ausprobiert, aber spätestens, wenn ich ein paar Mal die Stati schalte, geht es nicht mehr.

Ich habe es in einer Funktion ausgelagert und im Kopf. Ich habe auch versucht, ein Modify der Zeile vorher abzusetzen, aber das bringt auch nicht viel.

Wißt ihr, ob und wie das funktionieren könnte?

Danke im voraus.
Zuletzt geändert von NavHummel am 23. Oktober 2006 15:57, insgesamt 1-mal geändert.
GrĂĽĂźe
NavHummel
NavHummel
 
Beiträge: 191
Registriert: 2. Mai 2006 11:03
Wohnort: NRW
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV3.6,NAV5,NAV2009R2,NAV2013

Beitragvon rotsch » 20. Oktober 2006 12:25

Die von die genannte Funktion habe ich schon des öfteren an unterschiedlichen Stellen angewendet, und das auch immer funktioniert.

Was dabei aber ein Problem ist, ist die Tatsache, dass sich auf dem Form, welches den Kopf anzeigt, nichts verändert solange man den Cursor nicht ins Form positioniert. Könnte es ev. daran liegen?
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Beitragvon NavHummel » 20. Oktober 2006 13:28

Hallo Rotsch,

nein, das wäre mir egal, wenn ich erst in den Kopf wechseln müsste, um die Änderung zu sehen. Das Problem ist bekannt :wink: .

Leider wird die Ă„nderung ĂĽberhaupt nicht durchgefĂĽhrt. Im Debugger auf dem Modify ist der recKopf.Status aber auf erledigt...

Aber nach deinem Einwand, dass es ja eigentlich funktionieren müsste, habe ich mich mal in der Datenbank nach ähnlichen Funktionen auf die Suche gemacht und auch gefunden.

Tja, der einzige Unterschied: Die zu ändernden Felder waren keine Optionsfelder.

Also mit einem anderen Feld (Datumsfeld) getestet und siehe da, es funktioniert!
Nächster Schritt: Das Datumsfeld validiert und das Optionsfeld. Ergebnis: Es funktioniert! Komisch, oder?

Ich habe sonst wirklich nichts verändert, nur zusätzlich ein Validate für ein Datumsfeld eingebaut. :shock:
GrĂĽĂźe
NavHummel
NavHummel
 
Beiträge: 191
Registriert: 2. Mai 2006 11:03
Wohnort: NRW
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV3.6,NAV5,NAV2009R2,NAV2013

Beitragvon Marc Teuber » 20. Oktober 2006 13:55

Poste doch mal den C/AL-Code.

GruĂź, Marc
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Marc Teuber
Microsoft Partner
Microsoft Partner
 
Beiträge: 1064
Registriert: 2. Oktober 2005 13:36
Wohnort: Greven
Arbeitsort: MĂĽnster, Dortmund
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon rotsch » 20. Oktober 2006 13:56

Ich stimme dir zu, das ist mehr als eigenartig. Wobei, jetzt, wo du das so schreibst, erinnere ich mich an ein ähnliches Phänomen, das ich ganz selten auch schon bebachtet habe.

Ich stelle einen Fehler fest - der Debugger zeigt, wie bei dir, die korrekten Werte an - dann baue ich eine Message-Box ein um den Wert auf den Schirm zu bekommen - der Wert kommt richtig :shock: - ich baue die Message wieder aus - der Wert kommt immer noch richtig und bleibt auch so :shock: :!:

Das sind wohl die kleinen Geheimnisse, die Navision für sich behält. Darum heisst das ja auch EDV (Ende Der Vernunft) :-D
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Beitragvon NavHummel » 20. Oktober 2006 14:29

Hier der Code vom OnValidate auf dem Status der Zeile:

Code: Alles auswählen
//PrĂĽfung ob alle Zeilen erledigt
IF Status = Status :: erledigt THEN BEGIN
  Aktualisiere := TRUE;
  recZeile.RESET;
  recZeile.SETRANGE("Document No.","Document No.");
  IF recZeile.FIND('-') THEN
    REPEAT
      IF (recZeile."Line No." <> "Line No.") AND (recZeile.Status <> recZeile.Status :: erledigt) THEN
        Aktualisiere := FALSE;
    UNTIL recZeile.NEXT = 0;

  //Wenn alle Zeilen erledigt, dann Kopf ändern
  IF Aktualisiere = TRUE THEN BEGIN   
    recKopf.RESET;
    recKopf.GET("Document No.");
    NeuerKopfStatus := NeuerKopfStatus :: erledigt;
    recKopf.VALIDATE(Status,NeuerKopfStatus);
    recKopf.VALIDATE("Posting Date",TODAY); //EingefĂĽgt, damit es funktioniert   
    recKopf.MODIFY;
  END;
END;
GrĂĽĂźe
NavHummel
NavHummel
 
Beiträge: 191
Registriert: 2. Mai 2006 11:03
Wohnort: NRW
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV3.6,NAV5,NAV2009R2,NAV2013

Beitragvon martinst » 20. Oktober 2006 15:29

Ein FlowField auf dem Kopf hätte das Problem auch gelöst.

Code: Alles auswählen
Exist("Sales Line" WHERE (Document Type=FIELD(Document Type),Document No.=FIELD(xy)))


Gruss
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon NavHummel » 20. Oktober 2006 16:06

martinst hat geschrieben:Ein FlowField auf dem Kopf hätte das Problem auch gelöst.

Code: Alles auswählen
Exist("Sales Line" WHERE (Document Type=FIELD(Document Type),Document No.=FIELD(xy)))


Gruss


Danke, auch eine gute Idee. Nur in diesem speziellen Fall hätte es nicht funktioniert, da der Zeilenstatus mehr und andere Optionen hat als der Kopfstatus.
GrĂĽĂźe
NavHummel
NavHummel
 
Beiträge: 191
Registriert: 2. Mai 2006 11:03
Wohnort: NRW
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV3.6,NAV5,NAV2009R2,NAV2013

Beitragvon Michael Schumacher » 20. Oktober 2006 18:59

Wenn der Kopfstatus nur erledigt und nicht erledigt ist, dann geht das schon.
Das Feld heißt dann unerledigt und zeigt ein Häkchen, wenn noch nicht alle Zeilen auf erledigt sind. Dazu muss die Calcformula etwas erweitert werden:
Code: Alles auswählen
Exist("Sales Line" WHERE (Document Type=FIELD(Document Type),Document No.=FIELD(document no.),Statusfeld=Filter(<>statusfeld::erledigt)))

ich weiss jetzt nicht, ob die Syntax fĂĽr den Filter so korrekt ist, aber das Prinzip dĂĽrfte klar geworden sein...
mfg
Michael Schumacher


Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon NavHummel » 23. Oktober 2006 15:56

Das ginge wahrscheinlich, wenn ich nicht 3 Stati im Kopf hätte: offen, in Bearbeitung und erledigt.

Naja, es funktioniert ja jetzt irgendwie, daher werde ich das ganz mal auf gelöst setzen.
GrĂĽĂźe
NavHummel
NavHummel
 
Beiträge: 191
Registriert: 2. Mai 2006 11:03
Wohnort: NRW
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV3.6,NAV5,NAV2009R2,NAV2013


ZurĂĽck zu NAV 3.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast