Complex report Web service

IxiRancid

Centurion
Joined
Jun 16, 2004
Messages
104
Location
Europe
I'm need a solution that behaves something like this:
(A) application (outside company)
- this application is the front-end used as user data input (lots of webpages, one for each specific Report)
- this application should use one common Web Service which hosts Crystal Reports and exports them

(B) application (my Web Service)
- hosts all Crystal Reports (at first 30, then should be an option to add more)
- primary source for reports is DataSet or Class object (created with XSD.exe on DataSets for each report)
- it exports Crystal Report as RPT file which is then used in application C.

(C) application
- an utility (DLL) I created that is set into client GAC which is used to print reports directly to printer (a very wanted solution I guess. When I tried to find something like that, there was none)

Now the problem:
(A) application is an outside solution that has no insight into (B) crystal reports and their datasources, thus I need to serve all Data objects (or DTO) for (A) so they can fill the data, send it to (B) which exports filled report.

Here's how I do it (currently):
(B) application
(separate public Class generated by XSD.exe)

Namespace nBCInspc
<System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"), _
System.SerializableAttribute(), _
System.Diagnostics.DebuggerStepThroughAttribute(), _
System.ComponentModel.DesignerCategoryAttribute("code"), _
System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://tempuri.org/dsBCI.xsd")> _
Partial Public Class dsBCIB1_1

Private cusNameField As String

'''<remarks/>
Public Property cusName() As String
Get
Return Me.cusNameField
End Get
Set(ByVal value As String)
Me.cusNameField = value
End Set
End Property
End Class

(B) Main class (service)
<WebMethod()> _
<System.Xml.Serialization.XmlInclude(GetType(nBCInspc.dsBCIB1_1))> _
Public Function crSerRPT(ByVal myDTO As Object)
'processes IN parameter from (A) and exports filled RPT
End Function
---------------------------------------------------
(A) application calling (B) service
Dim neS As New nPrint.dsBCIB1_1
neS.cusName = "Best Customer"

Dim np As New nPrint.Service
np.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials

Dim fname As String
fname = np.crSerRPT(neS)
----------------------------------------------------

The main problem is that when I use this part of code neS.cusName = "Best Customer" I cannot fill more than one value. This of course is not good, because I need to fill multiple values (tables in reports etc.).
When they write neS. intellisense gives them all available fields because of this line:
<System.Xml.Serialization.XmlInclude(GetType(nBCInspc.dsBCIB1_1))> _

I need to:
- (DONE) provide to (A) full list of parameters for each report so they can fill it and send it
- allow them to fill multiple values

Any ideas welcome, I can try to explain better if needed, or even a completely different hint for a solution!

Thanks!
 
Back
Top