Dynamically change the XML source of a report
I have seen that it is possible to assign an URL as the source for an XML source. But, how could I change this URL dynamically at run time? is it possible to add parameters to the url in the form of:
http://myserver/myapp/myjsp.jsp?myparameter=[some dynamic value}
so that calling the report will let me assign a value to the parameter?
Or at least, is there a way to send the URL the Report will use upon report invocation?
Thanks,
Fedro
Fedro,
The naswer is the same as you previous question:
Report using an XML Source
But if you want to create a complete URL be sure that you have a valid default value for the parameter.
Regards
Tugdual
Similar Messages
-
Can we change the XML source of the form bulider ?
Hi,
I have one doubt in the XMLfrombuilder. in Renderlist form.when we give "Link to xml source " in the hyperlink property it will show the xml source code.
is there any possibility to change and save the source code so that the changes should reflect to the form.
Thanks ,
Rajeev.Hi,
you can write styles direct to the element:
<td height="10%" valign="top" style="padding:0px;margin:0px;border-left-color:#000000;border-left-width:1px;border-left-style:solid;font-size:1px" width="0%" rowspan="1" colspan="1"> </td>
or format elements with style from css:
<a tabindex="0" class="urLnkDragRelate urTxtStd">
Did you mean that with style use?
In our project we created forms with some of these properties. E.g. we use under System the property Modified By.
Regards,
René -
Prevent changing the xml source
Hi,
we are developing Interactive Forms with WebDynpro for use in an Internet portal. I understand from another post that the LiveCycle Policy Server is not supported in the current SAP environment. From a security perspective, we would like to make sure the xml source of a pdf is not changed before it is sent to the ADS server. Currently it is possible to save a pdf locally, change the file with designer and upload it back to the server (the upload function is a business requirement).
Is is possible to protect the source in this scenario? Alternatively we would like to prevent javascripts to be executed server-side (ADS). Is it possible to prevent this?
Software: SAP EP 6.0 SP 15, LiveCycle Designer 7.0
Thanks for your input,
Marijn.For starters your xsd is missing the Root element.
Here's an xsd that I created from your xml that validates
<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///D:/Projects/Test/test.xsd">
<Customer xmlns="CustomerXSDSchema">
<CustomerName>Microsoft</CustomerName>
<CustomerNumber>1</CustomerNumber>
<CustomerCountry>USA</CustomerCountry>
</Customer>
</Root> -
Dynamically changing the layout of thre report-urgent please
Can we change the layout of the report dynamically during runtime for example:the user should have flexibility to change the width, size , position of columns before the report is displayed & also he choose some fields not to display as per his discretion.
MaheshThere are several ways of doing this, it really depends on your requirements as to which is suitable. (There are probably other ways of doing this as well).
- Try Reports XML Customizations
This is available in 6i and allows you to create a report dynamically on the fly. The template used will also allow you to change the paper size as well. The main limitation is that you are relying only on Reports defaulting to create the layout for you. The advantage is that you can store all your information to create the report in meta-data which can be driven by another tool.
- Use lexical parameters for queries and format triggers
Here, you have a fixed layout but dynamically change the query columns to the correct order. You would normally standardise on a "character" column type in order to do this. Even though the layout is fixed, you can use variable sized fields to push objects around. This can be difficult to setup.
- Use several layouts
You're reducing the options for the user, but you can have several layouts in the same report and turn them on/off. Effectively creating differing views of the same data. -
Trying to change the data source for a Crystal Report.
<p>The method below represents my best attempt to programatically change the data source of a Crystal Report. The goal is to have a routine that will update the data source for reports after they have been distributed to production servers. So far I have not been successful in saving the report back to the CMS. No exceptions are thrown, but when I view the Database Configuration of the report in the CMC nothing has changed.
</p>
<p>
Am I missing a step, or is there another way to accomplish this?
</p>
<p>
Thank you.
</p>
<hr />
<pre>
private void test(String reportName)
throws SDKException, ReportSDKException, java.io.IOException
IInfoObjects newInfoObjects;
IInfoObject reportObj;
ReportClientDocument clientDoc = new ReportClientDocument();
DatabaseController dc;
PropertyBag pBag;
PropertyBag logonProps;
ConnectionInfo newConInfo;
ConnectionInfo oldConInfo;
ConnectionInfos conInfos;
int connOptions = DBOptions._ignoreCurrentTableQualifiers + DBOptions._doNotVerifyDB; //0;
Fields connFields = null;
String queryStr = "Select * From CI_INFOOBJECTS " +
"Where SI_NAME='wfr.rpt' AND SI_KIND='CrystalReport' AND SI_INSTANCE=0";
newInfoObjects = getCms().executeQuery(queryStr);
if(newInfoObjects.size() > 0)
reportObj = (IInfoObject)newInfoObjects.get(0);
try
clientDoc = getCms().getReportAppFactory().openDocument(
reportObj
, OpenReportOptions._refreshRepositoryObjects
, java.util.Locale.US);
dc = clientDoc.getDatabaseController();
conInfos = dc.getConnectionInfos(null);
for(int i = 0; i < conInfos.size(); ++i)
oldConInfo = (ConnectionInfo)conInfos.getConnectionInfo(i);
newConInfo = (ConnectionInfo)oldConInfo.clone(true);
pBag = newConInfo.getAttributes();
pBag.putStringValue("QE_ServerDescription", "alio");
logonProps = new PropertyBag();
logonProps.putStringValue("Trusted_Connection", "false");
logonProps.putStringValue("Server", "alio");
pBag.put("QE_LogonProperties", logonProps);
newConInfo.setUserName("admin");
newConInfo.setPassword("password");
dc.replaceConnection(
oldConInfo
, newConInfo
, connFields
, connOptions);
catch(ReportSDKServerException Ex)
String msg = "A server error occured while processing the " + reportObj.getKind()
+ " object, " + reportObj.getTitle() + " (" + reportObj.getCUID() + "), from the CMS.";
Utility.errorOut(msg, Ex);
catch(Exception Ex)
String msg = "An error occured while processing the " + reportObj.getKind()
+ " object, " + reportObj.getTitle() + " (" + reportObj.getCUID() + "), from the CMS.";
Utility.errorOut(msg, Ex);
finally
clientDoc.save();
getCms().commitToInfoStore(newInfoObjects);
clientDoc.close();
</pre>
Edited by: Mark Young on Sep 10, 2009 2:16 PM<style type="text/css">
/<![CDATA[/
body
font-size: 1.125em;
font-family: helvetica,arial,"sans-serif";
.code{font-family: "courier new",courier,mono,monospace}
.bi{font-style: italic; font-weight: bold;}
/]]>/
</style>
<p>Justin,</p>
<p>
Thank you for the reply. Time constraints have not allowed me to post back to this tread
till now. I will try your suggestion. My assumption is that <i>Save the report back to the
info store</i> refers to <span class="code">IInfoStore.commit(IInfoObjects)</span>.
</p>
<p>
I'm afraid that I do not understand why I don't want to change the report client document,
or why <i>successfully exporting the report with the new login/password</i> is not what I
want to do. Any explanation on that statement would be appreciated.
</p>
<p>
I did find a way to accomplish my goal. It involved adding the SSOKEY property to the
logon property bag. Below you'll see my revised code which modifies the report logon and
server. I have no idea what
this does, and SAP support has not been able to tell me why it works. However, what I
discovered is that if I changed the report option, <b>Database Configuration -> When
viewing report:</b>, in the CMS to <span class="bi">Use same database logon as when report
is run</span> from <span class="bi">Prompt the user for database logon</span>, then the
SSOKEY property had been added to the logon property bag having an empty string as its
value. This allowed me to successfullyupdate and save the modified logon back to the CMS.
</p>
<p>
So I took a chance and added code to always add the SSOKEY property with an empty string
as its value, and I could then successfully modify and save the report's logon info
and server. Again, I don't know what this means, but it has worked so far. If anyone has
some insight or comments, either are welcome. Thank you in advance.
</p>
<br />
<hr />
<pre>
private void changeDataSourceOfAWFCrystalReports()
throws SDKException, ReportSDKException, java.io.IOException
IInfoObjects newInfoObjects = null;
IInfoObject reportObj = null;
IReport curReport = null;
ReportClientDocument clientDoc = new ReportClientDocument();
DatabaseController dbController;
PropertyBag pBag;
PropertyBag logonProps;
ConnectionInfo newConInfo;
ConnectionInfo oldConInfo;
ConnectionInfos conInfos;
int connOptions = DBOptions._ignoreCurrentTableQualifiers + DBOptions._doNotVerifyDB;
Fields connFields = null;
String outputStr;
int numOfReports;
int numOfQueryPages;
double progressIncrementPerPage = 30;
int progressIncrementPerReport = 0;
// Path query to reports is in a .properties file.
String queryStr = getAppSettingsFile().getWscAwfCrystalReportPathQuery();
try
// Executes IInfoStore.getPageingQuery() and generates a list of queries.
getCms().setPathQueryQueries(queryStr, 100);
numOfQueryPages = 0;
// Gets a List<String> of the IPageResult returned from IInfoStore.getPageingQuery().
if(getCms().getPathQueryQueries() != null)
numOfQueryPages = getCms().getPathQueryQueries().size();
if(numOfQueryPages > 0)
// Use 30% of progress bar for the following loop.
progressIncrementPerPage = Math.floor(30.0/(double)numOfQueryPages);
for(int queryPageIndex = 0; queryPageIndex < numOfQueryPages; ++queryPageIndex)
// Gets the IInfoObjects returned from the current page query
newInfoObjects = getCms().getPathQueryResultSetPage(queryPageIndex);
numOfReports = newInfoObjects.size();
if(newInfoObjects != null && numOfReports > 0)
progressIncrementPerReport =
Math.round((float)Math.floor(progressIncrementPerPage/(double)numOfReports));
for(int reportIndex = 0; reportIndex < numOfReports; ++reportIndex)
reportObj = (IInfoObject)newInfoObjects.get(reportIndex);
curReport = (IReport)reportObj;
clientDoc = getCms().getReportAppFactory().openDocument(
reportObj
, OpenReportOptions._refreshRepositoryObjects
, java.util.Locale.US);
dbController = clientDoc.getDatabaseController();
conInfos = dbController.getConnectionInfos(null);
for(int conInfosIndex = 0; conInfosIndex < conInfos.size(); ++conInfosIndex)
oldConInfo = (ConnectionInfo)conInfos.getConnectionInfo(conInfosIndex);
newConInfo = (ConnectionInfo)oldConInfo.clone(true);
pBag = newConInfo.getAttributes();
pBag.putStringValue(
"QE_ServerDescription"
,getConfigFile().getDBDataSourceConnections());
logonProps = new PropertyBag();
logonProps.putStringValue("Trusted_Connection", "false");
<b>logonProps.putStringValue("SSOKEY", "");</b>
logonProps.putStringValue(
"Server"
,getConfigFile().getDBDataSourceConnections());
pBag.put("QE_LogonProperties", logonProps);
newConInfo.setUserName(getConfigFile().getUNVConnectionUserName());
newConInfo.setPassword(getConfigFile().getUNVConnectionPasswordDecrypted());
dbController.replaceConnection(
oldConInfo
, newConInfo
, connFields
, connOptions);
newConInfo = (ConnectionInfo)conInfos.getConnectionInfo(conInfosIndex);
} // end for on conInfosIndex
clientDoc.save();
} // end for on reportIndex
} // end if on newInfoObjects
} // end for on queryPageIndex
} // end try
catch(ReportSDKServerException Ex)
// handle...
catch(Exception Ex)
// handle...
finally
getCms().commitToInfoStore(newInfoObjects);
if(clientDoc != null)
clientDoc.close();
</pre> -
Dynamically change the Priority Group of Logical Table Sources in OBIEE 11g
Hi All,
I have 2 Logical Table Sources(LTS 1 and LTS 2 for a Logical Table in BMM Layer).
Example: Logical Table : Sample
LTS Source 1 : Sample 1(Priority Group Set to 1)
LTS Source 2 : Sample 2(Priority Group Set to 0)
I have set the Priority Group of Sample 1 LTS Source to 1 and Priority Group of Sample 2 LTS Source to 0.
I need to dynamically change the Priority Group of Sample 1 LTS Source to 0 if my role is DEVELOPER where role is a column in database.
If my role is not equal to DEVELOPER then the Priority Group of Sample 1 LTS Source will remain same(1).
Please suggest how can i achieve this.
Thanks,
Soukath Alihello Soukath Ali,
didi you find a way to dinamically changing Priority Group?
thanks,
Maria Teresa Marchetti -
Dynamically changing the report path
Is there any way to dynamically change the path where the reports are saved. Teststand 4.1.1
Message Edited by glennjammin on 04-21-2010 03:30 PM
Test Engineer
L-3 Communications
Solved!
Go to Solution.Yes you can run a VI in the ReportOptions Sequence, add it to the Setup of that sequence. If you dont use FileGlobals.Dated anywhere else then use a Local instead. Just remeber FileGlobals are only global to sequences that are contained in a SequenceFile. They are not global across SequenceFile unless you are using the Batch Process Model.
You will probably have to set a number of other parameters up to work with ReportOptions.Directory. The best way to handle this is to setup up you exact conditions statically (ie via the Config | Report Options... menu ). Place a breakpoint in the ReportOptions (use a label if you dont have any steps in the ReportOptions sequence at the moment) and run your Sequence. Remeber to use Test UUTs or Single Pass. You dont have to use your full test sequence just create a simple one step sequence.
When you reach the break point, then you can browse the Parameters.ReportOptions and see what properties are required to ensure your reports are setup correctly.
Hope this helps.
Regards
Ray Farmer
Regards
Ray Farmer -
How to dynamically change the text of a TextObject with embedded DataField?
Hi
I'm trying to dynamically change the text of a TextObject at runtime, by using the .NET library. My problem is that if one or more DatabaseFieldDefinition is embedded inside my text, I'm unable to change the "static text" only, by keeping the field, e.g. I have :
Text1 => "Contact Name: {Contact.Name}"
and I'd like to change it to anything else like:
Text1 => "Nom du Contact: {Contact.Name}"
Half of my TextObject is static text while second part comes from the dataset.
(of course the translation is dynamic - it is called at run-time and the new value to be set depends on the calling application language)
If I simply modify the Text property of my TextObject, the {Contact.Name} embedded field is not evaluated anymore by the Crystal Engine, but considered as a single text.
Using formulas or parameters looks quite difficult, because it means having many ones just for translation needs - I cannot control the way my users will create their reports and "force them" to use complex methods just in order to put a text and a value together...
Anyone knows how to deal with that ?Only way I can think of doing this:
1) Create a formula (call it lang) and enter the string "Contact Name" in it
2) Place the {Contact.Name} field next to the string
3) So now you have:
ContactName: {Contact.Name}
4) Check what localization you are after. If you need "Nom du Contact", change the lang formula so it shows "Nom du Contact" using the code below:
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class Form1
Inherits System.Windows.Forms.Form
Dim Report As New CrystalReport1()
Dim FormulaFields As FormulaFieldDefinitions
Dim FormulaField As FormulaFieldDefinition
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
FormulaFields = Report.DataDefinition.FormulaFields
FormulaField = FormulaFields.Item(0)
FormulaField.Text = "[formula text]"
CrystalReportViewer1.ReportSource = Report
End Sub
I realize this may not give you consistent spacing as the translations may have strings of differnt length. Perhaps someone has other idea(s)... -
Can we change the Data source in AO ?
Hi Folks,
Environment: SAP HANA on AO
I have the following scenario , Am creating a report on one Calculation View: CV and have done some analysis where I have pulled in some dimensions and kept some background filters.
Now I have to generate the same report on another Calculation View: CV2 ( Similar to structure of CV ) and compare the reports. Is there any way to edit copy the previous report and change the data source? Can you guide me on that?
Regards,
Krishna TanguduHi,
You can exchange the calc view by clicking on the button next to the data source name in the tab "components", but when you do this, the new data source will overwrite the settings and filters from the previous data source. So no, there is not a supported way of exchanging the datasource and keeping the filters of the previous data source.
Best regards,
Victor -
Changing the Data source in Business Objects XI
Hi,
Is it possible to change the data source(not universe) in runtime to generate business objects reports. I am using BOXI 3.1.
Below is the code I am using to change the universe in runtime. I would like to change this so that i can change the data source instead of changing the universe. My intention is to generate report from multipple database using same universe. Right now I am using multipple universes connected to multiple datasources to achieve this. I am using Report Engine SDK(Java).
if("Webi".equals(mDocKind))
// Added for multiple database support
DataProviders dataProvs = documentInstance.getDataProviders();
try{
//To support multiple queries in BO reports
for(int count=0;count<dataProvs.getCount(); count++){
DataProvider dp=dataProvs.getItem(count);
DataSource ds= dp.getDataSource();
infoUniverseObjects = getUniverseObject(infoStore,NewUniverseName);
infoUniverseObject = (IInfoObject)infoUniverseObjects.get(0);
String newDsCuid = infoUniverseObject.getCUID();
dataProvs.changeDataSource(ds.getID(), "UnivCUID=" + newDsCuid, true);
if(dataProvs.mustFillChangeDataSourceMapping())
// Re-map data source to target Universe objects
ChangeDataSourceMapping mapping = dataProvs.getChangeDataSourceMapping();
ChangeDataSourceObjectMapping[] maps = mapping.getAllMappings();
dataProvs.setChangeDataSourceMapping();
}//for dataProvs.getCount()
}catch(Exception e)
mLogger.info("BOReportObject","createReport","Inside multiple data providers loop"+e.getMessage());
Thanks in advance
Shameer
Edited by: Shameertaj on May 20, 2009 3:08 AMHi Shameer,
I think this is only possible with the Universe Designer SDK (which is only available in COM).
Please kindly refer to the API reference for the Universe Designer SDK for more details:
http://help.sap.com/businessobject/product_guides/boexir31/en/bodessdk.chm
Also, please note that changing the universe connection when viewing a document on-demand is not recommended because this could lead to possible issues.
For example:
Two users trying to view documents that uses the same universe at approximately the same time.
But user A wants to use connection X and user B wants to use connection Y.
This could lead to an error while openning the document or while refreshing/retrieving the the data.
Hope this helps.
Regards,
Dan -
Dynamically changing the flatfile name..
Hi friends,
I 'm Getting data from 30 Flat files...all are with same structure but different data.. .. all these files are now in Application server...
now i want to upload data into with a single DataSource and to ODS with process chains..
so, how can i dynamically change the file name in Data Source level.. i saw previous threads.. in that.. through Routines.. we can solve this problem.. but I dont know ABAP code... so, can any one plz give me the exact code.. what i have to write...exact coding..
<b>
I already post this question in forums.... but evry one gave different options.. some one gave the function module..
BAPI_IPACK_CHANGE and BAPI_IPACK_START.
and some one gave other function module.. like .. EPS_GET_DIRECTORY_LISTING
i tryd for All these options.. but i'm not getting the exact solution... even i'm unable to pass the parameters also.. beacuse.. in that function what parameters can i pass....</b>
can u plz suggest me the solution..
Thanks
BabuHi Friends,
for the above requirement i had write the bellow coding in the routine.. it is working.. but the problem is.. it was loading only the last file..(30 th file data only..)
data : z1(50) type c,
z2 type c,
z3(50) type c,
z4(50) type c.
Z2 = 1.
Do 5 times.
z1 = 'C:\Documents and Settings\e10035\Desktop\'.
z3 = '.csv'.
concatenate z1 z2 z3 into z4.
p_filename = z4.
z2 = z2 + 1.
Enddo.
SO, CAN YOU PLZ SUGGEST ME.. when ever the file name was changing in the loop.. that automatically should load into the PSA ..
plz... plz.... help regarding this..
Bbau -
Alle experts:
In ALV layout report, how to dynamic change the layout int ABAP porgram?
e.g. I have save 5 layout, I need to change them base the my selection in ABAP program? How to do this?
Thanks in advance!Try to call fieldcatlog dymnamically. Refer tofollowing code. Reward if helpful.
REPORT zfir0001 MESSAGE-ID ztax.
Tables
TABLES : glt0, t001, skat.
Internal Tables
DATA: BEGIN OF itab OCCURS 0,
racct LIKE glt0-racct, "Account number
txt20 LIKE skat-txt20, "G/L account short text
co_1000 LIKE glt0-hslvt, "Balance carried forward for company code 1000
co_1100 LIKE glt0-hslvt, "Balance carried forward for company code 1100
co_1200 LIKE glt0-hslvt, "Balance carried forward for company code 1200
DATA : BEGIN OF itab1 OCCURS 0,
bukrs LIKE glt0-bukrs,
waers LIKE t001-waers,
END OF itab1.
DATA : BEGIN OF it_itab1 OCCURS 0.
INCLUDE STRUCTURE glt0.
DATA : END OF it_itab1.
Data Declarations
DATA : w_total LIKE glt0-hslvt,
w_count LIKE glt0-bukrs,
w_flg TYPE c,
lv_count TYPE i.
w_slash TYPE c VALUE ' '.
Selection screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE tit1.
SELECT-OPTIONS : s_bukrs FOR glt0-bukrs OBLIGATORY,
s_racct FOR glt0-racct OBLIGATORY,
s_ryear FOR glt0-ryear OBLIGATORY,
s_rldnr FOR glt0-rldnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION.
tit1 = 'Please select:'(004).
TYPE-POOLS: slis. "ALV Declarations
DATA: i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid.
********Geting the selected company code in table itab1****
START-OF-SELECTION.
IF NOT s_bukrs-high IS INITIAL.
itab1-bukrs = s_bukrs-low.
APPEND itab1.
w_count = s_bukrs-low.
DO.
IF s_bukrs-high = w_count.
EXIT.
ELSE.
w_count = w_count + 1.
ENDIF.
SELECT SINGLE * FROM t001
WHERE bukrs = w_count.
IF sy-subrc = 0.
itab1-bukrs = w_count.
APPEND itab1.
CLEAR itab1.
ENDIF.
ENDDO.
ELSE.
itab1-bukrs = s_bukrs-low.
APPEND itab1.
ENDIF.
SELECT * FROM glt0 INTO CORRESPONDING FIELDS OF TABLE it_itab1
WHERE rldnr IN s_rldnr
AND bukrs IN s_bukrs
AND ryear IN s_ryear
AND racct IN s_racct.
SORT it_itab1 BY bukrs.
LOOP AT it_itab1.
AT END OF racct.
w_flg = 'X'.
ENDAT.
SELECT SINGLE txt20 INTO (itab-txt20) FROM skat
WHERE spras = sy-langu
AND saknr = it_itab1-racct.
PACK it_itab1-racct TO it_itab1-racct.
itab-racct = it_itab1-racct.
w_total = it_itab1-hsl01 + it_itab1-hsl02 + it_itab1-hsl03 + it_itab1-hsl04 +
it_itab1-hsl05 + it_itab1-hsl06 + it_itab1-hsl07 + it_itab1-hsl08 +
it_itab1-hsl09 + it_itab1-hsl10 + it_itab1-hsl11 + it_itab1-hsl12 +
w_total + it_itab1-hslvt.
IF w_flg = 'X'.
READ TABLE itab1 WITH KEY bukrs = it_itab1-bukrs.
IF sy-subrc = 0.
SELECT SINGLE * FROM t001
WHERE bukrs = itab1-bukrs.
IF t001-waers = 'JPY' OR
t001-waers = 'HUF'.
w_total = w_total * 100.
ENDIF.
CASE it_itab1-bukrs.
WHEN '1000'.
itab-co_1000 = w_total.
WHEN '1100'.
itab-co_1100 = w_total.
WHEN '1200'.
itab-co_1200 = w_total.
ENDCASE.
COLLECT itab.
CLEAR: itab, w_flg, w_total.
ENDIF.
ENDIF.
ENDLOOP.
SORT itab BY racct.
IF NOT itab[] IS INITIAL.
PERFORM field_cat1.
lv_count = 1.
LOOP AT itab1.
PERFORM field_cat USING itab1-bukrs.
ENDLOOP.
PERFORM display_alv_report .
ELSE.
MESSAGE s000 WITH 'No records Found'(003).
ENDIF.
*& Form display_alv_report
text
FORM display_alv_report .
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
is_layout = gd_layout
it_fieldcat = i_fieldcat[]
i_save = 'X'
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "display_alv_report
*& Form field_cat1
text
FORM field_cat1 .
i_fieldcat-col_pos = 0.
i_fieldcat-fieldname = 'RACCT'.
i_fieldcat-seltext_m = 'Account'(001).
i_fieldcat-fix_column = 'X'.
i_fieldcat-emphasize = 'X'.
APPEND i_fieldcat TO i_fieldcat.
CLEAR i_fieldcat.
i_fieldcat-col_pos = 1.
i_fieldcat-fieldname = 'TXT20'.
i_fieldcat-seltext_m = 'Description'(002).
APPEND i_fieldcat TO i_fieldcat.
CLEAR i_fieldcat.
ENDFORM. "field_cat1
*& Form field_cat
text
-->XV_BURKS text
FORM field_cat USING xv_burks TYPE char4.
lv_count = lv_count + 1.
i_fieldcat-col_pos = lv_count.
CONCATENATE 'CO_' xv_burks INTO i_fieldcat-fieldname.
i_fieldcat-seltext_m = xv_burks.
i_fieldcat-just = 'C'.
i_fieldcat-no_zero = 'X'.
i_fieldcat-do_sum = 'X'.
APPEND i_fieldcat TO i_fieldcat.
CLEAR i_fieldcat.
ENDFORM. "field_cat
Edited by: dhanashree wadkar on Apr 30, 2008 6:00 AM -
OBIEE 10g AGO Function Dynamically Change the Heading
I created columns in my rpd named Sales Previous Month, Sales 2 months ago and Sales 3 months ago using the AGO Function. This is working fine.
My problem is when displaying these headings the users would like to see the Month Name instead of the Headings I created. For example if looking at a report for January the users would like to see:
Sales Previous Month = December
Sales 2 Months ago = November
Sales 3 Months ago = October
Is there any way to dynamically change the value of the column header to show the name of the month?Hi SriniVEERAVALLI,
Thanks for the reply. I have found that I might haven't created the relationship between dimension and fact tables correctly.
I initially created the foreign key relationship (instead of creating complex join) in physical diagram between the dimension and fact table. And the relationship type is hence greyed out.
I have deleted the foreign key relationship in physical diagram. Then
1. In physical diagram, create complex join between dimension and fact . The relationship is 'inner' and can't be changed.
2. In Logical table diagram, create foreign key between dimension and fact . The relationship can be changed (inner, outer, etc).
Is this the correct way?
I tried these on two newly created dummy tables and it worked. -
Dynamically change the binding of a field
Hi,
I've been looking all over the internet for 2 days to find the answer to my question, but I couldn't get any information on my problem. Here's what i'm trying to do :
Based on a checkbox in my form, I want to export or I don't want to export a field to a XML document.
My checkbox is working properly and I got the Send button with the XML working too. I only need to find a way to dynamically change the binding property of my field. I've read some informations with the ".bind.match", but I can't seem to make it work.
I'm using Windows XP, LiveCycle Designer ES2 v.9.0 and I have to run the form in Reader 8.0.
Thanks alot for your help, it's greatly appreciated.
JonathanHi,
the binding cannot be changed at runtime.
You can use the checkbox to delete the value of the field so the exported xml contains an empty tag.
Or you try to delete the data node of the desired field in the data DOM (xfa.datasets). -
Changing the datasource of a Crystal Report to a Oracle DB using TNS
I have a problem trying to change the datasource of a crystal report. In the new connection I want to connect to a Oracle DB using TNS.
Without TNS it's finally working flawlessly with the following code:
private static void switch_tables(DatabaseController databaseController) throws ReportSDKException {
// Declare the new connection properties that report's datasource will be switched to.
final String DBUSERNAME = "user";
final String DBPASSWORD = "secret";
final String SERVERNAME = "jdbc:oracle:thin:@1.1.1.1:mysid";
final String URI = "!oracle.jdbc.OracleDriver!jdbc:oracle:thin:{userid}/{password}@1.1.1.1:mysid";
final String DATABASE_NAME = "mysid";
final String DATABASE_DLL = "crdb_jdbc.dll";
final String SCHEMA_NAME = "SCHEMA.";
// Obtain collection of tables from this database controller.
Tables tables = databaseController.getDatabase().getTables();
// Set the datasource for all main report tables.
for (int i = 0; i < tables.size(); i++) {
ITable table = tables.getTable(i);
// Keep existing name and alias.
table.setName(table.getName());
table.setAlias(table.getAlias());
// Change properties that are different from the original datasource.
table.setQualifiedName(SCHEMA_NAME + table.getName());
// Change connection information properties.
IConnectionInfo connectionInfo = table.getConnectionInfo();
// Set new table connection property attributes.
PropertyBag propertyBag = new PropertyBag();
propertyBag.put("Trusted_Connection", "false");
propertyBag.put("Server Name", SERVERNAME); //Optional property.
propertyBag.put("Connection String", URI);
propertyBag.put("Database Name", DATABASE_NAME);
propertyBag.put("Server Type", "JDBC (JNDI)");
propertyBag.put("URI", URI);
propertyBag.put("Use JDBC", "true");
propertyBag.put("Database DLL", DATABASE_DLL);
connectionInfo.setAttributes(propertyBag);
// Set database username and password.
// NOTE: Even if these the username and password properties don't change when switching databases, the
// database password is not saved in the report and must be set at runtime if the database is secured.
connectionInfo.setUserName(DBUSERNAME);
connectionInfo.setPassword(DBPASSWORD);
connectionInfo.setKind(ConnectionInfoKind.SQL);
table.setConnectionInfo(connectionInfo);
// Update old table in the report with the new table.
databaseController.setTableLocation(table, tables.getTable(i));
I just call this method with the DatabaseController from a ReportClientDocument instance.
How do I need to change the connectionInfo to do the connection using TNS?Please re-post if this is still an issue but first update to CR4E 2 and retest
Maybe you are looking for
-
Can anyone who has this installed confirm if there is a huge improvement from Acrobat 8 when saving/Exporting as Word for editing? We have tried many tools but trying to edit a Word file converted from PDF isn't really easy based on most of the conve
-
How can I get the Firefox browser to work with my high speed internet?
After switching from dial-up to high speed internet, I can no longer open the Firefox browser (which I was using) even after downloading the latest version. It is set for my default, but I can only use IE to browse. What else do I need to do to make
-
Use plan from stored_outlines from query with different syntax?
Hello, I'd like to know is there any ability to use via stored_outlines plan from query with different syntax? Database version - 11.1.06 If yes, maybe you'll take a look at steps (based on Metalink 726802.1), what I tried to do to make it work (with
-
What are the SAP inbox tables.
Hi Team i want to know what are the SAP inbox tables. if i have click on SAP inbox for perticular user, retrived 37000 entries and give short dump "Time Out" . i want to know from which table retrived the records and display into the SAP inbox(SBWP).
-
Hi all, I have a program that use the Runtime to call external program (.exe) which will generate a new File inside a specified folder. After the generation, I'm trying to get the file using the method exists() from class file but it will always retu