MESSAGE mehrzeilig

9. Dezember 2009 10:51

Hallo,

meine Frage:

Auf der Artikelkarte habe ich die Möglichkeit einen Ersatzartikel anzugeben und für diesen eine Bemerkung zu hinterlegen.
Das können natürlich zu einem Artikel auch mehrere Bemerkungen sein.

Jetzt möchte ich, dass, wenn in einem Auftrag dieser Artikel aufgerufen wird, eine Message aufgeht, die diese Bemerkungen anzeigt (nur zur Information des Mitarbeiters).

Das ist ja kein Problem.
Ich habe das in eine REPEAT-Schleife gepackt... Jetzt zeigt es mir die Bemerkungen nacheinander an.

Ich hätte aber gerne das die Message folgendermaßen aussieht:

Ersatzartikel: XXXXXXXXXX Bemerkung1
Bemerkung2
.
.

Es soll also alle zum Artikel hinterlegten Bemerkungen anzeigen und mit nur einer Bestätigung "weg geklickt" werden können.

Geht so was mit einer MESSAGEn überhaupt oder sollte ich was anseres tun.

Hat jemand dazu eine Idee? ....wäre toll.....Danke!

Maria

Re: MESSAGE mehrzeilig

9. Dezember 2009 10:57

mein Tipp: eine "LookUp" Form und die Bemerkungen dort anzeigen!

als Messagebox wirds etwas tricky! (Textvariablen verknuepfen etc.).

BTW
Wenn man einen zeilenumbruch in einer Messagebox moechte geht das wie folgt:
MESSAGE('Zeile 1' + '\' + 'Zeile 2');

Re: MESSAGE mehrzeilig

9. Dezember 2009 10:58

Solange es alles in Allem nicht mehr als 1024 Zeichen werden, kannst du einen String zusammen setzen, der die einzelnen Bemerkungen von einem Backslash getrennt zusammenfasst und den in einer Messagebox ausgeben.

Sonst einfach so, wie zB auch Belegbemerkungen ausgegeben werden.

Re: MESSAGE mehrzeilig

9. Dezember 2009 12:34

Hat mich neugierig gemacht, ob die MESSAGE bei 1024 Zeichen schluß macht, nein macht sie nicht.
Mit diesem Code, werden 2048 Zeichen in der Message angezeigt:
Code:
// Variablen T1 und T2 = Text Länge 1024, I = Integer
FOR I := 1 TO 1024 DO BEGIn 
  T1 := T1 + 'A';
  T2 := T2 + 'B';
END;

MESSAGE('%1\%2',T1,T2);

Allerdings muß auf die Textvariablen geachtet werden, das die nicht überlaufen!

Ich habe soetwas ähnliches mal Programmiert mit einer Auswahlbox, der User konnte aus einer Dynamisch erzeugt Liste den Alternativartikel auswählen, wenn der Ursprungsartikel nicht mehr ausreichend verfügbar war.
Ahnlich dem hier:
Code:
// Variablen: Options = Text Länge 1024, I = Integer, Auswahl = Integer

FOR I := 1000 TO 1004 DO BEGIN  // Die Schleife soll die Artikelnummer 1000 bis 1024 simulieren!
  Options := Options + 'Artikel: ' + FORMAT(I) + ',';
END;

Auswahl := dialog.STRMENU(Options);

MESSAGE('Gewählt wurde %1',FORMAT(Auswahl));

Re: MESSAGE mehrzeilig

9. Dezember 2009 12:37

Stimmt, auch der C/SIDE Reference Guide nennt keine Einschränkung. Auch ich hätte spontan gesagt, bei 1024 ist Schluss.
1024 gilt für Textvariablen. Wenn jedoch MESSAGE ohne Variable aufgerufen wird, sondern mit einer String-Verkettung, dann tritt das Problem nicht auf.

Aber wer würde schon im Ernstfall eine so riesige MESSAGE überhaupt zu Ende lesen :lol:

Re: MESSAGE mehrzeilig

9. Dezember 2009 12:39

Ich meinte das mit den 1024 Zeichen ja auch bei Übergabe einer einzigen Textvariable.

Re: MESSAGE mehrzeilig

9. Dezember 2009 12:53

Natalie hat geschrieben:Aber wer würde schon im Ernstfall eine so riesige MESSAGE überhaupt zu Ende lesen :lol:


Kommt auf den Text an 8-)

Aber ich war ehrlich gesagt erstaunt darüber, wie wenig 2048 Zeichen auf dem Bildschirm sind. Es waren "nur" 19 Zeilen.
(Zugegeben, ich habe mir vorher noch nie gedanken darüber gemacht)

Re: MESSAGE mehrzeilig

9. Dezember 2009 12:56

Ich schaffe es ja meist nicht mal, hier fünf Zeilen aufmerksam zu lesen :oops: :-D

Re: MESSAGE mehrzeilig

9. Dezember 2009 13:02

