[Gelöst]Kennzeichen bei Codewechsel

7. Dezember 2011 15:00

Hallo beisammen,

mein Scheff bräuchte mal wieder was Tolles und ich krieg´s net hin...

Wir haben hier eine Tabelle (NAV 2009 CC) mit Feldern "Artikelnr., Sprachcode, Zeilennr., Code" (Key ist "Artikelnr., Sprachcode, Zeilennr.").
Nun soll bei jedem Datensatz, bei dem der code unterschiedlich vom vorherigen Datensatz ist, eine Kennung angehängt werden, also bsp. bei Artikel "ABCD" gibt es 2 Zeilen zu Code "123" und 4 Zeilen zu Code "456" --> dort sollte beim letzten Datensatz von Code "123" eine Kennung angehängt werden und dann wieder beim letzten Datensatz von Code "456".

Ich krieg grad die Motten und das Ganze nicht hin....und hab´ Scheffe im Nacken... :oops:

Hat jemand einen Tipp, wie ich das abfangen könnte..?!?!?!

Danke schon mal !!!
Zuletzt geändert von Beaker am 11. Dezember 2011 14:52, insgesamt 1-mal geändert.

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 15:17

Hallo,

ich hoffe ich habe dich richtig verstanden.

Arbeite doch mit einer temp lokalen record Variable.
In diese füllst du immer die letzten Datensätze von den jeweiligen Artikeln.

Du müsstest dann mit "Hilfsvariablen" arbeiten. z.B. HilfsvariableArtikelnr.
Nun gehst du alle Datensätze durch und sobald sich die Artikelnr. ändert holst du mit get den vorherigen mit der Hilfsvariable Datensatz und spiecherst in die temp rec Variable.

dann musst du nur noch deine temp Variable durchgehen und für jeden Datensatz den richtigen aus der Datenbank holen und mit modify ändern.
Also den "Code"mit Kennung dazu geben.

War mal so die erste Idee. Vielleicht geht es noch einfacher, aber damit du auch mal eine Vorstellung hast.
Ich hoffe, ich habe keinen Denkfehler:-)

Gruß
Aydin
Zuletzt geändert von aydina81 am 7. Dezember 2011 17:17, insgesamt 1-mal geändert.

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 17:16

Hallo Aydin,

Dank´ Dir für Deine Antwort - ich komme aber irgendwie noch immer nicht weiter...
Tabelle (NAV 2009 CC) mit Feldern "Artikelnr., Sprachcode, Zeilennr., Code" (Key ist "Artikelnr., Sprachcode, Zeilennr.").

Wie kann ich hier folgendes abfragen:

Artikel ABC - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE1" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 20000 - Code "WARENGRUPPE1" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 30000 - Code "WARENGRUPPE1" - Kennung 'X' (letzter Code/Artikel)
Artikel ABC - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE2" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 20000 - Code "WARENGRUPPE2" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 30000 - Code "WARENGRUPPE2" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 40000 - Code "WARENGRUPPE2" - Kennung 'X' (letzter Code/Artikel)
Artikel DEF - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE1" - Kennung 'X' (letzter Code/Artikel)
Artikel GHI - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE1" - Kennung ''
Artikel GHI - Sprachcode '' - Zeilennr. 20000 - Code "WARENGRUPPE1" - Kennung 'X' (letzter Code/Artikel)
etc.

Es soll immer beim letzten Datensatz eines Codes je Artikel eine Kennung gesetzt werden.
Vom logischen her eigentlich ganz einfach - aber wie sag ich´s dem guten alten NAV..?!?!?!?

Viele Grüße,
beaker

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 17:21

Beaker hat geschrieben:Hallo Aydin,

Wie kann ich hier folgendes abfragen:

Artikel ABC - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE1" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 20000 - Code "WARENGRUPPE1" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 30000 - Code "WARENGRUPPE1" - Kennung 'X' (letzter Code/Artikel)
Artikel ABC - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE2" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 20000 - Code "WARENGRUPPE2" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 30000 - Code "WARENGRUPPE2" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 40000 - Code "WARENGRUPPE2" - Kennung 'X' (letzter Code/Artikel)
Artikel DEF - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE1" - Kennung 'X' (letzter Code/Artikel)
Artikel GHI - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE1" - Kennung ''
Artikel GHI - Sprachcode '' - Zeilennr. 20000 - Code "WARENGRUPPE1" - Kennung 'X' (letzter Code/Artikel)
etc.



