June 29, 2009

Disabling a Trigger

If you have a trigger and you want to quickly disable him, then just use the "_"-technique :



In this case we have a Key-Create-Record-Trigger which should be disabled. Rename the "-" to "_" in the name of the trigger and from that point on the trigger is a user-named-trigger, which won't fire through an event.



Important: You can't rename the trigger to "KEY-CREREC2" or something else. The hyphen is in forms reserved for event-triggers.

To activate the trigger rename it back to "-" and that's all.

Have fun
Gerd

June 18, 2009

AdSense test finished

These two weeks with Googles AdSense were very interesting. You see each day your income in thousands of dollars (oh, I mean cents... and not thousands :-) ) and there are many tools to show up reports, when somewhere clicked on the Ads, and so on...

But, as I said, this is only a short test for myself and from now on the blog is Ads-Free, as before :-)



have fun
Gerd

June 04, 2009

AdSense in my blog (only for a short time)


Today I found a new tab on the blogger-UI of this google-blog. It's named "Monetize" and so they want, that all the bloggers think, they get rich, when they start Google's AdSense program. I know, that I not get rich, because I didn't have 2 million clicks the day :-)

But I start this AdSense for a while to get infos about this technique and how Google implemented the Ads into the blogs.

Please don't think, that I want to nerve you. My blog will go on and after the test I give you a little feedback, how this Ads work and how they have impact on the user-frequency.

Let's start the test!
Gerd

May 29, 2009

And the winners are:

In adaption of Grants Posting I copy here a list of the 5 best Oracle Forms Java Beans of the April 2009 Contest:

18,8% Md. Mehbub Islam: Scanner Bean
17,5% Hafed Benteftifa: FRITE (Forms Rich Text HTML Editor)
17,5% Vijaynath Nair: Autocad Integration Bean
16,2% Francois Degrelle: Carousel Bean
16,2% Lionel Lasserre: Planning Bean


If you have a minute then use this links and see the astonishing beans they have created.

It's phantastic to see, that all of this run in Oracle Forms and much more. So you can modernize your application so easily and you have to integrate only some little Java Beans.

Thanks to all of those, who attend at the contest
Gerd

March 25, 2009

Data Modeling White Paper

It looks like that the Oracle SQL Developer Data Modeling Tool can grow up to the new Oracle Designer.

And here is a good overview for all of us who want to know more about the data-modeling-capacities SQL Developer Overview

have fun
Gerd

February 27, 2009

Filtering data through multiple rows

Lets say we have created a form on the table EMP and want to filter the data, so that only the Employees from Department 20 and 30 are displayed. The best UI for the user is a filter-block, where you see all departments and can mark them.

In this filter we click on the checkboxes for department 20 and 30:



The button Query data (Abfrage starten) starts a query on the emp-block.



What do we need for this technique?

-) A CONTROL-block with an item TI_Filter_String (char, 2000)
-) A checkbox CB_Filter in the DEPT-block (numeric, 0-unchecked, 1-checked)

The button, which starts the query, needs a WHEN-BUTTON-PRESSED:


:Control.TI_Filter_String := ';';
go_block ('DEPT');
first_record;
LOOP
IF :DEPT.CB_Filter = 1 THEN
:Control.TI_Filter_String := :Control.TI_Filter_String || :DEPT.DEPTNO || ';';
END IF;
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
Next_Record;
END IF;
END LOOP;
go_block ('EMP');
execute_query;


The EMP-block needs this default-where:


:Control.TI_Filter_String LIKE '%;' || DEPTNO || ';%'

The trick is, that each deptno from the filter-string can be found using the LIKE %;...;% - technique:



Have fun with this little trick!
Gerd

January 19, 2009

Forms Function Numbers

Editing the fmrweb.res to assign hotkeys to Forms Functions is not that easy. The syntax is described inside the file and there are no problems with the parameters JFN, JMN, URKS and URFD. But what IDs are used for FFN ?


# JFN : JMN : URKS : FFN : URFD (whitespace ignored)
#
# JFN = Java function number
# JMN = Java modifiers number
# URKS = User-readable key sequence (double-quoted)
# FFN = Forms function number
# URFD = User-readable function description (double-quoted)

Here it the complete list:

FFN Description
-----+---------------
1 Next Field
2 Previous Field
3 Clear Field
4 Left Arrow
5 Right Arrow
6 Up Arrow
7 Down Arrow
8 Goto Beginning of Line
9 Goto End of Line
10 Goto Extreme Vertical Up
11 Goto Extreme Vertical Down
12 Scroll Up
13 Scroll Down
14 Scroll Left
15 Scroll Right
16 Delete Character Left
17 Delete Character Right
18 Delete Line
19 Move Cursor Left
20 Move Cursor Right
21 Scroll-Up
22 Invoke Editor for Field
23 Delete Character ??
/ 23 Insert Line ??
24 Search
25 Toggle Insert/Replace Mode
26 Select Item
27 Return
28 Invoke Menu
29 List of Values
30 Help
31 Redraw Screen
32 Exit
35 Show Keys
36 Accept
61 Next Primary Key
62 Clear Record
63 Delete Record
64 Duplicate Record
65 Insert Record
66 Next Set
67 Next Record
68 Previous Record
69 Clear Block
70 Block Menu
71 Next Block
72 Previous Block
73 Duplicate Field
74 Clear Form
75 Enter
76 Enter Query
77 Execute Query
78 Display Error
79 Print
80 Count Query
81 Update Record
82 User Defined Key 0
83 User Defined Key 1
84 User Defined Key 2
85 User Defined Key 3
86 User Defined Key 4
87 User Defined Key 5
88 User Defined Key 6
89 User Defined Key 7
90 User Defined Key 8
91 User Defined Key 9
92 Clear Eol
95 List Tab Pages
11022 Accelerator Key 1
11023 Accelerator Key 2
11024 Accelerator Key 3
11025 Accelerator Key 4
11026 Accelerator Key 5
11027 Accelerator Key 6
11028 Accelerator Key 7
11029 Accelerator Key 8
11030 Accelerator Key 9
11031 Accelerator Key 10


