Interface CommonGrid::getDefaultGridStyle

 

 

Description

In BBj 7.0 and higher, this method returns the default style of cells in the BBjGrid.

Syntax

Return Value

Method

int

getDefaultGridStyle()

Parameters

None.

Return Value

Returns the default style for the main grid.

Style Value Constants

GRID_STYLE_INPUTE

 

InputE

GRID_STYLE_BUTTON_UP

Raised button

GRID_STYLE_BUTTON_DOWN

Recessed button

GRID_STYLE_CHECKED

Checked checkbox

GRID_STYLE_UNCHECKED

Unchecked checkbox

GRID_STYLE_TEXT

Text field

GRID_STYLE_INPUTN

InputN

GRID_STYLE_INPUTD

InputD

Remarks

By default, the default cell style is GRID_STYLE_INPUTE. Cell styles GRID_STYLE_TEXT support HTML tags.

Example

REM Get the defalut cell style of the cells in a BBjGrid object

REM Obtain the instance of the BBjAPI object
LET myAPI!=BBjAPI()

REM Open the SysGui device
SYSGUI=UNT
OPEN (SYSGUI) "X0"

REM Obtain the instance of the BBjSysGui object
LET mySysGui!=myAPI!.getSysGui()

REM Create the main window and control objects
GOSUB CreateCalendar

REM Display the initial data
GOSUB DisplayMonth

REM Determine the default cell style of the cells in the calendar
DEFAULT_GRID_STYLE = Calendar!.getDefaultGridStyle()

SWITCH DEFAULT_GRID_STYLE
       CASE mySysGui!.GRID_STYLE_INPUTE_E
            DEFAULT_GRID_STYLE_STR$="InputE"
       BREAK
       CASE mySysGui!.GRID_STYLE_BUTTON_UP
            DEFAULT_GRID_STYLE_STR$="Raised Button"
       BREAK
       CASE mySysGui!.GRID_STYLE_BUTTON_DOWN
            DEFAULT_GRID_STYLE_STR$="Recessed Button"
       BREAK
       CASE mySysGui!.GRID_STYLE_CHECKED
            DEFAULT_GRID_STYLE_STR$="Checked Checkbox"
       BREAK
       CASE mySysGui!.GRID_STYLE_UNCHECKED
            DEFAULT_GRID_STYLE_STR$="Unchecked Checkbox"
       BREAK
       CASE mySysGui!.GRID_STYLE_TEXT
            DEFAULT_GRID_STYLE_STR$="Text Field"
       BREAK
       CASE mySysGui!.GridInputN
            DEFAULT_GRID_STYLE_STR$="InputN"
       BREAK
       CASE DEFAULT
            DEFAULT_GRID_STYLE_STR$="Undefined"
       BREAK
SWEND

REM Print out column style, this will print out "InputE"
PRINT "DEFALUT GRID STYLE = " + DEFAULT_GRID_STYLE_STR$

REM Display the main window
MainWindow!.setVisible(mySysGui!.TRUE)

REM Register the CALLBACK routines
CALLBACK(ON_CLOSE,DoAppClose,CalendarContext)

REM Process Events
PROCESS_EVENTS

REM Callback routine called when the user closes the application window
DoAppClose:
RELEASE
RETURN

REM Subroutine called to display the days in the current selected month/year
DisplayMonth:
LET DayNum=0
LET FirstDayOfMonth=DayTable!.get(DATE(JUL(CurrentYear,CurrentMonth,1):"%Ds"))
LET DaysInMonth=FNDaysInMonth(CurrentYear,CurrentMonth)
MonthVector!.clear()
IF CurrentDay>DaysInMonth+1 THEN
      CurrentDay=DaysInMonth+1
FI
LET CurrentJul=JUL(CurrentYear,CurrentMonth,CurrentDay)

REM Week 0
FOR DayOfWeek=0 TO 6
      IF FirstDayOfMonth>DayOfWeek THEN
         LET Item$=STR(0:DayMask$)
      ELSE
         LET Item$=STR(DayNum+1:DayMask$)
         LET DayNum=DayNum+1
      FI
      MonthVector!.addItem(Item$)
NEXT DayOfWeek

REM Week 1-3
FOR Week=1 TO 3
      FOR DayOfWeek=0 TO 6
         LET Item$=STR(DayNum+1:DayMask$)
         LET DayNum=DayNum+1
      MonthVector!.addItem(Item$)
   NEXT DayOfWeek
NEXT Week

REM Week 4-5
FOR week=4 TO 5
      FOR DayOfWeek=0 TO 6
         IF DayNum>DaysInMonth THEN
            LET Item$=STR(0:DayMask$)
         ELSE
            LET Item$=STR(DayNum+1:DayMask$)
            LET DayNum=DayNum+1
         FI
         MonthVector!.addItem(Item$)
   NEXT DayOfWeek
NEXT week

