I understand this is not a distinctive problem but I have not had much luck finding good examples of methods others have addressed this problem. I've an intranet asp.internet application I've inherited and am building upon. A particular page is perfect for data admission to submit claims for approval and there exists a form where one record at any given time could be joined which is validated in realtime from the database for valid product information.
I've been requested to include an element where customers can import a lot of records all at one time in order to save them duration of dealing with each text box and dropdown list individually for more than 100 records sometimes.
The answer I have investigated as my first choice is to produce an stand out spreadsheet they are able to open from the link around the page which i have formatted right into a template that they'll copy/paste their data into, save after which upload towards the server and import like a linked server object into sql server.
Because of the character of the solution and a few of the data being imported I must program some error handling into VB for that spreadsheet and when I ever look for a bug to repair, there's not good method to guarentee the consumer will make use of the version around the page and never some local copy they saved that could break when attempting to import.
I have eliminated one large text box which i make an effort to parse because I've no control this way over the way the user makes its way into the information.
Can there be some better and perhaps more apparent solution that i'm missing?
Out of control spreadsheet import processes really are a bad factor. You will find a lot of stuff that customers can perform to interrupt the procedure. If you are likely to bulk load from excel spreadsheets, the procedure should contain the next components:
A controlled template file, downloaded through the user and produced in the application (when the template does not have to be transformed, it may just reside in a folder somewhere).
A cheque to make sure that web site has been utilized.
The particular load process.
A screen in which the user can verify what they've imported, edit and commit the upload.
The check and validate part is a great way to place a control around the upload that may validate data. The consumer needs to inspect the imported data and by hand approve it. This puts the onus for correctness back around the customers, and enables these to see and connect the upload.
Upoload the file for your site parse the file in the application, and utilizing the same logic as the web uses (Presuming your utilizing a domain model) make your claims. You are able to upload CSV files or any format you are able to parse around the server.
Possibly this is exactly what you meant, but instead of a spreadsheet I'd make use of a csv (comma-separated values) file. It can nonetheless be opened up and edited in Stand out but may also be easily edited in other editors for individuals customers who don't put on Stand out. Which will also allow it to be simpler for you personally around the parsing side.
If you are concerned about versioning, maybe you may make your column headers a clear column that simply consists of the present version.
The way to go assumes that Stand out is really a better system for entering and controlling data than you are able to produce online. However, you will find lots of editable Datagrid options insInternet that may emulate the energy of Stand out.
If however, you would like individuals to have the ability to make use of a local copy from the data without having to be attached to the network, you might want to consider instantly producing excel spreadsheets on the shared drive or perhaps in a person folder (one spreadsheet per user) that is tied to the database using among the data access systems.
Best of luck!