Have fun with the Forms Function Numbers !
I'll check as soon as possible, why the Nr. 23 is duplicated in the notes from Oracle...
Gerd

December 17, 2008

Tab-Canvases and F2

I just found an interesting undocumented feature:


While the cursor is inside a tab-canvas you can press F2


Then you see a little list-item in the upper-right corner of the tab-canvas. There you can move up, down and press Enter or Return.


This starts the WHEN-TAB-PAGE-CHANGED-trigger. Here you can do whatever you want. For example a navigation to a block and starting a query.

Have fun
Gerd

November 20, 2008

New Statement of Direction, October 2008

This is the new Statement of Direction from October 2008. (Link to my last SoD-Post)



What's different?

The graphical timeline is erased in the document. And nothing else has changed!

Here are some links to older Statement of Directions:
SoD 2008 / 07
SoD 2007 / 11
SoD 2005 / 09
SoD 2005 / 05
SoD 2005 / 03
SoD 2004 / 06

October 16, 2008

SQL Developer Data Modeling

Here are the first screenshots of the new data modeling tool, called Oracle SQL Developer Data Modeling (OSDM), which is part of the SQL Developer:


First of all I tested the capability of a table capture. Few clicks and he grabbed my datamodell and placed it in the relational-section of the OSDM.


Then you can "Engineer to Logical Model": After that you have an ER-Model:


Here is the link to the download-area on OTN: Oracle SQL Developer Data Modeling

I'll test more in the next days and write down the next experiences
Gerd

October 15, 2008

Views based on Year, Month and Day

While developing applications I need often list-of-values, which have a result-set of years, months or days.

You can hard-code those selects each time in each form, but much more elegant is to create views, which do the whole work.

Here are 3 views for years, months and days:


CREATE OR REPLACE FORCE VIEW YEARS_V
(YDATE) AS
SELECT add_months (trunc (sysdate, 'YYYY'), 12 * (50 - Level))
FROM Dual
CONNECT BY Level <= 100;

CREATE OR REPLACE FORCE VIEW MONTHS_V
(MDATE) AS
SELECT add_months (trunc (sysdate, 'MM'), 500 - Level)
FROM Dual
CONNECT BY Level <= 1000;

CREATE OR REPLACE FORCE VIEW DAYS_V
(DDATE) AS
SELECT trunc (sysdate) + 15000 - Level
FROM Dual
CONNECT BY Level <= 30000;


Those Views helps us to Select Data for the

- actual year +/- 50 years
- actual month +/- 500 months
- actual day +/- 15000 days

In a Record-Group you can use those views:

LOV of the next 10 years

SELECT YDATE
FROM Years_V
WHERE YDATE BETWEEN trunc (sysdate, 'YYYY')
AND add_months (trunc (sysdate, 'YYYY'), 10*12);


LOV of the last 30 and the next 10 days

SELECT DDATE
FROM Days_V
WHERE DDATE BETWEEN trunc (sysdate-30) AND trunc (sysdate+10);


Try it
Gerd

September 26, 2008

New Oracle Designer ? - part 2

I just found an interesting link to the first pictures of the new "Oracle Designer".

The data modeling functions are implemented in the SQL Developer.

Have fun reading Jared's post: Data modeling with SQL Developer

August 05, 2008

New Statement of Direction, July 2008

Oracle announced this Statement of Direction some days ago.

What's new ?

1) A link to the Oracle lifetime-support whitepaper. There is a redirect to this URL.

2) And 4 years more support (minimum). In the last statement of direction 2013 was the minimum support-date. Now it is 2017!

July 21, 2008

Finding all Items in the layout-editor at once

To find all items, which are displayed in the layout editor at once in the Object Navigator, press Ctrl+A, for select All.



After the Ctrl+A you have all Objects marked in the Tree:



have fun
Gerd

July 02, 2008

New Oracle Designer ?

I can't believe it...

Oracle SQL-Developer is announcing modeling-support in an upcoming release.

Here are the top features:


Database Data Modeling to support:

* Designing logical Entity Relation Diagrams
* Building physical schema designs
* Generating and executing DDL scripts
* Reverse and forward engineering of existing relational data structures
* Data domain administration
* Naming standardization
* Model formatting (font, colors)
* Importing data models from CA Erwin and Oracle Designer
* Compare and merge facilities
* Multiple database support
o Oracle Database
o DB2 (Mainframe & UDB)
o Microsoft SQL Server
* Logical and physical multi-dimensional modeling
* Object relational Data Types
* Spatial Modeling
* Multi-level logical and physical design environments
* Model validation rules
* Offline (file based) and Repository based modeling

what a wonderful news. The old designer is not the best choice today, since it got the codefreeze years ago.
Gerd