SlideShare a Scribd company logo
1 of 19
Download to read offline
Using Datawindow as
Tile Menu UI Component
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
How to implement
• put a
datawindow
dw_tile control
on your window
• Add new user
event on dw_tile
that map to
system event ID :
pbm_dwnlbutto
nup named it
ue_mouse up
Write the Script
And This is how it looks
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

e6718_Bahan_Tayang_Long_Segment_2018_REV.pptx
e6718_Bahan_Tayang_Long_Segment_2018_REV.pptxe6718_Bahan_Tayang_Long_Segment_2018_REV.pptx
e6718_Bahan_Tayang_Long_Segment_2018_REV.pptxssuser94d767
 
Kebutuhan Air tanaman secara empiris
Kebutuhan Air tanaman secara empirisKebutuhan Air tanaman secara empiris
Kebutuhan Air tanaman secara empirisKarla Puspita Sari
 
Perencanaan perkerasan jalan dengan manual desain perkerasan jalan nomor 02/M...
Perencanaan perkerasan jalan dengan manual desain perkerasan jalan nomor 02/M...Perencanaan perkerasan jalan dengan manual desain perkerasan jalan nomor 02/M...
Perencanaan perkerasan jalan dengan manual desain perkerasan jalan nomor 02/M...Hapsari Safira
 
Pedoman perencanaan-drainase-jalan-2006 2
Pedoman perencanaan-drainase-jalan-2006 2Pedoman perencanaan-drainase-jalan-2006 2
Pedoman perencanaan-drainase-jalan-2006 2febri anus
 
Manual desain-perkerasan-jalan-2017
Manual desain-perkerasan-jalan-2017Manual desain-perkerasan-jalan-2017
Manual desain-perkerasan-jalan-2017NUR SETIAJI
 
Cek penampang kolom baja gable
Cek penampang kolom baja gableCek penampang kolom baja gable
Cek penampang kolom baja gableAfret Nobel
 
Tingkat Pelayanan Jalan (Level of Service)
Tingkat Pelayanan Jalan (Level of Service)Tingkat Pelayanan Jalan (Level of Service)
Tingkat Pelayanan Jalan (Level of Service)Dokter Kota
 
Cara penyiapan dan pembersihan lahan sebelum pelaksanaan penyemprotan prime c...
Cara penyiapan dan pembersihan lahan sebelum pelaksanaan penyemprotan prime c...Cara penyiapan dan pembersihan lahan sebelum pelaksanaan penyemprotan prime c...
Cara penyiapan dan pembersihan lahan sebelum pelaksanaan penyemprotan prime c...Angga Nugraha
 
Laporan akhir
Laporan akhirLaporan akhir
Laporan akhirHandry J
 
Development of multimodal transportation and inter regional connectivitiy
Development of multimodal transportation and inter regional connectivitiyDevelopment of multimodal transportation and inter regional connectivitiy
Development of multimodal transportation and inter regional connectivitiyIndonesia Infrastructure Initiative
 
Laporan Kerja Praktek
Laporan Kerja PraktekLaporan Kerja Praktek
Laporan Kerja PraktekElis Wahyuni
 
Cara setting out atau stake out bangunan dengan theodolite
Cara setting out atau stake out bangunan dengan theodoliteCara setting out atau stake out bangunan dengan theodolite
Cara setting out atau stake out bangunan dengan theodolitedidiek hermansyah
 
Rks sumur resapan
Rks sumur resapanRks sumur resapan
Rks sumur resapanarsigebe
 
gambar potongan irigasi
gambar potongan irigasigambar potongan irigasi
gambar potongan irigasiSyahrul Ilham
 
contoh soal menghitung momen ultimate pada balok
contoh soal menghitung momen ultimate pada balokcontoh soal menghitung momen ultimate pada balok
contoh soal menghitung momen ultimate pada balokShaleh Afif Hasibuan
 

What's hot (20)

Bab i jalan raya
Bab i jalan rayaBab i jalan raya
Bab i jalan raya
 
e6718_Bahan_Tayang_Long_Segment_2018_REV.pptx
e6718_Bahan_Tayang_Long_Segment_2018_REV.pptxe6718_Bahan_Tayang_Long_Segment_2018_REV.pptx
e6718_Bahan_Tayang_Long_Segment_2018_REV.pptx
 
Kebutuhan Air tanaman secara empiris
Kebutuhan Air tanaman secara empirisKebutuhan Air tanaman secara empiris
Kebutuhan Air tanaman secara empiris
 
Aliran Kritis
Aliran KritisAliran Kritis
Aliran Kritis
 
