hooked on classic (reports) - amazon s3 · 1.1 hooked on classic (reports) learn tips &...

Post on 28-May-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1 . 1

Hooked on Classic (Reports)Hooked on Classic (Reports)Learn tips & techniques to make them singLearn tips & techniques to make them sing

Jorge Rimblas

1 . 2

Jorge RimblasJorge RimblasSenior APEX Consultant

@rimblasrimblas.com/blog

Oracle DB since 1995APEX since it was HTMLDB in 2004Always involved in web technologiesjrimblas in OTN Forums

Co-author of"Expert Oracle Application Express, 2nd Edition"with "Themes & Templates" chapter

1 . 3

Age: 13 years!Staff: 80+ employees68 consultants/developers2015: 60% GrowthAPEX Solutions: 12 Years!Largest APEX practice in North AmericaOracle Center of Excellence

2 . 1

AgendaAgendaWhy?Template TypesGeneric Column Templates

Analytic FunctionsLimitationsResources

Named Column Templates

2 . 2

Final Slides AvailableFinal Slides AvailableAfter The PresentationAfter The Presentation

3 . 1

Why?Why?Standard FunctionalityStandard Functionality

Ease of useEase of useFlexibilityFlexibility

3 . 2

3 . 3

4 . 1

TemplateTemplateTypesTypes

4 . 2

Generic ColumnsGeneric Columns&&

Named ColumnsNamed Columns

4 . 3

Generic Columns

Named Columns

Column TemplateColumn Template

Row TemplateRow Template

4 . 4

5 . 1

GenericGenericColumnsColumns

5 . 2

Every column looks the same Every column looks the same <td> #COLUMN_VALUE#</td>

5 . 3

Every column looks the same Every column looks the same <td class="t-Report-cell" #ALIGNMENT# headers="#COLUMN_HEADER_NAME#"> #COLUMN_VALUE#</td>

5 . 4

Column Template ConditionsColumn Template ConditionsFour Column TemplatesCondition for each templateCondition types: PL/SQL Expression, even or oddrows

5 . 5

Using conditionsUsing conditions

5 . 6

Duplicate the templateDuplicate the template

5 . 7

Modify the templateModify the template

5 . 8

Assign the templateAssign the template

5 . 9

Step by step detailsStep by step detailsrimblas.com/blog/2014/05/using-conditions-with-column-templates/

6 . 1

NamedNamedColumnsColumns

6 . 2

SQLSQL Named ColumnsNamed Columnsselect PRODUCT_ID , PRODUCT_NAME , PRODUCT_DESCRIPTION , CATEGORY , PRODUCT_AVAIL , LIST_PRICE from PRODUCTS

#PRODUCT_ID##PRODUCT_NAME##PRODUCT_DESCRIPTION##CATEGORY##PRODUCT_AVAIL##LIST_PRICE#

6 . 3

Simple ListSimple List

6 . 4

Simple ListSimple List<ul> <li>Orange Juice <i class="fa fa-check-square-o"></i></li> <li>Milk <i class="fa fa-check-square-o"></i></li> <li>Eggs <i class="fa fa-square-o"></i></li> <li>Bread <i class="fa fa-square-o"></i></li> <li>Cornflakes <i class="fa fa-square-o"></i></li></ul>

<li>#TODO# <i class="fa fa-#CHECKED#square-o"></i></li>

<ul>

</ul>

Before Rows

After Rows

6 . 5

Simple List TemplateSimple List Template

6 . 6

Simple ListSimple List <li>#TODO# <i class="fa fa-#CHECKED#square-o"></i></li>

select id , todo , decode(completed_by , null, '' , 'check' || '-') checked , completed_by , completed_onfrom app_todos

Demo p220

6 . 7

DemoDemoAdding a link to edit

6 . 8

BenefitsBenefitsStandard Classic Report Functionality

Edit LinksDynamic Actions

Dialog CloseRefresh

7 . 1

NamedNamedColumnsColumnsMixing LayoutsMixing Layouts

7 . 2

Contact ListContact List

7 . 3

Two types of rowsTwo types of rows

<tr> <td colspan="2"> <a href="#LINK#">&EDIT_BUTTON.</a> #PARTY_NAME# - #ROLE# <i class="fa"></i> </td></tr>

<tr> <td align="right">#TYPE_NAME#</td> <td>#ENTRY#</td></tr>

7 . 4

<tr> <td colspan="2"> <a href="#LINK#">&EDIT_BUTTON.</a> #PARTY_NAME# - #ROLE# <i class="fa"></i> </td></tr>

