Zum Inhalt springen

Fehlermeldung wird nicht angezeigt


screamboy14

Empfohlene Beiträge

hallo und zwar ich habe ein programm in rpg geschrieben was an sich eigentlich auch funktioniert wie es soll...

danach dachte ich mir wenn eine falsche artikelnummer eingegeben wird sollen die felder gecleart werden dies habe ich mit clear gemacht was auch funktioniert ... nur ab diesen moment wurde die fehlermeldung das die artikelnummer nicht vorhanden ist NICHTMEHR mit angezeigt. kann mir einer helfen ??

Farta001b CF E WORKSTN

Farti IF E K DISK

/free

dou *in03 = *on;

exfmt bild1;

if *in03 = *on;

else;

chain artnr arti;

if %FOUND;

else;

clear bild1;

*in30 = *on;

ENDIF;

ENDIF;

ENDDO;

*inlr = *on;

/end-free

Link zu diesem Kommentar
Auf anderen Seiten teilen

Heißt das, wenn du keine clear-operation machst, erscheint die Fehlermeldung?

Du könntest mal probieren, nach dem clear ein write auf das FMT01 zu machen.

Grund: Es könnte sein, das das clear erst mit dem exfmt an das DSPF "festgeschrieben" wird und daher der IN30 verloren geht.

PRobier das mal bitte aus, und schreib ob es funktioniert hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Heißt das, wenn du keine clear-operation machst, erscheint die Fehlermeldung?

Du könntest mal probieren, nach dem clear ein write auf das FMT01 zu machen.

Grund: Es könnte sein, das das clear erst mit dem exfmt an das DSPF "festgeschrieben" wird und daher der IN30 verloren geht.

PRobier das mal bitte aus, und schreib ob es funktioniert hat.

hab es ausprobiert hat aber leider nicht funktioniert durch den Lehrer bin ich nun auf die Lösung gekommen, den bildschirm einfach in mehrere teile aufzuteilen was auch funktioniert hat und das programm läuft ;)

aber ich hätte da nocheinmal eine Frage und zwar gibt es eine as/400 ähnliche emulation bzw irgend ein open source program mit dem man rpg/dds geschriebene Programme anzeigen und bearbeiten kann ??? ist ein wenig doof das man dafür immer in der schule sein muss sonst ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Es gibt zum einen das "alte" Code 400, mit welchem man auch ohne I5 Sourcen anzeigen und bearbeiten kann.

Der ebenfalls etwas betagtere WDSC erlaubt dies ebenfalls. Das neueste Tool(NachNachfolger des WDSC) wäre dann der RDP, der ADTS(also auch SEU) ablösen wird(SEU support ist ab V6R1 eingestellt). Mit diesem ist zum einen die Speicherung der Sourcen auf dem Client PC als auch die Bearbeitung möglich. Syntaxprüfungen sind in allen enthalten.

btw : Deine 1. Frage ist so schwerlich zu beantworten. Es fehlen Infos. Sollte bild1 dein auszugebener Screen sein, so löscht oder initialisiert(Bezugszahlen) "clear bild1" alles im DDS definierte, eben auch deine Fehlermeldung. Ich erkenne so jedoch nicht ob die Bezugszahl 30 in einem Bezug zu deiner Fehlermeldung steht oder eben nur zu einer Kennzeichnung (blinken/invertieren) des Feldes.

Natürlich kannst Du den Schirm aufteilen, wie du es bei Subfiles ja auch machst, ist aber grundsätzlich unnötig.

Das Löschen des Feldinhaltes halte ich für suboptimal. Der Cursor wird auf das Feld mit dem fehlerhaften Eintrag positioniert und dieses wird invers/kennzeichnet. Bei längeren Feldinhalten ist es für den Anwender ungünstig nicht zu wissen was er eingab.

Gruß

WW

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Es gibt zum einen das "alte" Code 400, mit welchem man auch ohne I5 Sourcen anzeigen und bearbeiten kann.

