Translate

Mittwoch, 9. August 2017

Dynamische Navigation - dynamic navigation

Business Case:
Bei einer größeren Anwendung mit mehreren Modulen/Abteilungen kommt es immer häufiger vor, dass aus MEHREREN Reports auf EINE Form (DML) verlinkt werden soll.
Der Benutzer möchte aber nach der Nutzung der Form auf "seine" Seite mit dem Report zurückkommen.
Mit Seiten im "Modal"-Modus geht das (eingeschränkt)..

Great Thanks to Roel Hartman for his Tipps in the APEX Forum concerning this!.

Hier nun eine "dynamische" Variante:

Auf der Seite mit der "Form" fügen wir ein neues Item ein (auf meiner Seite 43):
P43_PREV_PAGE vom Typ "hidden/ausgeblendet" - dieses Item soll die Seitennummer speichern, von der ich komme.

Wenn wir jetzt verlinken von einer Spalte im Report wählen wir für die Spalte:
bei "Identification", Type: "link" und bei dem Attribut "Link" sehen die Parameter dann so aus bei einer Verlinkung nach Seite 43:




Auf meiner Seite 43 passe ich das "Branching/Verlinken" an:



Im Detail: &P43_PREV_PAGE.




Dienstag, 20. Juni 2017

APEX 5.1 - Show Region - start hidden - upon change of value

APEX 5.1.1

Business Case: 
Upon selection of a specific service, the user is prompted to fill in 3 extra fields in a region...

Challenge: 
SHOW the "hidden" region upon change of a value

Solution:
Change template to hide a region by default - create Dynamic Action (DA) to unhide

----

As APEX does not dispose of a region, which is hidden by default, we have to "hide" a region first by changing the Region Template.

Thanks to Matt Mulvaney, who figured that out in his blog (also for buttons and labels).

Step 1: Change Template
In the Template section we have to add  style=”display: none;”  just before the last right-chevron character (>) on the first line.

So I chose a Region Template of template Class "Form Region" and copied it to read:



I added the   style=”display: none;”  to look as follows:



Step 2: Apply region template

We select the region on our page and apply this new template: "Form region start Hidden"

Step 3: Create a Dynamic Action

1. select the region to show (or un-hide...) containing the fields
2. in the left panel right click on the region and select "Create Dynamic Action"
3. select the properties in the right panel.... my case:




As you can see, when values 7 or 101 are entered in the item/field the DA shall fire....

4. Go back to left panel and select the DA - right click and "Create TRUE action"




This having achieved, we have to create the  "Hide" action, to hide the region again, when a different value is selected:

5. In the left panel select DA again and right mouse click on it and select:

"Create Opposite action"

That's it. I think it is a cool and useful feature. Have fun !!!

Dienstag, 6. Juni 2017

APEX 5 - Quickpicks for Date_Picker



APEX 5.1.1 - Universal Theme 4.2

When using the Quickpicks feature for a field - which is quite useful ! - I wonder which value to use to achieve SYSDATE -1 for a date_picker field...?

I did ask @ the apex discussion forum....

and myself solved it as follows:
1) I created a hidden Item "P1_DATE_DEFAULT_0" to hold the default value with source = pl/sql expression : TO_DATE(SYSDATE)


2) I created a hidden Item "P1_DATE_DEFAULT_1" to hold the default value with source = pl/sql expression : TO_DATE(SYSDATE) -1

3) I created a hidden Item "P1_DATE_DEFAULT_2" to hold the default value with source = pl/sql expression : TO_DATE(SYSDATE) -2

4) Quick Picks Label_1: Today - value: &P1_DATE_DEFAULT_0.

5) Quick Picks Label_2: Yesterday - value: &P1_DATE_DEFAULT_1.

6) Quick Picks Label_3: The day before yesterday - value: &P1_DATE_DEFAULT_2.

In my (german) page it looks like:
Quick_picks_dates.PNG
and works well.