Ist der Block nicht falsch?
Meinst du nicht "ABCD"?
Code:
Artikel ABC - Sprachcode '' - Zeilennr. 10000 - Code "WARENGRUPPE2" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 20000 - Code "WARENGRUPPE2" - Kennung ''
Artikel ABC - Sprachcode '' - Zeilennr. 30000 - Code "WARENGRUPPE2" - Kennung ''



Sonst knallt es wegen dem Schlüssel:-)
Zuletzt geändert von aydina81 am 7. Dezember 2011 18:29, insgesamt 1-mal geändert.

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 17:47

Hier mal ein kleiner Ansatz (ungetestet):
Code:
REPEAT
  SETRANGE("Artikelnr.","Artikelnr.");
  SETRANGE(Sprachcode,Sprachcode);
  SETRANGE("Zeilennr.","Zeilennr.");
  FIND('+');
  // Hier deine Änderung an dem Datensatz, bzw. den Datensatz für spätere Verarbeitung markieren oder ähnliches...
  SETRANGE("Artikelnr.");
  SETRANGE(Sprachcode);
  SETRANGE("Zeilennr.");
UNTIL NEXT = 0;

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 17:50

Hallo Aydin,

das sollte so eigentlich schon rein exemplarisch passsen - der erste Block von Artikel "ABC" enthält zwei Warengruppen, deren jeweils letzte Zeile eine Kennung erhalten sollte, dann folgt Artikel "DEF" mit nur einer Warengruppe (soll auch Kennung erhalten) und dann folgt Artikel "GHI" mit einer Warengruppe, deren letzte Zeile wiederum eine Kennung erhalten soll.

Ich weiß, ist ein bissel doof zu beschreiben...

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 17:56

Wie willst du das handhaben, wenn ein weiterer Datensatz einer Gruppe eingefügt wird? Dann würde das ja der neue letzte.

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 18:01

Hallo McLane,

das brauche ich nur, um es einmal für bestehende Daten durchrennen zu lassen, danach werden diese Kennungen manuell von den usern gesetzt....
Da das aber zigtausende bestehende Datensätze gibt, brauche ich eine Möglichkeit der rückwirkenden Korrektur....

viele Grüße,
beaker

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 18:13

Wie gesagt, probiere es mal mit meinem Beispiel.

Nur müsstest du wohl, wenn du die vierte Spalte noch mit als Kriterium verwenden willst, hier auch noch den Filter setzen und anschließend aufheben.

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 18:26

So dann mal ein Beispiel:

Ich würde alle Daetnsätze der Tabelle durchgehen (ich hoffe da sind nicht allzuviele Datensätze).
Aber wenn man es ehe nur einmal durchlaufen will, dann kann es ruhig etwas länger dauern:-)

Dazu zwei rec Variable der Tabelle erstellen.
und zusätzlich 3 Hilfsvariablen (entspricht der Key Anzahl)
also
hvArtikelnr.
hvSprachcode
hvZeilennr.

Code:
if myTable.Findset then
 Repeat 
   if  hvArtikelnr. !=   myTable.Artikelnr.  AND hvArtikelnr. != '' then  //Wenn ein Wechsel stattfindet
   Begin
        myTable2.Get(hvArtikelnr.,hvSprachcode,hvZeilennr.)
        myTable2.Code := myTable2.Code + 'X'
        myTable2.modify(true);
    End
    hvArtikelnr. := myTable.Artikelnr.;
    hvSprachcode := myTable.Sprachcode;
    hvZeilennr. := myTable.Zeilennr.;
 until myTable.Next = 0;


Kann man bestimmt noch optimieren oder erweitern:-)

Ist es ungefähr das was du möchtest?

Gruß
Aydin

Re: Kennzeichen bei Codewechsel

7. Dezember 2011 19:03

Hallo Alex und Aydin,

leider muß ich hier jetzt unterbrechen und was anderes machen :-( - ich teste aber Eure beiden Vorschläge auf alle Fälle!!!

Vielen Dank Euch beiden,
bis bald,
beaker

Re: Kennzeichen bei Codewechsel

11. Dezember 2011 14:52

Hallo Alex und Aydin,

Ihr beide habt meinen dritten Advent gerettet...Dank Eurer Hilfe habe ich es jetzt hinbekommen...!!!!!!! :-D

Vielen Dank euch beiden nochmal,
viele Grüße,
Beaker