0

What program, software, tools or application that a developer can create to the user's desktop that looks like an icon for the user to manipulate data, and run reports. The program can be installed onto the user's desktop. The user can open the program by clicking on it's icon and use the program to enter parameter to run reports or perform data extraction or analysis.

The developer can also upgrade or enhance the supposed software (icon) when a business function or user requirement changed. The developer can do this and update the program version or enhancement of the user's program from his remote location.

Is there any programming language or software that can do this?

  • 2
    This will be hard to answer if you don't include what data shall be analyzed and what format it is in, what is expected in the reports, and how much you are willing to spend in case it comes to paid solutions. As we don'r recommend programming languages here, I further assume you're asking for a library? – Izzy Nov 29 '16 at 22:06
  • Data that are stored in server database such as mysql, sql server, oracle, db2 etc. A software, or a program (developer who can code a program - library is fine) to create this software that can sit on the user's (network -many users) desktop and the user can click to open the program (GUI box) and can select fields, or enter parameter and choose what data from the database set by the developer they want to extract (such as name begin with A and age over 25). Step further user perform more complex task such as run reports or dashboards if it can be done. $ none concern want see what out there – Johnseito Nov 30 '16 at 3:06
  • So basically you want something like Crystal Reports? – Izzy Nov 30 '16 at 7:10
1

You can quite easily create database interfaces in Python and there are a number of GUI libraries available. It is also quite simple to add into the code a pull mechanism that during start-up of the program checks for updates from a specific location such as a URL or Shared Drive, (hopefully with a timeout), and to pull those updates before continuing to load the program - this is generally considered more polite than pushing changes especially if the user is given the option to opt out of updates.

To push changes you will need a client process running all the time that lets you know that the user is online & connected and allows you to send or the remote process to pull the changes behind the users back as it were - this is refered to as push technology, and many consider it less polite and a possible security risk. There are a number of python libraries &/or programs that let you construct, or use, such processes such as RPyC, Pyro and XML-RPC, GRR is worth a look as well but fundimentally they will not be directly linked to an icon on the users desktop that does something - that will be a seperate item that you push out. The nice thing is that all of the above is a) Free and b) cross platform.

I personally am a fan of python because it makes this sort of functionality simple but just about any programming language can support such things & languages that rely on remote objects such as C#/Mono, Java & JavaScript will normally always stay updated to the latest as they fetch their code from the designated URLs but may result in code that cannot be run offline or when a specific server is down.

Microsoft provide a number of Windows tools in the distribution tools that allow you to push new software to machines, usually used primarily in the corperate environment and of course they all may introduce some security vunerabilities.

Of course the simplest answer is to make the icon a shortcut to a primarily server side application, possibly with some Java or JavaScript components, and just use the client as a GUI terminal for that code. In that case the language of choice is what does your server support.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.