Skip to content

Commit

Permalink
Initial Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
SebastianAdams committed Sep 12, 2017
0 parents commit 944f727
Show file tree
Hide file tree
Showing 11 changed files with 47,718 additions and 0 deletions.
475 changes: 475 additions & 0 deletions BBjGridExWidget.bbj

Large diffs are not rendered by default.

72 changes: 72 additions & 0 deletions Demo/ColumnSetupDemo.bbj
@@ -0,0 +1,72 @@
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use com.basiscomponents.bc.SqlQueryBC
use java.sql.Types

? 'HIDE'

declare auto BBjTopLevelWindow wnd!
declare auto BBjListButton lb_db!
declare auto BBjListButton lb_tbl!
declare auto BBjToolButton btn_fit!
declare BBjGridExWidget grid!

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"BBj Grid Ex Demo")

grid! = new BBjGridExWidget(wnd!,100,0,0,800,600)

wnd! .setCallback(BBjAPI.ON_CLOSE,"byebye")
wnd! .setCallback(BBjAPI.ON_RESIZE,"resize")

gosub fillGrid

process_events


fillGrid:

declare SqlQueryBC sbc!
sbc! = new SqlQueryBC(BBjAPI().getJDBCConnection("CDStore"))
rs! = sbc!.retrieve("SELECT * FROM CDINVENTORY")

grid!.addColumn("CDNUMBER","Item#")
grid!.addColumn("ARTIST","Artist Name")
grid!.addColumn("TITLE","Record Title")
grid!.addColumn("LABEL","Publisher")
grid!.addColumn("PLAYINGTIME","Playing Time (min)",Types.INTEGER)

grid!.setColumnBackColor("CDNUMBER",BBjAPI().makeColor("LTGRAY"))
grid!.setColumnForeColor("CDNUMBER",BBjAPI().makeColor("BLUE"))
grid!.pinColumn("CDNUMBER","left")
grid!.setColumnWidth("CDNUMBER",120)
grid!.setColumnAlignment("CDNUMBER",grid!.GRID_ALIGN_CENTER())

grid!.setSelectionMode(grid!.GRID_SELECT_ROW())
grid!.setMultipleSelection(1)

rs!.getItem(0).setFieldAttribute("LABEL","BGCOLOR","#FF0000")
rs!.getItem(1).setFieldAttribute("LABEL","FGCOLOR","#00FF00")

grid!.setEnableFilter(1)

grid!.setData(rs!)

grid!.setFitToGrid(1)

grid!.setCallback(grid!.ON_GRID_SELECT_ROW(),"onRowSelect")

return

byebye:
bye

resize:
ev! = BBjAPI().getLastEvent()
grid!.setSize(ev!.getWidth(),ev!.getHeight())

return

onRowSelect:
ev! = BBjAPI().getLastEvent()
rem TODO unfold the object structure - it will change!
a=msgbox(str(ev!.getObject()),0,"ROW(S) SELECTED")
return
129 changes: 129 additions & 0 deletions Demo/Demo.bbj
@@ -0,0 +1,129 @@
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use com.basiscomponents.bc.SqlQueryBC
? 'HIDE'

declare auto BBjTopLevelWindow wnd!
declare auto BBjListButton lb_db!
declare auto BBjListButton lb_tbl!
declare auto BBjToolButton btn_fit!
declare BBjGridExWidget grid!

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,800,600,"BBj Grid Ex Demo")

wnd!.addStaticText(200,5,10,60,25,"Database:")
lb_db! = wnd!.addListButton(201,65,5,160,250,"")
wnd!.addStaticText(202,270,10,60,25,"Table:")
lb_tbl! = wnd!.addListButton(203,310,5,160,250,"")
btn_query! = wnd!.addButton(204,500,5,100,25,"Query")
btn_fit! = wnd!.addToolButton(205,765,5,25,25,"[/]")

