In our first article I rather ...
original: http://habrahabr.ru/blogs/development/84818/
In our first article I rather generally described the idea of "program construction". A short introduction, few words about main elements of the system and download links - sure thing, one can hardly judge an idea for reasons given.
In order the idea would be understandable, I'll give an elementary example: how to make a management accounting program for sole prorietor or small business firm in half an hour.
Problem statement:
- Directories on clients and the goods;
- Operations of goods arrival / selling;
- Operations of money income / outlay;
- Balance on clients, the report on clients with open balance;
- Detailed elaboration in the client section about goods arrival / selling, money income / outlay;
- Detailed elaboration in the goods about arrival / selling;
- Remains of the goods, price-list of available goods;
- Reports on arrival and sellingof the goods for the period;
- Reports on income and outlay of money for the period;
- Generation of invoices, price coordination protocols, offers, motor waybills and payment orders.
Action #1.
Create "Clients" object in objects constructor, add "Address", "Phones", "E-mail", "Contact person" fields, add filter by name.
Create "Goods" object with "Marking", "Price" and "Description" fields and filters by name and marking.
Action #2.
Create "Goods arrival" operation with one list in operations constructor. Operation fields: "#" (sequence number), "Date", "Supplier" with filters by date and supplier. Fields of operation list: "Article of trade", "Quantity", "Price", "Sum". Thereafter I add summing field by "Sum" list.
The second operation, "Goods selling" is completely analogous to "Goods arrival". Except that we add copy field to the selling list with the value of article price, in order to put its price in "Price" field automatically when you select an article.
Add two more operations: "Money income" and "Money outlay" with the same set of fields: "#", "Date", "From / To whom", "Sum" and filter by date.
Action #3.
Now return to the objects.
Add two summing fields to "Goods", by "Arrival" and "Selling" operations and a calculated field "Remains".
And add summing fields to "Clients": "Goods arrived", "Money came", "Goods selled", "Money spent" and calculated fields "Arrival", "Selling" and a total "Balance" of the client.
Action #4 — reports.
The first– "Open balance". Displays information about clients with non-closed balance (loan, debit) for a given period. I start report by object, label fields to show: "Name" and "Balance", add filter by nonzero balance.
The second: "Goods arrived". The report contains information by goods arrival for a given period. Select list by "Goods arrival" operation with grouping by article. Add filters for start and end dates of reporting period.
The third: "Goods selled" - analogous to the second, but for "Goods selling" operation.
The forth and fifth reports contains information about money income and outlay.
Action #5, the last one!
To get detailed information in clients/goods about goods arrival/selling and money income/outlay I add links between objects and operations and specify fields required for display.
All that has remained is to create Word templates and specify field names there. When the document will be formed on the base of template, these names will be replaced with the values.
This is an example of very simple, but completely operational program. I spent about 20 minutes for it. Generally, they make additional functional demands to the program (many of them are carried out within the constructor). I made this example to show how easy you may combine a plain accounting program. While how much effort and time you need to obtain the same result using any other tools?
You can download projects and constructor by the links from the first article.
...
original: http://viai.habrahabr.ru/blog/84811/
Reality confirms Fred Brooks words: still there is no programming technology, which usage by itself would allow order-of-magnitude improvement of software development (No Silver Bullet, 1985). Programming today reminds car manufacturing before Henry Ford who offered the pipeline. The car gathered manually was extremely expensive (though found its customers), and today the car is affordable to everyone who has a head and hands.
My idea may remind (very indirectly) the mechanism, which, like the pipeline, delivers needed elements to the collector and he makes a finished product of them in a few minutes. Program construction is, perhaps, more precise expression. Though I trusted in possibility of such constructor for many years, only half a year back, after two small projects, the picture of a future mechanism, rather simplified prototype of which I wish to bring to your attention, began to appear.
So, about the idea.
There is a set of standard elements, from which it is possible to compose a program, that responds the majority of the common requirements in the given area (at present – management accounting). Product construction represents development in real-time mode – the customer says that he wants, and you immediately embody his words in a reality (which certainly is limited, as well as all realities).
Advantages of such "programming" are obvious: detailed problem statement is not so required (with saving of each word and gesture of the customer), the concept of engineering process is absent, «here and now» deployment, support ceases to be a nightmare for the executive (though, we must confess, rather profitable nightmare).
Main principles of program construction:
— Definition of objects;
— Definition of operations over objects;
— Setting of links between objects and operations;
— Construction of reports based on objects and operations;
— Construction of documents based on operations and reports.
Objects of constructor are subjects of observation: clients, goods, warehouses, banks, employees, currency, etc. Data import/export from/to Excel is possible.
Operations of constuctor define actions made over objects: goods/money receipt/expenditure, moving, processing, etc.
Links between objects and operations define interaction of objects with other objects (the goods in warehouses/lots, currency in cashes) and objects with operations (the data about arrival/selling of the goods, financial operations with the client).
Report documents are constructed on the basis of MS Word templates which contain names of operation fields and are replaced in MS Word document.
Some other possibilities of the constructor:
— Customisation of access rights of user categories to the data (including user interface elements);
— Addition of any number of images to each record of the object;
— Networking capability;
— Filtering on
any field.
At present, about 20 projects are made on the basis of the given constcructor. Some of them:
— Automation of the real estate agency;
— Automobile sales centre automation;
— Computers and accessories trade management;
— Automation of cafe / restaurant;
— Consumables trade management;
— Video hire shop automation;
— Lease accounting;
— Automation of training center;
— Financial control in private enterprises.
Constructor prerequisites:
MS.NET FrameWork 2.0 dotnetfx.exe – 22.4Mb (link) and MS SQL Server 2005 Express Edition sqlexpr.exe – 54.7Mb (for Windows XP SP2) or sqlexpr32.exe – 35.9Mb (for Windows XP SP3 and higher) (link). Be attentive: installation of sqlexpr32.exe on Windows XP SP2 may cause problems!
For fast installation of MS SQL Server I recommend to set following parametres at program start sqlexpr.exe/sqlexpr32.exe: «/qb ADDLOCAL=ALL INSTANCENAME=TRADE ADDUSERASADMIN=1 SECURITYMODE=SQL SAPWD=111». Thus installation will pass in an automatic mode and the named server instance will be created (TRADE), which you specify then in program settings.
For old Windows version WindowsInstaller-KB893803-v2-x86 – 2.5Mb (link) may be needed.
Constructor consists of two files: directly Valon.Trade.exe and sql-script Valon.Trade.sql which serves as "key" for a data control.
Download constructor (1.4Mb)
Download archive of demo projects (1.2Mb)
I will be grateful for help in idea development and marketing.