How to create Spotfire datasource with multiple tables - c#

I am developing spotfire data source and using this, my datasource is going to get data from multiple URL's. For each URL I have to create a table in spotfire. Could you please show me some code to achieve this.

First, note that a single data source object can only produce a single table. That is, you cannot "hardcode" a list of URLs in your DataSource class. However, you can supply a single URL as parameter and require your user of the Spotfire Professional Client to enter the URL when he creates the data table (e.g., by clicking File -> Add Data Table) and have him/her do that multiple times.
The important step in implementing this is to make Spotfire aware of the information supplied as a parameter and make this information serializable (Spotfire Prof. has to store it somewhere in the DXP after all). You do this by writing a "PromptModel" class, registering together with the associated View (the form that will be displayed to the user to prompt for the URL), and then doing some wiring (registering, implementing the right constructor, etc.).
The example that you linked glances over this stuff unfortunately (you see some comments saying "Not shown..."). However if the Spotfire SDK (TIB_spotfdev*.zip), you'll find a more extensive example called "SpotfireDeveloper.CustomDataSourceExample" that takes care of all these steps.

Related

Single RDLC file to populate any type of custom object passed to it

I have a list of stored procedures which return different types of object (with varying column) to my business layer. Also, I created a single RDLC file named allreports.rdlc in my mvc application and put it in some .cshtml page.
Now, I want to call any of the stored procedure (based on user input passed as query parameter to my controller) and retrieve data in dataset (or any better format if available) and want to pass it to my rdlc report.
Can I achieve this using a single rdlc file which will be used to populate my any of the stored procedure dataset results. Also, please suggest if there is any other approach to achieve this?
Goal: To integrate all the reports in a single report page by changing underlying data formats. I don't want to make my application releases for each new report requirement by changing the underlying codes.
If any more clarification is needed; let me know instantly so that I could search the solution for it.
Syncfusion.EJ.ReportViewer library can dynamically create RDL reports in code behind by using ReportDefinition object. Please refer to sample that populates Tablix report item based on Datatable columns.
Sample Link
The whole product is available for free through the community license if you qualify (less than 1 million USD in revenue).
I work for Syncfusion.

How can I copy HTML textbox values from one domain to another domain's textboxes?

I'm trying to help save time at work with for a lot of tedious copy/paste tasks we have.
So, we have a propitiatory CRM (with proper HTML ID's, etc for accessing elements) and I'd like to copy those vales from the CRM to textboxes on other web pages (outside of the CRM, so sites like Twitter, Facebook, Google, etc)
I'm aware browsers limit this for security and I'm open to anything, it can be a C#/C++ application, Adobe AIR, etc. We only use Firefox at work so even an extension would work. (We do have GreaseMonkey installed so if that's usable too, sweet).
So, any ideas on how to copy values from one web page to another? Ideally, I'm looking to click a button and have it auto-populate fields. If that button has to launch the web pages that need to be copied over to, that's fine.
Example: Copy customers Username from our CRM, paste it in Facebook's Username field when creating a new account.
UPDATE: To answer a user below, the HTML elements on each domain have specific HTML ID's. The data won't need to be manipulated or cleaned up, just a simple copy from ourCRM.com to facebook.com / twitter.com
Ruby Mechanize is a good bet for scraping the data. Then you can store it and post it however you please.
First, I'd suggest that you more clearly define exactly what it is you're looking to do. I read this as you're trying to take some unstructured data from Point A and copy it to Point B. Do the names of these fields remain constant every time you do the operation? Do you need to simply pull any textbox elements from the page and copy them all over? Do some sort of filtering of this data before writing it over?
Once you've got a clear idea of the requirements, if you go the C# route, I'd use something like SimpleBrowser. Judging by the example on their Github page, you could give it the URL of the page you're looking to copy, then name each of the fields you're looking to obtain the value of, perhaps store these in an IDictionary, then open a new URL and copy those values back into the page (and submit the form).
Alternatively, if you don't know the names of the fields, perhaps there's a provided function in that or a similar project that will allow you to simply enumerate all the text fields on the page and retrieve the values for all of them. Then you'd simply apply some logic of your own to filter those options down to whatever is on the destination form.
SO we thought of an easier way to do this (in case anyone else runs into this issue).
1) From our CRM, we added a "Sign up for Facebook" button
2) The button opens a new window with GET variables in the URL
3) Use a greasemonkey script to read those GET variables and fill in textbox values
4) SUCCESS!
Simple, took about 10 minutes to get working. Thanks for you suggestions.

Solution Design - Architecture : Auto-generate from and submit form events