Der ebenfalls etwas betagtere WDSC erlaubt dies ebenfalls. Das neueste Tool(NachNachfolger des WDSC) wäre dann der RDP, der ADTS(also auch SEU) ablösen wird(SEU support ist ab V6R1 eingestellt). Mit diesem ist zum einen die Speicherung der Sourcen auf dem Client PC als auch die Bearbeitung möglich. Syntaxprüfungen sind in allen enthalten.

????? irgendwie versteh ich hierbei nur bahnhof sorry ....

btw : Deine 1. Frage ist so schwerlich zu beantworten. Es fehlen Infos. Sollte bild1 dein auszugebener Screen sein, so löscht oder initialisiert(Bezugszahlen) "clear bild1" alles im DDS definierte, eben auch deine Fehlermeldung. Ich erkenne so jedoch nicht ob die Bezugszahl 30 in einem Bezug zu deiner Fehlermeldung steht oder eben nur zu einer Kennzeichnung (blinken/invertieren) des Feldes.

Natürlich kannst Du den Schirm aufteilen, wie du es bei Subfiles ja auch machst, ist aber grundsätzlich unnötig.

Das Löschen des Feldinhaltes halte ich für suboptimal. Der Cursor wird auf das Feld mit dem fehlerhaften Eintrag positioniert und dieses wird invers/kennzeichnet. Bei längeren Feldinhalten ist es für den Anwender ungünstig nicht zu wissen was er eingab.

genau so wie du es beschrieben hast meinte ich es auch :)

und das programm an sich ist erstmal das erste was ich in dieser sprache im Unterricht geschrieben habe und es ist eine schlichte anzeige aus einer Tabelle die den Zusatz haben soll fals man eine falsche kundennummer eingibt, das alle felder wieder gelöscht werden da es im normalen betriebsablauf sonst passieren könnte das man einen artikel mit der falschen artikelnummer notiert etc.. so hat es zumindest der Lehrer erklährt

ps ich hoffe ja mal das das mit dem zitat funktioniert hat wie es sollte ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

????? irgendwie versteh ich hierbei nur bahnhof sorry ....

genau so wie du es beschrieben hast meinte ich es auch :)

und das programm an sich ist erstmal das erste was ich in dieser sprache im Unterricht geschrieben habe und es ist eine schlichte anzeige aus einer Tabelle die den Zusatz haben soll fals man eine falsche kundennummer eingibt, das alle felder wieder gelöscht werden da es im normalen betriebsablauf sonst passieren könnte das man einen artikel mit der falschen artikelnummer notiert etc.. so hat es zumindest der Lehrer erklährt

ps ich hoffe ja mal das das mit dem zitat funktioniert hat wie es sollte ^^

Du sollst den Fehler ja auch nicht durchgehen lassen, sondern lediglich die Fehlersituation erzeugen, das Feld markieren(z.B. Invers) und einen Fehlertext(Die Artikelnummer existiert nicht ausgeben), dies aber ohne die fehlerhafte Artikelnummer zu löschen, damit der User auch weiss was eigentlich falsch war. Bei einem Selektionsfeld ist das noch relativ unwichtig aber wenn Du erstmal diverse Selektionsfelder hast und von denen mehr als eines gefüllt ist, wird der User nicht erfreut sein, wenn Du ihm die korrekten Eingaben neben der fehlerhaften mit CLEAR vom Bildschirm löschst.

btw : Falls der User ohne Eingabe Enter drückt wird es etwas problematisch, da aktuell beide Fehlersituationen ein identisches Ergebnis aufweisen.

Wie ich beschrieben habe? Wie sieht dein DDS aus? Was macht die Bezugszahl 30?

Ich weiss nicht wie weit Ihr seid aber simpelst kannst Du in Zeile 22 oder 23 einen bedingten Text ausgeben(bedingt über Bezugszahl 30) ggf. auch über DSPATR(ND) steuern oder eben die hart-codierten Fehlertexte im DDS. Sinnvollerweise solltest du in dieser Fehlersituation den Cursor auf dem fehlerhaften Feld positionieren(Auch mit der 30). Und invertieren kannste auch mit der 30. Ich persönlich ziehe die Arbeit mit einem Message File vor.

/free

dou *in03 = *on or *in12 = *on;

exfmt bild1;

if *in03 <> *on and *in12 <> *on;

