home *** CD-ROM | disk | FTP | other *** search
- ********************
-
- PROCEDURE Gen_report
-
- PARAMETERS print_way, _stayput
-
- IF PCOUNT() != 2
- _stayput = .F.
- ENDIF
-
- IF EMPTY(sst_t_file)
- RETURN
- ENDIF
- SELECT &sst_t_file.
- IF ALIAS() <> UPPER(sst_t_file)
- @ 23,00 CLEAR
- @ 24,02 SAY "The Database is no longer AVAILABLE. Report Aborted!! Any Key to Continue...."
- INKEY(0)
- RETURN
- ENDIF
- STORE 0.00 TO grand_tot1, grand_tot2, grand_tot3, subtot1, subtot2, subtot3
- PUSHSCREEN()
- print_header = .T.
- row_counter = 10
- STORE "0" TO sstpage
- IF !_stayput
- IF EMPTY(AT("EOF()", sst_filter))
- sst_filter = TRIM(sst_filter) + IF(EMPTY(sst_filter), "", " .AND. ") + " !EOF() .AND. CONTINUE()"
- ENDIF
- IF EMPTY(AT("CONTINUE()", sst_filter))
- sst_filter = TRIM(sst_filter) + " .AND. CONTINUE()"
- ENDIF
- sst_filter = Fill_out(TRIM(sst_filter), 100)
- IF !("U"$TYPE(sst_filter))
- SET FILTER TO &sst_filter.
- ENDIF
- ELSE
- _oldfilt = TRIM(STRTRAN(sst_filter, " .AND. CONTINUE()", "")) && This is a new conditional!
- sst_filter = ".T. .AND. CONTINUE()"
- ENDIF
-
- IF (TYPE(sst_filter) == "U" .OR. TYPE(sst_filter) == "UE")
- old_color = SETCOLOR()
- new_color = REVERSE(old_color)
- SETCOLOR(new_color)
- Wpush(Wrow(8), 11, Wrow(8) + 8, 75)
- @ Wrow(1), Wcol(1) SAY " The Condition to Generate the Report has incorrect values."
- @ Wrow(3), Wcol(1) SAY " Generating the report will give a TYPE conflict. "
- @ Wrow(5), Wcol(1) SAY " Please check the CONDITION sub-menu and correct. "
- @ Wrow(7), Wcol(1) SAY " Press Any Key to Continue. "
- INKEY(0)
- Wpop()
- POPSCREEN()
- SETCOLOR(old_color)
- RETURN
- ENDIF
-
- IF !EMPTY(sstgroup)
- IF FILE(sstgname + ".grp")
- IF !_stayput
- get_file = sstgname + ".grp"
- SET INDEX TO &get_file.
- GO TOP
- ENDIF
- ENDIF
- set_value = &sstgroup.
- ELSE
- set_value = ""
- ENDIF
-
- only1_more = .F.
-
- sst_filter = STRTRAN(LTRIM(TRIM(STRTRAN(sst_filter, "!EOF() .AND. ", ""))), ".AND. CONTINUE()", "")
- SET FILTER TO &sst_filter.
- IF !_stayput
- GO TOP
- ENDIF
-
- IF TYPE("addfilter") = "C"
- pointer = Parsing(@addfilter, "->(")
- Rparsing(@addfilter, ")")
- Op(&pointer.->(Setfilt(addfilter)))
- ENDIF
-
- DO WHILE !EOF() &&sst_filter.
- IF !EMPTY(sstgroup) && There is a grouping
- only1_more = (&sstgroup. <> set_value) && The current value of set_value is
- ENDIF
-
- IF only1_more
- IF !EMPTY(sststot1) .OR. !EMPTY(sststot2) .OR. !EMPTY(sststot3)
- IF print_header
- IF !PRINT_CASE()
- POPSCREEN()
- RETURN
- ENDIF
- row_counter = 1
- P_THE_HEAD()
- ENDIF
- END_GROUP()
- ENDIF
- set_value = &sstgroup.
- Beg_group()
- only1_more = .F.
- ENDIF
-
- IF print_header
- IF !PRINT_CASE()
- POPSCREEN()
- RETURN
- ENDIF
- row_counter = 1
- P_the_head()
- ENDIF
-
- IF !EMPTY(sstccnt)
- FOR now_try = 1 TO sstccnt
- tteqww = LTRIM(TRIM(STR(now_try)))
- outputstr = PRINT_STRI(TRIM(sstcon&tteqww.))
-
- ? IF((LEN(outputstr) > 80 .AND. print_way = 1), ;
- SUBSTR(outputstr, 1, 79), outputstr)
-
- row_counter = row_counter + 1
-
- IF print_way = 1
- IF ROW() >= 20
- @ 24,00
- @ 24,00 SAY "Any key for rest..."
- INKEY(0)
- SCROLL(9,0,22,79,6)
- @ 15,00 SAY""
- ENDIF
- ENDIF
-
- FOR y = 1 TO 3
- ny = TRANSFORM(y, "9")
- IF !EMPTY(ssttotal&ny.)
- IF !sst_tog1 .OR. (sst_tog1 .AND. ssttotal&ny.$sstcon&tteqww.)
- the_ww_rd = ssttotal&ny.
- new_value = &the_ww_rd.
- old_value = grand_tot&ny.
- grand_tot&ny. = old_value + new_value
- ENDIF
- ENDIF
- IF !EMPTY(sststot&ny.)
- IF !sst_tog1 .OR. (sst_tog1 .AND. sststot&ny.$sstcon&tteqww.)
- the_ww_rd = sststot&ny.
- new_value = &the_ww_rd.
- old_value = subtot&ny.
- subtot&ny. = old_value + new_value
- ENDIF
- ENDIF
- NEXT
-
- NEXT
- ENDIF
-
- SKIP
-
- End_routine()
-
- IF LASTKEY() = ASC("Q") .OR. LASTKEY() = ASC("q")
- EXIT
- ENDIF
-
- IF only1_more
- only1_more = .F.
- ENDIF
-
- IF _stayput
- IF !EMPTY(_oldfilt)
- IF !(&_oldfilt.)
- EXIT
- ENDIF
- ENDIF
- ENDIF
-
- ENDDO
- breakpoint = 80
- only1_more = .T.
-
- IF LASTKEY() = ASC("Q") .OR. LASTKEY() = ASC("q")
- ELSE
- IF only1_more .AND. (!EMPTY(sststot1) .OR. !EMPTY(sststot2) .OR. !EMPTY(sststot3))
- IF print_header
- IF !PRINT_CASE()
- POPSCREEN()
- RETURN
- ENDIF
- row_counter = 1
- P_the_head()
- ENDIF
- End_group()
- ENDIF
- Tot_check()
- IF print_way = 2
- * ?? row_counter
- FOR pan_on = 56 TO row_counter STEP -1
- ?
- NEXT
- @ 10,00 CLEAR
- Print_foot()
- ELSE
- IF print_way = 1
- Print_foot()
- ENDIF
- ENDIF
- ENDIF
-
- IF print_way = 3
- scr_level = scr_level + 1
- End_way(0,80,10,10,12,70,IF((TYPE("notag") != "U"), .F., .T.))
- ELSEIF print_way = 2
- End_way(0,80,10,10,12,70,IF((TYPE("notag") != "U"), .F., .T.))
- ELSE
- End_way(0,0,23,79)
- ENDIF
- SET FILTER TO
-
- ********************
-
- FUNCTION Print_case
-
- DO CASE
- CASE print_way = 1
- @ 0,0 CLEAR
- CASE print_way = 2
- SET PRINT OFF
- SET CONSOLE ON
- PUSHSCREEN(10,10,12,70,.F.,.T.,.T.)
- IF ISPRINTER()
- @ 11,25 SAY "Printing Out Report. One Moment!"
- ELSE
- @ 11,18 SAY "Your Printer is OFF LINE. Any key to Continue"
- INKEY(0)
- POPSCREEN(10,10,12,70)
- RETURN(.F.)
- ENDIF
- SET CONSOLE OFF
- SET PRINT ON
- CASE print_way = 3
- SET CONSOLE ON
- @ 0,0 CLEAR
- @ 10,10 TO 12,70 DOUBLE
- print_file = IF(TYPE("print_file") = "U", "", print_file)
- IF EMPTY(print_file)
- print_file = TRIM(sstfile) && This is for the library
- ENDIF
- @ 11,15 SAY "Printing Out Report ==> " + TRIM(print_file) + ". One Moment!"
- SET CONSOLE OFF
- SET ALTERNATE ON
- SET ALTERNATE TO (print_file)
- CASE print_way = 4
- Writ_it_out(" / /")
- ENDCASE
- RETURN(.T.)
-
-
- ********************
-
- PROCEDURE End_routine
-
- DO CASE
- CASE print_way = 1
- IF only1_more .AND. (!EMPTY(sststot1) .OR. !EMPTY(sststot2) .OR. !EMPTY(sststot3))
- bounce_off = 14
- ELSE
- bounce_off = 18
- ENDIF
-
- IF row_counter >= bounce_off
- print_header = .T.
- Print_foot()
- @ 24,00 SAY "Press Any Key or Q to Quit..."
- QWAIT("Q")
- ENDIF
- CASE print_way = 2
- IF !EMPTY(sststot1) .OR. !EMPTY(sststot2) .OR. !EMPTY(sststot3)
- bounce_off = 52
- ELSE
- bounce_off = 58
- ENDIF
-
- IF row_counter >= 58
- print_header = .T.
- Print_foot()
- ENDIF
- CASE print_way = 3
- Print_foot()
- ENDCASE
-
- ********************
-
- PROCEDURE Print_foot
-
- row_counter = row_counter + 1
-
- IF print_way = 1
- IF ROW() >= 20
- @ 24,00
- @ 24,00 SAY "Any key for rest..."
- INKEY(0)
- SCROLL(9,0,22,79,6)
- @ 15,00 SAY""
- ENDIF
- ENDIF
-
- ?
- IF !EMPTY(sstfcnt)
- FOR now_try = 1 TO sstfcnt
- tteqww = TRANSFORM(now_try, "9")
- outputstr = PRINT_STRI(TRIM(sstfoot&tteqww.))
- IF LEN(outputstr) > 80 .AND. print_way = 1
- ? SUBSTR(outputstr, 1, 79)
- ELSE
- ? outputstr
- ENDIF
- row_counter = row_counter + 1
- NEXT
- ENDIF
-
- ********************
-
- FUNCTION Continue
-
- RETURN( !(INKEY() = 27) )
-
- ********************
-
- FUNCTION Set_files
-
- PARAMETERS _howmany
-
- _noterror = .T.
-
- IF PCOUNT() = 0
- _howmany = 8
- ENDIF
- c_nter = 1
- FOR qaz = 1 TO _howmany
- ext = LTRIM(TRIM(STR(qaz)))
- SELECT &ext.
- IF !EMPTY(ALIAS())
- _noterror = .F.
- sst_f_str = sst_f_str + ALIAS() + "/"
- IF LEN(in_files) < c_nter
- EXIT
- ELSE
- in_files[c_nter] = ALIAS()
- c_nter = c_nter + 1
- ENDIF
- ENDIF
- NEXT
- sst_f_str = SUBSTR(sst_f_str, 1, LEN(sst_f_str) - 1)
- RETURN(_noterror)
-
- ********************
-
- PROCEDURE Tot_check
-
- End_routine()
- IF LASTKEY() = ASC("Q") .OR. LASTKEY() = ASC("q")
- RETURN
- ENDIF
- IF print_header
- IF !PRINT_CASE()
- RETURN
- ENDIF
- row_counter = 1
- P_the_head()
- ENDIF
-
- ?
- IF !EMPTY(grand_tot1) .OR. !EMPTY(grand_tot2) .OR. !EMPTY(grand_tot3)
- ? "Totals => "
- ENDIF
- IF !EMPTY(grand_tot1)
- ?? FILL_OUT("[" + ssttotal1 + "]", 14) + TRANSFORM(grand_tot1, "9,999,999,999,999.99")
- ? " "
- ENDIF
- IF !EMPTY(grand_tot2)
- ?? FILL_OUT("[" + ssttotal2 + "]", 14) + TRANSFORM(grand_tot2, "9,999,999,999,999.99")
- ? " "
- ENDIF
- IF !EMPTY(grand_tot3)
- ?? FILL_OUT("[" + ssttotal3 + "]", 14) + TRANSFORM(grand_tot3, "9,999,999,999,999.99")
- ENDIF
-
- ********************
-
- PROCEDURE Beg_group
-
- IF !EMPTY(sstgroup)
- ?
- ? "Group is on &sstgroup. = " + set_value
- ?
- row_counter = row_counter + 4
- ENDIF
-
- *******************
-
- PROCEDURE End_group
-
- IF !EMPTY(sstgroup)
- IF !EMPTY(subtot1) .OR. !EMPTY(subtot2) .OR. !EMPTY(subtot3)
- ?
- ? "**** Subtotals => "
- row_counter = row_counter + 2
- ELSE
- RETURN
- ENDIF
-
- IF !EMPTY(sststot1)
- ?? FILL_OUT("{" + sststot1 + "}", 14) + TRANSFORM(subtot1, "9,999,999,999,999.99")
- ? " "
- row_counter = row_counter + 1
- subtot1 = 0.00
- ENDIF
- IF !EMPTY(sststot2)
- ?? FILL_OUT("{" + sststot2 + "}", 14) + TRANSFORM(subtot2, "9,999,999,999,999.99")
- ? " "
- row_counter = row_counter + 1
- subtot2 = 0.00
- ENDIF
- IF !EMPTY(sststot3)
- ?? FILL_OUT("{" + sststot3 + "}", 14) + TRANSFORM(subtot3, "9,999,999,999,999.99")
- subtot3 = 0.00
- ENDIF
- ?
- ?
- row_counter = row_counter + 2
- ENDIF
-
- ********************
-
- FUNCTION Ndxstrval
-
- PARAMETERS showstring
-
- DO CASE
- CASE TYPE(showstring) = "C"
- RETURN('"' + showstring + '"')
- CASE TYPE(showstring) = "N"
- RETURN('STR("' + showstring + '")')
- CASE TYPE(showstring) = "M"
- RETURN(" ")
- CASE TYPE(showstring) = "D"
- RETURN('DTOC("' + showstring + '")')
- OTHERWISE
- RETURN("True")
- ENDCASE
-
- ********************
-
- PROCEDURE Move_down
-
- PARAMETERS p, l, v
-
- move_no = VAL(IF("CON"$v, SUBSTR(v, 7), SUBSTR(v, 8, 1)))
- next2 = LTRIM(TRIM(TRANSFORM(move_no+1, "99")))
- next1 = LTRIM(TRIM(TRANSFORM(move_no, "99")))
- DO CASE
- CASE "SSTHEAD"$v
- keystroke = 6
- IF move_no <> 6
- ssthead&next2. = ssthead&next1.
- ssthead&next1. = SPACE(132)
- ENDIF
- CASE "SSTFOOT"$v
- keystroke = 3
- IF move_no <> 3
- sstfoot&next2. = sstfoot&next1.
- sstfoot&next1. = SPACE(132)
- ENDIF
- OTHERWISE
- keystroke = 12
- IF move_no <> 12
- sstcon&next2. = sstcon&next1.
- sstcon&next1. = SPACE(152)
- ENDIF
- ENDCASE
- KEYBOARD REPLICATE(CHR(24), keystroke) + REPLICATE(CHR(5), keystroke)
-
- ********************
-
- PROCEDURE Yank_away
-
- PARAMETERS p, l, v
-
- &v = SPACE(132)
-
- ********************
-
- PROCEDURE P_the_head
-
- sstpage = TRANSFORM(VAL(sstpage) + 1, "9999")
- IF !EMPTY(ssthcnt)
- FOR now_try = 1 TO ssthcnt
- tteqww = TRANSFORM(now_try, "9")
- outputstr = PRINT_STRI(TRIM(ssthead&tteqww.))
- IF LEN(outputstr) > 80 .AND. print_way = 1
- ? SUBSTR(outputstr, 1, 79)
- ELSE
- ? outputstr
- ENDIF
- NEXT
- ENDIF
- row_counter = row_counter + ssthcnt
- Beg_group()
- print_header = .F.
-
- ********************
-
- PROCEDURE Setfilt
-
- PARAMETERS _expression
-
- IF !(TYPE(_expression) == "U")
- SET FILTER TO &_expression.
- ENDIF
-
-
-
- * End of File
-
-
-