A Report With No Data
In the
name of Allah, Most Gracious, Most Merciful
Praise
be to Allah, blessing and peace be upon our prophet Mohammed, his family and
his companions. After that,
The
Oracle Report is a visual representation of the company data stored in one or
more database tables or views. If your report is running correctly, this means, your code behinds calling this report works just fine. In fact, It is just all about the
execution of a code to achieve the report mechanism of calling it.
On the other hand, a report running with no data does not mean your report is at the save mode. It's only a warning message that denotes one or more ambitious problems is waiting for you. Even though it is only one problem, but it.causes it has so many reasons
Today's task in shaa Allah, I will list the reasons for displaying a report with no data even though there is a data stored in the database.
execution of a code to achieve the report mechanism of calling it.
On the other hand, a report running with no data does not mean your report is at the save mode. It's only a warning message that denotes one or more ambitious problems is waiting for you. Even though it is only one problem, but it.causes it has so many reasons
Today's task in shaa Allah, I will list the reasons for displaying a report with no data even though there is a data stored in the database.
Problem Definition:
A report with no data.
Problem Reasons:
7 Reasons Leads To A Report With No Data:
1.
No data
stored into the database.
2.
Invalid
report query conditions.
3.
Incompatible
parameter name.
4.
Incompatible
parameter types.
5.
The parameter numbers are not equal.
6.
Invalid
data input.
7.
Invalid
report name.
Problem Task Solution:
7 probabilities for a solution to a report with no data:
- Execute the report query into SQLPLUS or Toad to check for data. If it displays data then the problem exists either in the report or the parameter form.
- Comment each suspected condition at the where clause query line by line.Then, re-execute the query. Repeat these steps until you get the data displayed.
Start inspection through checking up these questions with answers:
i. Are the database tables' constraints and relationships correct?
ii. Is there any incorrect data inputs by the user himself?
iii. Is the query parameters are logically correct?
iii. Is the query parameters are logically correct?
iv. Is the query parameters format mask matches?
v. Is the specified value for the parameter date has data?
vi.
Is
there any irrelevant conditions in the where clause of the report's query.
3. Mismatch Parameters' Names :
This means the report parameter name itself is not the same one as on the parameter form or page. You may have:
· A
spelling mistake; So you have to make sure that both names are the same. You may use, copy & pate just to assure equality on both sides.
· One single extra space; using copy and paste may lead to one or more extra character space.
· A colon character, You may copy the parameter preceding colon ':' in the report query as follow:
· A colon character, You may copy the parameter preceding colon ':' in the report query as follow:
SET_REPORT_OBJECT_PROPERTY(v_report_id,REPORT_OTHER,
'paramform=no'
||' :P_DEPT_ID='|| TO_CHAR(:DEPTS.DEPT_ID));
Note: The report will also display
with no data just in case the report parameter has no initial value. Otherwise, it will
display data upon the initial value.
4.
Incompatible Parameter Types:
The report parameters' types MUST BE compatible
with the parameter form's parameters according to Oracle Explicit & Implicit Data
Type Conversion rules, e.g. Oracle treats 1500 the same as
'1500'. But using TO_NUMBER function in a string contains non-numeric characters, the function returns an
error.
SET_REPORT_OBJECT_PROPERTY(v_report_id,REPORT_OTHER,
'paramform=no'
||'
:P_DATES='|| TO_CHAR(:EMP.HIRE_DATE,
'DD-MM-RRRR'));
Note: All parameters in the
parameter form called especially date & number parameter data type MUST BE
in character data type. Otherwise, no data will be displayed. If NOT the form item datatype is not defined as the character data type you MUST convert it using TO_CHAR() as giving in the example.
5.
Unequal
parameters' numbers:
The number of a report parameters referenced in the report query MUST BE equal
to the parameters' form numbers referenced in the parameter form's code. This
involves one or more extra parameter
report not includes in the parameter
form or the vice versa .You have to count them and remove any redundant
or extra parameters.
6.
Invalid Data Input:
This may occur from the application user or the oracle developer or the application testers; they may input incorrect data
when calling a report from the parameter form, a developer, e.g. may write the report query contains a range of date
parameters as the following:
WHERE INVOICE_DATE BETWEEN :P_START_DATE AND :P_END_DATE
The wrong date input:
From: 15-01-2017 To: 01-01-2017
The correct date input:
From:
01-01-2017 To: 15-01-2017
Note:
The date range is reversed, so you can solve this problem if you correctly reverse the wrong date range to the correct one. A good developer can expect this problem and handle it through writing a date range validation on each item on the parameter form to enforce the user to input the correct logical date range and etc.
The date range is reversed, so you can solve this problem if you correctly reverse the wrong date range to the correct one. A good developer can expect this problem and handle it through writing a date range validation on each item on the parameter form to enforce the user to input the correct logical date range and etc.
7.
Invalid Report Copy:
This case rarely happens, a developer may mistakenly replace an old report copy of the new one. So you have to pay more attention to this mistake. So you have to test and review all report copy from the correct working folder and the valid path. Making sure you have the correct generated run time copy of both the page or form and the report.
Learn more about:
Hope this helps...
My success only comes from Allah, pls. note your comments and
suggestions are great help for me in progress thanks in advance.