screamboy14 Geschrieben 30. August 2011 Geschrieben 30. August 2011 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 Zitieren
ExAzubi Geschrieben 1. September 2011 Geschrieben 1. September 2011 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. Zitieren
screamboy14 Geschrieben 1. September 2011 Autor Geschrieben 1. September 2011 ja genau das mein ich ohne clear kommt die Fehlermeldung.. ok ich probier es aus, sobald ich wieder zugrif auf die i5 habe (auszubildender schüler) das wird frühestens dienstag sein, aber ich werd mich dann nochmal melden vielen dank bis jetzt für die Hilfe Zitieren
screamboy14 Geschrieben 6. September 2011 Autor Geschrieben 6. September 2011 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 ... Zitieren
WWetterwachs Geschrieben 7. September 2011 Geschrieben 7. September 2011 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 Zitieren
screamboy14 Geschrieben 8. September 2011 Autor Geschrieben 8. September 2011 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 ^^ Zitieren
WWetterwachs Geschrieben 8. September 2011 Geschrieben 8. September 2011 ????? 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? Zitieren
screamboy14 Geschrieben 8. September 2011 Autor Geschrieben 8. September 2011 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 Zitieren
WWetterwachs Geschrieben 9. September 2011 Geschrieben 9. September 2011 (bearbeitet) 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 9. September 2011 von WWetterwachs Zitieren
screamboy14 Geschrieben 13. September 2011 Autor Geschrieben 13. September 2011 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 Zitieren
Empfohlene Beiträge
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.