REM Set the current information
Calendar!.setCellText(MonthVector!)
LET CurrRow=INT((FirstDayOfMonth+CurrentDay-1)/7)
LET CurrCol=MOD(FirstDayOfMonth+CurrentDay-1,7)
Calendar!.setSelectedCell(CurrRow,CurrCol)
LET CurrentMonthYear$=DATE(CurrentJul:"%Ml %Y")
CurrDate!.setText(CurrentMonthYear$)
Calendar!.setCellText(5,5,"  To")
Calendar!.setCellText(5,6,"day ")
RETURN

REM Function called to return the number of days in the passed year and month
DEF FNDaysInMonth(fYear,fMonth)
REM calculate the number of days in a month - zero based
LET DaysInMonth=30
IF fMonth<>12 THEN
      LET DaysInMonth=NUM(DATE(JUL(fYear,fMonth+1,1)-1:"%D"))-1
FI
RETURN DaysInMonth
FNEND

REM Subroutine called to create the calendar
CreateCalendar:
REM Create the vector to hold month info
LET MonthVector!=mySysGui!.makeVector()

REM Create a java hash table to hold day names
LET DayTable!=new java.util.Hashtable()

REM Get standard date info from the STRING table
DIM DateInfo$:"Mask:C(32*=0),SM[12]:C(3*=0),M[12]:C(32*=0),SD[7]:C(3*=0),D[7]:C(32*=0)"
LET DateInfo$=STBL("!DATE")

REM Build the masks for the dates
LET dateMask$=DateInfo.Mask$
LET M=POS("%M"=dateMask$),dateMask$=dateMask$(1,M+1)+"l"+dateMask$(M+3)
LET M=POS("%Y"=dateMask$),dateMask$=dateMask$(1,M+1)+dateMask$(M+3)
WHILE POS("/"=dateMask$)
      LET M=POS("/"=dateMask$),dateMask$(M,1)=" "
WEND

REM Build the day table
FOR X=0 TO 6
    LET Item$=DateInfo.SD$[x+1]
    DayTable!.put(Item$,x)
NEXT X

REM Get current date info
LET CurrentDate$=DATE(CurrentJul:dateMask$)
LET CurrentMonthYear$=DATE(CurrentJul:"%Ml %Y")
LET CurrentDay=NUM(DATE(CurrentJul:"%Dz"))
LET CurrentMonth=NUM(DATE(CurrentJul:"%Mz"))
LET CurrentYear=NUM(DATE(CurrentJul:"%Y"))

REM Misc
LET TITLE$="BBjGrid"
LET DayMask$="##B"
LET CurrentJul=0,CalX=400,CalY=400

REM Get the next available context
LET CalendarContext=mySysGui!.getAvailableContext()
mySysGui!.setContext(CalendarContext)

REM Create the main window
LET MainWindow! = mySysGui!.addWindow(100,100,202,160,TITLE$,$00010013$)

REM Add the calendar (grid) to the main window
LET Calendar! = MainWindow!.addGrid(100,3,26,198,121)

REM Set the attributes of the grid
Calendar!.setGridEditable(1)
blueColor! = mySysGui!.makeColor(mySysGui!.BLUE)
Calendar!.setColumnHeaderForeColor(blueColor!)
Calendar!.setNumRows(6)
Calendar!.setRowHeight(20)
Calendar!.setNumColumns(7)
Calendar!.setMaxColumns(255)
Calendar!.setHasColumnHeader(mySysGui!.TRUE)
Calendar!.setVerticalLinesVisible(mySysGui!.TRUE)
Calendar!.setHorizontalLinesVisible(mySysGui!.TRUE)
Calendar!.setClientEdge(mySysGui!.TRUE)
Calendar!.setSelectionMode(Calendar!.GRID_SELECT_CELL)

REM Set the attributes for the grid's columns
FOR COL = 0 TO 6
    Calendar!.setColumnWidth(COL, 25)
    Calendar!.setColumnAlignment(COL, Calendar!.GRID_ALIGN_RIGHT)
    Calendar!.setColumnForeColor(COL, blueColor!)
NEXT COL
Calendar!.setColumnHeaderStyle(Calendar!.GRID_STYLE_BUTTON_UP)

REM Set the attributes for the grid's column headers
myVector! = mySysGui!.makeVector()
myVector!.addItem("S")
myVector!.addItem("M")
myVector!.addItem("T")
myVector!.addItem("W")
myVector!.addItem("T")
myVector!.addItem("F")
myVector!.addItem("S")
Calendar!.setColumnHeaderText(myVector!)
Calendar!.setColumnHeaderForeColor(blueColor!)
   
REM Set the attributes for the current date (static text control)
LET CurrDate! = MainWindow!.addStaticText(101,45,3,90,20,"")
CurrDate!.setClientEdge(mySysGui!.TRUE)
CurrDate!.setForeColor(blueColor!)

RETURN

See Also

BBjAPI

BBjSysGui

BBjControl

BBjWindow

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.