<tr> <td align="right">#TYPE_NAME#</td> <td>#ENTRY#</td></tr>

select party_id , party_name , role , type_name , entry , active_ind from parties

7 . 5

<tr> <td colspan="2"> <a href="#LINK#">&EDIT_BUTTON.</a> #PARTY_NAME# - #ROLE# <i class="fa"></i> </td></tr>

<tr> <td align="right">#TYPE_NAME#</td> <td>#ENTRY#</td></tr>

select party_id , party_name , role , type_name , entry , active_ind from parties where party_id = 41

For a single rowFor a single rowOr the 1st Party RowOr the 1st Party Row

Use Use bothboth types of rows types of rows

Special Case

7 . 6

8 . 1

AnalyticAnalyticFunctionsFunctions

8 . 2

Analytics SyntaxAnalytics Syntax<function> (<arg1>, <arg2>, ) OVER ( < partition clause > < sorting clause > < windowing clause > )

row_number() over ( partition by party_id order by party_name, entry )

8 . 3

AnalyticsAnalyticsselect party_id , party_name , entry , row_number() over ( partition by party_id order by party_name, entry) rn from parties

PARTY_ID PARTY_NAME ENTRY RN--------- ------------------ -------------------------------- -------1 Scott, Michael 800 555-1212 11 Scott, Michael 952 555-1212 21 Scott, Michael michael.scott@dm.us 321 Schrute, Dwight 800 555-1212 121 Schrute, Dwight TheSilentNinja@SchruteFarms.com 221 Schrute, Dwight dschrute@dm.us 341 Halpert, James D. 800 555-1212 1

7 rows selected.

8 . 4

count(*) as analyticcount(*) as analyticselect party_id , party_name , row_number() over ( partition by party_id order by party_name, entry) rn , count(*) over ( partition by party_id ) total_rows from parties

PARTY_ID PARTY_NAME RN TOTAL_ROWS--------- ------------------ --- -----------1 Scott, Michael 1 31 Scott, Michael 2 31 Scott, Michael 3 321 Schrute, Dwight 1 321 Schrute, Dwight 2 321 Schrute, Dwight 3 341 Halpert, James D. 1 1

7 rows selected.

8 . 5

KISS series on AnalyticsKISS series on Analyticsby Connor McDonald

youtu.be/nk4I4ta4ZuU

8 . 6

select party_id , party_name , role , type_name , entry , row_number() over (partition by party_id order by party_name, entry) rn from parties

:RN = 1

9 . 1

Putting it all togetherPutting it all together

9 . 2

Create a new templateCreate a new template

9 . 3

<tr> <td colspan="2"> <a href="#LINK#">&EDIT_BUTTON.</a> #PARTY_NAME# - #ROLE# <i class="fa"></i> </td></tr>

<tr> <td align="right">#TYPE_NAME#</td> <td>#ENTRY#</td></tr>

<tr> <td align="right">#TYPE_NAME#</td> <td>#ENTRY#</td></tr>

Column Template 1 Column Template 2

9 . 4

<tr class="newContact rowStatus_#ACTIVE_IND#"> <td colspan="2" class="t-Report-cell heading"> <a href="#LINK#" class="contactEdit" data-id="#PARTY_ID#">&EDIT_BUTTON.</a> <span class="name">#PARTY_NAME#</span> - <span class="roleName">#ROLE#</span> <i class="fa cfa-check_#ACTIVE_IND# cfa-1_5x" title="#ACTIVE_IND#"></i> </td></tr><tr> <td align="right" class="t-Report-cell contactType">#TYPE_NAME#</td> <td class="t-Report-cell contactEntry">#ENTRY#</td></tr>

<tr> <td colspan="2"> <a href="#LINK#">&EDIT_BUTTON.</a> #PARTY_NAME# - #ROLE# <i class="fa"></i> </td></tr><tr> <td align="right">#TYPE_NAME#</td> <td>#ENTRY#</td></tr>

Column Template 1

Adding some markup

9 . 5

<tr> <td align="right">#TYPE_NAME#</td> <td>#ENTRY#</td></tr>

Column Template 2

9 . 6

Contact ListContact List

10

ReferencesReferencesDemo App

KISS Analytics

apex.oracle.com/pls/apex/f?p=89361rimblas.com/blog/2014/05/using-conditions-with-column-templates/

youtu.be/nk4I4ta4ZuU

11

Q&AQ&ATemplate OptionsTemplate Options

Power OptionsPower OptionsJorge Rimblas

@rimblas

12 . 1

12 . 2

Your one stop for everything APEX

apex.world

top related