IF artnr <> *blanks

chain artnr arti;

if NOT %FOUND(arti);

*in30 = *on; // ungültige Artikelnummer - <> Blanks

ELSE;

// nu gehts los EXSR irgendwas

ENDIF;

ELSE;

*in31 = *on; // ungültige Artikelnummer - = blanks

ENDIF;

ENDIF;

ENDDO;

*inlr = *on;

/end-free

Hier ist es sinnvoller mit WHEN zu arbeiten, da ja auch die Neuerfassung F6 wohl noch ansteht und evtl. F14 für suchen.

/free

dou *in03 = *on or *in12 = *on; // Da selektionsscreen führt auch F12 einen Screen zurück

exfmt bild1;

if *in03 <> *on and *in12 <> *on;

SELECT;

WHEN artnr <> *blanks;

chain artnr arti;

if NOT %FOUND(arti);

// besser ne prüfroutine

*in30 = *on; // ungültige Artikelnummer - <> Blanks

ELSE;

// nu gehts los EXSR irgendwas

ENDIF;

WHEN artnr = *blanks;

*in31 = *on; // ungültige Artikelnummer - <> Blanks

ENDSL;

ENDDO;

*inlr = *on;

/end-free

btw : Cool, das Ihr free rpg lernt. Habt ihr auch das spaltenorientierte RPG gelernt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

erstmal ein danke an WWetterwachs für seine echt professionelle Hilfe :)

und zu deiner frage wie weit wir sind, wir haben dieses schuljahr erst mit rpg angefangen .... also mehr als 3 schuleinheiten (18 schulstunden) waren es noch nicht

und das war auch erst das 2te Programm was wir geschrieben haben und es sollte eine normale artikelausgabe aus einer bestehenden Tabelle sein :)

dennoch danke für die gute Hilfe :)

ps da das programm jetzt ja funktioniert wie es soll und falls daran interesse besteht, könnte ich den queltext der rpgle und der dspf datei einmal posten (bei interesse) ein kurzes stadement ob es gewünscht ist fände ich gut :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Meinethalben wäre lediglich das Display File von Interesse -)

btw : Den RDP kannst Du hier downloaden Download : Rational Developer for Power Systems Software V8

30 Tage Testversion ist enthalten. Ab diesem Zeitpunkt ist der RDP kostenpflichtig. Wenn Du mit dem Gedanken speilen solltest bei der I5 zu verbleiben ist der RDP Pflicht.

Bearbeitet von WWetterwachs
Link zu diesem Kommentar
Auf anderen Seiten teilen

hier das DSPF

A*%%TS DD 20110906 141302 m10vocke REL-V5.0.1 WDSc

A*%%EC

A DSPSIZ(24 80 *DS3)

A REF(QGPL/QINVREC INVREC)

A R KOPF

A*%%TS DD 20110906 141302 m10vocke REL-V5.0.1 WDSc

A CF03(03 'Verlassen')

A OVERLAY

A 1 71SYSNAME

A 2 71TIME

A 1 2DATE

A EDTCDE(Y)

A 1 28'Artikelauskunft_2'

A 10 21'Artikelnummer:'

A B_ARTNR R B 10 38REFFLD(ART/ARTNR BENUTZERF/ARTI)

A 30 ERRMSG('Datensatz nicht vorhanden' +

A 30)

A*%%GP SCREEN1 01

A R RUMPF

A*%%TS DD 20110906 141302 m10vocke REL-V5.0.1 WDSc

A OVERLAY

A 12 21'Menge:'

A 13 21'Preis:'

A B_PREIS R Y O 13 38EDTCDE(N)

A REFFLD(ART/PREIS BENUTZERF/ARTI)

A B_ME R O 12 38REFFLD(ART/ME BENUTZERF/ARTI)

A B_BEZ R O 11 38REFFLD(ART/BEZ BENUTZERF/ARTI)

A 11 21'Beschreibnung:'

A*%%GP SCREEN1 02

A R FUSS

A*%%TS DD 20110906 141302 m10vocke REL-V5.0.1 WDSc

A 24 2'F3 = Verlassen'

A*%%GP SCREEN1 03

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...