For database-type projects, many features are repeated.
For example, materials are applied in the procurement system, and overtime is applied in the overtime system. There is a big difference for users. ForProgramThe difference is almost zero. I only changed a table or some fields, and the rest are basically crud development for database tables.
Summarize the common points of these systems and what I think can be further explored.
1. Enter, modify, and delete basic data.
For example, the following data input table
This function is necessary. Programs with such input functions can be called as systems. You can modify the data if any problem occurs. If any error occurs, you can delete the error data. Some systems only allow input and do not allow deletion. Even if deletion is performed, data is usually disable or hidden and is not deleted in a file system.
2. REPORT query, import, and export
Since data is input, you can query the data you have entered at any time. If it is inconvenient to log on to the system, you should also support exporting data from the system. You can export data in the following formats: CSV, Excel, and PDF. If Excel was used as a data storage solution before the system, a large number of users could not accept and get used to the system's data input methods at a time, and should also support importing Excel data into the system, guide users to gradually familiarize themselves with and accept the system.
3. Advanced functions
This is a lot of things. Every small task must reflect the simplicity, convenience, and ease of use of the software. In my understanding, the following functions are required:
Copy: Data can be copied directly in the system. Select a row of data and click Copy to generate a new record. Its value is exactly the same as that of the original data (you need to change the values of some fields as appropriate. For example, lastupdatetime should not copy the old data ).
With this function, the system's data input capability is greatly enhanced. In the past, only 40 purchase tickets can be entered per day, and the efficiency can be improved several times. With this function, the advantage of Excel (copy function) has been compared, and more people accept the system.
TIPS: using SQL analyzer can help us quickly write such scripts.
For example, right-click a table and select script object to new windows
It has several sub-menus. Select the sub-menu insert to generate the insert statement, select the sub-menu select to generate the SELECT statement, and then combine them to write the SQL script for the data copy function, the following script is used.
Insert into [quotation]. [DBO]. [dtproperties] ([ID], [objectid], [property], [value],
[Uvalue], [lvalue], [version])
Select [ID], [objectid], [property], [value], [uvalue], [lvalue], [version]
From [quotation]. [DBO]. [dtproperties] Where id = 1
Version: When dealing with a large amount of data, a large amount of data is duplicated. For example, if a quote system enters a quote and the price is quoted to the customer after the boss approves the quotation, the customer is dissatisfied and needs to make a new quote. Or if the customer thinks that your offer is too high, it will reduce part of the order you originally planned to make, so that you can make another quotation based on the New Order. For example, the purchase system, the Development Department applies to purchase 10 computers. The price for each computer is RMB. The boss thinks that the price is too high and you need to make a new price. In this case, you need to re-enter the purchase application form, and ask the department manager to approve the application at the first level, ask the Finance Manager to approve the application, and finally submit the application to the boss for approval. In this way, two identical data records will be generated at the same time. If you need to re-input each time, you will surely feel that your system is not professional. His idea is to directly extract the original data and resubmit it to the supervisor for approval. As a system, you need to associate the data twice. The previous version is A, and later increases accordingly. In this way, the boss sees that the quotation of Version A is too high. When approving the quotation of Version B, it will refer to the quotation of Version. The procurement system and quotation system have high version requirements. For the purchasing system, every time the boss approves the price, he wants to see how much the previous Purchase of this material costs and how much it now needs. Of course, the price must be cheaper for the boss. If the price of Version B is more expensive than that of Version A, the boss will definitely refuse to buy it.
The same is true for the quotation system. The same part will be repeatedly quoted several times until the customer is satisfied.
Data Conversion: Data can be converted to another type of data in the system after a certain process. For example, after the purchase application form is approved by the boss, it can be directly converted into a purchase order; when the production department receives the materials from the warehouse, the purchase order can be directly converted into a production picking order; the customer's quote confirmed by the customer can be directly attributed to the current month's production cost. This type of data conversion can save a lot of valuable time.
Custom Field : Generally, the data input amount of a form is limited. Excessive input will increase the user's workload. Sometimes the user does not want to input data, or he thinks that the data field he wants to input is not provided, so he will ask to input data in the form of attachments. I just escaped the control of Excel, and now I want to bring an Excel attachment, which makes people feel that I have returned to the era of Excel. This requirement is also common. For example, in the procurement system, the boss wants to view the picture of the purchased product before approving the material procurement application, the requirement for viewing images is not required for most material procurement applications.
Adding the attachment upload function for users is a solution to put the pictures that the boss wants to see in the attachment.
Another way is to add custom fields as mentioned here. To meet your needs for extended fields.
For example, the default quote system uses US dollars as the currency unit. Now there is a guaranteed price for Japanese customers, which can only be quoted in Japanese yen. To differentiate, you need to add a currency field to indicate the currency used for quotation. You can also use custom fields to implement this function.
All ASP. NET users know the aspnetdb data. It supports extending the field information without changing the table structure.
For example, I want to add a nationality field to store the user's nationality information without changing the table structure.
The following is an SQL statement of the aspnet_profile table structure.
Create Table [aspnet_profile] (
[Userid] [uniqueidentifier] not null,
[Propertynames] [ntext] collate chinese_prc_ci_as not null,
[Propertyvaluesstring] [ntext] collate chinese_prc_ci_as not null,
[Propertyvaluesbinary] [Image] not null,
[Lastupdateddate] [datetime] not null,
Primary Key clustered
(
[Userid]
) On [primary],
Foreign key
(
[Userid]
) References [aspnet_users] (
[Userid]
)
) On [primary] textimage_on [primary]
Go
If your machine does not have this data, open Visual Studio 2008 command prompt, enter aspnet_regsql, and follow the wizard steps to create the database.
In the preceding SQL script, propertynames is the property name and propertyvaluesbinary is the property value. This is a ing. If one field in the attribute name is country, the corresponding propertyvaluesbinary will store its value, and the program will write the value of the object to the database in binary serialization mode.
I used this technique before, but I used XML format to design a long enough string field to write custom values in XML format serialized. If the database is SQL Server 2005, XML can be directly used as the field type. Binary serialization is more efficient than XML, but SQL predicate operations are not supported.
Limited capabilities, and limited systems. You are welcome to add.