SlideShare a Scribd company logo
Using Datawindow as
UI Component
(Part 1)
zulmach@pbdev.id
pbdev.id coexist
Friday, 31 Januari 2020 | Maxx Cofee Cideng, Jakarta Barat
Tile Menu as one of UI Component
• Basic Idea
• Why Datawindow
• How to Create
• How to Implement it
• Other Possibilities
Basic Idea
• Kind of Cute
• So many already available
• None is free
• None is Native PB Object
• usually OCX, OLE Object or uses PBNI
• Not easy to distribute
• None is compatible with Appeon Web/Mobile
• Only need the SIMPLEST yet NICE LOOKING
• Don’t want too many script to write (copy/paste)
Why Datawindow
• Data centric : rows & columns
• Can put controls as Window
• Powerful DW Expression
• Support expression for many properties
• Controls Behaviour can be based on data
How to Create
Step by step
Create New N-Up Datawindow Object
• Create Datawindow Object N-Up presentation Style
• Columns : icon (string), title (string), visible (number), size (number)
• This example with 6 rows per detail
Clean Up
• Clean up datawindow from columns and text,
select all and delete from the layout
Create Rectangles
• Create rectangles : r_dw, r_width, r_gutter as size reference
put them in header band
• Create 6 rectangles for the tile’s base, put them in detail band
Set r_1 to r_6 properties using expression
Control Visible Height Width
r_1 visible[0] long(describe
("r_width.width"))-40
size[0] * (long(describe("r_width.width"))) +
(size[0] -1) * (long(describe("r_gutter.width")))
r_2 visible[1] long(describe
("r_width.width"))-40
size[1] * (long(describe("r_width.width"))) +
(size[1] -1) * (long(describe("r_gutter.width")))
r_3 visible[2] long(describe
("r_width.width"))-40
size[2] * (long(describe("r_width.width"))) +
(size[2] -1) * (long(describe("r_gutter.width")))
r_4 visible[3] long(describe
("r_width.width"))-40
size[3] * (long(describe("r_width.width"))) +
(size[3] -1) * (long(describe("r_gutter.width")))
r_5 visible[4] long(describe
("r_width.width"))-40
size[4] * (long(describe("r_width.width"))) +
(size[4] -1) * (long(describe("r_gutter.width")))
r_6 visible[5] long(describe
("r_width.width"))-40
size[5] * (long(describe("r_width.width"))) +
(size[5] -1) * (long(describe("r_gutter.width")))
Set r_1 to r_6 properties using expression
Control y x
r_1 long(describe("r_gutt
er.width"))
long(describe("r_gutter.width"))
r_2 long(describe("r_gutt
er.width"))
long(describe("r_gutter.width")) * 2 +
size[0] * (long(describe("r_width.width"))) +
(size[0] -1) * (long(describe("r_gutter.width")))
r_3 long(describe("r_gutt
er.width"))
long(describe("r_gutter.width")) * 3+
size[0] * (long(describe("r_width.width"))) +
(size[0] -1) * (long(describe("r_gutter.width"))) +
size[1] * (long(describe("r_width.width"))) +
(size[1] -1) * (long(describe("r_gutter.width")))
r_4 long(describe("r_gutt
er.width"))
long(describe("r_gutter.width")) * 4+
size[0] * (long(describe("r_width.width"))) +
(size[0] -1) * (long(describe("r_gutter.width"))) +
size[1] * (long(describe("r_width.width"))) +
(size[1] -1) * (long(describe("r_gutter.width"))) +
size[2] * (long(describe("r_width.width"))) +
(size[2] -1) * (long(describe("r_gutter.width")))
Set r_1 to r_6 properties using expression
Control y x
r_5 long(describe("r_gutter
.width"))
long(describe("r_gutter.width")) * 5+
size[0] * (long(describe("r_width.width"))) +
(size[0] -1) * (long(describe("r_gutter.width"))) +
size[1] * (long(describe("r_width.width"))) +
(size[1] -1) * (long(describe("r_gutter.width"))) +
size[2] * (long(describe("r_width.width"))) +
(size[2] -1) * (long(describe("r_gutter.width"))) +
size[3] * (long(describe("r_width.width"))) +
(size[3] -1) * (long(describe("r_gutter.width")))
r_6 long(describe("r_gutter
.width"))
long(describe("r_gutter.width")) * 6+
size[0] * (long(describe("r_width.width"))) +
(size[0] -1) * (long(describe("r_gutter.width"))) +
size[1] * (long(describe("r_width.width"))) +
(size[1] -1) * (long(describe("r_gutter.width"))) +
size[2] * (long(describe("r_width.width"))) +
(size[2] -1) * (long(describe("r_gutter.width"))) +
size[3] * (long(describe("r_width.width"))) +
(size[3] -1) * (long(describe("r_gutter.width"))) +
size[4] * (long(describe("r_width.width"))) +
(size[4] -1) * (long(describe("r_gutter.width")))
Create 6 Computed Field for icon placeholder
Control Expression
c_1 bitmap ( icon[0] )
c_2 bitmap ( icon[1] )
c_3 bitmap ( icon[2] )
c_4 bitmap ( icon[3] )
c_5 bitmap ( icon[4] )
c_6 bitmap ( icon[5] )
Do the same thing
• Copy and modified all the dwexpression for x,y,width,and height
properties from the r_1 to r_6 for :
• Icon
• title
Try out by adding datarows
Download Datawindow Object Source Code
https://zulmach.wordpress.com/2
020/01/18/tile-menu-using-
datawindow-object
• Thank You
• Question and Answer
• Email : zulmach@pbdev.id
• Linkedin : www.linkedin.com/in/zulmach
• Youtube : www.youtube.com/c/pemulapb
• Whatsap : +628155555368
Q&A

More Related Content

What's hot

Hash table and heaps
Hash table and heapsHash table and heaps
Hash table and heaps
Katang Isip
 
Pyclustering tutorial - BANG
Pyclustering tutorial - BANGPyclustering tutorial - BANG
Pyclustering tutorial - BANG
Andrei Novikov
 
D3.js 30-minute intro
D3.js   30-minute introD3.js   30-minute intro
D3.js 30-minute intro
Felipe
 
Trident International Graphics Workshop 2014 5/5
Trident International Graphics Workshop 2014 5/5Trident International Graphics Workshop 2014 5/5
Trident International Graphics Workshop 2014 5/5
Takao Wada
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
Happy Garg
 
Everything is composable
Everything is composableEverything is composable
Everything is composable
Victor Igor
 
Clojure Small Intro
Clojure Small IntroClojure Small Intro
Clojure Small Intro
John Vlachoyiannis
 
Functional JS for everyone - 4Developers
Functional JS for everyone - 4DevelopersFunctional JS for everyone - 4Developers
Functional JS for everyone - 4Developers
Bartek Witczak
 
A Year With MongoDB: The Tips
A Year With MongoDB: The TipsA Year With MongoDB: The Tips
A Year With MongoDB: The Tips
Rizky Abdilah
 
Geohash
GeohashGeohash
From Trill to Quill: Pushing the Envelope of Functionality and Scale
From Trill to Quill: Pushing the Envelope of Functionality and ScaleFrom Trill to Quill: Pushing the Envelope of Functionality and Scale
From Trill to Quill: Pushing the Envelope of Functionality and Scale
Badrish Chandramouli
 
Data preparation covariates
Data preparation covariatesData preparation covariates
Data preparation covariates
FAO
 
Visualising Big Data
Visualising Big DataVisualising Big Data
Visualising Big Data
Amit Kapoor
 

What's hot (13)

Hash table and heaps
Hash table and heapsHash table and heaps
Hash table and heaps
 
Pyclustering tutorial - BANG
Pyclustering tutorial - BANGPyclustering tutorial - BANG
Pyclustering tutorial - BANG
 
D3.js 30-minute intro
D3.js   30-minute introD3.js   30-minute intro
D3.js 30-minute intro
 
Trident International Graphics Workshop 2014 5/5
Trident International Graphics Workshop 2014 5/5Trident International Graphics Workshop 2014 5/5
Trident International Graphics Workshop 2014 5/5
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
Everything is composable
Everything is composableEverything is composable
Everything is composable
 
Clojure Small Intro
Clojure Small IntroClojure Small Intro
Clojure Small Intro
 
Functional JS for everyone - 4Developers
Functional JS for everyone - 4DevelopersFunctional JS for everyone - 4Developers
Functional JS for everyone - 4Developers
 
A Year With MongoDB: The Tips
A Year With MongoDB: The TipsA Year With MongoDB: The Tips
A Year With MongoDB: The Tips
 
Geohash
GeohashGeohash
Geohash
 
From Trill to Quill: Pushing the Envelope of Functionality and Scale
From Trill to Quill: Pushing the Envelope of Functionality and ScaleFrom Trill to Quill: Pushing the Envelope of Functionality and Scale
From Trill to Quill: Pushing the Envelope of Functionality and Scale
 
Data preparation covariates
Data preparation covariatesData preparation covariates
Data preparation covariates
 
Visualising Big Data
Visualising Big DataVisualising Big Data
Visualising Big Data
 

Similar to #PowerBuilder #tile #menu using #Datawindow

Tile Menu Using Datawindow Object
Tile Menu Using Datawindow ObjectTile Menu Using Datawindow Object
Tile Menu Using Datawindow Object
zulmach .
 
R for Pirates. ESCCONF October 27, 2011
R for Pirates. ESCCONF October 27, 2011R for Pirates. ESCCONF October 27, 2011
R for Pirates. ESCCONF October 27, 2011
Mandi Walls
 
Migrating from matlab to python
Migrating from matlab to pythonMigrating from matlab to python
Migrating from matlab to pythonActiveState
 
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your ApplicationsThe Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
balassaitis
 
C
CC
Edição de Texto Rico com React e Draft.js
Edição de Texto Rico com React e Draft.jsEdição de Texto Rico com React e Draft.js
Edição de Texto Rico com React e Draft.js
Guilherme Vierno
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans Fabrizio Giudici
 
Data Analytics with R and SQL Server
Data Analytics with R and SQL ServerData Analytics with R and SQL Server
Data Analytics with R and SQL Server
Stéphane Fréchette
 
CuRious about R in Power BI? End to end R in Power BI for beginners
CuRious about R in Power BI? End to end R in Power BI for beginners CuRious about R in Power BI? End to end R in Power BI for beginners
CuRious about R in Power BI? End to end R in Power BI for beginners
Jen Stirrup
 
Learn D3.js in 90 minutes
Learn D3.js in 90 minutesLearn D3.js in 90 minutes
Learn D3.js in 90 minutes
Jos Dirksen
 
Visualization of Big Data in Web Apps
Visualization of Big Data in Web AppsVisualization of Big Data in Web Apps
Visualization of Big Data in Web Apps
EPAM
 
SQL Server 2008 Overview
SQL Server 2008 OverviewSQL Server 2008 Overview
SQL Server 2008 Overview
Eric Nelson
 
What's New for Developers in SQL Server 2008?
What's New for Developers in SQL Server 2008?What's New for Developers in SQL Server 2008?
What's New for Developers in SQL Server 2008?ukdpe
 
Naver_alternative_to_jpa
Naver_alternative_to_jpaNaver_alternative_to_jpa
Naver_alternative_to_jpa
NAVER Engineering
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35
Bilal Ahmed
 
Mongo db washington dc 2014
Mongo db washington dc 2014Mongo db washington dc 2014
Mongo db washington dc 2014ikanow
 
OrientDB - The 2nd generation of (multi-model) NoSQL
OrientDB - The 2nd generation of  (multi-model) NoSQLOrientDB - The 2nd generation of  (multi-model) NoSQL
OrientDB - The 2nd generation of (multi-model) NoSQL
Roberto Franchini
 
2015-10-23_wim_davis_r_slides.pptx on consumer
2015-10-23_wim_davis_r_slides.pptx on consumer2015-10-23_wim_davis_r_slides.pptx on consumer
2015-10-23_wim_davis_r_slides.pptx on consumer
tirlukachaitanya
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable CodeBaidu, Inc.
 

Similar to #PowerBuilder #tile #menu using #Datawindow (20)

Tile Menu Using Datawindow Object
Tile Menu Using Datawindow ObjectTile Menu Using Datawindow Object
Tile Menu Using Datawindow Object
 
R for Pirates. ESCCONF October 27, 2011
R for Pirates. ESCCONF October 27, 2011R for Pirates. ESCCONF October 27, 2011
R for Pirates. ESCCONF October 27, 2011
 
Migrating from matlab to python
Migrating from matlab to pythonMigrating from matlab to python
Migrating from matlab to python
 
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your ApplicationsThe Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
 
C
CC
C
 
Edição de Texto Rico com React e Draft.js
Edição de Texto Rico com React e Draft.jsEdição de Texto Rico com React e Draft.js
Edição de Texto Rico com React e Draft.js
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
 
Data Analytics with R and SQL Server
Data Analytics with R and SQL ServerData Analytics with R and SQL Server
Data Analytics with R and SQL Server
 
CuRious about R in Power BI? End to end R in Power BI for beginners
CuRious about R in Power BI? End to end R in Power BI for beginners CuRious about R in Power BI? End to end R in Power BI for beginners
CuRious about R in Power BI? End to end R in Power BI for beginners
 
Learn D3.js in 90 minutes
Learn D3.js in 90 minutesLearn D3.js in 90 minutes
Learn D3.js in 90 minutes
 
Python lecture 05
Python lecture 05Python lecture 05
Python lecture 05
 
Visualization of Big Data in Web Apps
Visualization of Big Data in Web AppsVisualization of Big Data in Web Apps
Visualization of Big Data in Web Apps
 
SQL Server 2008 Overview
SQL Server 2008 OverviewSQL Server 2008 Overview
SQL Server 2008 Overview
 
What's New for Developers in SQL Server 2008?
What's New for Developers in SQL Server 2008?What's New for Developers in SQL Server 2008?
What's New for Developers in SQL Server 2008?
 
Naver_alternative_to_jpa
Naver_alternative_to_jpaNaver_alternative_to_jpa
Naver_alternative_to_jpa
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35
 
Mongo db washington dc 2014
Mongo db washington dc 2014Mongo db washington dc 2014
Mongo db washington dc 2014
 
OrientDB - The 2nd generation of (multi-model) NoSQL
OrientDB - The 2nd generation of  (multi-model) NoSQLOrientDB - The 2nd generation of  (multi-model) NoSQL
OrientDB - The 2nd generation of (multi-model) NoSQL
 
2015-10-23_wim_davis_r_slides.pptx on consumer
2015-10-23_wim_davis_r_slides.pptx on consumer2015-10-23_wim_davis_r_slides.pptx on consumer
2015-10-23_wim_davis_r_slides.pptx on consumer
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable Code
 

More from zulmach .

PowerBuilder Short Logic : Loop
PowerBuilder Short Logic : LoopPowerBuilder Short Logic : Loop
PowerBuilder Short Logic : Loop
zulmach .
 
PowerBuilder Productive programming
PowerBuilder Productive programmingPowerBuilder Productive programming
PowerBuilder Productive programming
zulmach .
 
PowerBuilder Productive programming
PowerBuilder Productive programmingPowerBuilder Productive programming
PowerBuilder Productive programming
zulmach .
 
Cara memperkecil ukuran maksimum kapasitas VM Disk
Cara memperkecil ukuran maksimum kapasitas VM DiskCara memperkecil ukuran maksimum kapasitas VM Disk
Cara memperkecil ukuran maksimum kapasitas VM Disk
zulmach .
 
Cara print ke lokal printer dari remote any desk
Cara print ke lokal printer dari remote any deskCara print ke lokal printer dari remote any desk
Cara print ke lokal printer dari remote any desk
zulmach .
 
How to create sliding window hamburger menu style in Powerbuilder
How to create sliding window hamburger menu style in PowerbuilderHow to create sliding window hamburger menu style in Powerbuilder
How to create sliding window hamburger menu style in Powerbuilder
zulmach .
 
Membuat left side menu hamburger style
Membuat left side menu hamburger styleMembuat left side menu hamburger style
Membuat left side menu hamburger style
zulmach .
 
Sharing Tentang Implementasi Sistem Rumah Sakit
Sharing Tentang Implementasi Sistem Rumah SakitSharing Tentang Implementasi Sistem Rumah Sakit
Sharing Tentang Implementasi Sistem Rumah Sakit
zulmach .
 
Creating Modern UI PowerBuilder Framework using native objects
Creating Modern UI PowerBuilder Framework using native objectsCreating Modern UI PowerBuilder Framework using native objects
Creating Modern UI PowerBuilder Framework using native objects
zulmach .
 
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application PlatformFastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
zulmach .
 
Sistem bisnis dan manajemen rumah sakit
Sistem bisnis dan manajemen rumah sakitSistem bisnis dan manajemen rumah sakit
Sistem bisnis dan manajemen rumah sakit
zulmach .
 
Sistem Bisnis dan Manajemen Rumah Sakit
Sistem Bisnis dan Manajemen Rumah SakitSistem Bisnis dan Manajemen Rumah Sakit
Sistem Bisnis dan Manajemen Rumah Sakit
zulmach .
 
PowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application DeploymentPowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application Deployment
zulmach .
 

More from zulmach . (13)

PowerBuilder Short Logic : Loop
PowerBuilder Short Logic : LoopPowerBuilder Short Logic : Loop
PowerBuilder Short Logic : Loop
 
PowerBuilder Productive programming
PowerBuilder Productive programmingPowerBuilder Productive programming
PowerBuilder Productive programming
 
PowerBuilder Productive programming
PowerBuilder Productive programmingPowerBuilder Productive programming
PowerBuilder Productive programming
 
Cara memperkecil ukuran maksimum kapasitas VM Disk
Cara memperkecil ukuran maksimum kapasitas VM DiskCara memperkecil ukuran maksimum kapasitas VM Disk
Cara memperkecil ukuran maksimum kapasitas VM Disk
 
Cara print ke lokal printer dari remote any desk
Cara print ke lokal printer dari remote any deskCara print ke lokal printer dari remote any desk
Cara print ke lokal printer dari remote any desk
 
How to create sliding window hamburger menu style in Powerbuilder
How to create sliding window hamburger menu style in PowerbuilderHow to create sliding window hamburger menu style in Powerbuilder
How to create sliding window hamburger menu style in Powerbuilder
 
Membuat left side menu hamburger style
Membuat left side menu hamburger styleMembuat left side menu hamburger style
Membuat left side menu hamburger style
 
Sharing Tentang Implementasi Sistem Rumah Sakit
Sharing Tentang Implementasi Sistem Rumah SakitSharing Tentang Implementasi Sistem Rumah Sakit
Sharing Tentang Implementasi Sistem Rumah Sakit
 
Creating Modern UI PowerBuilder Framework using native objects
Creating Modern UI PowerBuilder Framework using native objectsCreating Modern UI PowerBuilder Framework using native objects
Creating Modern UI PowerBuilder Framework using native objects
 
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application PlatformFastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
 
Sistem bisnis dan manajemen rumah sakit
Sistem bisnis dan manajemen rumah sakitSistem bisnis dan manajemen rumah sakit
Sistem bisnis dan manajemen rumah sakit
 
Sistem Bisnis dan Manajemen Rumah Sakit
Sistem Bisnis dan Manajemen Rumah SakitSistem Bisnis dan Manajemen Rumah Sakit
Sistem Bisnis dan Manajemen Rumah Sakit
 
PowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application DeploymentPowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application Deployment
 

Recently uploaded

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 

Recently uploaded (20)

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 

#PowerBuilder #tile #menu using #Datawindow

  • 1. Using Datawindow as UI Component (Part 1) zulmach@pbdev.id pbdev.id coexist Friday, 31 Januari 2020 | Maxx Cofee Cideng, Jakarta Barat
  • 2. Tile Menu as one of UI Component • Basic Idea • Why Datawindow • How to Create • How to Implement it • Other Possibilities
  • 3. Basic Idea • Kind of Cute • So many already available • None is free • None is Native PB Object • usually OCX, OLE Object or uses PBNI • Not easy to distribute • None is compatible with Appeon Web/Mobile • Only need the SIMPLEST yet NICE LOOKING • Don’t want too many script to write (copy/paste)
  • 4. Why Datawindow • Data centric : rows & columns • Can put controls as Window • Powerful DW Expression • Support expression for many properties • Controls Behaviour can be based on data
  • 6. Create New N-Up Datawindow Object • Create Datawindow Object N-Up presentation Style • Columns : icon (string), title (string), visible (number), size (number) • This example with 6 rows per detail
  • 7. Clean Up • Clean up datawindow from columns and text, select all and delete from the layout
  • 8. Create Rectangles • Create rectangles : r_dw, r_width, r_gutter as size reference put them in header band • Create 6 rectangles for the tile’s base, put them in detail band
  • 9. Set r_1 to r_6 properties using expression Control Visible Height Width r_1 visible[0] long(describe ("r_width.width"))-40 size[0] * (long(describe("r_width.width"))) + (size[0] -1) * (long(describe("r_gutter.width"))) r_2 visible[1] long(describe ("r_width.width"))-40 size[1] * (long(describe("r_width.width"))) + (size[1] -1) * (long(describe("r_gutter.width"))) r_3 visible[2] long(describe ("r_width.width"))-40 size[2] * (long(describe("r_width.width"))) + (size[2] -1) * (long(describe("r_gutter.width"))) r_4 visible[3] long(describe ("r_width.width"))-40 size[3] * (long(describe("r_width.width"))) + (size[3] -1) * (long(describe("r_gutter.width"))) r_5 visible[4] long(describe ("r_width.width"))-40 size[4] * (long(describe("r_width.width"))) + (size[4] -1) * (long(describe("r_gutter.width"))) r_6 visible[5] long(describe ("r_width.width"))-40 size[5] * (long(describe("r_width.width"))) + (size[5] -1) * (long(describe("r_gutter.width")))
  • 10. Set r_1 to r_6 properties using expression Control y x r_1 long(describe("r_gutt er.width")) long(describe("r_gutter.width")) r_2 long(describe("r_gutt er.width")) long(describe("r_gutter.width")) * 2 + size[0] * (long(describe("r_width.width"))) + (size[0] -1) * (long(describe("r_gutter.width"))) r_3 long(describe("r_gutt er.width")) long(describe("r_gutter.width")) * 3+ size[0] * (long(describe("r_width.width"))) + (size[0] -1) * (long(describe("r_gutter.width"))) + size[1] * (long(describe("r_width.width"))) + (size[1] -1) * (long(describe("r_gutter.width"))) r_4 long(describe("r_gutt er.width")) long(describe("r_gutter.width")) * 4+ size[0] * (long(describe("r_width.width"))) + (size[0] -1) * (long(describe("r_gutter.width"))) + size[1] * (long(describe("r_width.width"))) + (size[1] -1) * (long(describe("r_gutter.width"))) + size[2] * (long(describe("r_width.width"))) + (size[2] -1) * (long(describe("r_gutter.width")))
  • 11. Set r_1 to r_6 properties using expression Control y x r_5 long(describe("r_gutter .width")) long(describe("r_gutter.width")) * 5+ size[0] * (long(describe("r_width.width"))) + (size[0] -1) * (long(describe("r_gutter.width"))) + size[1] * (long(describe("r_width.width"))) + (size[1] -1) * (long(describe("r_gutter.width"))) + size[2] * (long(describe("r_width.width"))) + (size[2] -1) * (long(describe("r_gutter.width"))) + size[3] * (long(describe("r_width.width"))) + (size[3] -1) * (long(describe("r_gutter.width"))) r_6 long(describe("r_gutter .width")) long(describe("r_gutter.width")) * 6+ size[0] * (long(describe("r_width.width"))) + (size[0] -1) * (long(describe("r_gutter.width"))) + size[1] * (long(describe("r_width.width"))) + (size[1] -1) * (long(describe("r_gutter.width"))) + size[2] * (long(describe("r_width.width"))) + (size[2] -1) * (long(describe("r_gutter.width"))) + size[3] * (long(describe("r_width.width"))) + (size[3] -1) * (long(describe("r_gutter.width"))) + size[4] * (long(describe("r_width.width"))) + (size[4] -1) * (long(describe("r_gutter.width")))
  • 12. Create 6 Computed Field for icon placeholder Control Expression c_1 bitmap ( icon[0] ) c_2 bitmap ( icon[1] ) c_3 bitmap ( icon[2] ) c_4 bitmap ( icon[3] ) c_5 bitmap ( icon[4] ) c_6 bitmap ( icon[5] )
  • 13. Do the same thing • Copy and modified all the dwexpression for x,y,width,and height properties from the r_1 to r_6 for : • Icon • title
  • 14. Try out by adding datarows
  • 15. Download Datawindow Object Source Code https://zulmach.wordpress.com/2 020/01/18/tile-menu-using- datawindow-object
  • 16. • Thank You • Question and Answer • Email : zulmach@pbdev.id • Linkedin : www.linkedin.com/in/zulmach • Youtube : www.youtube.com/c/pemulapb • Whatsap : +628155555368 Q&A