This is a design issue i would like to discuses before starting development so , any opinion may help, there is no specific way to do it except that the system should be delivered under sharepoint 2010 and SP 2007 because of licensing issue.
My case as below
One user can define new service ( let say vacation request service), then he define the field with type ( let say Field1 (type:TextBox; DisplayName:employeeName) / field2 (Type:FileUpload;DisplayName:documentOne) then he define which users they can use ( from FBA asp membership users)
this comes under (Dynamic Data Entry User Interfaces) .
After the form is submitted , it will go throw normal approval process. with some common events and business rules.
what i am thinking to do :-
1) build page that let you generate ASP.NET form ,
2) for each generate form , i create a list based on SharePoint list definition and by the event receiver i can set and remove users who can view / edit / add items using the SP Security module.
3) build my own D/B that saves each generate service what is the approval steps for it and any data i need to complete the approval workflow.
My Questions :-
***1) after i generate the form , how can i also write form events ( Submit event, onLoad event..etc), because each generated form will submit to different place to save data.
2) is this is the best practice to implement such system ?!
3) Should i save the form data in SharePoint list or i should save it to DB also because i have two SharePoint environment and i may have performance issue while my data is separated between DB and SP. but in this case i need to implement my own security module.
4) we have around 200 from will be generated for phase one . so i am afraid that thing may get out of control if the design were not solid enough,
submit everything to the same place with different parameters:
form table : (form filler id, form type id, form parameters id)
parameters table: (form id (Foreign Key), parameter id, parameter type, parameter text value)
this way its generic.
?
save it in your database so that you would not be restricted to sharepoint structure.
do it lean - first build just a part of your solution and run it only on 1 or 2 forms. design the solution gradually rather then trying to predict everything from the beginning.

Using InfoPath for importing and exporting data

The application I'm writing has a need for a solution to the following situation:
Salesman and customer is located offsite. They are finalizing a list of requirements, and will input business data that at some point need to be inputed in the onsite database.
My idea is that the salesperson gets a InfoPath document that is almost completed with default values and heads over to the customer. While at the customer the document is updated to satisfy the customer's need. I must also cover that the document is passed back and forth by email between the salesperson and the customer.
When the salesperson returns to the office he uploads the InfoPath into the database and the order is updated with few user interactions.
Now to the questions:
Is this a workable/sensible solution? Other suggestions to how to solve this?
How do I ensure that form and data stays together when the salesperson takes the document on a USB stick or it's emailed to the customer?
How do I (with C# code) fill a form with default values?
How do I read back the changes?
Sharepoint is not an option.
Some issues that you will need to think about
will customer have infopath installed and therfore may not be able to view the document.
If you email the document or need a customer to view it, generally only the data is transmitted with a pointer to the Form Template. If you want the customer to update it and send it back, then the template will need to be located somewhere publicily accesseable.
The data is stored as an XML document so as part of the startup you could detect that it is a new form set the defaults that you need.
when you publish a form to a networked folder it will also ask for a local path for the form. this allows for a disconected scenarios.
From my experience, InfoPath is a great tool when you have control over the environment. It starts to break down as a viable option once you get outside a controled environment, because you then have to start jumping through hoops to make it work as it should.
EDIT
One you loose control of the environment I think that a web interface would be the way to go.
The sales person could create a new document on the website with the back-end populating all the defaults necessary. A link to the document could be emailed to the customer, who could update their stuff via the web interface and then sales person can then finalise the process.

Setting up user permissions for reading and writing document files in IIS7

I want to make a very simple CMS for my sites. So what I am thinking is this a user logs in and a list of their pages shows up. Now they change their ends and save it. My C# code would then write over the file/section.
So I don't think it would be to bad to do this however I am not sure about how it works with read and write premission and how to set it up.
Like I want the user to only be able to read and write to their files they own.
So if User A has Page1.html and Page2.html they can only read those files and write to those files they can touch User B's page3.html and Page4.html
So how would I setup this up?
Thanks
When you create your list of files, you will be reading that list from a database repository. Include in that code conditions that allow only those records for which the user has permission.
The most straightforward way to do this is to create a table with two columns: UserID and DocumentID. A presence of a record in the table indicates that the user has permission to that particular document. Add records to this table that give the user permissions to the appropriate documents.
Then, when you read the documents from the database, you can join this table to the documents table via the DocumentID, and filter the table by UserID. This will return only those records for which the user has permission. You can then use that set of records as the basis for the list of documents that you display to the user.
You could employ a cms the SharePoint way. You begin with a base file on the network. If a change to it is made then the page is stored in a database. each subsequent change is a db change and the application renders the last entry in the table for that page.
this does two things. first, you can see revisions and re-instate them. you can see a complete history of the page, who made the changes and when.
it also allows you to lock pages within the database and assign roles/users against the pages. you can then apply a decoration to the controller which checks rights and either renders the page or displays a access denied page and then log the attempted access to the page.
i know this sounds complex but can you foresee a time when after you've gone live with your cms that the client is going to want more from it? you need to implement a solution that's adaptable to needs.
if it's worth writing then it's worth writing well.

Categories

Resources