grid! = new BBjGridExWidget(wnd!,100,0,35,800,563)

lb_db! .setCallback(BBjAPI.ON_LIST_SELECT,"loadTables")
btn_query! .setCallback(BBjAPI.ON_BUTTON_PUSH,"doQuery")
wnd! .setCallback(BBjAPI.ON_CLOSE,"byebye")
wnd! .setCallback(BBjAPI.ON_RESIZE,"resize")

btn_fit!.setToggleable(1)
btn_fit!.setCallback(BBjAPI.ON_TOOL_BUTTON_PUSH,"toggleFitToGrid")

if (info(3,6)<>"5") then
wnd!.setCallback(BBjAPI.ON_KEYPRESS,"onWinKeypress")
fi


gosub loadDatabases
gosub doQuery

rem disable the selection by default to avoid a backdoor if this demo is installed
rem enable to get the full db browsing functionality
rem lb_db!.setEnabled(0)


process_events

loadData:

return


byebye:
bye

resize:
ev! = BBjAPI().getLastEvent()
grid!.setSize(ev!.getWidth(),ev!.getHeight()-35)
return

loadDatabases:
j=0
i=0
x$ = sqllist(-1)
while x$>""
db$=x$(1,pos($0a$=x$)-1)
x$=x$(pos($0a$=x$)+1)
lb_db!.addItem(db$)
if db$="ChileCompany" then
j=i
fi
i=i+1
wend
lb_db!.selectIndex(j)
gosub loadTables
return

loadTables:
lb_tbl!.removeAllItems()
db$ = lb_db!.getSelectedItem()
sqlopen (1)db$
x$=sqltables(1)
sqlclose(1)
j=0
i=0
while x$>""
tbl$=x$(1,pos($0a$=x$)-1)
x$=x$(pos($0a$=x$)+1)
lb_tbl!.addItem(tbl$)
if tbl$="CUSTOMER" then
j=i
fi
i=i+1
wend
lb_tbl!.selectIndex(j)
return

doQuery:
db$ = lb_db!.getSelectedItem()
tbl$ = lb_tbl!.getSelectedItem()
if (db$>"" and tbl$>"") then

if rev<"REV 17.10" then
url! = "jdbc:basis:localhost?DATABASE=ChileCompany&SSL=false"
con! = java.sql.DriverManager.getConnection(url!, "admin", "admin123")
else
bc! = new SqlQueryBC(BBjAPI().getJDBCConnection(db$))
fi

rs! = bc!.retrieve("SELECT * FROM "+tbl$)
grid!.setData(rs!)
fi
return


toggleFitToGrid:
declare auto BBjToolButtonPushEvent toogle_ev!
toggle_ev! = BBjAPI().getLastEvent()
if btn_fit!.isSelected() then
grid!.setFitToGrid(1)
else
grid!.setFitToGrid(0)
fi
return

onWinKeypress:
declare auto BBjKeypressEvent key_ev!
key_ev! = BBjAPI().getLastEvent()
if key_ev!.getKeyCode() = 342 then
grid!.showDeveloperConsole()
fi
return
136 changes: 136 additions & 0 deletions Demo/TreeDemo.bbj
@@ -0,0 +1,136 @@
use ::BBjGridExWidget/BBjGridExWidget.bbj::BBjGridExWidget
use com.basiscomponents.bc.SqlQueryBC
use com.basiscomponents.db.tree.DataTree
use java.sql.Types

? 'HIDE'

declare auto BBjTopLevelWindow wnd!
declare auto BBjListButton lb_db!
declare auto BBjListButton lb_tbl!
declare auto BBjToolButton btn_fit!
declare BBjGridExWidget grid!

wnd! = BBjAPI().openSysGui("X0").addWindow(10,10,1024,768,"BBj Grid Ex Demo")


grid! = new BBjGridExWidget(wnd!,100,0,0,1024,768)

