*&---------------------------------------------------------------------* *& Report Z_bullshit_bingo *& *&---------------------------------------------------------------------* *& *& Distributed by http://www.tudasmorzsak.hu (Hungarian SAP Community) *&---------------------------------------------------------------------* REPORT Z_bullshit_bingo . TABLES sscrfields. data: BEGIN OF wa, fcode(3) type c, bool type i, ch type c, end of wa. data: BEGIN OF wa2, text(17) type c, end of wa2. data: BEGIN OF wa3, rn type i, end of wa3. data: itab like table of wa. data: itab2 like table of wa2 with header line. data: itab3 like table of wa3. DATA: save_ok TYPE sy-ucomm, ok_code TYPE sy-ucomm, MEME(30) TYPE C, time type sy-uzeit, time2 type sy-uzeit, time3 type sy-uzeit, lv_nb type i, rncnt type i, " scr2 type i, lv_screen type i, lv_screen2 type sy-uzeit, lv_random_numb type i, lv_n type i, lv_cn type i, lv_c(3) type c, string(99) type c, na1(17) TYPE c, na2(17) TYPE c, na3(17) TYPE c, na4(17) TYPE c, na5(17) TYPE c, nb1(17) TYPE c, nb2(17) TYPE c, nb3(17) TYPE c, nb4(17) TYPE c, nb5(17) TYPE c, nc1(17) TYPE c, nc2(17) TYPE c, nc3(17) TYPE c, nc4(17) TYPE c, nc5(17) TYPE c, nd1(17) TYPE c, nd2(17) TYPE c, nd3(17) TYPE c, nd4(17) TYPE c, nd5(17) TYPE c, ne1(17) TYPE c, ne2(17) TYPE c, ne3(17) TYPE c, ne4(17) TYPE c, ne5(17) TYPE c, n1 type i, n2 type i, n3 type i, n4 type i, n5 type i, n6 type i, n7 type i, n8 type i, n9 type i, n10 type i. SELECTION-SCREEN : PUSHBUTTON 2(20) but1 USER-COMMAND cli1 , PUSHBUTTON 23(10) but2 USER-COMMAND cli2, BEGIN OF SCREEN 1500 title title, SKIP 2, COMMENT 2(17) TA1, COMMENT 22(17) TA2, COMMENT 42(17) TA3, COMMENT 62(17) TA4, COMMENT 82(17) TA5, SKIP 1, PUSHBUTTON 2(2) a1 USER-COMMAND a1, PUSHBUTTON 22(2) a2 USER-COMMAND a2, PUSHBUTTON 42(2) a3 USER-COMMAND a3, PUSHBUTTON 62(2) a4 USER-COMMAND a4, PUSHBUTTON 82(2) a5 USER-COMMAND a5, SKIP 2, COMMENT 2(17) TB1, COMMENT 22(17) TB2, COMMENT 42(17) TB3, COMMENT 62(17) TB4, COMMENT 82(17) TB5, SKIP 1, PUSHBUTTON 2(2) b1 USER-COMMAND b1, PUSHBUTTON 22(2) b2 USER-COMMAND b2, PUSHBUTTON 42(2) b3 USER-COMMAND b3, PUSHBUTTON 62(2) b4 USER-COMMAND b4, PUSHBUTTON 82(2) b5 USER-COMMAND b5, SKIP 2, COMMENT 2(17) TC1, COMMENT 22(17) TC2, COMMENT 42(17) TC3, COMMENT 62(17) TC4, COMMENT 82(17) TC5, SKIP 1, PUSHBUTTON 2(2) c1 USER-COMMAND c1, PUSHBUTTON 22(2) c2 USER-COMMAND c2, PUSHBUTTON 42(2) c3 USER-COMMAND c3, PUSHBUTTON 62(2) c4 USER-COMMAND c4, PUSHBUTTON 82(2) c5 USER-COMMAND c5, SKIP 2, COMMENT 2(17) TD1, COMMENT 22(17) TD2, COMMENT 42(17) TD3, COMMENT 62(17) TD4, COMMENT 82(17) TD5, SKIP 1, PUSHBUTTON 2(2) d1 USER-COMMAND d1, PUSHBUTTON 22(2) d2 USER-COMMAND d2, PUSHBUTTON 42(2) d3 USER-COMMAND d3, PUSHBUTTON 62(2) d4 USER-COMMAND d4, PUSHBUTTON 82(2) d5 USER-COMMAND d5, SKIP 2, COMMENT 2(17) TE1, COMMENT 22(17) TE2, COMMENT 42(17) TE3, COMMENT 62(17) TE4, COMMENT 82(17) TE5, SKIP 1, PUSHBUTTON 2(2) e1 USER-COMMAND e1, PUSHBUTTON 22(2) e2 USER-COMMAND e2, PUSHBUTTON 42(2) e3 USER-COMMAND e3, PUSHBUTTON 62(2) e4 USER-COMMAND e4, PUSHBUTTON 82(2) e5 USER-COMMAND e5, SKIP 8, PUSHBUTTON 2(12) GENERATE USER-COMMAND GEN, PUSHBUTTON 42(12) BACK USER-COMMAND EXT, PUSHBUTTON 82(12) EXIT USER-COMMAND EXT2, skip 3, COMMENT 2(20) scr1, COMMENT 25(17) scr2 , COMMENT 42(17) scr3, END OF SCREEN 1500 , begin of screen 1600 title title2, SKIP 2, COMMENT 2(20) winner, skip 2, COMMENT 2(20) timed, COMMENT 22(20) tm, COMMENT 42(20) tm2, skip 2, PUSHBUTTON 2(12) new USER-COMMAND new, PUSHBUTTON 22(12) lext USER-COMMAND lext, end of screen 1600. INITIALIZATION. title = 'Select 5 phrase in one row or one column'. title2 = 'Your result'. timed = 'Time: '. scr1 = 'It will exit after '. scr3 = ' Tries'. tm2 = 'Sec'. winner = 'You are the winner'. but1 = 'Start'. but2 = 'Exit'. new = 'New Bingo'. lext = 'Exit'. GENERATE = 'GENERATE'. BACK = 'BACK'. EXIT = 'EXIT'. a1 = 'A1'. a2 = 'A2'. a3 = 'A3'. a4 = 'A4'. a5 = 'A5'. b1 = 'B1'. b2 = 'B2'. b3 = 'B3'. b4 = 'B4'. b5 = 'B5'. c1 = 'C1'. c2 = 'C2'. c3 = 'C3'. c4 = 'C4'. c5 = 'C5'. d1 = 'D1'. d2 = 'D2'. d3 = 'D3'. d4 = 'D4'. d5 = 'D5'. e1 = 'E1'. e2 = 'E2'. e3 = 'E3'. e4 = 'E4'. e5 = 'E5'. MEME = 'You are the winner'. lv_Screen = 46. lv_Screen2 = 000041. n3 = 1. n8 = 1. clear time. time = sy-uzeit. start-of-selection. AT SELECTION-SCREEN. CASE sscrfields. WHEN 'CLI1'. lv_screen = lv_screen - 1. if lv_screen = 0. leave program. else. clear: itab, lv_c, lv_cn, lv_n. clear: n1, n2, n4, n5, n6, n7, n9, n10. n3 = 1. n8 = 1. if sy-uname = sy-uname. call SELECTION-screen 1500. else. leave program. endif. endif. WHEN 'CLI2'. LEAVE PROGRAM. ENDCASE. CASE SSCRFIELDS-UCOMM. when 'NEW'. lv_n = 0. lv_nb = 0. rncnt = 0. lv_screen = lv_screen - 1. clear: itab2, itab3. if lv_screen = 0 or lv_screen2 = 0. leave program. else. clear: itab, lv_c, lv_cn, lv_n. clear: n1, n2, n4, n5, n6, n7, n9, n10. n3 = 1. n8 = 1. time = sy-uzeit. call selection-screen 1500. endif. when 'LEXT'. leave program. WHEN 'EXT'. lv_n = 0. rncnt = 0. if lv_screen = 0. leave program. else. clear: itab2, itab3. CALL SELECTION-SCREEN 1000. endif. when 'GEN'. lv_screen = lv_screen - 1. lv_nb = 0. clear: itab, lv_c, lv_cn, lv_n. clear: n1, n2, n4, n5, n6, n7, n9, n10. n3 = 1. n8 = 1. lv_n = 0. rncnt = 0. clear: itab2, itab3. if lv_screen = 1 or lv_screen2 = 0. leave program. else. CALL SELECTION-SCREEN 1500. endif. when 'EXT2'. leave program. WHEN 'A1'. lv_c = 'TA1'. WHEN 'A2'. lv_c = 'TA2'. WHEN 'A3'. lv_c = 'TA3'. WHEN 'A4'. lv_c = 'TA4'. WHEN 'A5'. lv_c = 'TA5'. WHEN 'B1'. lv_c = 'TB1'. WHEN 'B2'. lv_c = 'TB2'. WHEN 'B3'. Lv_c = 'TB3'. WHEN 'B4'. lv_c = 'TB4'. WHEN 'B5'. lv_c = 'TB5'. WHEN 'C1'. lv_c = 'TC1'. WHEN 'C2'. lv_c = 'TC2'. WHEN 'C3'. lv_c = 'TC3'. WHEN 'C4'. lv_c = 'TC4'. WHEN 'C5'. lv_c = 'TC5'. WHEN 'D1'. lv_c = 'TD1'. WHEN 'D2'. lv_c = 'TD2'. WHEN 'D3'. lv_c = 'TD3'. WHEN 'D4'. lv_c = 'TD4'. WHEN 'D5'. lv_c = 'TD5'. WHEN 'E1'. lv_c = 'TE1'. WHEN 'E2'. lv_c = 'TE2'. WHEN 'E3'. lv_c = 'TE3'. WHEN 'E4'. lv_c = 'TE4'. WHEN 'E5'. lv_c = 'TE5'. ENDCASE. AT SELECTION-SCREEN OUTPUT. lv_n = lv_n + 1. if lv_nb = 0. lv_nb = 1. lv_screen2 = lv_screen2 - 00001. scr2 = lv_Screen2. endif. if lv_n = 1. LOOP AT SCREEN . IF screen-name = 'TC3'. screen-intensified = 1. MODIFY SCREEN. "call SELECTION-screen 1500. set screen 1500. ENDIF. ENDLOOP. *********************************************************** * Add text and have fun *********************************************************** na1 = 'Phrase1'. append na1 to itab2. na2 = 'Phrase2'. append na2 to itab2. na3 = 'Phrase3'. append na3 to itab2. na4 = 'Phrase4'. append na4 to itab2. na5 = 'Phrase5'. append na5 to itab2. nb1 = 'Phrase6'. append nb1 to itab2. nb2 = 'Phrase7'. append nb2 to itab2. nb3 = 'Phrase8'. append nb3 to itab2. nb4 = 'Phrase9'. append nb4 to itab2. nb5 = 'Phrase10'. append nb5 to itab2. nc1 = 'Phrase11'. append nc1 to itab2. nc2 = 'Phrase12'. append nc2 to itab2. nc3 = 'Phrase13'. append nc3 to itab2. nc4 = 'Phrase14'. append nc4 to itab2. nc5 = 'Phrase15'. append nc5 to itab2. nd1 = 'Phrase16'. append nd1 to itab2. nd2 = 'Phrase17'. append nd2 to itab2. nd3 = 'Phrase18'. append nd3 to itab2. nd4 = 'Phrase19'. append nd4 to itab2. nd5 = 'Phrase20'. append nd5 to itab2. ne1 = 'Phrase21'. append ne1 to itab2. ne2 = 'Phrase22'. append ne2 to itab2. ne3 = 'Phrase23'. append ne3 to itab2. ne4 = 'Phrase24'. append ne4 to itab2. ne5 = 'Phrase25'. append ne5 to itab2. *na1 = 'ERP'. append na1 to itab2. *na2 = 'Knowlidgetransfer'. append na2 to itab2. *na3 = 'Controller'. append na3 to itab2. *na4 = 'Meeting'. append na4 to itab2. *na5 = 'Improve'. append na5 to itab2. *nb1 = 'ASAP'. append nb1 to itab2. *nb2 = 'In Fact'. append nb2 to itab2. *nb3 = 'Ajax'. append nb3 to itab2. *nb4 = 'Feedback'. append nb4 to itab2. *nb5 = 'I know I know'. append nb5 to itab2. *nc1 = 'My idea is'. append nc1 to itab2. *nc2 = 'I know it'. append nc2 to itab2. *nc3 = 'Change the DB'. append nc3 to itab2. *nc4 = 'Change the IDs'. append nc4 to itab2. *nc5 = 'Create index'. append nc5 to itab2. *nd1 = 'TREX is down'. append nd1 to itab2. *nd2 = 'TREX dumps'. append nd2 to itab2. *nd3 = 'FrameWork dumps'. append nd3 to itab2. *nd4 = 'FW doesn t work'. append nd4 to itab2. *nd5 = 'Everything is ok'. append nd5 to itab2. *ne1 = 'UI dumps'. append ne1 to itab2. *ne2 = 'Communicate'. append ne2 to itab2. *ne3 = 'Next meeting'. append ne3 to itab2. *ne4 = 'Don t say'. append ne4 to itab2. *ne5 = 'The customer'. append ne5 to itab2. while rncnt ne 25. CALL FUNCTION 'QF05_RANDOM_INTEGER' EXPORTING ran_int_max = 25 ran_int_min = 1 IMPORTING ran_int = lv_random_numb. loop at itab3 into wa3 where rn = lv_random_numb. endloop. if sy-subrc ne 0. rncnt = rncnt + 1. wa3-rn = lv_random_numb. append wa3 to itab3. read table itab2 index lv_random_numb into wa2. case rncnt. when 1. Ta1 = wa2-text. when 2. ta2 = wa2-text. when 3. ta3 = wa2-text. when 4. ta4 = wa2-text. when 5. ta5 = wa2-text. when 6. tb1 = wa2-text. when 7. tb2 = wa2-text. when 8. tb3 = wa2-text. when 9. tb4 = wa2-text. when 10. tb5 = wa2-text. when 11. tc1 = wa2-text. when 12. tc2 = wa2-text. when 13. tc3 = 'FREE'. when 14. tc4 = wa2-text. when 15. tc5 = wa2-text. when 16. td1 = wa2-text. when 17. td2 = wa2-text. when 18. td3 = wa2-text. when 19. td4 = wa2-text. when 20. td5 = wa2-text. when 21. te1 = wa2-text. when 22. te2 = wa2-text. when 23. te3 = wa2-text. when 24. te4 = wa2-text. when 25. te5 = wa2-text. endcase. if rncnt = 25. exit . endif. endif. endwhile. else. LOOP AT SCREEN . IF screen-name = 'TC3'. screen-intensified = 1. MODIFY SCREEN. "call SELECTION-screen 1500. set screen 1500. ENDIF. ENDLOOP. loop at itab into wa where fcode = lv_c. endloop. if sy-subrc ne 0 and lv_c ne ''. wa-fcode = lv_c. wa-bool = 0. wa-ch = 'X'. append wa to itab. else. delete itab where fcode = wa-fcode. wa-ch = 'X'. append wa to itab. endif. loop at itab into wa. LOOP AT SCREEN . IF screen-name = wa-fcode. if wa-bool = 1 and wa-ch = 'X'. screen-intensified = 0. wa-bool = 0. delete itab where fcode = wa-fcode. else. "delete itab where fcode = wa-fcode. screen-intensified = 1. wa-bool = 1. wa-ch = ''. modify itab from wa. "where fcode = wa-fcode. endif. MODIFY SCREEN. "call SELECTION-screen 1500. set screen 1500. ENDIF. ENDLOOP. endloop. loop at itab into wa. if wa-fcode = 'TA1'. n1 = n1 + 1. endif. if wa-fcode = 'TA2'. n1 = n1 + 1. endif. if wa-fcode = 'TA3'. n1 = n1 + 1. endif. if wa-fcode = 'TA4'. n1 = n1 + 1. endif. if wa-fcode = 'TA5'. n1 = n1 + 1. endif. if wa-fcode = 'TB1'. n2 = n2 + 1. endif. if wa-fcode = 'TB2'. n2 = n2 + 1. endif. if wa-fcode = 'TB3'. n2 = n2 + 1. endif. if wa-fcode = 'TB4'. n2 = n2 + 1. endif. if wa-fcode = 'TB5'. n2 = n2 + 1. endif. if wa-fcode = 'TC1'. n3 = n3 + 1. endif. if wa-fcode = 'TC2'. n3 = n3 + 1. endif. if wa-fcode = 'TC3'. "n3 = n3 + 1. endif. if wa-fcode = 'TC4'. n3 = n3 + 1. endif. if wa-fcode = 'TC5'. n3 = n3 + 1. endif. if wa-fcode = 'TD1'. n4 = n4 + 1. endif. if wa-fcode = 'TD2'. n4 = n4 + 1. endif. if wa-fcode = 'TD3'. n4 = n4 + 1. endif. if wa-fcode = 'TD4'. n4 = n4 + 1. endif. if wa-fcode = 'TD5'. n4 = n4 + 1. endif. if wa-fcode = 'TE1'. n5 = n5 + 1. endif. if wa-fcode = 'TE2'. n5 = n5 + 1. endif. if wa-fcode = 'TE3'. n5 = n5 + 1. endif. if wa-fcode = 'TE4'. n5 = n5 + 1. endif. if wa-fcode = 'TE5'. n5 = n5 + 1. endif. if wa-fcode = 'TE1'. n6 = n6 + 1. endif. if wa-fcode = 'TD1'. n6 = n6 + 1. endif. if wa-fcode = 'TC1'. n6 = n6 + 1. endif. if wa-fcode = 'TB1'. n6 = n6 + 1. endif. if wa-fcode = 'TA1'. n6 = n6 + 1. endif. if wa-fcode = 'TE2'. n7 = n7 + 1. endif. if wa-fcode = 'TD2'. n7 = n7 + 1. endif. if wa-fcode = 'TC2'. n7 = n7 + 1. endif. if wa-fcode = 'TB2'. n7 = n7 + 1. endif. if wa-fcode = 'TA2'. n7 = n7 + 1. endif. if wa-fcode = 'TE3'. n8 = n8 + 1. endif. if wa-fcode = 'TD3'. n8 = n8 + 1. endif. if wa-fcode = 'TC3'. n8 = n8 + 1. endif. if wa-fcode = 'TB3'. n8 = n8 + 1. endif. if wa-fcode = 'TA3'. n8 = n8 + 1. endif. if wa-fcode = 'TE4'. n9 = n9 + 1. endif. if wa-fcode = 'TD4'. n9 = n9 + 1. endif. if wa-fcode = 'TC4'. n9 = n9 + 1. endif. if wa-fcode = 'TB4'. n9 = n9 + 1. endif. if wa-fcode = 'TA4'. n9 = n9 + 1. endif. if wa-fcode = 'TE5'. n10 = n10 + 1. endif. if wa-fcode = 'TD5'. n10 = n10 + 1. endif. if wa-fcode = 'TC5'. n10 = n10 + 1. endif. if wa-fcode = 'TB5'. n10 = n10 + 1. endif. if wa-fcode = 'TA5'. n10 = n10 + 1. endif. endloop. IF N1 = 5 OR N2 = 5 OR N3 = 5 OR N3 = 5 OR N4 = 5 OR N4 = 5 OR N5 = 5 OR N6 = 5 OR N7 = 5 OR N8 = 5 OR N9 = 5 OR N10 = 5. clear: itab, lv_c, lv_cn, lv_n. time2 = sy-uzeit - time. tm = time2. string = string. call selection-screen 1600. ENDIF. clear: n1, n2, n4, n5, n6, n7, n9, n10. n3 = 1. n8 = 1. endif.