Freitag, 10. März 2017

APEX 5 - Dynamic Action - Refresh Classic Report

Für APEX 4 und die ersten Gehversuche von Dynamic Actions gibt es ja eine Vielzahl an How Tos und Documentation... - aber bei APEX 5 wurde ich nicht so richtig fündig und einiges sieht doch jetzt anders aus - speziell mit dem neuen UI Developer Designer.

Edited 13.5.2017 - Sehr hilfreich finde ich diesen Tipp (Grafik),den ich bei meinen Recherchen fand (Source kommt später..- sorry):

Dynamic Actions funktionieren immer in 3 Schritten:




Die Aufgabe/Frage: 
Wie definiere ich eine Dynamic Action (DA) für eine SelectList, damit ein Classic Report "refreshed"...?!




(Anmerkung: ich weiß, ich kann auch eine SelectList mit Page Action "Submit Page" definieren - aber DA finde ich smarter und cooler, zumal nicht die ganze Region "zuckt" und neu geladen wird...)

Es geht natürlich los mit einem Classic Report und einem SQL Query:

Schritt 01: (in unserem Beispiel: Seite 4)

select 
 id
, name
, bemerkungen
  from table 
    where id =:P4_BRANCHE

Unter dem SQL-Query (rechts) bei "Page-Items to submit" muß "P4_BRANCHE" ausgewählt bzw. eingetragen sein, sonst "funzt" es nicht...

Schritt 02:

Wir legen ein Item vom Typ  SelectList an und nennen ihn P4_BRANCHE mit einer LOV vom
Typ SQL-Query: 

select name as d, id as r from table order by id


Schritt 03:

Wir selektieren P4_BRANCHE und mit rechter Maustaste bekommen wir das Kontextmenü:


































Wir klicken: "Create Dynamic Action" - rechts bei "Identifikation" nennen "NEW" um in: "Report_Refresh".
Die "When" Parameter sollten dann so aussehen:



















Dieser Typ DA ist automatisch vom Typ "TRUE"





















Schritt 04:

Wir klicken links bei der DA unter TRUE auf "Show": 












Und gehen wieder rechts ins "Detail-Pane" - und 
ändern die vorbelegte Action von SHOW auf REFRESH.

Bei "Affected Elements"  wird "Region" ausgewählt (worin unser Report liegt)
und der Name des Reports: "Branchen-Report"

Bei "Event" verweisen wir auf den oben angelegt Event: "Report_Refresh" und 
"Fire when Event result" :True (sollte default-mäßig auf "True" stehen).

Dann noch: "Fire on Initialisation:" ->  "Yes"
Fertig sieht es dann so aus:




Mal speichern..... (;-) und testen....

Ergebnis:


















Montag, 28. November 2016

Text Area Line break wird im Report ignoriert

Nach langem Suchen endlich gefunden... und für Euch nochmals aufbereitet:

Ich wollte gerne einen Zeilenumbruch (Carriage Return, Line Break) aus einer Text Area Eingabe in der Report Column beibehalten....

Beispiel:
textarea:
Lorem Ipsum aukrum datum hinnibum nochwas -
Zweite Zeile endet dann schon hier -
und die dritte hier -

In einer Standard Report column oder auch vom Typ escape special characters sieht das dann so aus:

Lorem Ipsum aukrum datum hinnibum nochwas - Zweite Zeile endet dann schon hier -
und die dritte hier - ..... - je nach Spaltenlänge oder Report/Seite Breite...

Tipp:
das HTML Element '<pre>'text oder #TEXTSPALTE# '</pre>' ermöglicht, dass
CR oder Linebreak mit in der Report Spalte berücksichtigt werden.

Bei einem Report mit einer Standard Report Column sieht das beim Column Formatting dann bei mir so aus:


Da habe ich 2 Spalten (#HEADLINE#) , groß, als Überschrift und darunter den Text und Kommentar in einer Report Spalte kombiniert...

Viel Erfolg damit - wer es gebrauchen kann !

Dienstag, 8. März 2016

APEX Meetup Do.10.3. in Hamburg - Neustart mit APEX 5.1

Carolin Hagemann hat ein 2. "APEX Meetup" organisiert und es wird uns Marc Sewtz, Oracle APEX Entwickler besuchen und die Neuerungen in APEX 5.1 vorab vorstellen und für Fragen zur Verfügung stehen. Danke Carolin!!

Ort: Hamburg, VEOLIA, Hammerbrookstr. 69, 1. Stock - Raum Dresden
Zeit: Do., 10.3.2016 - 17-19h
Mehr Infos hier.

Montag, 7. März 2016

APEX 5 - Kalender - Desktop, Mobile - FullCalendar, Calendar, Legacy Calendar

Das Arbeiten mit den verschiedenen Kalendern und Templates ist eine kleine Herausforderung... (;-)
Anläßlich eines kleinen Projektes hier ein paar Erfahrungen und "Entdeckungen":

Wir müssen unterscheiden bezüglich des UI - Desktop UI oder Mobile UI.
Ferner gibt es beim Erstellen einer Seite die Unterscheidung in: Calendar oder Legacy Calendar.
Hier im APEX PL/SQL Community Blog gibt es Screenshots des "Mobile UI Kalenders.
Ich hätte gerne (möglichst) EINEN Kalender für Desktop- und Smartphone Nutzung.
Der coolste Kalender ist sicherlich der Calender im Mobile UI. Das Look & Feel im Smartphone oder Tablet ist schon sehr ähnlich einer App.
Nach meinen Erfahrungen hat dieser Mobile UI Kalender (zumindest im APEX Developer Frontend) so seine Limits.
Leider läßt sich OOTB der "Starttag" der Woche (Standard ist Sunday) nicht einstellen (siehe alle Parameter unten). Ich hätte in DE gerne "Montag"...
Lösung: Application - "edit application properties" - Globalisation: "Application Promary Language" auf "german" setzen und mit dem darunter liegenden "Application Languag sderived from" mal "spielen"... funktioniert nicht verlässlich (*).
Am Do., 10.4. 17:00h haben wir in Hamburg ein APEX Meetup u.a. mit dem Entwickler Marc Sewtz, den ich dort mal befragen werde... - mehr dann hier.

Anders als in der Doku oder Hilfe beschrieben:

Will man dem Kalendereintrag (Standard: Auswahl EINER Spalte aus der Tabelle) noch mehr Infos hinzufügen ergänzt man im Attribute-Feld (Region Attribute ->Supplemental Information):



&NAME.

und nicht wie beim Help erwähnt:

#NAME#

















Fragen zum Mobile UI Calendar UI/Template:
1. Wochenstart: Montag setzen (vermeintliche Lösung s.o. funktioniert nicht) (*)
2. Eingrenzung Startzeit und Endzeit für Anzeige: Woche (z.B. von 10.00 - 18.00 Uhr
3. Abgrenzung/Erläuterung: Page: Normal, Non-Modal Dialog, Modal-Dialog
4. Mobile Calendar im Android Smartphone zeigt nur 3 Tage an...(auch im Querformat) kein Slider
5. Wiederholende Termine (Recurring Events) - How to ?

Hilfreich sind die Tipps der APEX und PL/SQL Community von Carsten Czarski in den Beiträgen "Arbeiten mit dem Mobile Kalender Teil 1 und Teil 2"

Update 6.4.2016 - nach dem APEX Meetup am 10.3.16 bei VEOLIA mit Marc Sewtz:
Seit 1.3.16 hat Carsten Czarski das APEX Development Team verstärkt. Cool!
Carsten wird sich u.a. mit der Weiterentwicklung des Kalenders (Mobile UI) befassen... also wird das bestimmt schon nett... Thumb up !!