Anmelden Demo Control and Command
JavaScript is off
HttpServletRequest
Parameter CNC_SRC_JSP -> /welcome.jsp
Parameter CNC_STATUS -> null
HttpSession
CNC_FLOWSTACK_KEY -> java.util.Stack: List size: 1 class de.cnc.FlowStackElement
CNC_SRC_JSP -> java.lang.String: /welcome.jsp
CNC_STATUS -> java.lang.String: 3485319946249336832
javax.security.auth.subject -> javax.security.auth.Subject: Betreff:
FlowStack
Adr.|Src-Line| Procedure |
----+--------+--------------------+-----------------------------------------------------------------------
8| 13|main | jsp( "/logon.jsp" );
flow.cnc
Src: Adr:
1: ://****************************************************************************************
2: 0:procedure main()
3: :{
4: 1: logon // im Body der logon-Deklaration ist die User-Validierung ausgeschalten, damit ein Einloggen überhaupt möglich ist
5: : {
6: : // Logon immer wieder anbieten, bis ok
7: 2: while ( session:USER != "USER" )
8: : {
9: 3: if ( session:CNC_INFO_MESSAGE == null )
10: : {
11: 5: session:CNC_INFO_MESSAGE := "JavaScript is " + if( request:param:CNC_JAVASCRIPT == 'on' , 'on' , 'off' );
12: 6: }
-> 13: 8: jsp( "/logon.jsp" );
14: 9: action( "logon" );
15: 10: } //while
16: 11: } //logon
17: :
18: : // Einstiegspunkt Applikation
19: : // Logon und User-Validierung müssen hier schon gelaufen sein
20: 12: label begin;
21: :
22: : //Aufräumen
23: 13: session:CNC_FORM_KEY := null;
24: 14: session:CNC_LIST_KEY := null;
25: :
26: 15: while ( true ) // Endlos-Schleife
27: : {
28: 16: if ( session:CNC_INFO_MESSAGE == null )
29: : {
30: 18: session:CNC_INFO_MESSAGE := "JavaScript is " + if( request:param:CNC_JAVASCRIPT == 'on' , 'on' , 'off' );
31: 19: }
32: :
33: 21: jsp( "/mainmenu.jsp" );
34: :
35: 22: action( "clearSession" );
36: :
37: 23: if ( cnc_link == "blaettern" )
38: : {
39: 25: call blaettern();
40: 26: }
41: 28: else if ( cnc_link == "suchen" )
42: : {
43: 30: call suchen();
44: 31: }
45: 33: else if ( cnc_link == "liste_edit" )
46: : {
47: 35: call liste_edit();
48: 36: }
49: 38: else if ( cnc_link == "jsp_spreadsheet" )
50: : {
51: 40: call jsp_spreadsheet();
52: 41: }
53: 43: else if ( cnc_link == "date" )
54: : {
55: 45: call date();
56: 46: }
57: 48: else if ( cnc_link == "date_range" )
58: : {
59: 50: call date_range();
60: 51: }
61: 53: else if ( cnc_link == "date_validator" )
62: : {
63: 55: call date_validator();
64: 56: }
65: 58: else if ( cnc_link == "localvar" )
66: : {
67: 60: session:CNC_INFO_MESSAGE := "Test localvar: Achten Sie bitte auf die Session-Variable localvartest";
68: 61: jsp ( "/cncdebug/show.jsp" );
69: 62: session:localvartest := 'outside';
70: 63: session:CNC_INFO_MESSAGE := "Test localvar: Session-Variable localvartest vor CALL.<br><br>localvar wurde auf den Wert 'outside' gesetzt";
71: 64: jsp ( "/cncdebug/show.jsp" );
72: 65: call localvar();
73: 66: if ( session:localvartest != 'outside' )
74: : {
75: 68: session:CNC_ERROR_MESSAGE := "Test failed !!!";
76: 69: }
77: 71: else
78: : {
79: 72: session:CNC_INFO_MESSAGE := "Test localvar: Session-Variable localvartest nach RETURN.<br><br>localvar hat wieder den Wert 'outside'.";
80: 73: }
81: 74: jsp ( "/cncdebug/show.jsp" );
82: 75: reset ( "session:localvartest" );
83: 76: }
84: 78: else if ( cnc_link == "param" )
85: : {
86: 80: session:testparamoutside := "pervalue";
87: :
88: 81: session:CNC_INFO_MESSAGE := "Test value-parameter: Session-Variable testparamoutside vor CALL.<br><br>Variable testparamoutside auf 'pervalue' gesetzt.<br><br>testparamoutside: " + session:testparamoutside;
89: 82: jsp ( "/cncdebug/show.jsp" );
90: :
91: 83: call valueparamtest( session:testparamoutside );
92: :
93: 84: session:CNC_INFO_MESSAGE := "Test value-parameter: Session-Variable testparamoutside nach RETURN.<br><br>Variable testparamoutside hat wieder den Wert 'pervalue'.<br><br>testparamoutside: " + session:testparamoutside;
94: 85: jsp ( "/cncdebug/show.jsp" );
95: :
96: 86: reset ( "session:testparamoutside" );
97: 87: }
98: 89: else if ( cnc_link == "refparam" )
99: : {
100: 91: session:testparamoutside := "perreference";
101: :
102: 92: session:CNC_INFO_MESSAGE := "Test reference-parameter: Session-Variable testparamoutside vor CALL<br><br>testparamoutside: " + session:testparamoutside;
103: 93: jsp ( "/cncdebug/show.jsp" );
104: :
105: 94: call refparamtest( session:testparamoutside );
106: :
107: 95: if ( session:testparamoutside != 'changed' )
108: : {
109: 97: session:CNC_ERROR_MESSAGE := "Test failed !!!";
110: 98: }
111: 100: else
112: : {
113: 101: session:CNC_INFO_MESSAGE := "Test reference-parameter: Session-Variable testparamoutside nach RETURN<br><br>testparamoutside: " + session:testparamoutside;
114: 102: }
115: 103: jsp ( "/cncdebug/show.jsp" );
116: :
117: 104: reset ( "session:testparamoutside" );
118: 105: }
119: :
120: 107: else if ( cnc_link == "returnvalue" )
121: : {
122: : //reset sessionKey="testparamoutside ;
123: :
124: 109: session:CNC_INFO_MESSAGE := "Session-Variable test_return_outside existiert vor CALL nicht<br>session:test_return_outside: " + session:test_return_outside;
125: 110: jsp ( "/cncdebug/show.jsp" );
126: :
127: 111: session:test_return_outside := call returnvaluetest ();
128: :
129: 112: if ( session:test_return_outside != "returnvalue" )
130: : {
131: 114: session:CNC_INFO_MESSAGE := "Test failed<br>session:test_return_outside: " + session:test_return_outside;
132: 115: }
133: 117: else
134: : {
135: 118: session:CNC_INFO_MESSAGE := "Session-Variable test_return_outside nach RETURN<br>session:test_return_outside: " + session:test_return_outside;
136: 119: }
137: 120: jsp ( "/cncdebug/show.jsp" );
138: 121: } // else if
139: 124: else if ( cnc_link == "rekursion" )
140: : {
141: 125: session:CNC_INFO_MESSAGE := "Die Prozedur rekursion wird 4-mal aufgerufen bis der Parameter rekursivparam auf 4 incrementiert wurde";
142: 126: jsp ( "/cncdebug/show.jsp" );
143: 127: call rekursion ( 0 );
144: 128: } // else if
145: 131: else if ( cnc_link == "impl_action" )
146: : {
147: 132: call impl_action();
148: 133: } // else if
149: 136: else if ( cnc_link == "singlestepon" )
150: : {
151: 137: session:CNC_SINGLE_STEP_DEBUG := "ON";
152: 138: } // else if
153: 141: else if ( cnc_link == "singlestepoff" )
154: : {
155: 142: reset ( "session:CNC_SINGLE_STEP_DEBUG" );
156: 143: } // else if
157: 146: else if ( cnc_link == "bestellung" )
158: : {
159: 147: call bestellapp();
160: 148: } // else if
161: 151: else if ( cnc_link == "expression" )
162: : {
163: 152: call expression();
164: 153: } // else if
165: 156: else if ( cnc_link == "farbwahl" )
166: : {
167: 157: call farbwahl();
168: 158: } // else if
169: 161: else if ( cnc_link == "frames" )
170: : {
171: 162: jsp( "/frames/frame_main.jsp" );
172: 163: } // else if
173: 166: else if ( cnc_link == "tree_simple" )
174: : {
175: 167: call tree_simple();
176: 168: } // else if
177: 171: else if ( cnc_link == "tree_frames" )
178: : {
179: 172: jsp( "/tree_frames/frame_tree_main.jsp" );
180: 173: } // else if
181: : else
182: : {
183: 176: session:CNC_ERROR_MESSAGE := "unbekannte Action: " + cnc_link + " " + cnc_button + " !!!" ;
184: 177: jsp ( "/cncdebug/show.jsp" );
185: 178: }
186: 179: } // while
187: :
188: : // Sprungmarke für Navigationslink Logout
189: : // wird im normalen Durchlauf wegen Endlos-Schleife nie erreicht
190: 180: label logout;
191: 181: reset ( '' ); // löscht alle Session-Variablen
192: 182: session:CNC_INFO_MESSAGE := "Sie wurden ordnungsgemäss abgemeldet";
193: : // jsp( "/logon.jsp" );
194: :
195: :} // end main
196: ://****************************************************************************************
197: 184:procedure blaettern()
198: :{
199: : /*
200: : +-------------------+
201: : | |
202: : | blaettern.jsp |<-----------------------+
203: : | | |
204: : +-------------------+ |
205: : | |
206: : | +-------------------+ |
207: : | | next | |
208: : +------->| |------+
209: : | | page++ (max 10) | |
210: : | +-------------------+ |
211: : | |
212: : | +-------------------+ |
213: : | | prev | |
214: : +------->| |------+
215: : | page-- (min 0) |
216: : +-------------------+
217: : */
218: 185: session:page := 1;
219: 186: while( true ) // Endlos-Schleife
220: : {
221: 187: jsp ( "/blaettern/blaettern.jsp" );
222: :
223: 188: // Test Links
224: 189: if ( cnc_link == "prev" )
225: : {
226: 190: if ( session:page > 0 )
227: : {
228: 192: session:page-- ;
229: 193: }
230: 195: else
231: : {
232: 196: session:CNC_INFO_MESSAGE := "Minimum erreicht, Link" ;
233: 197: }
234: 198: } // elseif
235: 201: else if ( cnc_link == "next" )
236: : {
237: 202: if ( session:page < 10 )
238: : {
239: 204: session:page++ ;
240: 205: }
241: 207: else
242: : {
243: 208: session:CNC_INFO_MESSAGE := "Maximum erreicht, Link" ;
244: 209: }
245: 210: } // elseif
246: :
247: : // Test Buttons
248: 213: else if ( cnc_button == "prev" )
249: : {
250: 214: if ( session:page > 0 )
251: : {
252: 216: session:page-- ;
253: 217: }
254: 219: else
255: : {
256: 220: session:CNC_INFO_MESSAGE := "Minimum erreicht, Button" ;
257: 221: }
258: 222: } // elseif
259: 225: else if ( cnc_button == "next" )
260: : {
261: 226: if ( session:page < 10 )
262: : {
263: 228: session:page++ ;
264: 229: }
265: 231: else
266: : {
267: 232: session:CNC_INFO_MESSAGE := "Maximum erreicht, Button" ;
268: 233: }
269: 234: } // elseif
270: 236: } // while
271: :} // end blaettern
272: ://***************************************************************************************
273: 238:procedure suchen()
274: :{
275: : /*
276: : +-------------------+
277: : | |
278: : | suchen.jsp |<------------------------------------------------------------------+
279: : | | |
280: : +-------------------+ |
281: : | |
282: : | |
283: : +-------------------+ |
284: : | | |
285: : | suche-action | |
286: : | | |
287: : +-------------------+ |
288: : | |
289: : | +-----------------------+ |
290: : | | | |
291: : +-- kein Treffer ---------------------------------->| suche_erfolglos.jsp |--+
292: : | | | |
293: : | +-----------------------+ |
294: : | |
295: : | +-----------------------+ |
296: : | | | |
297: : +-- genau ein Treffer -------------------------+--->| anzeige_datensatz.jsp |--+
298: : | | | |
299: : | | +-----------------------+
300: : | |
301: : | +-------------------+ |
302: : | | | |
303: : +-- mehrere Treffer --->| treffer_liste.jsp |--+
304: : | |
305: : +-------------------+
306: : */
307: 239: do ( true ) // Endlos-Schleife
308: : {
309: 240: session:such_treffer := ""; // reset sessionKey such_treffer
310: 241: jsp ( "/suchen/suchen.jsp" );
311: :
312: 242: action ( "suchen" ) ; // speichert Trefferanzahl in der Session
313: :
314: 244: if ( session:such_treffer < 1 )
315: : {
316: : // kein Treffer
317: 245: jsp ( "/suchen/suche_erfolglos.jsp" );
318: 246: }
319: 248: else if ( session:such_treffer == 1 )
320: : {
321: : // genau ein Treffer
322: 250: session:show_name := "Genau1TrefferName" ;
323: 251: jsp ( "/suchen/anzeige_datensatz.jsp" );
324: 252: }
325: 254: else
326: : {
327: : // mehrere Treffer
328: 255: jsp ( "/suchen/treffer_liste.jsp" );
329: :
330: 256: session:show_name := cnc_action ; // gewählten Namen zwischenspeichern
331: :
332: : // weiter zum konkreten Treffer aus der Trefferliste
333: 257: jsp ( "/suchen/anzeige_datensatz.jsp" );
334: 258: } //else
335: 259: } // do
336: :} // end suchen
337: :// ****************************************************************************************
338: 261:procedure liste_edit()
339: :{
340: 262: action ( "setListeInSession" );
341: :
342: 263: while (true) // Endlos-Schleife
343: : {
344: 264: jsp ( "/liste_edit/liste_edit.jsp" );
345: :
346: 265: if ( cnc_button == "add" )
347: : {
348: 267: action ( "add" );
349: 268: session:CNC_FOCUS := "txt[" + ( length( session:CNC_LIST_KEY ) - 1 ) + "]";
350: 269: }
351: 271: else if ( cnc_button == "ins" )
352: : {
353: 273: action ( "ins" );
354: 274: session:CNC_FOCUS := "txt[" + cnc_button_index + "]";
355: 275: }
356: 277: else if ( cnc_button == "del" )
357: : {
358: 279: session:CNC_FORM_KEY := session:CNC_LIST_KEY[ cnc_button_index ]; // gewähltes Listenelement auf CNC_FORM_KEY kopieren
359: 280: session:CNC_INFO_MESSAGE := "Tabellenzeile " + cnc_button_index + " wirklich löschen?";
360: 281: jsp ( "/generic/del_ask.jsp" );
361: 282: if ( cnc_button == "del" )
362: : {
363: : //action ( "del" );
364: 284: action ( "deleFormListElement" );
365: 285: }
366: 287: session:CNC_FORM_KEY := null; // aufräumen
367: 288: session:CNC_FOCUS := "txt[" + cnc_button_index + "]";
368: 289: }
369: 291: else if ( cnc_button == "mvup" )
370: : {
371: 293: action ( "mvup" );
372: 294: session:CNC_FOCUS := "txt[" + ( cnc_button_index - 1 ) + "]";
373: 295: }
374: 297: else if ( cnc_button == "mvdn" )
375: : {
376: 299: action ( "mvdn" );
377: 300: session:CNC_FOCUS := "txt[" + ( cnc_button_index + 1 ) + "]";
378: 301: }
379: 303: else if ( cnc_button == "save" )
380: : {
381: 305: action ( "save" );
382: 306: session:CNC_INFO_MESSAGE := "Abspeichern auf Datenbank ist in dieser Demo-Version nicht möglich";
383: 307: jsp ( "/cncdebug/show.jsp" );
384: 308: return;
385: 310: }
386: 312: } // while
387: :} // end liste_edit
388: ://****************************************************************************************
389: 314:procedure date()
390: :{
391: 315: do(true) // Endlos-Schleife
392: : {
393: 316: jsp ( "/date/date.jsp" );
394: 317: session:date := request:param:date; // eingegebenes Datum zwischenspeichern
395: 319: if ( strToDate( session:date ) != null )
396: : {
397: 320: session:CNC_INFO_MESSAGE := "Datum '" + trim( session:date ) + "' ist korrekt"; // Setzen Meldung
398: 321: jsp ( "/cncdebug/show.jsp" );
399: 322: break;
400: 323: } //if
401: 325: session:CNC_ERROR_MESSAGE := "Bitte Datum korrigieren"; // Setzen Meldung
402: 326: } // do
403: :} // end date
404: ://****************************************************************************************
405: 328:procedure date_range()
406: :{
407: 329: while ( true ) // Endlos-Schleife
408: : {
409: 330: session:CNC_ERROR_MESSAGE := "Bitte Datum von 1.1.2004 bis 31.12.2004 eingeben";
410: 331: jsp ( "/date/date.jsp" );
411: 332: session:date := request:param:date; // eingegebenes Datum zwischenspeichern
412: 334: if ( ( strToDate( session:date ) >= strToDate( "1.1.2004" ) ) // if date >= 01.01.2004
413: : && ( strToDate( session:date ) <= strToDate( "31.12.2004" ) ) ) // if date <= 31.12.2004
414: : {
415: 335: session:CNC_INFO_MESSAGE := 'Datum "' + trim( session:date ) + '" ist korrekt'; // Setzen Meldung
416: 336: jsp ( "/cncdebug/show.jsp" );
417: 337: break; // Schleife beenden
418: 338: } // if
419: 340: } // while
420: :} // end procedure daterange
421: ://****************************************************************************************
422: 342:procedure date_validator()
423: :{
424: 343: while (true)
425: : {
426: 344: session:CNC_FORM_KEY := newObject( 'de.cncdemo.formbeans.DateValidatorFormBean' );
427: 345: session:CNC_INFO_MESSAGE := "Bitte Datum eingeben";
428: 346: jsp ( "/date/datevalidator.jsp" );
429: 347: session:CNC_INFO_MESSAGE := 'Datum "' + invokeMethod( session:CNC_FORM_KEY , 'getDate' ) + '" ist korrekt'; // Setzen Meldung
430: 348: jsp ( "/cncdebug/show.jsp" );
431: 349: }
432: :} // end procedure date_validator
433: ://****************************************************************************************
434: 351:procedure localvar()
435: :{
436: : /*
437: :
438: : +-------------------------------------------+
439: : | procedure main |
440: : | |
441: : | Variable localvartest = outside |
442: : | |
443: : | +-------------------------------------+ |
444: : | | procedure localvar | |
445: : | | | |
446: : | | Variable localvartest = inside | |
447: : | | | |
448: : | +-------------------------------------+ |
449: : | |
450: : | return zu main |
451: : | Variable localvartest == outside |
452: : | |
453: : +-------------------------------------------+
454: :
455: : */
456: 352: local session:localvartest;
457: :
458: 353: session:CNC_INFO_MESSAGE := "procedure localvar: Session-Variable localvartest nach CALL.<br><br>Der Originalwert wird auf dem Stack des CNC-Systems zwischengespeichert.";
459: 354: jsp ( "/cncdebug/show.jsp" );
460: :
461: 355: session:localvartest := "inside";
462: :
463: 356: session:CNC_INFO_MESSAGE := "procedure localvar: Session-Variable localvartest nach Belegen mit neuem Wert.<br><br>localvar wurde auf den Wert 'inside' gesetzt.";
464: 357: jsp ( "/cncdebug/show.jsp" );
465: :
466: :} // end procedure localvar
467: ://****************************************************************************************
468: 359:procedure valueparamtest( session:testparaminside )
469: :{
470: : /*
471: :
472: : +-----------------------------------------------+
473: : | procedure main |
474: : | |
475: : | Variable testparamoutside = pervalue |
476: : | |
477: : | +-----------------------------------------+ |
478: : | | procedure valueparamtest | |
479: : | | | |
480: : | | Parameter testparaminside == pervalue | |
481: : | | | |
482: : | | Parameter testparaminside = inside | |
483: : | | | |
484: : | +-----------------------------------------+ |
485: : | |
486: : | return zu main |
487: : | Variable testparamoutside == pervalue |
488: : | |
489: : +-----------------------------------------------+
490: :
491: : */
492: 360: session:CNC_INFO_MESSAGE := "procedure valueparamtest(value-parameter): Parameter testparaminside nach CALL.<br><br>Der Originalwert wird auf dem Stack des CNC-Systems zwischengespeichert, <br>ist aber in der procedure sichtbar.";
493: 361: jsp ( "/cncdebug/show.jsp" );
494: :
495: 362: session:testparaminside := "inside";
496: :
497: 363: session:CNC_INFO_MESSAGE := "procedure valueparamtest(value-parameter): Parameter testparaminside geändert.<br><br>localvar wurde auf den Wert 'inside' gesetzt.";
498: 364: jsp ( "/cncdebug/show.jsp" );
499: :
500: :} // end procedure paramtest
501: ://****************************************************************************************
502: 366:procedure refparamtest ( refparam session:refparam )
503: :{
504: : /*
505: : +------------------------------------------------+
506: : | procedure main |
507: : | |
508: : | Variable testparamoutside = perreference |
509: : | |
510: : | +------------------------------------------+ |
511: : | | procedure paramtest | |
512: : | | | |
513: : | | Parameter refparam == perreference | |
514: : | | | |
515: : | | Parameter refparam = changed | |
516: : | | | |
517: : | +------------------------------------------+ |
518: : | |
519: : | return zu main |
520: : | Variable testparamoutside == changed |
521: : | |
522: : +------------------------------------------------+
523: : */
524: 367: session:CNC_INFO_MESSAGE := "procedure refparamtest: Parameter refparam nach CALL";
525: 368: jsp ( "/cncdebug/show.jsp" );
526: :
527: 369: session:refparam := "changed";
528: :
529: 370: session:CNC_INFO_MESSAGE := "procedure refparamtest: Parameter refparam geändert";
530: 371: jsp ( "/cncdebug/show.jsp" );
531: :
532: :} // end procedure refparamtest
533: ://****************************************************************************************
534: 373:function returnvaluetest()
535: :{
536: 374: local session:returnkey;
537: 375: session:returnkey := "returnvalue";
538: :
539: 376: session:CNC_INFO_MESSAGE := "procedure returnvaluetest: Rückgabe Session-Variable returnkey<br>returnkey: " + session:returnkey;
540: 377: jsp ( "/cncdebug/show.jsp" );
541: :
542: 378: return ( session:returnkey );
543: :} // end procedure returnvaluetest
544: ://****************************************************************************************
545: 381:procedure rekursion ( session:rekursivparam )
546: :{
547: : /*
548: : Die Prozedur rekursion wird 4-mal aufgerufen bis
549: : der Parameter rekursivparam auf 4 incrementiert wurde
550: : */
551: :
552: 382: session:rekursivparam++ ; // um 1 erhöhen
553: :
554: 383: session:CNC_INFO_MESSAGE := '' + session:rekursivparam;
555: :
556: 384: jsp ( "/cncdebug/show.jsp" );
557: :
558: 385: if ( session:rekursivparam < 4 ) // bis zur 4 wiederholen
559: : {
560: 387: call rekursion ( session:rekursivparam ) // rekursiver Aufruf
561: 388: } // if
562: :
563: 390: session:CNC_INFO_MESSAGE := '' + session:rekursivparam;
564: :
565: 391: jsp ( "/cncdebug/show.jsp" );
566: :
567: 392: return;
568: :} // end procedure rekursion
569: ://****************************************************************************************
570: 395:procedure impl_action()
571: :{
572: : /*
573: : +-------------------+
574: : | |<--------------+
575: : | impl_action.jsp | |
576: : | | +--------------------------+
577: : | | | implizite Action |
578: : | | | |
579: : | | | de.cncdemo.implicit.Sort |
580: : | | | |
581: : | | +--------------------------+
582: : | | |
583: : | | |
584: : | | |
585: : | | |
586: : | | |
587: : +-------------------+ |
588: : | |
589: : +--------------------------+
590: : */
591: 396: session:SORT_DIRECTION := "DN"; // Sortieren abwaerts
592: 397: action ( "getSortList" ); // Test-Liste erzeugen
593: 398: jsp ( "/impl_action/impl_action.jsp" );
594: :} // end procedure impl_action
595: ://****************************************************************************************
596: 400:procedure bestellapp()
597: :{
598: 401: jsp ( "/bestellapplication/welcome.jsp" );
599: :
600: 402: if ( session:ARTIKEL_LISTE == null )
601: : {
602: 404: action ( "Bestellung#getArtikelListe" ); // neue Artikel-Liste
603: 405: session:ARTIKEL_LISTE := session:CNC_LIST_KEY; // Artikel-Liste auf reserviertem Key ablegen
604: 406: } // if
605: :
606: 409: if ( session:BESTELLUNGEN_LISTE == null )
607: : {
608: 410: action ( "Bestellung#getBestellungenListe" ); // neue Bestellungen Erzeugen
609: 411: session:BESTELLUNGEN_LISTE := session:CNC_LIST_KEY; // Bestellungen auf reserviertem Key ablegen
610: 412: } // if
611: :
612: 414: while( true ) // Endlos-Schleife
613: : {
614: 415: jsp ( "/bestellapplication/bestellappmain.jsp" );
615: :
616: 416: if ( cnc_link == "artikelstamm" )
617: : {
618: 418: reset ( "session:CNC_FORM_KEY" ); // dafür sorgen, daß kein vorgewähltes Element da ist
619: 419: call artikelstamm( null , false );
620: 420: }
621: 422: else if ( cnc_link == "bestellungen" )
622: : {
623: 424: call bestellungen();
624: 425: }
625: 427: else
626: : {
627: 428: return;
628: 430: } // if
629: 431: } // end while
630: :} // end procedure bestellapp
631: ://****************************************************************************************
632: 433:procedure bestellungen()
633: :{
634: 434: local session:CNC_LIST_KEY;
635: 435: local session:CNC_BROWSE_CTRL_KEY;
636: :
637: 436: while( true ) // Endlos-Schleife
638: : {
639: 437: session:CNC_LIST_KEY := session:BESTELLUNGEN_LISTE; // Bestellungen von reserviertem Key holen
640: 438: jsp ( "/bestellapplication/bestellungen/bestellungenliste.jsp" );
641: 439: if ( cnc_button == "edit" )
642: : {
643: 441: action ( "listElementToForm" );
644: 442: call singlebestellung( session:CNC_FORM_KEY );
645: 443: }
646: 445: else if ( cnc_button == "delete" )
647: : {
648: 447: session:CNC_FORM_KEY := session:CNC_LIST_KEY[ cnc_button_index ]; // gewähltes Listenelement auf CNC_FORM_KEY kopieren
649: 448: session:CNC_INFO_MESSAGE := "Bestellung "
650: : + getProperty( session:CNC_FORM_KEY , "nr" ) + " "
651: : + getProperty( session:CNC_FORM_KEY , "bezeichnung" )
652: : + " wirklich löschen?";
653: 449: jsp ( "/generic/del_ask.jsp" );
654: 450: if ( cnc_button == "del" )
655: : {
656: : //action ( "del" );
657: 452: action ( "deleFormListElement" );
658: 453: }
659: 455: }
660: 457: else if ( cnc_button == "add" )
661: : {
662: 459: session:CNC_FORM_KEY := call newbestellung();
663: :
664: 460: if ( session:CNC_FORM_KEY != null )
665: : {
666: 462: action ( "addFormToList" );
667: 463: action ( "goLastPage" );
668: 464: } // if
669: :
670: 466: }
671: 468: else if ( cnc_button == "no_parse" )
672: : {
673: 470: return;
674: 472: }
675: 474: } // end while
676: :} // end procedure singlebestellung
677: ://****************************************************************************************
678: 476:function newbestellung()
679: :{
680: 477: local session:CNC_FORM_KEY;
681: :
682: : //set sessionKey="CNC_FORM_KEY" class="de.cncdemo.formbeans.BestellungFormBean"/ // neue Bestellung erzeugen
683: :
684: 478: action ( "Bestellung#newBestellung" ); // neue Bestellung erzeugen
685: 479: jsp ( "/bestellapplication/singlebestellung/bestellungform.jsp" );
686: 480: if ( cnc_button == "save" )
687: : {
688: 482: return ( session:CNC_FORM_KEY );
689: 484: }
690: 486: else if ( cnc_button == "no_parse" )
691: : {
692: 488: return ( null );
693: 490: } // if
694: :} // end procedure newbestellung
695: ://****************************************************************************************
696: 493:procedure singlebestellung ( session:SINGLEBESTELLUNG_KEY )
697: :{
698: 494: local session:CNC_LIST_KEY;
699: 495: local session:CNC_BROWSE_CTRL_KEY;
700: :
701: 496: action ( "Bestellung#setBestellPositionenToListKey" ); // Liste Bestell-Positionen auf CNC_LIST_KEY legen
702: :
703: 497: while( true ) // Endlos-Schleife
704: : {
705: 498: jsp ( "/bestellapplication/singlebestellung/bestellung.jsp" );
706: :
707: 499: if ( cnc_button == "add" )
708: : {
709: 501: reset ( "session:CNC_FORM_KEY" ); // dafür sorgen, daß kein vorgewähltes Element da ist
710: 502: session:CNC_FORM_KEY := null; // analog zu RESET, keine Vorbelegung
711: :
712: 503: session:CNC_INFO_MESSAGE := "Bitte anzufügenden Artikel auswählen";
713: :
714: 504: session:CNC_FORM_KEY := call artikelstamm (
715: : null, //session:CNC_FORM_KEY ,
716: : true /* Schalter für Wahl-Modus */ );
717: :
718: 505: if ( cnc_button == "no_parse" ) // Abbruch-Button
719: : {
720: 507: continue;
721: 508: }
722: 510: action ( "Bestellung#addBestellPos" );
723: 511: action ( "goLastPage" );
724: 512: }
725: 514: else if ( cnc_button == "ins" )
726: : {
727: 516: action ( "Bestellung#saveIndex" ); // vermerken Nummer des Buttons (Index) auf dem Session-Key BESTELLUNG_INDEX
728: 517: reset ( "session:CNC_FORM_KEY" ); // dafür sorgen, daß kein vorgewähltes Element da ist
729: 518: session:CNC_INFO_MESSAGE := "Bitte einzufügenden Artikel auswählen";
730: 519: session:CNC_FORM_KEY := null; // analog zu RESET, keine Vorbelegung
731: 520: session:CNC_FORM_KEY := call artikelstamm (
732: : session:CNC_FORM_KEY ,
733: : true /* Schalter für Wahl-Modus */ );
734: :
735: 521: if ( cnc_button == "no_parse" ) // Abbruch-Button
736: : {
737: 523: continue;
738: 524: }
739: 526: action ( "Bestellung#insBestellPos" );
740: 527: }
741: 529: else if ( cnc_button == "edit" ) // Bestell-Position (Artikel) Editieren
742: : {
743: 531: action ( "Bestellung#saveIndex" ); // vermerken Nummer des Buttons (Index) auf dem Session-Key BESTELLUNG_INDEX
744: 532: action ( "listElementToForm" ); // gewähltes Listenelement auf CNC_FORM_KEY kopieren
745: 533: action ( "Bestellung#getArtikelFromPosition" ); // Artikel-Objekt aus Positions-Objekt entnehmen
746: 534: session:CNC_INFO_MESSAGE := "Artikel Bearbeiten";
747: 535: session:CNC_FORM_KEY := call artikelstamm (
748: : session:CNC_FORM_KEY ,
749: : true /* Schalter für Wahl-Modus */ );
750: :
751: 536: if ( cnc_button == "no_parse" ) // Abbruch-Button
752: : {
753: 538: continue;
754: 539: }
755: 541: action ( "Bestellung#setPosArtikel" );
756: 542: }
757: 544: else if ( cnc_button == "del" )
758: : {
759: 546: session:CNC_FORM_KEY := session:CNC_LIST_KEY[ cnc_button_index ]; // gewähltes Listenelement auf CNC_FORM_KEY kopieren
760: 547: session:CNC_INFO_MESSAGE := "Bestellungs-Position "
761: : + getProperty(
762: : getProperty( session:CNC_FORM_KEY , "artikel" ) ,
763: : "bez" )
764: : + " wirklich löschen?";
765: 548: jsp ( "/generic/del_ask.jsp" );
766: 549: if ( cnc_button == "del" )
767: : {
768: : //action ( "del" );
769: 551: action ( "deleFormListElement" );
770: 552: }
771: 554: }
772: 556: else if ( cnc_button == "mvup" )
773: : {
774: 558: action ( "mvup" );
775: 559: }
776: 561: else if ( cnc_button == "mvdn" )
777: : {
778: 563: action ( "mvdn" );
779: 564: }
780: 566: else if ( cnc_button == "save" )
781: : {
782: 568: return;
783: 570: } // if
784: 572: } // end while
785: :
786: :} // end procedure singlebestellung
787: ://****************************************************************************************
788: 574:function artikelstamm ( /*refparam*/ session:artikel , session:wahl )
789: :{
790: : /*
791: : Die Prozedur Artikelstamm erlaubt das
792: : Bearbeiten
793: : Anlegen
794: : Löschen
795: : Auswählen
796: : von Artikeln der Bestell-Applikation
797: :
798: : |
799: : action Bestellung#getArtikelListe
800: : |
801: : +-------------------+
802: : | |
803: : | artikelliste.jsp |<--------------------------------------------------------------------------------------+
804: : | | |
805: : +-------------------+ |
806: : | |
807: : | +-----------------+ |
808: : | | | |
809: : +--- Bearbeiten --- action listElementToForm ---+ artikelform.jsp +------------------------------------+
810: : | | | |
811: : | +-----------------+ |
812: : | |
813: : | +-----------------+ |
814: : | | | |
815: : +--- Anlegen ------ set class (Init) -----------+ artikelform.jsp +--- action addFormToList -----------+
816: : | | | |
817: : | +-----------------+ |
818: : | |
819: : | +----------------------+ |
820: : | | | |
821: : +--- Löschen --- action listElementToForm ---+ artikeldeleteask.jsp +--- action deleFormListElement ---+
822: : | | |
823: : | +----------------------+
824: : |
825: : |
826: : +--- Auswählen ----- > return mit gewähltem Objekt
827: : */
828: 575: local session:CNC_LIST_KEY;
829: 576: local session:CNC_BROWSE_CTRL_KEY;
830: :
831: ://session:CNC_SINGLE_STEP_DEBUG := "ON";
832: :
833: 577: session:CNC_LIST_KEY := session:ARTIKEL_LISTE; // Artikel-Liste von reserviertem Key holen
834: 578: action ( "Bestellung#setArtikelFokus" ); // Fokus auf vorher gewählten Artikel setzen
835: :
836: 579: while( true ) // Endlos-Schleife
837: : {
838: 580: jsp ( "/bestellapplication/artikel/artikelliste.jsp" );
839: :
840: 581: if ( cnc_button == "edit" ) // Artikel Editieren
841: : {
842: 583: action ( "listElementToForm" ); // gewähltes Listenelement auf CNC_FORM_KEY kopieren
843: 584: session:EDIT_MODE := true; // Merker für if-tags im JSP auf EDIT setzen
844: :
845: 585: reset ( "session:FORM_VALID" );
846: :
847: 586: do ( session:FORM_VALID == null ) // wiederholen bis valid
848: : {
849: 587: jsp ( "/bestellapplication/artikel/artikelform.jsp" );
850: 588: if ( cnc_button == "no_parse" ) // Abbruch-Button
851: : {
852: 590: break;
853: 591: }
854: 593: action ( "Bestellung#validArtikelEdit" ); // Eingabe prüfen
855: 594: } // do
856: :
857: 595: reset ( "session:EDIT_MODE" );
858: 596: }
859: 598: else if ( cnc_button == "add" ) // Artikel Hinzufügen
860: : {
861: 600: session:CNC_FORM_KEY := newObject( "de.cncdemo.formbeans.ArtikelFormBean" ); // neues Listenelement auf CNC_FORM_KEY erzeugen
862: 601: session:EDIT_MODE := false; // Merker für if-tags im JSP auf ADD setzen
863: :
864: 602: reset ( "session:FORM_VALID" );
865: 603: do ( session:FORM_VALID == null ) // wiederholen bis valid
866: : {
867: 604: jsp ( "/bestellapplication/artikel/artikelform.jsp" );
868: 605: if ( cnc_button == "no_parse" ) // Abbruch-Button
869: : {
870: 607: break;
871: 608: }
872: 610: action ( "Bestellung#validArtikelAdd" ); // Eingabe prüfen
873: 611: } // do
874: :
875: 612: reset ( "session:EDIT_MODE" );
876: 613: if ( cnc_button == "no_parse" ) // Abbruch-Button
877: : {
878: 615: continue;
879: 616: }
880: :
881: 618: action ( "addFormToList" );
882: 619: action ( "goLastPage" );
883: :
884: 620: } // elseif
885: 623: else if ( cnc_button == "delete" )
886: : {
887: : //action ( "listElementToForm" ); // gewähltes Listenelement auf CNC_FORM_KEY kopieren
888: 624: session:CNC_FORM_KEY := session:CNC_LIST_KEY[ cnc_button_index ]; // gewähltes Listenelement auf CNC_FORM_KEY kopieren
889: 625: jsp ( "/bestellapplication/artikel/artikeldeleteask.jsp" );
890: 626: if ( cnc_button == "no_parse" ) // Abbruch-Button
891: : {
892: 628: continue;
893: 629: }
894: 631: action ( "deleFormListElement" );
895: :
896: 632: } // elseif
897: 635: else if ( cnc_button == "wahl" )
898: : {
899: 636: action ( "listElementToForm" ); // gewähltes Listenelement auf CNC_FORM_KEY kopieren
900: ://session:CNC_SINGLE_STEP_DEBUG := "ON";
901: 638: return ( session:CNC_FORM_KEY );
902: 639: } // elseif
903: 642: else if ( cnc_button == "no_parse" ) // Abbruch-Button
904: : {
905: 643: return ( null );
906: 645: }
907: 647: } // end while
908: :} // end procedure artikelstamm
909: ://****************************************************************************************
910: 649:procedure farbwahl()
911: :{
912: 650: session:fgrRed := "0" ;
913: 651: session:fgrGreen := "0" ;
914: 652: session:fgrBlue := "0" ;
915: :
916: 653: session:bgrRed := "255" ;
917: 654: session:bgrGreen := "255" ;
918: 655: session:bgrBlue := "255" ;
919: :
920: 656: session:alinkRed := "0" ;
921: 657: session:alinkGreen := "0" ;
922: 658: session:alinkBlue := "0" ;
923: :
924: 659: session:avisitedRed := "0" ;
925: 660: session:avisitedGreen := "0" ;
926: 661: session:avisitedBlue := "0" ;
927: :
928: 662: session:ahoverfgrRed := "255" ;
929: 663: session:ahoverfgrGreen := "255" ;
930: 664: session:ahoverfgrBlue := "255" ;
931: :
932: 665: session:ahoverbgrRed := "0" ;
933: 666: session:ahoverbgrGreen := "64" ;
934: 667: session:ahoverbgrBlue := "128" ;
935: :
936: 668: session:aactiveRed := "0" ;
937: 669: session:aactiveGreen := "0" ;
938: 670: session:aactiveBlue := "0" ;
939: :
940: 671: while(true) //Endlos-Schleife
941: : {
942: 672: jsp ( "/color/color.jsp" ) ;
943: :
944: 673: //Verzweigung zum Feststellen ob der Button fuer Vordergrund, Hintergrund oder eine andere Style-Komponente gilt (color)
945: 674: if ( startsWith( cnc_button , "fgr" ) )
946: : {
947: 675: call styleColor ( session:fgrRed , session:fgrGreen , session:fgrBlue ) ;
948: 676: }
949: 678: else if ( startsWith( cnc_button , "bgr" ) )
950: : {
951: 680: call styleColor ( session:bgrRed , session:bgrGreen , session:bgrBlue ) ;
952: 681: }
953: 683: else if ( startsWith( cnc_button , "alink" ) )
954: : {
955: 685: call styleColor ( session:alinkRed , session:alinkGreen , session:alinkBlue ) ;
956: 686: }
957: 688: else if ( startsWith( cnc_button , "avisited" ) )
958: : {
959: 690: call styleColor ( session:avisitedRed , session:avisitedGreen , session:avisitedBlue ) ;
960: 691: }
961: 693: else if ( startsWith( cnc_button , "ahoverfgr" ) )
962: : {
963: 695: call styleColor ( session:ahoverfgrRed , session:ahoverfgrGreen , session:ahoverfgrBlue ) ;
964: 696: }
965: 698: else if ( startsWith( cnc_button , "ahoverbgr" ) )
966: : {
967: 700: call styleColor ( session:ahoverbgrRed , session:ahoverbgrGreen , session:ahoverbgrBlue ) ;
968: 701: }
969: 703: else if ( startsWith( cnc_button , "aactive" ) )
970: : {
971: 705: call styleColor ( session:aactiveRed , session:aactiveGreen , session:aactiveBlue ) ;
972: 706: }
973: 708: else
974: : {
975: 709: session:CNC_INFO_MESSAGE := "Programmfehler in farbwahl" ;
976: 710: } // else
977: 711: } // while
978: :} //end procedure farbwahl
979: ://****************************************************************************************
980: 713:procedure styleColor ( refparam session:colorPartRed , refparam session:colorPartGreen , refparam session:colorPartBlue )
981: :{
982: :
983: 714://jsp ( "/cncdebug/show.jsp" );
984: :
985: : //Verzweigung zum Feststellen der Farb-Komponente (colorPart Red, Green oder Blue) der Button gilt
986: 715: if ( contents( cnc_button , "Red" ) )
987: : {
988: 716: call colorPart ( session:colorPartRed ) ;
989: 717: }
990: 719: else if ( contents( cnc_button , "Green" ) )
991: : {
992: 721: call colorPart ( session:colorPartGreen ) ;
993: 722: }
994: 724: else if ( contents( cnc_button , "Blue" ) )
995: : {
996: 726: call colorPart ( session:colorPartBlue ) ;
997: 727: }
998: 729: else
999: : {
1000: 730: session:CNC_INFO_MESSAGE := "Programmfehler in styleColor" ;
1001: 731: }
1002: :
1003: ://jsp ( "/cncdebug/show.jsp" );
1004: :
1005: :} //end procedure styleColor
1006: ://****************************************************************************************
1007: 733:procedure colorPart( refparam session:colorPartActual )
1008: :{
1009: :
1010: 734://jsp ( "/cncdebug/show.jsp" );
1011: :
1012: : //Verzweigung zum Feststellen des Button
1013: 735: if ( endsWith ( cnc_button , "Set0" ) )
1014: : {
1015: 736: call colorButton ( session:colorPartActual , "Set0" ) ;
1016: 737: }
1017: 739: else if ( endsWith ( cnc_button , "Dec" ) )
1018: : {
1019: 741: call colorButton ( session:colorPartActual , "Dec" ) ;
1020: 742: }
1021: 744: else if ( endsWith ( cnc_button , "Dec8" ) )
1022: : {
1023: 746: call colorButton ( session:colorPartActual , "Dec8" ) ;
1024: 747: }
1025: 749: else if ( endsWith ( cnc_button , "Inc" ) )
1026: : {
1027: 751: call colorButton ( session:colorPartActual , "Inc" ) ;
1028: 752: }
1029: 754: else if ( endsWith ( cnc_button , "Inc8" ) )
1030: : {
1031: 756: call colorButton ( session:colorPartActual , "Inc8" ) ;
1032: 757: }
1033: 759: else if ( endsWith ( cnc_button , "Set255" ) )
1034: : {
1035: 761: call colorButton ( session:colorPartActual , "Set255" ) ;
1036: 762: }
1037: 764: else
1038: : {
1039: 765: session:CNC_INFO_MESSAGE := "Programmfehler in colorPart" ;
1040: 766: } // else
1041: :
1042: ://jsp ( "/cncdebug/show.jsp" );
1043: :
1044: :} // end procedure colorPart
1045: ://****************************************************************************************
1046: ://Abarbeitung der Buttons fuer ein Color-Part zum Beispiel fgrRed (color+colorPart)
1047: 768:procedure colorButton ( refparam session:colorPartKey , session:buttonValue )
1048: :{
1049: :
1050: 769://jsp ( "/cncdebug/show.jsp" );
1051: :
1052: 770: if ( session:buttonValue == "Set0" )
1053: : {
1054: 771: session:colorPartKey := "0" ;
1055: 772: }
1056: 774: else if ( session:buttonValue == "Dec" )
1057: : {
1058: 776: if ( num( session:colorPartKey ) > 0 )
1059: : {
1060: 778: session:colorPartKey := "" + ( num( session:colorPartKey ) - 1 ) ; // von String zu num und wieder zurück umwandeln
1061: 779: }
1062: 781: else
1063: : {
1064: 782: session:CNC_INFO_MESSAGE := "Minimum erreicht" ;
1065: 783: session:colorPartKey := "0" ;
1066: 784: } // else
1067: 785: }
1068: 787: else if ( session:buttonValue == "Dec8" )
1069: : {
1070: 789: if ( num( session:colorPartKey ) > 8 )
1071: : {
1072: 791: session:colorPartKey := "" + ( num( session:colorPartKey ) - 8 ) ; // von String zu num und wieder zurück umwandeln
1073: 792: }
1074: 794: else
1075: : {
1076: 795: session:CNC_INFO_MESSAGE:="Minimum erreicht" ;
1077: 796: session:colorPartKey := "0" ;
1078: 797: }
1079: 798: }
1080: 800: else if ( session:buttonValue == "Inc" )
1081: : {
1082: 802: if ( num( session:colorPartKey ) < 255 )
1083: : {
1084: 804: session:colorPartKey := "" + ( num( session:colorPartKey ) + 1 ) ; // von String zu num und wieder zurück umwandeln
1085: 805: }
1086: 807: else
1087: : {
1088: 808: session:CNC_INFO_MESSAGE := "Maximum erreicht" ;
1089: 809: session:colorPartKey := "255" ;
1090: 810: }
1091: 811: }
1092: 813: else if ( session:buttonValue == "Inc8" )
1093: : {
1094: 815: if ( num( session:colorPartKey ) < 247 )
1095: : {
1096: 817: session:colorPartKey := "" + ( num( session:colorPartKey ) + 8 ) ; // von String zu num und wieder zurück umwandeln
1097: 818: }
1098: 820: else
1099: : {
1100: 821: session:CNC_INFO_MESSAGE := "Maximum erreicht" ;
1101: 822: session:colorPartKey := "255" ;
1102: 823: }
1103: 824: }
1104: 826: else if ( session:buttonValue == "Set255" )
1105: : {
1106: 828: session:colorPartKey := "255" ;
1107: 829: }
1108: 831: else
1109: : {
1110: 832: session:CNC_INFO_MESSAGE := "Programmfehler in colorButton" ;
1111: 833: } // if
1112: :} //end procedure colorButton
1113: ://****************************************************************************************
1114: 835:procedure jsp_spreadsheet ()
1115: :{
1116: 836: while ( true )
1117: : {
1118: 837: if ( session:CNC_LIST_KEY == null )
1119: : {
1120: : //Daten von Datenbank holen
1121: 839: action ( 'JspSpreadsheet#load' );
1122: 840: }
1123: :
1124: 842: jsp( "/jsp_spreadsheet/jsp_spreadsheet.jsp" );
1125: :
1126: 843: if ( cnc_button == 'save' )
1127: : {
1128: 845: action ( 'JspSpreadsheet#save' );
1129: 846: }
1130: 848: else if ( cnc_button == 'add' )
1131: : {
1132: 850: add( session:CNC_LIST_KEY , newObject( 'de.cncdemo.formbeans.AktieFormBean' ) );
1133: :
1134: : // zum Ende der Liste blättern
1135: 851: invokeMethod( session:CNC_BROWSE_CTRL_KEY , "goLast" );
1136: 852: session:CNC_FOCUS := "name[" + ( length( session:CNC_LIST_KEY ) - 1 ) + "]";
1137: 853: }
1138: 855: else if ( cnc_button == 'ins' )
1139: : {
1140: 857: add( session:CNC_LIST_KEY , newObject( 'de.cncdemo.formbeans.AktieFormBean' ) , cnc_button_index );
1141: 858: session:CNC_FOCUS := "name[" + cnc_button_index + "]";
1142: 859: }
1143: 861: else if ( cnc_button == 'del' )
1144: : {
1145: : // Zwischenspeichern Button-Index, weil der Button-Index nach dem Anzeigen der nächsten JSP nicht mehr im Request ist
1146: 863: session:listIndex := cnc_button_index;
1147: :
1148: : //Löschfrage
1149: 864: session:CNC_INFO_MESSAGE := "Position: " + cnc_button_index + " mit der Aktie " + session:CNC_LIST_KEY[ cnc_button_index ] + " wirklich löschen?";
1150: :
1151: 865: jsp( 'generic/del_ask.jsp' );
1152: :
1153: 866: if ( cnc_button == 'del' )
1154: : {
1155: 868: remove( session:CNC_LIST_KEY , session:listIndex );
1156: 869: }
1157: 871: session:CNC_FOCUS := "name[" + ( session:listIndex ) + "]";
1158: 872: session:listIndex := null ;
1159: 873: }
1160: 875: } // end while
1161: :} // end procedure jsp_spreadsheet
1162: ://****************************************************************************************
1163: 877:procedure frame_menu()
1164: :{
1165: 878: jsp( "/frames/frame_menu.jsp" );
1166: :}
1167: ://****************************************************************************************
1168: 880:procedure frame_empty()
1169: :{
1170: 881: jsp( "empty.jsp" );
1171: :}
1172: ://****************************************************************************************
1173: ://procedure frame_table()
1174: ://{
1175: :// jsp( "/frames/frame_table.jsp" );
1176: ://}
1177: ://****************************************************************************************
1178: 883:procedure frame_table_kunden()
1179: :{
1180: 884: action( "Frames#loadKunden" );
1181: 885: jsp( "/frames/frame_table.jsp" );
1182: :}
1183: ://****************************************************************************************
1184: 887:procedure frame_table_lieferanten()
1185: :{
1186: 888: action( "Frames#loadLieferanten" );
1187: 889: jsp( "/frames/frame_table.jsp" );
1188: :}
1189: ://****************************************************************************************
1190: :// procedure frame_form()
1191: :// {
1192: :// jsp( "/frames/frame_form.jsp" );
1193: :// }
1194: ://****************************************************************************************
1195: 891:procedure frame_form_kunden()
1196: :{
1197: 892: session:CNC_FORM_KEY := session:CNC_LIST_KEY[ num( request:param:index ) ];
1198: 893: jsp( "/frames/frame_form.jsp" );
1199: :}
1200: ://****************************************************************************************
1201: 895:procedure frame_form_lieferanten()
1202: :{
1203: 896: session:CNC_FORM_KEY := session:CNC_LIST_KEY[ num( request:param:index ) ];
1204: 897: jsp( "/frames/frame_form.jsp" );
1205: :}
1206: ://****************************************************************************************
1207: 899:procedure tree_simple()
1208: :{
1209: : /*
1210: : +-------------------+
1211: : | |<----------------+
1212: : | tree.jsp | |
1213: : | | +-----------------------------+
1214: : | | | implizite Action |
1215: : | | | |
1216: : | | | de.cnc.implicit.TreeActions |
1217: : | | | |
1218: : | | +-----------------------------+
1219: : | | |
1220: : | | |
1221: : | | |
1222: : | | |
1223: : | | |
1224: : +-------------------+ |
1225: : | |
1226: : +----------------------------+
1227: : */
1228: 900: session:CNC_TREE_KEY := action( "createTree" );
1229: 901: jsp ( "/tree_simple/tree.jsp" );
1230: :} // end procedure tree
1231: ://****************************************************************************************
1232: 903:procedure frame_tree() // diese Prozedur wird von tree_frame_main.jsp aufgerufen
1233: :{
1234: 904: session:CNC_TREE_KEY := action( "createTree" );
1235: 905: jsp( "/tree_frames/frame_tree.jsp" );
1236: :}
1237: ://****************************************************************************************
1238: 907:procedure frame_tree_table()
1239: :{
1240: 908: action( "copyNodes" );
1241: 909: session:CNC_INFO_MESSAGE := "Sub-Node's von " + invokeMethod( session:CNC_FORM_KEY , "getName" );
1242: 910: jsp( "/tree_frames/frame_tree_table.jsp" );
1243: :}
1244: ://****************************************************************************************
1245: 912:procedure expression()
1246: :{
1247: 913: while ( true ) // Endlos-Schleife
1248: : {
1249: 914: jsp ( "/expression/expression.jsp" );
1250: 915: session:expression := request:param:expression; // eingegebene Expression zwischenspeichern
1251: 917: if ( cnc_button == "Demo Numbers" )
1252: : {
1253: 918: session:expression := "1 + 2";
1254: 919: } // if
1255: 922: else if ( cnc_button == "Demo Strings" )
1256: : {
1257: 923: session:expression := "'aaa'+'bbb'";
1258: 924: } // if
1259: 927: else if ( cnc_button == "Demo Boolean" )
1260: : {
1261: 928: session:expression := "true && ( 1 > 2)";
1262: 929: } // if
1263: 932: else if ( cnc_button == "Demo Variable numerisch" )
1264: : {
1265: 933: session:expression := "var1";
1266: 934: session:CNC_INFO_MESSAGE := "Numerische Variable var1. Die vorhandenen Variablen sehen Sie auf dem SessionKey expressionRuntimeEnvironment (Debug-Bereich HttpSession)";
1267: 935: } // else if
1268: 938: else if ( cnc_button == "Demo Variable String-Array" )
1269: : {
1270: 939: session:expression := "arr1[1]";
1271: 940: session:CNC_INFO_MESSAGE := "String-Array-Variable arr1[0..4]. Die vorhandenen Variablen sehen Sie auf dem SessionKey expressionRuntimeEnvironment (Debug-Bereich HttpSession)";
1272: 941: } // else if
1273: 944: else if ( cnc_button == "Demo set Variable" )
1274: : {
1275: 945: session:expression := "setVar( testStr , 'Inhalt testStr' )";
1276: 946: } // else if
1277: 949: else if ( cnc_button == "Demo setVarForName" )
1278: : {
1279: 950: session:expression := "setVarForName( 'testStrForName' , 'Inhalt testStrForName' )";
1280: 951: } // else if
1281: 954: else if ( cnc_button == "Demo set Array Variable" )
1282: : {
1283: 955: session:expression := "setVar( arr1[0] , 'str0 neu gesetzt' )";
1284: 956: } // else if
1285: 959: else if ( cnc_button == "Demo Parenthesis" )
1286: : {
1287: 960: session:expression := "( 1 + ( 3 * 3 ) + 4 ) * 10";
1288: 961: } // else if
1289: 964: else if ( cnc_button == "Demo Sequence simple" )
1290: : {
1291: 965: session:expression := "// Sequenzen sind mehrere Ausdrücke" + newline +
1292: : "// durch Semikolon getrennt" + newline +
1293: : "// und in geschwungene Klammern eingeschlossen" + newline +
1294: : "// zurückgegeben wird immer das Ergebnis des letzten berechneten Ausdruckes" + newline +
1295: : "" + newline +
1296: : "{/* Kommentare sind natuerlich auch moeglich */" + newline +
1297: : " println( 1 ) ; // Kommentare auch am Zeilenende" + newline +
1298: : " println( 2 ) ;" + newline +
1299: : " println( 3 ) ;" + newline +
1300: : " println( 4 ) ;" + newline +
1301: : " println( 5 ) ;" + newline +
1302: : " println( 6 ) " + newline +
1303: : "}";
1304: 966: } // else if
1305: 969: else if ( cnc_button == "Demo Sequence mit continue und break" )
1306: : {
1307: 970: session:expression := "{ i := 0 ;" + newline +
1308: : " { println( 'sequ:'+i++ ) ;" + newline +
1309: : " if( i < 3 ," + newline +
1310: : " contSequ() ," + newline +
1311: : " breakSequ( i )" + newline +
1312: : " )" + newline +
1313: : " } " + newline +
1314: : "}";
1315: :
1316: 971: session:CNC_INFO_MESSAGE := "Testen Sie bitte die continue-Bedingung, dritte Zeile i < x , mit anderen Werten groesser 3";
1317: 972: } // else if
1318: 975: else if ( cnc_button == "Demo while und else if" )
1319: : {
1320: 976: session:expression := "{ i := 0 ;" + newline +
1321: : " // while als Funktion" + newline +
1322: : " while( i < 3 ," + newline +
1323: : " // if als Funktion" + newline +
1324: : " { if( i < 1 ," + newline +
1325: : " println( 'i ist kleiner als 1' ) ," + newline +
1326: : " if( i < 2 ," + newline +
1327: : " println( 'i ist kleiner als 2' ) ," + newline +
1328: : " println( 'i ist groesser gleich 2' )" + newline +
1329: : " )" + newline +
1330: : " ) ;" + newline +
1331: : " i++" + newline +
1332: : " }" + newline +
1333: : " ) " + newline +
1334: : "}";
1335: 977: session:CNC_INFO_MESSAGE := "Eine while-Schleife bietet dem geschachtelten if-Verteiler die Variable i im Bereich von 0 bis 2 an";
1336: 978: } // if
1337: 981: else if ( cnc_button == "Demo for 1" )
1338: : {
1339: 982: session:expression := "// for als Funktion" + newline +
1340: : "for( i := 0 , i < 10 , i++ , println( 'for: '+i ) )";
1341: 983: session:CNC_INFO_MESSAGE := "Die Notation der for-Funktion lautet: for( startExpression , conditionExpression , stepExpression , bodyExpression )";
1342: 984: } // else if
1343: 987: else if ( cnc_button == "Demo for 2" )
1344: : {
1345: 988: session:expression := "// for als Funktion" + newline +
1346: : "for( i := 0 , i < 10 , null , println( 'for: '+i++ ) )";
1347: 989: session:CNC_INFO_MESSAGE := "So geht es auch. Die Notation der for-Funktion lautet: for( startExpression , conditionExpression , stepExpression , bodyExpression )";
1348: 990: } // else if
1349: 993: else if ( cnc_button == "Demo Repeat" )
1350: : {
1351: 994: session:expression := "{ x := 0 ;" + newline +
1352: : " // repeat als Funktion repeat-until (pascal style) statt do-while" + newline +
1353: : " repeat( x > 0 ," + newline +
1354: : " { println( 'tu solange x > 0, aber mindestens einmal' ) ;" + newline +
1355: : " x--" + newline +
1356: : " }" + newline +
1357: : " ) " + newline +
1358: : "}";
1359: 995: session:CNC_INFO_MESSAGE := "Ausführung der Body-Expression solange der erste Parameter true ist, aber mindestens einmal";
1360: 996: } // else if
1361: 999: else if ( cnc_button == "Demo Index-Operator" )
1362: : {
1363:1000: action( "setArrListMap" );
1364:1001: session:expression := "{ // Abfrage" + newline +
1365: : " println( arrListMap[ 0 , 0 , 'A' ] ) ;" + newline +
1366: : "" + newline +
1367: : " // Zuweisung" + newline +
1368: : " arrListMap[ 0 , 0 , 'A' ] := 'Test1' ;" + newline +
1369: : " println( arrListMap[ 0 , 0 , 'A' ] ) ;" + newline +
1370: : "}";
1371:1002: session:CNC_INFO_MESSAGE := "Abfragen und Zuweisen einer Collection-Variable mit Index-Operator"
1372: : + "<br>Die action setArrListMap hat folgende Struktur erzeugt:"
1373: : + "<br> Array -> ArrayList -> HashMap";
1374:1003: }
1375:1005: else if ( cnc_button == "Demo Kompilieren String" )
1376: : {
1377:1007: session:expression := "{ //String mit highComma-Key-words zusammengebaut statt escape-zeichen" + newline +
1378: : " strExp1 := highComma+'3 + 4'+highComma ;" + newline +
1379: : " println( strExp1 ) ;" + newline +
1380: : "" + newline +
1381: : " //Interpretieren eines Strings mit Hochkommas als String und Kompilieren des Strings" + newline +
1382: : " exp1 := compile( strExp1 ) ;" + newline +
1383: : " println( eval( exp1 ) ) ;" + newline +
1384: : "" + newline +
1385: : " //Ausführen des im kompilierten String enthaltenen Ausdruckes" + newline +
1386: : " exp2 := eval( exp1 ) ;" + newline +
1387: : " println( eval( exp2 ) )" + newline +
1388: : "}";
1389:1008: session:CNC_INFO_MESSAGE := "1. Kompilieren String,<br>2. Zuweisen zu einer Variable,<br>3. Ausfuehren Expression aus Variable";
1390:1009: } // else if
1391:1012: else if ( cnc_button == "Demo Abfangen Fehler" )
1392: : {
1393:1013: session:expression := "//trycatch als Funktion" + newline +
1394: : "trycatch( 1 + varNotExist , 'gescheitert' )";
1395:1014: session:CNC_INFO_MESSAGE := "Ausführung eines Ausdruckes mit try-catch-Abfangung und Lieferung des Ersatzwertes, wenn gescheitert";
1396:1015: } // else if
1397:1018: else if ( cnc_button == "Demo new String Array" )
1398: : {
1399:1019: session:expression := "{ arrx := newStringArray( 's0' , 's1' , 's2' ) ;" + newline +
1400: : " println( arrx[ 0 ] ) ;" + newline +
1401: : " println( arrx[ 1 ] ) ;" + newline +
1402: : " println( arrx[ 2 ] ) " + newline +
1403: : "}";
1404:1020: } // else if
1405:1023: else if ( cnc_button == "Demo Zuweisungsoperatoren" )
1406: : {
1407:1024: session:expression := "{ n := 1 ;" + newline +
1408: : " println( ' n := 1 => ' + n ) ;" + newline +
1409: : " " + newline +
1410: : " n += 1 ;" + newline +
1411: : " println( ' n += 1 => ' + n ) ;" + newline +
1412: : " " + newline +
1413: : " println( '.' ) ;" + newline +
1414: : " " + newline +
1415: : " s := 's1' ;" + newline +
1416: : " println( ' s := '+highComma+'s1'+highComma+' => ' + s ) ;" + newline +
1417: : " " + newline +
1418: : " s += 's2' ;" + newline +
1419: : " println( ' s += '+highComma+'s2'+highComma+' => ' + s ) ;" + newline +
1420: : " " + newline +
1421: : " println( '.' ) ;" + newline +
1422: : " " + newline +
1423: : " n := 10 ;" + newline +
1424: : " println( ' n := 10 => ' + n ) ;" + newline +
1425: : " n -= 1 ;" + newline +
1426: : " println( ' n -= 1 => ' + n ) ;" + newline +
1427: : " " + newline +
1428: : " println( '.' ) ;" + newline +
1429: : " " + newline +
1430: : " n := 3 ;" + newline +
1431: : " println( ' n := 3 => ' + n ) ;" + newline +
1432: : " n *= 2 ;" + newline +
1433: : " println( ' n *= 2 => ' + n ) ;" + newline +
1434: : " " + newline +
1435: : " println( '.' ) ;" + newline +
1436: : " " + newline +
1437: : " n := 4 ;" + newline +
1438: : " println( ' n := 4 => ' + n ) ;" + newline +
1439: : " n /= 2 ;" + newline +
1440: : " println( ' n /= 2 => ' + n ) ;" + newline +
1441: : " " + newline +
1442: : " println( '.' ) ;" + newline +
1443: : " println( ' Zuweisung wenn kleiner' ) ;" + newline +
1444: : " n := 4 ;" + newline +
1445: : " println( ' n := 4 => ' + n ) ;" + newline +
1446: : " n :>= 2 ; // Zuweisung wenn kleiner" + newline +
1447: : " println( ' n :>= 2 => ' + n ) ;" + newline +
1448: : " " + newline +
1449: : " println( '.' ) ;" + newline +
1450: : " " + newline +
1451: : " n := 4 ;" + newline +
1452: : " println( ' n := 4 => ' + n ) ;" + newline +
1453: : " n :min= 2 ; // Zuweisung wenn kleiner" + newline +
1454: : " println( ' n :min= 2 => ' + n ) ;" + newline +
1455: : " " + newline +
1456: : " println( '.' ) ;" + newline +
1457: : " " + newline +
1458: : " n := 2 ;" + newline +
1459: : " println( ' n := 2 => ' + n ) ;" + newline +
1460: : " n :>= 4 ; // Zuweisung wenn kleiner" + newline +
1461: : " println( ' n :>= 4 => ' + n ) ;" + newline +
1462: : " " + newline +
1463: : " println( '.' ) ;" + newline +
1464: : " " + newline +
1465: : " n := 2 ;" + newline +
1466: : " println( ' n := 2 => ' + n ) ;" + newline +
1467: : " n :min= 4 ; // Zuweisung wenn kleiner" + newline +
1468: : " println( ' n :min= 4 => ' + n ) ;" + newline +
1469: : " " + newline +
1470: : " println( '.' ) ;" + newline +
1471: : " println( ' Zuweisung wenn groesser' ) ;" + newline +
1472: : " n := 4 ;" + newline +
1473: : " println( ' n := 4 => ' + n ) ;" + newline +
1474: : " n :<= 2 ; // Zuweisung wenn groesser" + newline +
1475: : " println( ' n :<= 2 => ' + n ) ;" + newline +
1476: : " " + newline +
1477: : " println( '.' ) ;" + newline +
1478: : " " + newline +
1479: : " n := 4 ;" + newline +
1480: : " println( ' n := 4 => ' + n ) ;" + newline +
1481: : " n :max= 2 ; // Zuweisung wenn groesser" + newline +
1482: : " println( ' n :max= 2 => ' + n ) ;" + newline +
1483: : " " + newline +
1484: : " println( '.' ) ;" + newline +
1485: : " " + newline +
1486: : " n := 2 ;" + newline +
1487: : " println( ' n := 2 => ' + n ) ;" + newline +
1488: : " n :<= 4 ; // Zuweisung wenn groesser" + newline +
1489: : " println( ' n :<= 4 => ' + n ) ;" + newline +
1490: : " " + newline +
1491: : " println( '.' ) ;" + newline +
1492: : " " + newline +
1493: : " n := 2 ;" + newline +
1494: : " println( ' n := 2 => ' + n ) ;" + newline +
1495: : " n :max= 4 ; // Zuweisung wenn groesser" + newline +
1496: : " println( ' n :max= 4 => ' + n ) ;" + newline +
1497: : " " + newline +
1498: : " println( '' ) " + newline +
1499: : "}";
1500:1025: } // else if
1501:1028: else if ( cnc_button == "Demo Erzeugen Objekt" )
1502: : {
1503:1029: session:expression := "date1 := newObject( 'java.util.Date' )";
1504:1030: session:CNC_INFO_MESSAGE := "Erzeugen eines beliebigen Objektes mit dem paramterlosen Konstruktor";
1505:1031: } // else if
1506:1034: else if ( cnc_button == "Demo Template1" )
1507: : {
1508:1035: session:expression := "eval( " + newline +
1509: : " compileTemplate( " + newline +
1510: : " " + apostroph + "aaa <%= 'bbb' %> ccc" + apostroph + newline +
1511: : " ) " + newline +
1512: : ")";
1513:1036: session:CNC_INFO_MESSAGE := "Kompilieren und Ausführen eines JSP-ähnlichen Templates<br>" +
1514: : "<% ...scriptlet code... %> <br>" +
1515: : "<%= ...scriptlet expression... %>" ;
1516:1037: } // else if
1517:1040: else if ( cnc_button == "Demo Template2" )
1518: : {
1519:1041: session:expression := "eval( " + newline +
1520: : " compileTemplate( " + newline +
1521: : " " + apostroph + "aaa <% for( i := 0 , i <= 3 , i++ , { %>bbb <% } ) ;%>ccc" + apostroph + newline +
1522: : " ) " + newline +
1523: : ")";
1524:1042: session:CNC_INFO_MESSAGE := "Kompilieren und Ausführen eines JSP-ähnlichen Templates<br>" +
1525: : "<% ...scriptlet code... %> <br>" +
1526: : "<%= ...scriptlet expression... %>" ;
1527:1043: } // else if
1528:1046: else if ( cnc_button == "Demo Template3" )
1529: : {
1530:1047: session:expression := "eval( " + newline +
1531: : " compileTemplate( " + newline +
1532: : " " + apostroph + "a <% for( i1 := 0 , i1 <= 3 , i1++ ," + newline +
1533: : " { for( i2 := 0 , i2 <= 3 , i2++ , { %>b<% } ) ;" + newline +
1534: : " { %>_<% } }" + newline +
1535: : " ) ;%> c" + apostroph + newline +
1536: : " ) " + newline +
1537: : ")";
1538:1048: session:CNC_INFO_MESSAGE := "Kompilieren und Ausführen eines JSP-ähnlichen Templates<br>" +
1539: : "<% ...scriptlet code... %> <br>" +
1540: : "<%= ...scriptlet expression... %>" ;
1541:1049: } // else if
1542:1052: else if ( cnc_button == "Demo Template4" )
1543: : {
1544:1053: session:expression := "eval( " + newline +
1545: : " compileTemplate( " + newline +
1546: : " " + apostroph + "a <% " + newline +
1547: : " for( i1 := 0 , i1 <= 3 , i1++ , " + newline +
1548: : " { %>b<% " + newline +
1549: : " for( i2 := 0 , i2 <= 3 , i2++ , { %>c<% } ) ;" + newline +
1550: : " %> <%" + newline +
1551: : " }" + newline +
1552: : " ) ;" + newline +
1553: : " %> d" + apostroph + newline +
1554: : " ) " + newline +
1555: : ")";
1556:1054: session:CNC_INFO_MESSAGE := "Kompilieren und Ausführen eines JSP-ähnlichen Templates<br>" +
1557: : "<% ...scriptlet code... %> <br>" +
1558: : "<%= ...scriptlet expression... %>" ;
1559:1055: } // else if
1560:1058: else if ( cnc_button == "Demo Objekt-Attribute lesen und schreiben" )
1561: : {
1562:1059: session:expression := "{" + newline +
1563: : " test := newObject( 'de.cnc.expression.Test' );" + newline +
1564: : " test.tstStr := 'abc';" + newline +
1565: : " test.tstStr;" + newline +
1566: : "}";
1567:1060: session:CNC_INFO_MESSAGE := "Setzen und Abfragen eines Attributes eines Objektes mit dem Punkt-Operator";
1568:1061: } // else if
1569:1064: else if ( cnc_button == "Demo Methoden-Aufruf" )
1570: : {
1571:1065: session:expression := "{" + newline +
1572: : " test := newObject( 'de.cnc.expression.Test' );" + newline +
1573: : " test.setTstStr( 'Xyz' );" + newline +
1574: : " test.tstStr;" + newline +
1575: : "}";
1576:1066: session:CNC_INFO_MESSAGE := "Aufruf einer Methode eines Objektes mit dem Punkt-Operator";
1577:1067: } // else if
1578:1070: else if ( cnc_button == "Eval Expression" )
1579: : {
1580:1071: action ( "expression" );
1581:1072: } // else if
1582: : else
1583: : {
1584:1075: session:CNC_ERROR_MESSAGE := "Programmfehler, unbekannte Aktion";
1585:1076: }
1586:1077: } // while
1587: :} // end procedure expression
1588: ://****************************************************************************************