wnd! .setCallback(BBjAPI.ON_CLOSE,"byebye")
wnd! .setCallback(BBjAPI.ON_RESIZE,"resize")

gosub fillGrid

process_events


fillGrid:

qbc! = new SqlQueryBC(BBjAPI().getJDBCConnection("ChileCompany"))

sql$="SELECT
: trim(LAST_NAME)+', '+trim(FIRST_NAME)+' ('+trim(CUST_NUM)+')' AS '__node__name',
: CUST_NUM ,
: FIRST_NAME ,
: LAST_NAME ,
: COMPANY ,
: BILL_ADDR1 ,
: BILL_ADDR2 ,
: CITY ,
: STATE ,
: COUNTRY ,
: POST_CODE ,
: PHONE ,
: FAX ,
: SALESPERSON ,
: SHIP_ZONE ,
: SHIP_METHOD ,
: CURRENT_BAL ,
: OVER_30 ,
: OVER_60 ,
: OVER_90 ,
: OVER_120 ,
: SALES_MTD ,
: SALES_YTD ,
: SALES_LY ,
: LAST_PURCH_DATE ,
: LAST_PAY_DATE ,
: CREDIT_CODE
: FROM CUSTOMER "


dt! = new DataTree()

c1! = dt!.getRoot().addChild("Domestic Customers")
c11! = c1!.addChild("New Mexico")
c12! = c1!.addChild("Out of State")
c2! = dt!.getRoot().addChild("Global Customers")

r! = qbc!.retrieve(sql$+"WHERE COUNTRY='US' AND STATE != 'NM'")

c11!.setResultSet(r!)
c11!.setFieldValue("STATE","(other)")
c11!.setFieldValue("COUNTRY","US")

x11 = r!.sum("SALES_YTD")
y11 = r!.sum("SALES_LY")

c11!.setFieldValue("SALES_YTD", x11)
c11!.setFieldValue("SALES_LY", y11)

r! = qbc!.retrieve(sql$+"WHERE COUNTRY='US'AND STATE='NM'")

c12!.setResultSet(r!)

x12 = r!.sum("SALES_YTD")
y12 = r!.sum("SALES_LY")

c12!.setFieldValue("STATE","NM")
c12!.setFieldValue("COUNTRY","US")
c12!.setFieldValue("SALES_YTD",x12)
c12!.setFieldValue("SALES_LY", y12)

c1!.setFieldValue("SALES_YTD",x11+x12)
c1!.setFieldValue("SALES_LY", y11+y12)

r! = qbc!.retrieve(sql$+"WHERE COUNTRY!='US' AND STATE=''")

c2!.setResultSet(r!)
c2!.setFieldValue("STATE","(N/A)")
c2!.setFieldValue("COUNTRY","(World)")

x2 = r!.sum("SALES_YTD")
y2 = r!.sum("SALES_LY")

c2!.setFieldValue("SALES_YTD", x2)
c2!.setFieldValue("SALES_LY", y1)

grid!.addColumn("COMPANY","Company Name")
grid!.addColumn("CITY","Town")
grid!.addColumn("STATE","State")
grid!.addColumn("COUNTRY","Country")
grid!.addColumn("PHONE","Telephone")
grid!.addColumn("FAX","Telecopier")
grid!.addColumn("SALESPERSON","Sales Rep")
grid!.addColumn("SALES_YTD","Sales YTD",8)
grid!.addColumn("SALES_LY","Sales Prev.Y.",8)

grid!.pinColumn("CUST_NUM","left")
grid!.pinColumn("SALES_YTD","right")
grid!.pinColumn("SALES_LY","right")


grid!.setData(dt!)

grid!.setFitToGrid(0)

return


byebye:
bye

resize:
ev! = BBjAPI().getLastEvent()
grid!.setSize(ev!.getWidth(),ev!.getHeight())
return

0 comments on commit 944f727

Please sign in to comment.