Perencanaan perkerasan jalan dengan manual desain perkerasan jalan nomor 02/M...
Perencanaan perkerasan jalan dengan manual desain perkerasan jalan nomor 02/M...Perencanaan perkerasan jalan dengan manual desain perkerasan jalan nomor 02/M...
Perencanaan perkerasan jalan dengan manual desain perkerasan jalan nomor 02/M...
 
Pedoman perencanaan-drainase-jalan-2006 2
Pedoman perencanaan-drainase-jalan-2006 2Pedoman perencanaan-drainase-jalan-2006 2
Pedoman perencanaan-drainase-jalan-2006 2
 
Manual desain-perkerasan-jalan-2017
Manual desain-perkerasan-jalan-2017Manual desain-perkerasan-jalan-2017
Manual desain-perkerasan-jalan-2017
 
Cek penampang kolom baja gable
Cek penampang kolom baja gableCek penampang kolom baja gable
Cek penampang kolom baja gable
 
Tingkat Pelayanan Jalan (Level of Service)
Tingkat Pelayanan Jalan (Level of Service)Tingkat Pelayanan Jalan (Level of Service)
Tingkat Pelayanan Jalan (Level of Service)
 
Bab 4 konsolidasi
Bab 4 konsolidasiBab 4 konsolidasi
Bab 4 konsolidasi
 
Cara penyiapan dan pembersihan lahan sebelum pelaksanaan penyemprotan prime c...
Cara penyiapan dan pembersihan lahan sebelum pelaksanaan penyemprotan prime c...Cara penyiapan dan pembersihan lahan sebelum pelaksanaan penyemprotan prime c...
Cara penyiapan dan pembersihan lahan sebelum pelaksanaan penyemprotan prime c...
 
Laporan akhir
Laporan akhirLaporan akhir
Laporan akhir
 
Development of multimodal transportation and inter regional connectivitiy
Development of multimodal transportation and inter regional connectivitiyDevelopment of multimodal transportation and inter regional connectivitiy
Development of multimodal transportation and inter regional connectivitiy
 
Laporan Kerja Praktek
Laporan Kerja PraktekLaporan Kerja Praktek
Laporan Kerja Praktek
 
Presentasi Seminar KP
Presentasi Seminar KPPresentasi Seminar KP
Presentasi Seminar KP
 
Cara setting out atau stake out bangunan dengan theodolite
Cara setting out atau stake out bangunan dengan theodoliteCara setting out atau stake out bangunan dengan theodolite
Cara setting out atau stake out bangunan dengan theodolite
 
Rks sumur resapan
Rks sumur resapanRks sumur resapan
Rks sumur resapan
 
gambar potongan irigasi
gambar potongan irigasigambar potongan irigasi
gambar potongan irigasi
 
Mektan bab 4 rembesan tanah
Mektan bab 4 rembesan tanahMektan bab 4 rembesan tanah
Mektan bab 4 rembesan tanah
 
contoh soal menghitung momen ultimate pada balok
contoh soal menghitung momen ultimate pada balokcontoh soal menghitung momen ultimate pada balok
contoh soal menghitung momen ultimate pada balok
 

Similar to Tile Menu Using Datawindow Object

#PowerBuilder #tile #menu using #Datawindow
#PowerBuilder #tile #menu using #Datawindow#PowerBuilder #tile #menu using #Datawindow
#PowerBuilder #tile #menu using #Datawindowzulmach .
 
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, 2011Mandi Walls
 
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.jsGuilherme Vierno
 
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
 
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 Applicationsbalassaitis
 
Learn D3.js in 90 minutes
Learn D3.js in 90 minutesLearn D3.js in 90 minutes
Learn D3.js in 90 minutesJos Dirksen
 
R Programming - part 1.pdf
R Programming - part 1.pdfR Programming - part 1.pdf
R Programming - part 1.pdfRohanBorgalli
 
Techwave 2006 Advanced Datawindow Functionality
Techwave 2006 Advanced Datawindow FunctionalityTechwave 2006 Advanced Datawindow Functionality
Techwave 2006 Advanced Datawindow FunctionalityBuck Woolley
 
Techwave 2006 Advanced Datawindow Techniques
Techwave 2006 Advanced Datawindow TechniquesTechwave 2006 Advanced Datawindow Techniques
Techwave 2006 Advanced Datawindow TechniquesBuck Woolley
 
Migrating from matlab to python
Migrating from matlab to pythonMigrating from matlab to python
Migrating from matlab to pythonActiveState
 
Types and Immutability: why you should care
Types and Immutability: why you should careTypes and Immutability: why you should care
Types and Immutability: why you should careJean Carlo Emer
 