McClane hat geschrieben:Ich schaffe es ja meist nicht mal, hier fünf Zeilen aufmerksam zu lesen :oops: :-D


Kunststück,
das geht mir aber auch so. Das ist wohl das problem, das man halt nebenbei die Postings überfliegt und schreibt.
Wenn ich die abends Zuhause lese passiert mir das seltener!

Re: MESSAGE mehrzeilig

9. Dezember 2009 13:04

mikka hat geschrieben:Wenn ich die abends Zuhause lese passiert mir das seltener!

Du bist also nicht verheiratet? :mrgreen:

Re: MESSAGE mehrzeilig

9. Dezember 2009 13:07

Ich probiere gerade die Version von Mikka.

Meine Frage ist, Welchen Typ hat die Variable "Auswahl". Ich hatte ursprünglich Dialog, auch Text. Er bringt mir aber immer wieder "Typenkonverierung....

Maria

Re: MESSAGE mehrzeilig

9. Dezember 2009 13:09

HungerMaria hat geschrieben:Meine Frage ist, Welchen Typ hat die Variable "Auswahl".

Die Onlinehilfe von STRMENU weiß rat ;-)
Es ist integer.

Re: MESSAGE mehrzeilig

9. Dezember 2009 14:50

McClane hat geschrieben:
mikka hat geschrieben:Wenn ich die abends Zuhause lese passiert mir das seltener!

Du bist also nicht verheiratet? :mrgreen:


Doch, bin ich. Hatte am 06.12. meinen 9 Hochzeitstag :-)
Es kommt öffters vor, das wir beide auf dem Sofa sitzen,
--> Sie, schaut CSI und Co.
--> Ich, Lappi auf dem Tisch und online :mrgreen:

@HungerMaria
Sorry, das war mir durch die Lappen gegangen, habe es nachgetragen.

BTW:
Mich hat ja interessiert, wieviel Zeichen verträgt die Message?
Bei ca. 10240 Zeichen ist schluss. Ursache ist aber, das nav "motzt" das der Befehl Message nur 11 Parameter entgegen nimmt.
Tatsächlich gingen aber nur 10 Parameter.

Re: MESSAGE mehrzeilig

9. Dezember 2009 14:58

mikka hat geschrieben:Bei ca. 10240 Zeichen ist schluss. Ursache ist aber, das nav "motzt" das der Befehl Message nur 11 Parameter entgegen nimmt.
Tatsächlich gingen aber nur 10 Parameter.

Mich motzt der Kasten immer an "Menge muss xy in Feld sowieso sein", aber selbst ... :-)

Re: MESSAGE mehrzeilig

9. Dezember 2009 15:32

Ich habe mal folgendes probiert:

i:= 1;
FOR i := 1 TO 2 DO BEGIN
//Option := Option + 'Ersatzartikel:' + ' ' + ItemSub."Substitute No." + FORMAT(i) + ', ';
Option := Option + 'Ersatzartikel:' + ' ' + ItemSub."Substitute No." + SubCondition.Condition + FORMAT(i);

END;
Auswahl := STRMENU(Option);
MESSAGE('Gewählt wurde %1',FORMAT(Auswahl));


Das Ergebnis: Ersatzartikel: 15001100 Bemerkung1

Das Ergebnis stimmt, nur das er mir nur diese eine Zeile anzeigt. Erhöhe ich "FOR i := 1 TO 3 DO BEGIN" dann kommt die Fehlerausschrift.
"Die Quell-Länge überschreitet die Größe des Zielpuffers".

Wenn diese Anzeige mehrzeilig funktionieren würde, dass wäre Super!!

Re: MESSAGE mehrzeilig

9. Dezember 2009 15:36

Die Lösung ist dir bereits genannt worden:

MatthiasKönig hat geschrieben:Wenn man einen zeilenumbruch in einer Messagebox moechte geht das wie folgt:
MESSAGE('Zeile 1' + '\' + 'Zeile 2');

Re: MESSAGE mehrzeilig

9. Dezember 2009 15:51

Vielleicht bin ich heute etwas bl.. , aber das Feld Auswahl ist vom Typ Integer und ' '\' ist Text............

Re: MESSAGE mehrzeilig

9. Dezember 2009 15:52

Wg dem Fehler weiß ich nicht genau, evtl eine Variable zu klein deklariert?

Wie Natalie schreibt, den Backslash benutzen (in der variable "Opttion") und am Ende einer Option ein ',' (Komma) setzten je Option Zeile.
Du musst innerhalb der Schleife die Artikel / Bemerkungszeilen aufrufen und den String füllen.
(Sonst hat die Schleife nur einen Artikel im Zugriff!)

Bevor du die Schleife aufrufst, muß ermittelt werden um wieviele Ersatzartikel es sind und dieses deiner schleife mitteilen (damit die Schleife weiß wie lange durchlaufen werden muß)


So, und nun noch in Funktion als Moderator möchte ich dich bitten die [CODE-Tags] zu benutzen. *danke*