How to create segments programatically?
Hi Folks,
Anyone has any idea on how to create fatwire segments programmatically?
Is there any fatwire tags or asset API methods are available for it?
Thanks
Segments are basic asset types. Creating a segment should be equivalent to creating a basic asset.
Have you tried with the usual asset:create, asset:set and asset:save tags?
-Regards,
DFy
Similar Messages
-
Can anyone explain how to create lov programatically?
Hi to all,
Can anyone explain to me how to create lov programatically?.
Actually i created a region and items usig code and i want to know how to create lov and mapping also.
Suppose anyone knows plz let me know. its urgent one.
Thanks in Advance.
by
senthurHi,
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
super.processRequest(pageContext, webBean); OAMessageLovInputBean lovInput =
(OAMessageLovInputBean)createWebBean(pageContext, LOV_TEXT, null,"inputTest");
webBean.addIndexedChild(lovInput);
// Specify the path to the base page.
lovInput.setAttributeValue(REGION_CODE, "/oracle/apps/dem/webui/Basic");
// Specify the application id of the base page.
lovInput.setAttributeValue(REGION_APPLICATION_ID, new Integer(20001));
// Specify the LOV region definition.
lovInput.setLovRegion("/oracle/apps/fnd/framework/toolbox/tutorial/webui/EmployeesLovRN", 0);
// Validation should be enabled for LOVs unless it's essential for the field to allow a partial value (in a "Search" region, for example).
lovInput.setUnvalidated(false);
// Configure the LOV mappings.
// Note that you must call this method after you add the messageLovInput item
// to the web bean hierarchy.
lovInput.addLovRelations(pageContext, "inputTest", // base page item
"Empname", // lov item
LOV_RESULT, // direction
LOV_REQUIRED_NO);
lovInput.addLovRelations(pageContext, "inputTest", // base page item
"Empname", // lov item
LOV_CRITERIA, // direction
LOV_REQUIRED_NO);
Read more in Dev Guide. Chapter List of Values & Search forums.
Thanks
--Anil -
How can create SEGMENTS and IDOC TYPE in BADI in ECC 6.0 version
Hi All,
Can any one help, how to create SEGMENTS and IDOC TYPE in BADI in ECC 6.0 version.This is my task.
Given BADI name was----VENDOR_ADD_DATA_BI .
ThanksAnil,
look at this thread ..may be this helps you.
Re: 824 IDOC and BADI/User Exit
sateesh. -
Hi Experts,
XML file contains multiple sales orders (not sorted) where each sales orders can contain 1 to many Items and in turn each item contains 1 to many charachteristics and should be mapped to Idoc ORDERS.ORDERS05.
Number of Idoc's to be generated depends on number of unique V_IN_ORDERNUM and number of items i.e. E1EDP01 depends on unique RIGANUM for a sales order.
my question is how to create the the number of items i,e E1EDP01 segment based on the unique RIGANUM for a sales orderHello,
my question is how to create the the number of items i,e E1EDP01 segment based on the unique RIGANUM for a sales order
Logic should be similar to this:
RIGANUM -> removeContext -> sort: ascending lexicographical -> splitByValue:valueChanged -> collapseContext -> E1EDP01
Hope this helps,
Mark -
Hi experts,
I am getting XML file in that one field is there that is RIGENO. Based on unique field value i need to create E1EDK03 segment in the under the idoc i tried with the logic
RIGENO---->removecontext>splitvalue--
>idoc
i am getting unexpected result for this case.Please tell me it correct or not if it is not please give me the logic for that.Hi chandramohanreddys
You should use that rule for E1EDK03 segment, not for IDOC node.
Regards,
Giuseppe -
How to Create OAViewObject programatically
I need Create OAViewObject from SQL string. I found, that is possible with OAViewDef, but in OAViewDef i must create AttributeDefs with parameters like sqltype, colname .. but i don't know this, my definition is select string only. I must manually parse SQL string for obtain this informations ? ... please help me ...
this is my stack .. i haven't any suggestion where i can look for error ...
Error Page
Exception Details.
oracle.apps.fnd.framework.OAException: java.lang.ClassCastException at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:888) at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1145) at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1408) at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2344) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1711) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418) at OA.jspService(OA.jsp:40) at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803) at java.lang.Thread.run(Thread.java:534) ## Detail 0 ## java.lang.ClassCastException at oracle.apps.fnd.framework.webui.OAPageBean.createAndAddHiddenPKFields(OAPageBean.java:5546) at oracle.apps.fnd.framework.webui.OATableHelper.prepareForRendering(OATableHelper.java:430) at oracle.apps.fnd.framework.webui.beans.table.OATableBean.prepareForRendering(OATableBean.java:1215) at oracle.apps.fnd.framework.webui.OAWebBeanTableHelper.processRequestAfterController(OAWebBeanTableHelper.java:199) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:639) at oracle.apps.fnd.framework.webui.OAWebBeanTableHelper.processRequest(OAWebBeanTableHelper.java:2084) at oracle.apps.fnd.framework.webui.beans.table.OATableBean.processRequest(OATableBean.java:1030) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:932) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:899) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:640) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247) at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1095) at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:932) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:899) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:640) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247) at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:932) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:899) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:640) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247) at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353) at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2298) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1711) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418) at OA.jspService(OA.jsp:40) at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803) at java.lang.Thread.run(Thread.java:534) java.lang.ClassCastException at oracle.apps.fnd.framework.webui.OAPageBean.createAndAddHiddenPKFields(OAPageBean.java:5546) at oracle.apps.fnd.framework.webui.OATableHelper.prepareForRendering(OATableHelper.java:430) at oracle.apps.fnd.framework.webui.beans.table.OATableBean.prepareForRendering(OATableBean.java:1215) at oracle.apps.fnd.framework.webui.OAWebBeanTableHelper.processRequestAfterController(OAWebBeanTableHelper.java:199) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:639) at oracle.apps.fnd.framework.webui.OAWebBeanTableHelper.processRequest(OAWebBeanTableHelper.java:2084) at oracle.apps.fnd.framework.webui.beans.table.OATableBean.processRequest(OATableBean.java:1030) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:932) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:899) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:640) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247) at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1095) at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:932) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:899) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:640) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247) at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:932) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:899) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:640) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247) at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353) at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2298) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1711) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418) at OA.jspService(OA.jsp:40) at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803) at java.lang.Thread.run(Thread.java:534) -
IDOC: How to create child segment with abap code.
Hi,
I'am trying to write an abap code to create segments for an Idoc which structure is the following:
ZLE_00060_DLVY
> E1EDL20
> Z1DEL_CONS
>Z1DEL_MAT_HEADER
> Z1DEL_MAT
> E1EDL20RET2
> E1EDL22
> E1EDL21
> E1EDL23
> E1EDL51
I receive a sintax error: Error in IDoc with status 26 .
Checking the result I note all segment at the same level and an error about the segment E1EDL22
EDI: Syntax error in IDoc (segment cannot be identified)
Message no. E0078
Diagnosis
The segment E1EDL22 does not occur at the current level of the basic
type DELVRY05 (extension ZLE_00060_DLVY).
This error can have several reasons:
o The segment E1EDL22 is assigned to a group whose header segment does
not occur.
o The segment E1EDL22 does not exist in the syntax description of the
basic type DELVRY05 (extension ZLE_00060_DLVY).
o The sequence of segments in the group in which the segment appears
is incorrect.
Previous errors ('mandatory' segment or group missing) may be due to
this error.
Procedure
Please check the IDoc or the syntax description of the basic type
DELVRY05 (extension ZLE_00060_DLVY).
After the error I have:
data records
E1EDL20
Z1DEL_CONS
Z1DEL_MAT_HEADER
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
E1EDL20RET2
E1EDL22
E1EDL21
Abap code:
idoc_data-segnam = 'Z1DEL_CONS'.
idoc_data-sdata = s_z1del_cons.
append idoc_data.
idoc_data-segnam = 'Z1DEL_MAT_HEADER'.
s_z1del_mat_header-tsegment = 'MATERIAL'.
idoc_data-sdata = s_z1del_mat_header.
append idoc_data.
clear idoc_data-sdata. <<<<<<<<<<< how to indent the structure because this is a child.
idoc_data-sdata = s_Z1DEL_MAT.
idoc_data-segnam = 'Z1DEL_MAT'.
append idoc_data.
idoc_data-segnam = 'E1EDL20RET2'.
idoc_data-sdata = s_E1EDL20RET2.
append idoc_data.
clear idoc_data.
idoc_data-segnam = 'E1EDL22'.
idoc_data-sdata = s_e1edl22.
append idoc_data.
clear idoc_data.
idoc_data-segnam = 'E1EDL21'.
idoc_data-sdata = s_e1edl21.
append idoc_data.
Any help will be well appreciated.
Thanks in advance.
Regards,
GiovanniHi,
following in debugging mode the abap code of the INCLUDE ZXTRKU02 where is defined the TABLES IDOC_DATA STRUCTURE EDIDD, I find that all field of the table IDOC_DATA are not set. More exactly my expectation is to find values for SEGNUM, HLEVEL, PSGNUM.
In a few words I need to execute an enhancement, via abap code, of the struscure of the idoc before sending it out since I have a requirement to test this enhancement in my XI environment, receiving as input this ideoc modified.
Then, I need to add a new segment and one child.
Any suggestion will be well appreciated.
Thanks in advance.
Regards,
Giovanni -
How to create multiple segments on the target structure of an IDOC
Hi All
I am working on the Shipment Confirmation Interface( Message Type SHPCON ) which is FILE to IDOC Scenario. I have a segment called E1EDL18 which occurs only once on the target side of the idoc. Now I have to created multiple E1EDl18 segments for the Qualifiers ORI, PGI and PCK. I treid to send a constant ORI,PGI,PCK and then used an user defined function which splits the constant at COMMA and then I am assigning to the target field QUALF. In the display queue for QUALF I see three values with context but still only one E1EDL!* segment is created. Please let me know how to create multiple E1EDl18 segments for three qualifiers.
Thanks
NagaIn message Mapping, just right click on the segment and click on duplicate subtree. now it will create you another segment with same name and fields in it..
you can hard code the Qual, or you can map the required source field into it. -
How to create master group in Portal - Segment Builder?
Hi All,
May i know how to create master group by using existing target group in segment builder PCUI in portal?
I manage to do it in sapgui:
tc: crmd_mktseg_mgr -> create new master group -> assign existing target group -> execute button -> master group is created.
I tried in portal: click on segment builder tab -> search existing profile set -> open existing profile set -> click on target group tab -> mark one of target groups -> click on Master group button -> save changes -> go back to sapgui crmd_mktseg_mgr -> search for all the master groups -> i dun see result that i did in portal.
Can guide me on this?
Appreciated your guide. Thanks.
Regards,
wyeeHi All,
May i know how to create master group by using existing target group in segment builder PCUI in portal?
I manage to do it in sapgui:
tc: crmd_mktseg_mgr -> create new master group -> assign existing target group -> execute button -> master group is created.
I tried in portal: click on segment builder tab -> search existing profile set -> open existing profile set -> click on target group tab -> mark one of target groups -> click on Master group button -> save changes -> go back to sapgui crmd_mktseg_mgr -> search for all the master groups -> i dun see result that i did in portal.
Can guide me on this?
Appreciated your guide. Thanks.
Regards,
wyee -
How to create and configure JMSConnection Factory programatically?
Guys,
How to create and configure JMSConnection Factory programatically and (<b>NOT THRU CONSOLE</b>)?
There is an option using the JMSHepler to create the Queues.
Is there an option to create ConnectionFactories using the same or other classes?
anshukThere are no 8.1 "JMSHelper" extensions for creating conection factories (they've been added for 9.0). Instead, you can use a variety of more generic methods.
You can create configuration scripts using WLST or wlconfig or wlshell, or make direct calls from java into WebLogic's public JMX mbean APIs (all config tools, including the console, call into these APIs).
For a JMX example, see the implementation of the "JMSML" utility on dev2dev.bea.com. For WLST examples search for "+WLST +JMS".
Tom -
How to create datasource/connection pool programatically?
Hello,
We are developing a system that connects to multiple databases by dynamically switching datasources, using ADF 12.1.3. Application is deployed on weblogic and glassfish.
There is no problem on switching and working on multiple datasources which is created previously on the application server (weblogic/glassfish).
Now we need to create a datasource while system is running.
Is it possible to create datasource programatically, and list datasource previously created?
Jdeveloper/ADF: 12.1.3.
Thanks,
Ganbat Bayarbaatar.Dear Ashish,
Thank you for your response, but that is not what I was looking for.
I haven't any problem on changing datasources. I would like to create new datasource on application server.
On Andrejus's post, there is a comment about what I'm asking:
Syed : Nice Post. To enhace this more further. How can we get list of JDBC Data sources available in weblogic in the ADF Application.
Andrejus: By using WebLogic API this should be possible or by accessing MBean...
Is there any more-detailed blog post or doc, about "Weblogic API", "MBean" and using them to create datasource?
Thanks,
Ganbat. -
How to create stock in Make to order and make to stock segments?
Hi,
Could u please tell me how How to create stock in Make to order and make to stock segments?
Regards,
ASHi,
If you are processing production order, use tcode MB31with mvt type 101, system will create stock. This method is same for both make to order and make to stock scenarios.
For initial stock upload you can use 501 or 561 mvt for make to stock and for Make to order use same mvt typt with special indicator E.
Regards,
Dharma -
How to create citadel database and link it to an existing project library programatically?
hi,
does anyone knows how to create citadel database progarmatically and linking it with my project library programatically?
samriddh sarbalhi
[email protected]hi,
i have designed an application having four security levels like administrators, engineers, operators & guests.
now i want that whenever the guest logins in my application, windows components on the desktop will not be accessible to him means he can only view my application but he will not be able to view start menu on the task bar of the windows page or any icon on the desktop.
please tell me how to accomplish it progarmatically using labview.
the appropriate response will be highly appriciable.
thanks
samriddh sarbalhi
[email protected] -
How to create side navigations programatically
Hi,
Can you please tell me how to create side navigations for a page programatically.
Thanks in advanceSee topic "Tabs / Navigation" in dev guide, this is explained ind etaqil with sample code.
--Mukul -
How to create a report based on a DataSet programatically
I'm working on a CR 2008 Add-in.
Usage of this add-in is: Let the user choose from a list of predefined datasets, and create a totally empty report with this dataset attached to is. So the user can create a report based on this dataset.
I have a dataset in memory, and want to create a new report in cr2008.
The new report is a blank report (with no connection information).
If I set the ReportDocument.SetDataSource(Dataset dataSet) property, I get the error:
The report has no tables.
So I must programmatically define the table definition in my blank report.
I found the following article: https://boc.sdn.sap.com/node/869, and came up with something like this:
internal class NewReportWorker : Worker
public NewReportWorker(string reportFileName)
: base(reportFileName)
public override void Process()
DatabaseController databaseController = ClientDoc.DatabaseController;
Table table = new Table();
string tabelName = "Table140";
table.Name = tabelName;
table.Alias = tabelName;
table.QualifiedName = tabelName;
table.Description = tabelName;
var fields = new Fields();
var dbField = new DBField();
var fieldName = "ID";
dbField.Description = fieldName;
dbField.HeadingText = fieldName;
dbField.Name = fieldName;
dbField.Type = CrFieldValueTypeEnum.crFieldValueTypeInt64sField;
fields.Add(dbField);
dbField = new DBField();
fieldName = "IDLEGITIMATIEBEWIJS";
dbField.Description = fieldName;
dbField.HeadingText = fieldName;
dbField.Name = fieldName;
dbField.Type = CrFieldValueTypeEnum.crFieldValueTypeInt64sField;
fields.Add(dbField);
// More code for more tables to add.
table.DataFields = fields;
//CrystalDecisions.ReportAppServer.DataDefModel.ConnectionInfo info =
// new CrystalDecisions.ReportAppServer.DataDefModel.ConnectionInfo();
//info.Attributes.Add("Databse DLL", "xxx.dll");
//table.ConnectionInfo = info;
// Here an error occurs.
databaseController.AddTable(table, null);
ReportDoc.SetDataSource( [MyFilledDataSet] );
//object path = @"d:\logfiles\";
//ClientDoc.SaveAs("test.rpt", ref path, 0);
The object ClientDoc referes to a ISCDReportClientDocument in a base class:
internal abstract class Worker
private ReportDocument _ReportDoc;
private ISCDReportClientDocument _ClientDoc;
private string _ReportFileName;
public Worker(string reportFileName)
_ReportFileName = reportFileName;
_ReportDoc = new ReportDocument();
// Load the report from file path passed by the designer.
_ReportDoc.Load(reportFileName);
// Create a RAS Document through In-Proc RAS through the RPTDoc.
_ClientDoc = _ReportDoc.ReportClientDocument;
public string ReportFileName
get
return _ReportFileName;
public ReportDocument ReportDoc
get
return _ReportDoc;
public ISCDReportClientDocument ClientDoc
get
return _ClientDoc;
But I get an "Unspecified error" on the line databaseController.AddTable(table, null);
What am i doing wrong? Or is there another way to create a new report based on a DataSet in C# code?Hi,
Have a look at the snippet code below written for version 9 that you might accommodate to CR 2008, it demonstrates how to create a report based on a DataSet programmatically.
//=========================================================================
+ * the following two string values can be modified to reflect your system+
+ ************************************************************************************************/+
+ string mdb_path = "C:
program files
crystal decisions
crystal reports 9
samples
en
databases
xtreme.mdb"; // path to xtreme.mdb file+
+ string xsd_path = "C:
Crystal
rasnet
ras9_csharp_win_datasetreport
customer.xsd"; // path to customer schema file+
+ // Dataset+
+ OleDbConnection m_connection; // ado.net connection+
+ OleDbDataAdapter m_adapter; // ado.net adapter+
+ System.Data.DataSet m_dataset; // ado.net dataset+
+ // CR variables+
+ ReportClientDocument m_crReportDocument; // report client document+
+ Field m_crFieldCustomer;+
+ Field m_crFieldCountry;+
+ void CreateData()+
+ {+
+ // Create OLEDB connection+
+ m_connection = new OleDbConnection();+
+ m_connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdb_path;+
+ // Create Data Adapter+
+ m_adapter = new OleDbDataAdapter("select * from Customer where Country='Canada'", m_connection);+
+ // create dataset and fill+
+ m_dataset = new System.Data.DataSet();+
+ m_adapter.Fill(m_dataset, "Customer");+
+ // create a schema file+
+ m_dataset.WriteXmlSchema(xsd_path);+
+ }+
+ // Adds a DataSource using dataset. Since this does not require intermediate schema file, this method+
+ // will work in a distributed environment where you have IIS box on server A and RAS Server on server B.+
+ void AddDataSourceUsingDataSet(+
+ ReportClientDocument rcDoc, // report client document+
+ System.Data.DataSet data) // dataset+
+ {+
+ // add a datasource+
+ DataSetConverter.AddDataSource(rcDoc, data);+
+ }+
+ // Adds a DataSource using a physical schema file. This method require you to have schema file in RAS Server+
+ // box (NOT ON SDK BOX). In distributed environment where you have IIS on server A and RAS on server B,+
+ // and you execute CreateData above, schema file is created in IIS box, and this method will fail, because+
+ // RAS server cannot see that schema file on its local machine. In such environment, you must use method+
+ // above.+
+ void AddDataSourceUsingSchemaFile(+
+ ReportClientDocument rcDoc, // report client document+
+ string schema_file_name, // xml schema file location+
+ string table_name, // table to be added+
+ System.Data.DataSet data) // dataset+
+ {+
+ PropertyBag crLogonInfo; // logon info+
+ PropertyBag crAttributes; // logon attributes+
+ ConnectionInfo crConnectionInfo; // connection info+
+ CrystalDecisions.ReportAppServer.DataDefModel.Table crTable;+
+ // database table+
+ // create logon property+
+ crLogonInfo = new PropertyBag();+
+ crLogonInfo["XML File Path"] = schema_file_name;+
+ // create logon attributes+
+ crAttributes = new PropertyBag();+
+ crAttributes["Database DLL"] = "crdb_adoplus.dll";+
+ crAttributes["QE_DatabaseType"] = "ADO.NET (XML)";+
+ crAttributes["QE_ServerDescription"] = "NewDataSet";+
+ crAttributes["QE_SQLDB"] = true;+
+ crAttributes["QE_LogonProperties"] = crLogonInfo;+
+ // create connection info+
+ crConnectionInfo = new ConnectionInfo();+
+ crConnectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindCRQE;+
+ crConnectionInfo.Attributes = crAttributes;+
+ // create a table+
+ crTable = new CrystalDecisions.ReportAppServer.DataDefModel.Table();+
+ crTable.ConnectionInfo = crConnectionInfo;+
+ crTable.Name = table_name;+
+ crTable.Alias = table_name;+
+ // add a table+
+ rcDoc.DatabaseController.AddTable(crTable, null);+
+ // pass dataset+
+ rcDoc.DatabaseController.SetDataSource(DataSetConverter.Convert(data), table_name, table_name);+
+ }+
+ void CreateReport()+
+ {+
+ int iField;+
+ // create ado.net dataset+
+ CreateData();+
+ // create report client document+
+ m_crReportDocument = new ReportClientDocument();+
+ m_crReportDocument.ReportAppServer = "127.0.0.1";+
+ // new report document+
+ m_crReportDocument.New();+
+ // add a datasource using a schema file+
+ // note that if you have distributed environment, you should use AddDataSourceUsingDataSet method instead.+
+ // for more information, refer to comments on these methods.+
+ AddDataSourceUsingSchemaFile(m_crReportDocument, xsd_path, "Customer", m_dataset);+
+ +
+ // get Customer Name and Country fields+
+ iField = m_crReportDocument.Database.Tables[0].DataFields.Find("Customer Name", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);+
+ m_crFieldCustomer = (Field)m_crReportDocument.Database.Tables[0].DataFields[iField];+
+ iField = m_crReportDocument.Database.Tables[0].DataFields.Find("Country", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);+
+ m_crFieldCountry = (Field)m_crReportDocument.Database.Tables[0].DataFields[iField];+
+ // add Customer Name and Country fields+
+ m_crReportDocument.DataDefController.ResultFieldController.Add(-1, m_crFieldCustomer);+
+ m_crReportDocument.DataDefController.ResultFieldController.Add(-1, m_crFieldCountry);+
+ // view report+
+ crystalReportViewer1.ReportSource = m_crReportDocument;+
+ }+
+ public Form1()+
+ {+
+ //+
+ // Required for Windows Form Designer support+
+ //+
+ InitializeComponent();+
+ // Create Report+
+ CreateReport();+
+ //+
+ // TODO: Add any constructor code after InitializeComponent call+
+ //+
+ }+//=========================================================================
Maybe you are looking for
-
I have a fairly simple, grouped report with a handful of fields in each Detail section, one of which is a note/text field. I put the text field on its own line and set Can Grow = true, max lines = 0 so that it will display what it needs to display.
-
When I attempt to send a message the app quits immediately as I hit the send button.
When I attempt to send a message the app quits immediately as I hit the send button. iMessage also doesn't work. I have tried restoring it and that has failed.
-
I have e original iPad and it is getting very slow
-
ESC key not working outside PS in Vista...
This haunts our users since we migrated to Vista. When Photoshop CS2/CS3 is running under Vista the ESCAPE key does not work correctly with other programs. When PS is running, the escape key works only when pressing SHIFT+ESC together. This is extrem
-
Hi, I've enhanced IT0034: added a new field. This custom field needs to be sent to target system by idocs (that we already use in our production system) We have a custom basic type based on HRMD_A07. Iu2019ve just created the new z segment (by copy o