C++ process new
C++ process newC++ process new
C++ process new敬倫 林
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35Bilal Ahmed
 
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 AppsEPAM
 
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 ServerStéphane Fréchette
 

Similar to Tile Menu Using Datawindow Object (20)

#PowerBuilder #tile #menu using #Datawindow
#PowerBuilder #tile #menu using #Datawindow#PowerBuilder #tile #menu using #Datawindow
#PowerBuilder #tile #menu using #Datawindow
 
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
 
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
 
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
 
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
 
Learn D3.js in 90 minutes
Learn D3.js in 90 minutesLearn D3.js in 90 minutes
Learn D3.js in 90 minutes
 
R Programming - part 1.pdf
R Programming - part 1.pdfR Programming - part 1.pdf
R Programming - part 1.pdf
 
Techwave 2006 Advanced Datawindow Functionality
Techwave 2006 Advanced Datawindow FunctionalityTechwave 2006 Advanced Datawindow Functionality
Techwave 2006 Advanced Datawindow Functionality
 
Techwave 2006 Advanced Datawindow Techniques
Techwave 2006 Advanced Datawindow TechniquesTechwave 2006 Advanced Datawindow Techniques
Techwave 2006 Advanced Datawindow Techniques
 
Python lecture 05
Python lecture 05Python lecture 05
Python lecture 05
 
C
CC
C
 
R tutorial (R program 101)
R tutorial (R program 101)R tutorial (R program 101)
R tutorial (R program 101)
 
Migrating from matlab to python
Migrating from matlab to pythonMigrating from matlab to python
Migrating from matlab to python
 
Types and Immutability: why you should care
Types and Immutability: why you should careTypes and Immutability: why you should care
Types and Immutability: why you should care
 
An Intoduction to R
An Intoduction to RAn Intoduction to R
An Intoduction to R
 
Ggplot2 v3
Ggplot2 v3Ggplot2 v3
Ggplot2 v3
 
C++ process new
C++ process newC++ process new
C++ process new
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35
 
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
 
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
 

More from zulmach .

PowerBuilder Short Logic : Loop
PowerBuilder Short Logic : LoopPowerBuilder Short Logic : Loop
PowerBuilder Short Logic : Loopzulmach .
 
PowerBuilder Productive programming
PowerBuilder Productive programmingPowerBuilder Productive programming
PowerBuilder Productive programmingzulmach .
 
PowerBuilder Productive programming
PowerBuilder Productive programmingPowerBuilder Productive programming
PowerBuilder Productive programmingzulmach .
 
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 Diskzulmach .
 
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 deskzulmach .
 
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 Powerbuilderzulmach .
 
Membuat left side menu hamburger style
Membuat left side menu hamburger styleMembuat left side menu hamburger style
Membuat left side menu hamburger stylezulmach .
 
Sharing Tentang Implementasi Sistem Rumah Sakit
Sharing Tentang Implementasi Sistem Rumah SakitSharing Tentang Implementasi Sistem Rumah Sakit
Sharing Tentang Implementasi Sistem Rumah Sakitzulmach .
 
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 objectszulmach .
 
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 Platformzulmach .
 
Sistem bisnis dan manajemen rumah sakit
Sistem bisnis dan manajemen rumah sakitSistem bisnis dan manajemen rumah sakit
Sistem bisnis dan manajemen rumah sakitzulmach .
 
Sistem Bisnis dan Manajemen Rumah Sakit
Sistem Bisnis dan Manajemen Rumah SakitSistem Bisnis dan Manajemen Rumah Sakit
Sistem Bisnis dan Manajemen Rumah Sakitzulmach .
 
PowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application DeploymentPowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application Deploymentzulmach .
 

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

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024Shane Coughlan
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionMohammed Fazuluddin
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfFurqanuddin10
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfVictor Lopez
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionWave PLM
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...Alluxio, Inc.
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAlluxio, Inc.
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024vaibhav130304
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Gáspár Nagy
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfmbmh111980
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfsteffenkarlsson2
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...rajkumar669520
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdfkalichargn70th171
 

Recently uploaded (20)

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 

Tile Menu Using Datawindow Object

  • 1. Using Datawindow as Tile Menu UI Component 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. How to implement • put a datawindow dw_tile control on your window • Add new user event on dw_tile that map to system event ID : pbm_dwnlbutto nup named it ue_mouse up
  • 17. And This is how it looks
  • 18. Download Datawindow Object Source Code https://zulmach.wordpress.com/2 020/01/18/tile-menu-using- datawindow-object
  • 19. • 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