CFChart Displaying False Data
I posted a question previously about grouping CFChart output
that was answered by MikeRoo. I thought it was solved and marked it
as such. However, this morning I discovered that the Chart
contained invalid data -- data that is not in the database. I did
not see a way to change the previous thread to "Unanswered" so I'm
posting this new thread -- for which I apologize ahead of time if
I'm not supposed to do it this way. But this is more of a problem
than the grouping was because it is showing false results.
I want to display a Bar graph with TQs along the X axis
(bottom) and Percentages along the Y axis (side). But I need a
percentage of each InsideTQ and OutsideTQ for each Originator.
What is happening is that I'm getting InsideTQ and OutsideTQ
values for Originators that do not have that TQ. For example:
Originator 00021
TQ 3
InsideTQ 40 percent
OutsideTQ 60 percent
TQ 6
InsideTQ 44 percent
OutsideTQ 56 percent
But what I'm seeing on the graph is that Originator 00021
shows a TQ 5 with an InsideTQ and OutsideTQ value, but there isn't
a TQ 5 for this Originator. This particular Originator should only
have 5 values on the chart, yet there are 13 being displayed for
it. I've double checked the tables, I've created temp tables from
my queries to step through each query and query of query. My
queries are correct and they display the data correctly on the
report table. But the CFChart is showing false data. The good news
is that all of the data that is really is in the database is shown
correctly on the chart...just seems to make up other data.
Attached are my queries, chart, and table. I have a jpg of
the chart if anyone thinks that might help...
I REALLY appreciate your help.
MikerRoo,
Yeah it's a LOT of code...that is why I was trying to give it
to you in pieces, didn't want to scare you off ;-)
Something I tried yesterday: I pulled the CFChart out and
opened it in a new window with just the attached code and it still
displays incorrect data. My best guess on where the data is coming
from -- it is some how ignoring my more specific filters and
returning data for rows where the Originator or TQ is NULL though I
specify not to include those. I use the NULL Originator and TQ
fields for my roll up counts but I don't want them in the chart.
However, when I've found strange values in the chart, they all
point back to a row in the table with a NULL Originator or TQ. Now
on my table, those values are being filtered correctly. So, I'm
still blaming the chart and not my queries...just wish I knew why!?
Again, any time you have when you can help, it is
appreciated. I'm going to lock down the filters so that the users
can only select 1 Originator and/or 1 Object. This way the report
in production will display correctly until we can solve the problem
in the development report.
Side Note: I downloaded a trial version of Chart Director. I
just started looking at it yesterday, spent a few hours trying to
figure out how I would get it to work with my CF site. I'm such a
CF geek that I forget about those other languages...we have .NET,
we have VB, and other assorted development tools so it shouldn't be
too difficult to figure out how to fit it into the current
reporting tool. I'll let you know how it goes...also the book you
suggested "Visual Display of Quantative Information" does that
cover Chart Director? Trying to get our Project Lead to purchase
Chart Director and a few books so I don't bang my head against the
wall on these charts...
Thanks again and hope to hear that you had an epiphany...I'll
let you know if I have any!
Similar Messages
-
DataGrid does not display XML data
Hello, and thanks for reading this...
I am having a problem displaying XMLList data in a DataGrid.
The data is coming from a Tree control, which is receiving it
from a database using HTTPService.
The data is a list of "Job Orders" from a MySQL database,
being formatted as XML by a PHP page.
If it would be helpful to see the actual XML, a sample is
here:
http://www.anaheimwib.com/_login/get_all_orders_test2.php
All is going well until I get to the DataGrid, which doesn't
display the data, although I know it is there as I can see it in
debug mode. I've checked the dataField property of the appropriate
DataGrid column, and it appears correct.
Following is a summary of the relevant code.
...An HTTPService named "get_all_job_orders" retrieves
records from a MySQL database via PHP...
...Results are formatted as E4X:
HTTPService resultFormat="e4x"
...An XMLListCollection's source property is set to the
returned E4X XML results:
...The "order" node is what is being used as the top-level of
the XML data.
<mx:XMLListCollection id="jobOrdersReviewXMLList"
source="{get_all_job_orders.lastResult.order}"/>
...The "jobOrdersReviewXMLList" collection is assigned to be
the dataProvider property of a Tree list, using the @name syntax to
display the nodes correctly, and a change event function is defined
to add the records to a DataGrid on a separate Component for
viewing the XML records:
<mx:Tree dataProvider="{jobOrdersReviewXMLList}"
labelField="@name"
change="jobPosForm.addTreePositionsToDG(event)"/>
...Here is the relevant "jobPosForm" code (the Job Positions
Form, a separate Component based on a Form) :
...A variable is declared:
[Bindable]
public var positionsArray:XMLList;
...The variable is initialized on CreationComplete event of
the Form:
positionsArray = new XMLList;
...The Tree's change event function is defined within the
"jobPosForm" Component.
...Clicking on a Tree node fires the Change event.
...This passes an event object to the function.
...This event object contains the XML from the selected Tree
node.
...The Tree node's XML data is passed into the positionsArray
XMLList.
...This array is the dataProvider for the DataGrid, as you
will see in the following block.
public function addTreePositionsToDG(event:Event):void{
this.positionsArray = selectedNode.positions.position;
...A datagrid has its dataProvider is bound to
positionsArray.
...(I will only show one column defined here for brevity.)
...This column has its dataField property set to "POS_TITLE",
a field in the returned XML record:
<mx:DataGrid width="100%" variableRowHeight="true"
height="75%" id="dgPositions"
dataProvider="{positionsArray}" editable="false">
<mx:columns>
<mx:DataGridColumn width="25" headerText="Position Title"
dataField="POS_TITLE"/>
</mx:columns>
</mx:DataGrid>
In debug mode, I can examine the datagrid's dataProvider
property, and see that the correct XML data from the Tree control
is present. However, The datagrid does not display the data in any
of its 6 columns.
Does anyone have any advice?
Thanks for your time.Hello again,
I came up with a method of populating the DataGrid from the
selected Item of a Tree Control which displays complex XML data and
XML attributes. After the user clicks on a Tree branch, I call this
function:
public function addTreePositionsToDG(event:Event):void{
//Retrieve all "position" nodes from tree.
//Loop thru each Position.
//Add Position data to the positionsArray Array Collection.
//The DataGrid dataprovider is bound to this array, and will
be updated.
positionsArray = new ArrayCollection();
var selectedNode:Object=event.target.selectedItem;//Contains
entire branch.
for each (var position:XML in
selectedNode.positions.position){
var posArray:Array = new Array();
posArray.PK_POSITIONID = position.@PK_POSITIONID;
posArray.FK_ORDERID = position.@FK_ORDERID;
posArray.POS_TITLE = position.@POS_TITLE;
posArray.NUM_YOUTH = position.@NUM_YOUTH;
posArray.AGE_1617 = position.@AGE_1617;
posArray.AGE_1821 = position.@AGE_1821;
posArray.HOURS_WK = position.@HOURS_WK;
posArray.WAGE_RANGE_FROM = position.@WAGE_RANGE_FROM;
posArray.WAGE_RANGE_TO = position.@WAGE_RANGE_TO;
posArray.JOB_DESCR = position.@JOB_DESCR;
posArray.DES_SKILLS = position.@DES_SKILLS;
positionsArray.addItem(posArray);
So, I just had to manually go through the selected Tree node,
copy each XML attribute into a simple Array, then ADD this Array to
an ArrayCollection being used as the DataProvider for the DataGrid.
It's not elegant, but it works and I don't have to use a Label
Function, which was getting way too complicated. I still think that
Flex should have an easier way of doing this. There probably is an
easier way, but the Flex documentation doesn't provide an easy path
to it.
I want to thank you, Tracy, for the all the help. I checked
out the examples you have at www.cflex.net and they are very
helpful. I bookmarked the site and will be using it as a resource
from now on. -
Problem with displaying chart data
Hello everybody,
I have problem with displaying chart data correctly. I'm using a cartesian chart with DateTimeAxis. The stockdata I'm using is for half a year and
with ticks for every day. The problem is, that Flex displays the data of february in march together with the data of march. I have added a picture
to show the result. The second column of the grid is for february and the third for march.
Could anybody help me with this problem. Thanks in advance.
ThomasHi Chris,
thanks for your reply. Here you get the source code:
The following method creates the LineChart:
public function init():void
model.upperChart = this;
model.upperChartStyle.setChartViewStyle(this);
this.hAxis = new MyDateTimeAxis();
model.upperChartData.configureHAxis(this.hAxis);
this.vAxis = new LinearAxis();
model.upperChartData.configureVAxis(this.vAxis);
this.vAxisTitle = new Label();
this.vAxisTitle.text = model.upperChartData.getVAxisTitle();
model.upperChartStyle.setVAxisTitleLabelStyle(this.vAxisTitle);
this.vAxisTitle.x = 10
this.vAxisTitle.y = 0;
this.addChild(this.vAxisTitle);
this.myChart = new CartesianChart();
//remove default datatip
this.myChart.showDataTips = false;
this.myChart.x = 10;
this.myChart.y = 0;
this.myChart.width = 768;
this.myChart.height = 196;
model.upperChartStyle.setChartStyle(this.myChart);
this.addChild(this.myChart);
//Remove line shadow
this.myChart.seriesFilters = null;
this.myChart.horizontalAxis = this.hAxis;
this.myChart.verticalAxis = this.vAxis;
this.hAxisRenderer = new AxisRenderer();
model.upperChartData.configureHAxisRenderer(this.hAxisRenderer);
this.hAxisRenderer.axis = this.hAxis;
model.upperChartStyle.setHAxisRendererStyle(this.hAxisRenderer);
this.myChart.horizontalAxisRenderers.push(this.hAxisRenderer);
this.vAxisRenderer = new AxisRenderer();
model.upperChartData.configureVAxisRenderer(this.vAxisRenderer);
this.vAxisRenderer.axis = this.vAxis;
model.upperChartStyle.setVAxisRendererStyle(this.vAxisRenderer);
this.myChart.verticalAxisRenderers.push(this.vAxisRenderer);
model.upperChartStyle.setVAxisDataLabelStyle(this.vAxisMinLabel);
this.addChild(this.vAxisMinLabel);
model.upperChartStyle.setSeriesStyle(model.upperChartData.series, model.upperChartData.shares);
this.myChart.dataProvider = model.upperChartData.dataProvider;
this.myChart.series = model.upperChartData.series;
The data for dataprovider and series you can see in attached file dataprovider.xml.
xfield is equivalent to timestamp
yfield is equivalent to absolute
I think the problem could be the configuration of the datetimeaxis. The following method shows the parameter for the datetimeaxis:
public function configureHAxis(axis:MyDateTimeAxis):void
axis.parseFunction = UtilityClass.parseYYYYMMDDHHNNSSString2Date;
axis.dataUnits = "days";
axis.dataInterval = 1;
axis.title = "";
axis.minimum = new Date(UtilityClass.parseYYYYMMDDHHNNSSString2Date("2009-01-07 00:00:00").time);
axis.maximum = new Date(UtilityClass.parseYYYYMMDDHHNNSSString2Date("2009-07-06 00:00:00").time);
And finally you get the function, that I'm using for string to date conversion:
public static function parseYYYYMMDDHHNNSSString2Date(input:String):Date
var result:Date = new Date();
var year:Number = Number(input.substring(0,4));
var month:Number = Number(input.substring(5,7));
var date:Number = Number(input.substring(8,10));
var hours:Number = Number(input.substring(11,13));
var minutes:Number = Number(input.substring(14,16));
var seconds:Number = Number(input.substring(17,19));
result.setUTCFullYear(year);
result.setUTCMonth(month-1);
result.setUTCDate(date);
result.setUTCHours(hours);
result.setUTCMinutes(minutes);
result.setUTCSeconds(seconds);
return result;
I hope that will help to locate the reason for the wrong chart visualization.
Thanks for any help. -
DISPLAY SPATIAL DATA USING JDBC ON A JAVA FRAME
I am trying to set up some spatial data and need help in getting some sample
code for displaying the data on a Java Frame using JDBC.
The shapes I am setting up are simple polygons, lines, circles. I was going
through the samples in the demo directory under $ORACLE_HOME/md/demo/examples, but could not find any JDBC
I would really appreciate if you can point me towards some sample code and any other spatial resources.
MadhukarHere you go. It uses JDBC to fetch geoms, convert them into Java JGeometry objects, which then create Java2D shapes (these are functions of the public sdoapi.jar library). It then uses some class in the sdovis.jar library (the rendering engine of MapViewer) to setup the necessary viewport transform. If you know how to setup the viewport transform, then you dont even need sdovis. sdovis.jar is found in an deployed MapViewer's WEB-INF/lib directory. Or you can extract it from the mapviewer.ear's web.war file.
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.awt.image.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
import oracle.jdbc.OracleDriver;
import oracle.sdovis.*;
import oracle.sdovis.style.*;
import oracle.sdovis.util.*;
import oracle.spatial.geometry.JGeometry;
import oracle.sql.STRUCT;
* A very simple program that shows stuff from db in a JFrame
* <p>
public class tilsvgui2 extends JFrame
final static int mapWidth = 640;
final static int mapHeight = 480;
static JSDOGeometry geom = null;
public tilsvgui2()
setSize(mapWidth+40, mapHeight+40);
setVisible(true);
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
public void paint(Graphics g)
super.paint(g);
int w = this.getWidth(), h = this.getHeight();
Insets inset = this.getInsets();
double[] mbr = geom.getMBR();
//from sdovis; it will setup the viewport transform
XFViewPort xfp = new XFViewPort();
xfp.setDeviceView(inset.left, inset.top, w-inset.left-inset.right-1, h-inset.top-inset.bottom-1);
xfp.setDataView(mbr[0], mbr[1], mbr[2], mbr[3]);
AffineTransform af = xfp.getAffineTransform(); //get the viewport transform
Shape shp = geom.createShape(af); //create a proper shape that fits the viewport
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.red);
g2.drawRect(inset.left, inset.top, w-inset.left-inset.right-1, h-inset.top-inset.bottom-1);
//draw the shape itself
g2.setColor(Color.blue);
g2.draw(shp);
public static void getStuff() throws Exception
System.out.println("Loading geometry...");
Connection conn = getConnection("mapsrus.us.oracle.com", "1521", "orcl", "scott", "tiger");
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("select geom, totpop from counties where county='Merrimack' and state_abrv='NH'");
while(rset.next())
STRUCT st = (STRUCT) rset.getObject(1);
geom = JSDOGeometry.loadFromDB(st);
int population = rset.getInt(2);
break; //displaying only the first geometry
rset.close();
stmt.close();
conn.close();
private static Connection getConnection(String host,
String port,
String sid,
String username,
String password)
throws SQLException
String thinConn = "jdbc:oracle:thin:@"+host+":"+port+":"+sid;
Driver d = new OracleDriver();
Connection conn = DriverManager.getConnection(thinConn,username,password);
conn.setAutoCommit(false);
return conn;
public static void main(String[] args)
try{
getStuff();
}catch(Exception e)
e.printStackTrace(System.err);
new tilsvgui2();
} -
Display sound data value from ByteArrayOutputStream
hi People,
Can advise what is the function that i can use to retrieve or display the data that i stored in ByteArrayoutputStream buffer?
So far i can only store the data in... but how can i retrieve and display them on output panel?
Many ThanksHi again,
I have modify my code and found the error.. But this time i can't display the value correctly. Please advise...
//This method captures audio input from a microphone and saves it in a ByteArrayOutputStream object.
private void captureAudio(){
try{
//Get and display a list of available mixers.
Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
System.out.println("Available mixers:");
for(int cnt = 0; cnt < mixerInfo.length; cnt++){
System.out.println(mixerInfo[cnt].getName());
}//end for loop
//Get everything set up for capture
audioFormat = getAudioFormat();
DataLine.Info dataLineInfo = new DataLine.Info(TargetDataLine.class,audioFormat);
//Select one of the available mixers.
Mixer mixer = AudioSystem.getMixer(mixerInfo[3]);
//Get a TargetDataLine on the selected mixer.
targetDataLine = (TargetDataLine)mixer.getLine(dataLineInfo);
//Prepare the line for use.
targetDataLine.open(audioFormat);
targetDataLine.start();
//Create a thread to capture the microphone
// data and start it running. It will run
// until the Stop button is clicked.
Thread captureThread = new CaptureThread();
captureThread.start();
} catch (Exception e) {
System.out.println(e);
System.exit(0);
}//end catch
}//end captureAudio method
public int[] ConvertSoundData (byte[] SoundData, int SampleTotal){
//Determine the original Endian encoding format
boolean isBigEndian = audioFormat.isBigEndian();
//this array is the value of the signal at time i*h
int x[] = new int[SampleTotal];
int value;
//convert each pair of byte values from the byte array to an Endian value
for (int i = 0; i < SampleTotal*2; i+=2) {
int b1 = SoundData;
int b2 = SoundData[i + 1];
if (b1 < 0) b1 += 0x100;
if (b2 < 0) b2 += 0x100;
//Store the data based on the original Endian encoding format
if (!isBigEndian) value = (b1 << 8) + b2;
else value = b1 + (b2 << 8);
x[i/2] = value;
return x;
//This method creates and returns an
// AudioFormat object for a given set of format
// parameters. If these parameters don't work
// well for you, try some of the other
// allowable parameter values, which are shown
// in comments following the declartions.
private AudioFormat getAudioFormat(){
float sampleRate = 8000.0F;
//8000,11025,16000,22050,44100
int sampleSizeInBits = 16;
//8,16
int channels = 1;
//1,2
boolean signed = true;
//true,false
boolean bigEndian = false;
//true,false
return new AudioFormat(
sampleRate,
sampleSizeInBits,
channels,
signed,
bigEndian);
}//end getAudioFormat
//=============================================//
//Inner class to capture data from microphone
class CaptureThread extends Thread{
//An arbitrary-size temporary holding buffer
byte tempBuffer[] = new byte[10000];
public void run(){
byteArrayOutputStream = new ByteArrayOutputStream();
stopCapture = false;
try{//Loop until stopCapture is set by another thread that services the Stop button.
while(!stopCapture){
//Read data from the internal buffer of the data line.
//targetDataLine.read(byte[] b, int off, int len)
int cnt = targetDataLine.read(tempBuffer, 0, tempBuffer.length);
if(cnt > 0){
float sample_rate = audioFormat.getSampleRate();
float T = audioFormat.getFrameSize() / audioFormat.getFrameRate();
int n = (int) (sample_rate * T ) / 2;
System.out.println(n); ---------> to print the number of sample
//Save data in output stream object.
byteArrayOutputStream.write(tempBuffer, 0, cnt);
int[] SoundData = ConvertSoundData(tempBuffer,n);
for(int index = 0; index < SoundData.length; index++){
System.out.println(index + " " + SoundData[index]); ----------> to print the ALL sound data in the returned array.
}//end if
}//end while
byteArrayOutputStream.close();
}catch (Exception e) {
System.out.println(e);
System.exit(0);
}//end catch
}//end run
}//end inner class CaptureThread
The result i got during i sing "hmmm" to my microphone is as below:
1
0 1281
1
0 61184
1
0 24830
1
0 25598
1
0 33279
1
0 25350
1
0 19728
1
0 54537
Below is my question:
1) Why the number of sample keep on remained as 1? Since the sampling frequency is 8000Hz..
2) Why my index variable remained as 0? I suppose i will have 8000 values since my sampling rate is 8000Hz... Is it impossible to print 8000 data within 1 sec?
Is it advisable if i transfer the obtained numeric array directly for FFT analysis?
(I wish to do a real time frequency analyzer. With MATLAB, I can only do an analyzer by retrieving the .wav data content.)
I am shame to say i am still not clear enough with the sampling and data retrieve algorithm. Thats why i will have difficulties to delliver correct idea.
Appreciate if you have any tutorial can share with me so that i can understand more.
Thank you again. -
How to display table data without using ALV and table element.
Hi,
Its possible to display table data without using ALV and table element.
Every time i am fetching data based on (customer,status) fields and displaying these data in my output using alv
(every time i am fetching single row data ),
But problem is alv occupying more space in the output , i want to display data part only i dont want field names,
settings and header data etc..things.
Give solution to display data part..
Regards,
Rakhi.Hi,
Does you mean that you need ALV without default Function Toolbar...? If this is the case, the easy solution would have been to use Table Element rather. But, if you need to use ALV only without Function Toolbar, you can do away with that as well.
In that case, after calling GET_MODEL, you need to add few more lines of codes to achieve your goal. Those lines are --
DATA LV_VALUE TYPE REF TO CL_SALV_WD_CONFIG_TABLE.
LV_VALUE = LO_INTERFACECONTROLLER->GET_MODEL(
* Standard Filter Function setting to FALSE
LV_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_SORT_COMPLEX_ALLOWED( ABAP_FALSE ).
LV_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_FILTER_COMPLEX_ALLOWED( ABAP_FALSE ).
LV_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_FILTER_FILTERLINE_ALLOWED( ABAP_FALSE ).
LV_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_DISPLAY_SETTINGS_ALLOWED( ABAP_FALSE ).
LV_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_VIEW_LIST_ALLOWED( ABAP_FALSE ).
LV_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_SORT_HEADERCLICK_ALLOWED( ABAP_FALSE ).
LV_VALUE->IF_SALV_WD_STD_FUNCTIONS~SET_HIERARCHY_ALLOWED( ABAP_FALSE ).
* Standard Filter Function setting to FALSE Ends
Here as you can easily notice that LV_VALUE is instantiated on CL_SALV_WD_CONFIG_TABLE. Now, using this LV_VALUE, you set standard functions as False to dis-allow their display.
Hope this answers your query.
Thanks.
Kumar Saurav. -
View the .rtf file not display the data in BI Publisher Enterprise.
Hi,
Platform: OBIEE 10g in NT XPsp2
View the .rtf file not display the data in BI Publisher Enterprise.
Step 1, I created Answer-request, create .rtf file with Word and add the request name, Add bar chart and table, preview PDF is working fine with data, Upload this template to Answers, View Template from Answer is working fine with data.
Step 2, Answers – More Products > BI Publisher > My Folders > Create a new report > Edit > Data Model > New > Type: SQL Query > Data Source: Oracle BI EE > Query Builder > from SupplierSales assign Customer, Periods, Sales Facts (select Region, state, Year, Units Shipped) > Results > Save > Save
Click Layouts > New > enter Name ….. > Click Layouts > borrows .rtf file in Manage T file > Upload > Save > Click View
It is showing only the .rtf file without data. Why there is no data?
Please guide me to solve this issue.
Thanks,
JoThanks for you reply,
Our scenario is this report is basically a dissconnected mode report... we are developing these reports for mobile clients.
We dint face this kind of issue while developing other reports.
So please let us know if you have any idea on why we are facing this issue.
Regards,
Maneesh -
Strange scenario,Oracle can not display the data in mysql correctly
I use Heterogeneous Service+ODBC to achieve "oracle access mysql"(any other method?),and now i find Oracle can not display the data in mysql correctly:
-------mysql------------
mysql> create table tst(id int,name varchar(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into tst values(1,'a');
Query OK, 1 row affected (0.00 sec)
mysql> select * from tst;
------------+
| id | name |
------------+
| 1 | a |
------------+
1 row in set (0.00 sec)
mysql> show create table tst\G
*************************** 1. row ***************************
Table: tst
Create Table: CREATE TABLE `tst` (
`id` int(11) DEFAULT NULL,
`name` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
-------------oracle ------------------
SQL> select count(*) from "tst"@mysql;
COUNT(*)
49
SQL> select * from "tst"@mysql;
id
1
SQL> desc "tst"@mysql;
Name Null? Type
id NUMBER(10)You can make the following query on the result page:
"select * from the_table where movietitle = ? and cinema = ?"
then you set movietitle and cinema to those which the user selected. If the resultset contains more than 0 rows, that means the movie is available.
Below is the sample code, it assumes you have a connection to the database:
PreparedStatement stat = myConnection.prepareStatement("select * from the_table where movietitle = ? and cinema = ?");
stat.setString(1, usersMovieTitleSelection);
stat.setString(2, usersCinemaSelection);
ResultSet res = stat.executeQuery();
if (res.next()) {
out.print("The movie is available");
} else {
out.print("The movie is not available");
}Now just add that to your JSP page. Enjoy ! =) -
Hi All,
I can able to display the data through the FM REUSE_ALV_GRID_DISPLAY in the out put screen.When I click on the Microsoft Excel (CtrlShiftF7) at the ALV toolbar to view the same data in excel sheet it does open the excel sheet WITHOUT ANY DATA. Please help me how to make the data visible in the excel sheet.
Can anyone help in this regard.
Thanks & Regards,
Seshadri GHi,
Check whether the tool bar export is disabled in the alv.
check in the alv->set_table_for_first_display FM the toolbar exclude export list.
If that is ok, then try download manually by providing abutton and clicking it. You can download data manually in this way.
refer the code below.
DATA: lv_path TYPE string,
lv_fullpath TYPE string,
lc_c TYPE string,
v_fnam TYPE string,
lc_date(15) TYPE c.
TYPES: BEGIN OF ts_fieldnames,
field_name(1000),
END OF ts_fieldnames.
lc_c = 'C:\'.
WRITE sy-datum TO lc_date.
DATA:lt_fieldnames TYPE STANDARD TABLE OF ts_fieldnames,
ls_fieldnames TYPE ts_fieldnames,
lt_fieldnames1 TYPE STANDARD TABLE OF ts_fieldnames,
ls_fieldnames1 TYPE ts_fieldnames,
lt_fieldnames2 TYPE STANDARD TABLE OF ts_fieldnames,
ls_fieldnames2 TYPE ts_fieldnames,
lt_fieldnames3 TYPE STANDARD TABLE OF ts_fieldnames,
ls_fieldnames3 TYPE ts_fieldnames,
lt_fieldnames5 TYPE STANDARD TABLE OF ts_fieldnames,
ls_fieldnames5 TYPE ts_fieldnames.
CONCATENATE 'ContractAccount'
'DocumentNumber'
'Reference/InvoiceDocumentNumber'
'ClearingDocumentNumber'
INTO ls_fieldnames-field_name SEPARATED BY
cl_abap_char_utilities=>horizontal_tab.
APPEND ls_fieldnames TO lt_fieldnames.
CONCATENATE '' ''
INTO ls_fieldnames5-field_name SEPARATED BY
cl_abap_char_utilities=>newline.
APPEND ls_fieldnames5 TO lt_fieldnames5.
DATA : ls_str1 TYPE string,
ls_str2 TYPE string.
ls_str1 = 'Invoice Clearing Posting'.
ls_str2 = 'Payment On Account Posting'.
CONCATENATE ls_str1 ' :: ' lc_date INTO ls_fieldnames2-field_name.
APPEND ls_fieldnames2 TO lt_fieldnames2.
CONCATENATE ls_str2 ' :: ' lc_date INTO ls_fieldnames3-field_name.
APPEND ls_fieldnames3 TO lt_fieldnames3.
CONCATENATE 'ContractAccount'
'Reference/InvoiceDocumentNumber'
'PostOnAccountDocumentNumber'
INTO ls_fieldnames1-field_name SEPARATED BY
cl_abap_char_utilities=>horizontal_tab.
APPEND ls_fieldnames1 TO lt_fieldnames1.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = 'Select file for download'
default_extension = '.xls'
default_file_name = lv_path
initial_directory = lc_c
CHANGING
filename = lv_path
path = lc_c
fullpath = lv_fullpath
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
v_fnam = lv_fullpath.
ENDIF.
IF v_fnam IS INITIAL.
RETURN.
ENDIF.
IF i_finalclear[] IS NOT INITIAL.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = v_fnam
filetype = 'DAT'
HEADER = header
append = 'X'
write_field_separator = 'X'
CHANGING
data_tab = lt_fieldnames2
EXCEPTIONS
OTHERS = 8.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = v_fnam
filetype = 'DAT'
HEADER = header
append = 'X'
write_field_separator = 'X'
CHANGING
data_tab = lt_fieldnames
EXCEPTIONS
OTHERS = 8.
REgards
sheron -
Cannot display the data from a varaible in front end
hi,
i not able to display the data in the table from the variable.
steps how the module should work.
In OEO:
1. data to be accepted from user, values to be passed to the program in database according to the data accepted.
In Oracle Express:
2. values is accepted in database program as arguments. according to arguments the limits are applied and calculation is made for leaf level and then assigned to variable
3. rollup is called in database program.
In OEO:
4. the data is shown in tables here the user can limit his view of the data according to his needs.
my problem:
the data acceptence from oeo is working fine and the backend or the database part(program, rolllups etc) are working fine. when values are passed thru express command box the program is working fine.
i am not able to get the calculated data form the variable which stores it and display in the table. the database connectivity is fine.
note: the display of data in table is in other page not in the data acceptence page.
pls also let me know how to check in oracle administrator whether the values sent from oeo and accepted in backend properly.
i will be thankfull if any helps me out to solve this problem.
naveenhi,
i not able to display the data in the table from the variable.
steps how the module should work.
In OEO:
1. data to be accepted from user, values to be passed to the program in database according to the data accepted.
In Oracle Express:
2. values is accepted in database program as arguments. according to arguments the limits are applied and calculation is made for leaf level and then assigned to variable
3. rollup is called in database program.
In OEO:
4. the data is shown in tables here the user can limit his view of the data according to his needs.
my problem:
the data acceptence from oeo is working fine and the backend or the database part(program, rolllups etc) are working fine. when values are passed thru express command box the program is working fine.
i am not able to get the calculated data form the variable which stores it and display in the table. the database connectivity is fine.
note: the display of data in table is in other page not in the data acceptence page.
pls also let me know how to check in oracle administrator whether the values sent from oeo and accepted in backend properly.
i will be thankfull if any helps me out to solve this problem.
naveen -
Product Revenue Bookings and Backlog Dashboard does not display any data
Product Revenue Bookings and Backlog Dashboard does not display any data even though the load completed successfully.
They are able to see just the parameters.
Not sure if the upgrade of the database from 9.2.0.6 to 10.2.0.3 is a factor.
What can I check?
Is there some table to verify that the data exists for display in the Product Revenue Bookings and Backlog Dashboard?
Screenshot is at:
https://gtcr.oracle.com/gtcr-dir/gtcr_5637/6415786.993/Product_Revenue_Bookings_Backlog_Dashboard.doc
Support suggested to create a new request set and run the initial load with load all summaries option; but there was no change in the Product Revenue Bookings and Backlog Dashboard.
Any ideas?hi
We have faced the similar problem after the upgrade to 10G
What we did was
Ran the initial load of time dimension, Item setup request set, and the request set of all the dash board in the clear and initial load mode..
we were able to get the data once the clear and load is completed successfully
Regards
Ramesh Kumar S -
Display of data in a single row
Hi
Here is my query:
SELECT
--Element Classification Details:
pec.CLASSIFICATION_ID,
pec.classification_name,
pec1.classification_id "Sub Classification Id",
DECODE(pec1.classification_name,'Other Deductions', 'Other Deductions',
'Others Voluntary Deductions', 'Other Deductions',
'Personal Deductions', 'Personal Deductions',
'Personal Voluntary Deductions', 'Personal Deductions',
'Car Loan Deductions') "Sub Classification",
pec1.parent_classification_id,
scr.sub_classification_rule_id,
--Element Details:
pet.element_name, pet.element_type_id, pet.reporting_name,
DECODE(pet.processing_type, 'R', 'Recurring', 'Nonrecurring') "Processing Type",
pet.EFFECTIVE_START_DATE, pet.EFFECTIVE_END_DATE,
--Run Result Details:
prr.run_result_id,
TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)) "Amount",
piv.NAME "Input Value",
--Assignment Details:
paa.assignment_id,
--Time Period
ptp.START_DATE, ptp.end_date,
ptp.period_name "Payroll Period"
FROM hr.pay_element_classifications pec,
hr.pay_element_classifications pec1,
hr.pay_sub_classification_rules_f scr,
hr.pay_element_types_f pet,
hr.pay_run_results prr,
hr.pay_run_result_values prrv,
hr.pay_input_values_f piv,
hr.pay_assignment_actions assact,
hr.per_all_assignments_f paa,
hr.pay_payroll_actions payroll,
hr.per_time_periods ptp
WHERE
pec.classification_id = pec1.parent_classification_id (+)
AND scr.classification_id = pec1.classification_id
AND pet.classification_id = pec.classification_id
AND scr.element_type_id = pet.element_type_id
AND pet.ELEMENT_TYPE_ID = prr.ELEMENT_TYPE_ID
AND prr.run_result_id = prrv.run_result_id
AND piv.input_value_id = prrv.input_value_id
AND assact.ASSIGNMENT_ACTION_ID = prr.ASSIGNMENT_ACTION_ID
AND paa.ASSIGNMENT_ID = assact.ASSIGNMENT_ID
AND payroll.payroll_action_id = assact.PAYROLL_ACTION_ID
AND ptp.TIME_PERIOD_ID = payroll.time_period_id
AND ptp.end_date BETWEEN scr.EFFECTIVE_START_DATE AND scr.EFFECTIVE_END_DATE
AND ptp.end_date BETWEEN pet.effective_start_date AND pet.effective_end_date
AND ptp.end_date BETWEEN paa.EFFECTIVE_START_DATE AND paa.EFFECTIVE_END_DATE
AND pec.CLASSIFICATION_NAME IN ('Voluntary Deductions', 'Pre-Tax Deductions')
AND pec1.classification_name LIKE '%Deduction%'
AND piv.name = 'Pay Value'
AND paa.payroll_id != 0
AND paa.pay_basis_id != 0
AND paa.ASSIGNMENT_ID = '560'
I needed to display the amounts as separate columns pertaining to different elements or rather different sub classification of the elements
This is the final expected result for the report:
Employee Personal Deductions PD Amount Other Deductions OD Amt
XYZ Element1 00000.00 Element3 0000.00
Element 2
Car Loan Deductions CLD Amt Total Deductions (Total of all three)
Element4 00000.00 00000000.00
Here Personal Deductions, Other, Car Loan etc. are grouping of elements (sub classifications)
I have used MAX function to display the results as separate columns like this:
SELECT
--Run Result Details:
prr.run_result_id,
MAX(DECODE(pec1.classification_name, 'Personal Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Personal Deductions",
MAX(DECODE(pec1.classification_name, 'Personal Voluntary Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Personal V Deductions",
MAX(DECODE(pec1.classification_name, 'Other Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Other Deductions",
MAX(DECODE(pec1.classification_name, 'Others Voluntary Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Others V Deductions",
MAX(DECODE(pec1.classification_name, 'Car Loan Deductions', TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) "Car Loan Deductions"
/*--Assignment Details:
paa.assignment_id,
--Time Period
ptp.START_DATE, ptp.end_date,
ptp.period_name "Payroll Period"*/
FROM hr.pay_element_classifications pec,
hr.pay_element_classifications pec1,
hr.pay_sub_classification_rules_f scr,
hr.pay_element_types_f pet,
hr.pay_run_results prr,
hr.pay_run_result_values prrv,
hr.pay_input_values_f piv
/*hr.pay_assignment_actions assact,
hr.per_all_assignments_f paa,
hr.pay_payroll_actions payroll,
hr.per_time_periods ptp*/
WHERE
pec.classification_id = pec1.parent_classification_id (+)
AND scr.classification_id = pec1.classification_id
AND pet.classification_id = pec.classification_id
AND scr.element_type_id = pet.element_type_id
AND pet.ELEMENT_TYPE_ID = prr.ELEMENT_TYPE_ID
AND prr.run_result_id = prrv.run_result_id
AND piv.input_value_id = prrv.input_value_id
/*AND assact.ASSIGNMENT_ACTION_ID = prr.ASSIGNMENT_ACTION_ID
AND paa.ASSIGNMENT_ID = assact.ASSIGNMENT_ID
AND payroll.payroll_action_id = assact.PAYROLL_ACTION_ID
AND ptp.TIME_PERIOD_ID = payroll.time_period_id
--and pet.element_NAME like 'IVTB%'
AND ptp.end_date BETWEEN scr.EFFECTIVE_START_DATE AND scr.EFFECTIVE_END_DATE
AND ptp.end_date BETWEEN pet.effective_start_date AND pet.effective_end_date
AND ptp.end_date BETWEEN paa.EFFECTIVE_START_DATE AND paa.EFFECTIVE_END_DATE*/
AND pec.CLASSIFICATION_NAME IN ('Voluntary Deductions', 'Pre-Tax Deductions')
AND pec1.classification_name LIKE '%Deduction%'
AND piv.name = 'Pay Value'
--and paa.PRIMARY_FLAG like 'Y%'
/*AND paa.payroll_id != 0
AND paa.pay_basis_id != 0*/
GROUP BY
prr.run_result_id
However, the fact is that my each element_type_id has each run_result_id, which means 1 element has 1 run result id. Thus, I cannot display the data in a single row.
Can someone guide me on this? How can I display the data for an employee as a single row?
Thanks and regards,
AparnaSELECT EMP_ID,
Sum(Decode(DECODE(pec1.classification_name,'Other Deductions', 'Other Deductions','Others Voluntary Deductions', 'Other Deductions'),'Other Deductions',TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) 'Other deduction',
sum(Decode(DECODE(pec1.classification_name,'Personal Deductions', 'Personal Deductions', 'Personal Voluntary Deductions', 'Personal Deductions'),'Personal Deductions'),TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) 'Personal deduction',
sum(DECODE(pec1.classification_name,'Car Loan Deductions',TO_NUMBER(NVL(prrv.RESULT_VALUE, 0)))) 'Car deduction'
FROM hr.pay_element_classifications pec,
hr.pay_element_classifications pec1,
hr.pay_sub_classification_rules_f scr,
hr.pay_element_types_f pet,
hr.pay_run_results prr,
hr.pay_run_result_values prrv,
hr.pay_input_values_f piv,
hr.pay_assignment_actions assact,
hr.per_all_assignments_f paa,
hr.pay_payroll_actions payroll,
hr.per_time_periods ptp
WHERE
pec.classification_id = pec1.parent_classification_id (+)
AND scr.classification_id = pec1.classification_id
AND pet.classification_id = pec.classification_id
AND scr.element_type_id = pet.element_type_id
AND pet.ELEMENT_TYPE_ID = prr.ELEMENT_TYPE_ID
AND prr.run_result_id = prrv.run_result_id
AND piv.input_value_id = prrv.input_value_id
AND assact.ASSIGNMENT_ACTION_ID = prr.ASSIGNMENT_ACTION_ID
AND paa.ASSIGNMENT_ID = assact.ASSIGNMENT_ID
AND payroll.payroll_action_id = assact.PAYROLL_ACTION_ID
AND ptp.TIME_PERIOD_ID = payroll.time_period_id
AND ptp.end_date BETWEEN scr.EFFECTIVE_START_DATE AND scr.EFFECTIVE_END_DATE
AND ptp.end_date BETWEEN pet.effective_start_date AND pet.effective_end_date
AND ptp.end_date BETWEEN paa.EFFECTIVE_START_DATE AND paa.EFFECTIVE_END_DATE
AND pec.CLASSIFICATION_NAME IN ('Voluntary Deductions', 'Pre-Tax Deductions')
AND pec1.classification_name LIKE '%Deduction%'
AND piv.name = 'Pay Value'
AND paa.payroll_id != 0
AND paa.pay_basis_id != 0
I hope this may help!
Brijesh -
Calculating the total in alv and displaying the date
Hi,
I am trying to calculate the totals of netwr and fkimg in a report but the following coding cannot giv me the right answer so if there is anyone with the solution for this problem may you please help me out and how can i display the date on my report......here is my coding:
REPORT Z_DAILY_STOCK_NEW.
TYPE-POOLS: SLIS.
TABLES
TABLES: vbrk, kna1,vbrp,vbap,vbak, sflight.
ALV FIELDS
DATA: it_fieldcat TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA: w_cnt LIKE sy-tabix.
total ref to data.
t_alv LIKE TABLE OF s_error WITH HEADER LINE.
DATA: gr_layout TYPE slis_layout_alv,
gr_tab_group TYPE slis_t_sp_group_alv,
gr_repid LIKE sy-repid,
gr_events TYPE slis_t_event,
gr_print TYPE slis_print_alv,
gr_user TYPE slis_formname VALUE 'USER_COMMAND'.
SELECTION SCREEN
SELECT-OPTIONS:
s_werks FOR vbrp-werks,
s_auart FOR vbak-auart.
DEFINITION OF AN INTERNAL TABLE
DATA: begin of i_stocktab occurs 0,
kunag LIKE vbrk-kunag,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
inco1 LIKE vbrk-inco1,
vkgrp LIKE vbrp-vkgrp,
fkimg LIKE vbrp-fkimg,
netwr LIKE vbrk-netwr,
end of i_stocktab.
START OF SELECTION
SELECT vbrkkunag kna1name1 kna1ort01 vbrkinco1 vbrp~vkgrp
vbrpfkimg vbrknetwr
FROM kna1 inner join vbrk on kna1kunnr EQ vbrkkunrg
inner join vbak on kna1kunnr EQ vbakkunnr
inner join vbrp on vbrkvbeln EQ vbrpvbeln
INTO i_stocktab
WHERE vbrp~werks IN s_werks
AND vbak~auart IN s_auart.
APPEND i_stocktab.
ENDSELECT.
*DATA tb_alv TYPE i_stocktab WITH HEADER LINE.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM build_event.
PERFORM build_print.
PERFORM calc_total.
PERFORM display_alv_report.
FORM build_fieldcatalog.
w_cnt = 1.
it_fieldcat-fieldname = 'KUNAG'.
it_fieldcat-seltext_m = 'Soldtp'.
it_fieldcat-col_pos = w_cnt.
it_fieldcat-emphasize = 'X'.
it_fieldcat-key = 'X'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'NAME1'.
it_fieldcat-seltext_m = 'Name'.
it_fieldcat-col_pos = w_cnt.
it_fieldcat-emphasize = 'X'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'ORT01'.
it_fieldcat-seltext_m = 'City'.
it_fieldcat-col_pos = w_cnt.
it_fieldcat-emphasize = 'X'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'INC01'.
it_fieldcat-seltext_m = 'Incoterms'.
it_fieldcat-col_pos = w_cnt.
it_fieldcat-emphasize = 'X'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'VKGRP'.
it_fieldcat-seltext_m = 'Sales Group'.
it_fieldcat-col_pos = w_cnt.
it_fieldcat-emphasize = 'X'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'FKIMG'.
it_fieldcat-seltext_m = 'Invoiced Qty'.
it_fieldcat-col_pos = w_cnt.
it_fieldcat-emphasize = 'X'.
*it_fieldcat-do_sum = 'x'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'NETWR'.
it_fieldcat-seltext_m = 'Invoiced Value'.
it_fieldcat-col_pos = w_cnt.
it_fieldcat-emphasize = 'X'.
it_fieldcat-do_sum = 'x'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
ENDFORM.
FORM build_layout.
gr_layout-no_input = 'X'.
gr_layout-colwidth_optimize = 'X'.
gr_layout-totals_text = 'Totals: '(201).
gr_layout-detail_popup = 'X'.
ENDFORM.
FORM build_event.
DATA i_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gr_events[].
READ TABLE gr_events WITH KEY name = slis_ev_user_command
INTO i_event.
if sy-subrc = 0.
MOVE gr_user TO i_event-form.
APPEND i_event TO gr_events.
endif.
ENDFORM.
*FORM calc_total.
LOOP AT it_fieldcat into wa_fieldcat
WHERE fieldname EQ 'FKIMG' OR
fieldname EQ 'NETWR'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-datatype = 'QUAT'.
modify it_fieldcat from wa_fieldcat.
ENDLOOP.
*ENDFORM.
FORM build_print.
gr_print-reserve_lines = '2'.
gr_print-no_coverpage = 'X'.
ENDFORM.
FORM calc_total.
DATA: total type ref to data,
subtotal1 type ref to data.
field-symbols <fkimg> like sflight.
field-symbols <netwr> like sflight.
call method grid1-> get_subtotals
importing
ep_collect00 = subtotal
ep_collect01 = total.
assign total to <fkimg>.
assign total to <netwr>.
ENDFORM.
*& FUNCTION ALV DISPLAY
FORM display_alv_report.
gr_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = gr_repid
I_CALLBACK_USER_COMMAND = slis_ev_user_command
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' " see FORM
IS_LAYOUT = gr_layout
IT_FIELDCAT = it_fieldcat[]
IT_SPECIAL_GROUPS = gr_tab_group
I_SAVE = 'X'
IT_EVENTS = gr_events
IS_PRINT = gr_print
TABLES
t_outtab = i_stocktab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM.
FORM top-of-page.
*ALV Header deaclarations
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
t_line LIKE wa_header-info,
ld_lines TYPE i,
ld_linesc TYPE c.
*Title
wa_header-typ = 'H'.
wa_header-info = 'Report for daily Stock Returns'.
APPEND wa_header TO t_header.
CLEAR wa_header.
*Total No. Records Selected
DESCRIBE TABLE i_stocktab LINES ld_lines.
ld_linesc = ld_lines.
CONCATENATE 'Total No. of Records Selected:' ld_linesc
INTO t_line SEPARATED BY space.
wa_header-typ = 'A'.
wa_header-info = t_line.
APPEND wa_header TO t_header.
CLEAR: wa_header, t_line.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM.Try This
REPORT z_daily_stock_new.
TYPE-POOLS: slis.
* TABLES
TABLES: vbrk, kna1,vbrp,vbap,vbak, sflight.
* ALV FIELDS
DATA: it_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA: w_cnt LIKE sy-tabix.
* total ref to data.
* t_alv LIKE TABLE OF s_error WITH HEADER LINE.
DATA: gr_layout TYPE slis_layout_alv,
gr_tab_group TYPE slis_t_sp_group_alv,
gr_repid LIKE sy-repid,
gr_events TYPE slis_t_event,
gr_print TYPE slis_print_alv,
gr_user TYPE slis_formname VALUE 'USER_COMMAND'.
* SELECTION SCREEN
SELECT-OPTIONS:
s_werks FOR vbrp-werks,
s_auart FOR vbak-auart.
* DEFINITION OF AN INTERNAL TABLE
DATA: BEGIN OF i_stocktab OCCURS 0,
kunag LIKE vbrk-kunag,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
inco1 LIKE vbrk-inco1,
vkgrp LIKE vbrp-vkgrp,
fkimg LIKE vbrp-fkimg,
netwr LIKE vbrk-netwr,
END OF i_stocktab.
* START OF SELECTION
SELECT vbrk~kunag kna1~name1 kna1~ort01 vbrk~inco1 vbrp~vkgrp
vbrp~fkimg vbrk~netwr
FROM kna1 INNER JOIN vbrk ON kna1~kunnr EQ vbrk~kunrg
INNER JOIN vbak ON kna1~kunnr EQ vbak~kunnr
INNER JOIN vbrp ON vbrk~vbeln EQ vbrp~vbeln
INTO i_stocktab
WHERE vbrp~werks IN s_werks
AND vbak~auart IN s_auart.
APPEND i_stocktab.
ENDSELECT.
*DATA tb_alv TYPE i_stocktab WITH HEADER LINE.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM build_event.
PERFORM build_print.
PERFORM calc_total.
PERFORM display_alv_report.
* FORM build_fieldcatalog *
FORM build_fieldcatalog.
w_cnt = 1.
it_fieldcat-fieldname = 'KUNAG'.
it_fieldcat-seltext_m = 'Soldtp'.
it_fieldcat-emphasize = 'X'.
it_fieldcat-key = 'X'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'NAME1'.
it_fieldcat-seltext_m = 'Name'.
it_fieldcat-emphasize = 'X'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'ORT01'.
it_fieldcat-seltext_m = 'City'.
it_fieldcat-col_pos = w_cnt.
it_fieldcat-emphasize = 'X'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
* w_cnt = w_cnt + 1.
* it_fieldcat-fieldname = 'INC01'.
* it_fieldcat-seltext_m = 'Incoterms'.
* it_fieldcat-emphasize = 'X'.
* APPEND it_fieldcat TO it_fieldcat.
* CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'VKGRP'.
it_fieldcat-seltext_m = 'Sales Group'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
it_fieldcat-fieldname = 'FKIMG'.
it_fieldcat-seltext_m = 'Invoiced Qty'.
it_fieldcat-emphasize = 'X'.
it_fieldcat-ref_tabname = 'VBRP' .
it_fieldcat-ref_fieldname = 'FKIMG' .
it_fieldcat-do_sum = 'X' .
* *it_fieldcat-do_sum = 'x'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
w_cnt = w_cnt + 1.
clear it_fieldcat .
it_fieldcat-fieldname = 'NETWR'.
it_fieldcat-seltext_m = 'Invoiced Value'.
it_fieldcat-emphasize = 'X'.
it_fieldcat-ref_tabname = 'VBRP' .
it_fieldcat-ref_fieldname = 'NETWR' .
it_fieldcat-do_sum = 'X' .
* it_fieldcat-do_sum = 'x'.
APPEND it_fieldcat TO it_fieldcat.
CLEAR it_fieldcat.
ENDFORM.
* FORM build_layout *
FORM build_layout.
gr_layout-no_input = 'X'.
gr_layout-colwidth_optimize = 'X'.
gr_layout-totals_text = 'Totals: '(201).
gr_layout-detail_popup = 'X'.
ENDFORM.
* FORM build_event *
FORM build_event.
DATA i_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gr_events[].
READ TABLE gr_events WITH KEY name = slis_ev_user_command
INTO i_event.
IF sy-subrc = 0.
MOVE gr_user TO i_event-form.
APPEND i_event TO gr_events.
ENDIF.
ENDFORM.
*FORM calc_total.
* LOOP AT it_fieldcat into wa_fieldcat
* WHERE fieldname EQ 'FKIMG' OR
* fieldname EQ 'NETWR'.
* wa_fieldcat-do_sum = 'X'.
* wa_fieldcat-datatype = 'QUAT'.
* modify it_fieldcat from wa_fieldcat.
* ENDLOOP.
*ENDFORM.
FORM build_print.
gr_print-reserve_lines = '2'.
gr_print-no_coverpage = 'X'.
ENDFORM.
* FORM calc_total *
FORM calc_total.
DATA: total TYPE REF TO data,
subtotal1 TYPE REF TO data.
* FIELD-SYMBOLS <fkimg> LIKE sflight.
* FIELD-SYMBOLS <netwr> LIKE sflight.
* CALL METHOD grid1-> get_subtotals
* IMPORTING
* ep_collect00 = subtotal
* ep_collect01 = total.
* ASSIGN total TO <fkimg>.
* ASSIGN total TO <netwr>.
ENDFORM.
*& FUNCTION ALV DISPLAY
FORM display_alv_report.
gr_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gr_repid
i_callback_user_command = slis_ev_user_command
i_callback_top_of_page = 'TOP-OF-PAGE' " see FORM
is_layout = gr_layout
it_fieldcat = it_fieldcat[]
it_special_groups = gr_tab_group
i_save = 'X'
it_events = gr_events
is_print = gr_print
TABLES
t_outtab = i_stocktab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM.
* FORM top-of-page *
FORM top-of-page.
*ALV Header deaclarations
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
t_line LIKE wa_header-info,
ld_lines TYPE i,
ld_linesc TYPE c.
*Title
wa_header-typ = 'H'.
wa_header-info = 'Report for daily Stock Returns'.
APPEND wa_header TO t_header.
CLEAR wa_header.
*Total No. Records Selected
DESCRIBE TABLE i_stocktab LINES ld_lines.
ld_linesc = ld_lines.
CONCATENATE 'Total No. of Records Selected:' ld_linesc
INTO t_line SEPARATED BY space.
wa_header-typ = 'A'.
wa_header-info = t_line.
APPEND wa_header TO t_header.
CLEAR: wa_header, t_line.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. -
DEFECT: (Serious!) Truncates display of data in multi-byte environment
I have an oracle 10g database set up with the following nls parameters:
NLS_CALENDAR GREGORIAN
NLS_CHARACTERSET AL32UTF8
NLS_COMP LINGUISTIC
NLS_CURRENCY $
NLS_DATE_FORMAT DD-MON-YYYY
NLS_DATE_LANGUAGE AMERICAN
NLS_DUAL_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_LANGUAGE AMERICAN
NLS_LENGTH_SEMANTICS CHAR
NLS_NCHAR_CHARACTERSET UTF8
NLS_NCHAR_CONV_EXCP TRUE
NLS_NUMERIC_CHARACTERS .,
NLS_RDBMS_VERSION 10.2.0.3.0
NLS_SORT BINARY
NLS_TERRITORY AMERICA
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
I am querying a view in sqlserver 2000 via an odbc database link.
When I query a 26 character wide column in the view in sql developer, it will only return up to 13 characters of the data.
When I query the exact same view in the exact same sql server database from the extact same oracle database using the exact same odbc database link using sql navigator, I get the full 26 characters worth of data.
It also works just fine from the sql command line tool from 10g express.
Apparently, sql developer is confused about how to handle multi-byte data. If you ask it the length of the data in the column, it will tell you 26, but it will only show you 13.
I have found a VERY PAINFUL work around, to do a cast(column_name as varchar2(26) when I query it. But I've got hundreds of views and queries...In all other respects, the settings I have appear to be working correctly.
I can enter multi-byte characters into the sql worksheet to create a package, save it, and re-open the package with the multi-byte characters still visible.
I'm using a fallback directory for my jdk with the correct font installed, so I can see and edit multi-byte data in the data grids.
In this case, I noticed the problem on a column that only contains the standard ascii letters and digits.
Environment->Encoding = UTF-16
All the fonts are set to a font that properly displays western and ge'ez characters. The font has been in use for years, and is working correctly in all other circumstances.
The Database->NLS Parameters tab under sql developer preferences shows:
language: American
territory : American
sort: binary
comp: binary
length: char (I've also tried byte)
If there are other settings that you think might be relevant, please let me know.
I've done some more testing. I created an oracle table with a single column and did an insert into ... select from statement across the database link. The correct, full-length data appeared in the oracle table.
So, it's not a matter of whether the data is being returned or not, it is. It is simply not being displayed correctly. It appears that sql developer is making some unwarranted decisions about the datatable across the database link when it decides to display the data, because sql plus and sql navigator have no such issues.
This is really a very serious problem, because if I cannot trust the data the tool shows me, I cannot trust the tool.
It is also an invitation to make an error based upon the erroneous data display. -
To display posting date in alv top of page area for transaction KOB1
I want to display posting date given on selection screen of transaction KOB1 to the alv top of page area on final alv output .
what are the possible solutions ?I want to display posting date given on selection screen of transaction KOB1 to the alv top of page area on final alv output .
what are the possible solutions ?
Maybe you are looking for
-
I have just purchased an iPad 2. I have wi-fi for roku and have connected the iPad to it. I want to print to my usb printer. My connection is: Cox Cable spit to telephone and broadband. The broad band feed goes to a Cox modem and feeds the wi-fi
-
When I tried to preview participant details in order to assign roles or etc in WebConsole application... I am facing the following exception .BPM could not create Human Participant. I am using Hyrid LDAP configuration with OID. javax.faces.el.Evaluat
-
Trying again; Excel 2013 error 0xC0000005 when printing.
Hi, I have a problem in excel 2013 where some excel documents give my co-workers this error: -<Eventxmlns="http://schemas.microsoft.com/win/2004/08/events/event"> -<System> <ProviderName="Application Error" /> <EventID Qualifiers="0">1000</EventID> <
-
Purchased ringtones disappeared after Transferring to computer
I just purchased 4 ringtones from my iphone4. Afterwhich, I hooked it up with iTunes and clicked 'Transfer purchases'. Of the 4 ringtones, only 1 is listed in my iTunes Ringtone and Puchased folders. The 3 are also gone from my iphone. I've never had
-
Record assigned entry different for service requests and incidents
Hi I've noticed something recently when using/implementing service manager that the record assignment formats are different depending on if you are assigning an incident or service request. For example when assigning an incident the record assignment