Autor Thema: Arrays bearbeiten  (Gelesen 1885 mal)

Offline Onkel Domino

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • Tue Gutes - und rede darüber!
Arrays bearbeiten
« am: 27.01.07 - 15:14:56 »
Hallo,

ich habe hier eine Dokumentart 'Taxi'. Zu diesen Taxen können mehrere Dokumente des Typs Fahrer zugeordnet werden. Die Fahrer halte ich in dem multivalue-Feld 'Fahrer' fest und zwar in dem Format 'Name_mit_Personalnummer#UNID'.

Ein Beispieltaxi hat also das Feld Fahrer mit folgendem Inhalt:
Hans Mustermann, 0815#98AC7051565FE354C1256C21003FA5DE;
Peter Müller, 4711#4A0610547454FB89C1256C3600328F67;
Jürgen Schmidt, 1199#7157D2F9394A64F8C1257164004B6B66

Jetzt möchte ich dem Benutzer erlauben, einzelne Fahrer zu löschen. Als Auswahl soll natürlich nur der Fahrer erscheinen und nicht Fahrer#UNID.

Mit der Formel:

_Fahrer := Fahrer;
_delChoice := @Prompt([OKCANCELLISTMULT] ; "Bitte wählen" ; "Wählen Sie bitte den Fahrer, den Sie entfernen möchten:" ; "" ; @Word( Fahrer ; "#" ; 1 ) );

erhalte ich nun den Namen des Fahrers, den ich entfernen möchte. Wie kann ich diesen jetzt aber aus dem Array 'Fahrer' entfernen?

Ich bräuchte quasi eine Funktion @Replace( Fahrer ; _delChoice* ; @Nothing ).

Ich habe bereits versucht, das mit Script zu lösen. Leider gibt es unter Notes 5 die Funktion StrToken noch nicht :-(

Wie kann ich das mit Formelsprache lösen?


Grüße,
Markus
« Letzte Änderung: 29.01.07 - 17:59:31 von Onkel Domino »
There are only 10 types of people in the world: Those who understand binary and those who don't.

Glombi

  • Gast
Re: Arrays bearbeiten
« Antwort #1 am: 27.01.07 - 16:25:41 »
Sodele:
_Fahrer := @Left(Fahrer;",");
_delChoice := @Prompt([OKCANCELLISTMULT] ; "Bitte wählen" ; "Wählen Sie bitte den Fahrer, den Sie entfernen möchten:" ; "" ; _Fahrer );
_ReplaceString := _Fahrer + @Trim(@Right(Fahrer;_Fahrer));
@Trim(@Replace(Fahrer;_ReplaceString;""))

Andreas

Offline Onkel Domino

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • Tue Gutes - und rede darüber!
Re: Arrays bearbeiten
« Antwort #2 am: 27.01.07 - 18:22:20 »
Hi Andreas,

das funktioniert bei mir leider nicht :-(

_ReplaceString beinhaltet bei mir, egal welche Auswahl ich vornehme, das komplette Feld 'Fahrer' und es wird immer nur jeweils der erste Eintrag aus dem Feld 'Fahrer' gelöscht.

Grüße,
Markus
There are only 10 types of people in the world: Those who understand binary and those who don't.

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Arrays bearbeiten
« Antwort #3 am: 29.01.07 - 14:16:21 »
Ungefähr so könnte es aussehen:

Code
_Fahrer := @Left(Fahrer;",");
_delChoice := @Prompt([OKCANCELLISTMULT] ; "Bitte wählen" ; "Wählen Sie bitte den Fahrer, den Sie entfernen möchten:" ; "" ; _Fahrer );
_pos:=@member(_delCHoice;_Fahrer);
_origFahrer:=@subset(@subset(Fahrer);_pos);-1);
Field Fahrer:=@trim(@replace(Fahrer;_origFahrer;""));
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Onkel Domino

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • Tue Gutes - und rede darüber!
Re: Arrays bearbeiten
« Antwort #4 am: 29.01.07 - 17:59:17 »
Vielen Dank für die Denkanstöße. Die zweite Lösung funktioniert soweit, jedoch lassen sich damit lediglich einzelne Fahrer löschen. Hiermit klappt es nun auch mit einer Mehrfachauswahl:

_Fahrer := @Left(Fahrer;"#");
_delChoice := @Prompt([OkCancelListMult] ; "Bitte wählen" ; "Wählen Sie bitte den Fahrer, den Sie entfernen möchten:" ; "" ; _Fahrer );

_del1 := @Replace( _Fahrer ; _delChoice ; (@Replace( _delChoice ; _delChoice ; "" ) + "<delStub>" ));
_del2 := @Replace( _del1 ; _Fahrer ; "" );
_del3 := _del2 + Fahrer ;
_del4 := @Trim( @Replace( _del3 ; "<delStub>" *+ Fahrer ; "" ));

Field Fahrer := _del4;

Viele Grüße,
Markus
There are only 10 types of people in the world: Those who understand binary and those who don't.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz