Sei sulla pagina 1di 82

PROJECT REPORT ON

IN LIMITED ACHIEVEMENT OF DIPPOMA IN INFORMATION TECHNOLOGY

DEVELOPED BYPARESH H.VARDE (1220200025) & MUMTAZ S. GHATA (1220200015) D.E. (SEM-V)

GUIDED BYMr. S.S. GHATA DR. S & S.S. GHANDY COLLEGE OF ENGG. & TECH. ,SURAT 2002-2003

CERTIFICATE
This is to corroborate that Mr. Paresh Varde (1220200025) & Ms. Mumtaz Ghata (1220200015) of DE I.T. Have satisfactorily completed their full-time project work At Span Diagnostics LTD. Sachin. On Enterprise Resource Package For the term ending in April 30,2003
Date:Head of the Department (Mr. K.H. Patel)

I.T. Department Dr. S. & S.S. Ghandhy College of Eng. & Tech., Surat.

Acknowledgement
We are appreciative to our project guide Mr. Shabdar Ghata for giving us good supervision and support during the training. We are able to complete our project successfully in time due to his Team spirit. We are also appreciative to all other staff members of computer department of Span Diagnostics for giving us guidance and encourage during the training period, they are all very mutual. We have learned a lot from them. We are also appreciative to our college for giving us chance in such a good company.

INDEX
1. 2. 3. 4. 5. 6. System Definition Company Profile Introduction to Visual Basic Introduction to SQL Server Introduction to ODBC System Development life-cycle 6.1 6.2 6.3 6.4 6.5 6.6 7. 8. 9. 10. Initial Investigation Feasibility Study Analysis Design Coding Post Implementation & Maintenance

Working of System Installation of System Features References

CHAPTER-1

System Definition

System Definition
The company manufactures various types of products related to pharmaceutical laboratory. This company purchase raw material from India as well as from abroad. The product manufactured by company is distribute to various distributor located in different city for sale. This company doing repairing of pharmaceutical instrument also. The system assists into the determination about purchase of products. It also does analysis of the products lying in the godown, calculates weighted average purchase rates. It also maintains stock by part receipt and dispatch module, and also perseveres record of repairing of instrument received by customers or internal person

CHAPTER-2

Company Profile

CHAPTER-3

Introduction To Visual basic

Introduction to visual basic


Visual basic is most popular programming language in the world, and generally use as a front end for database application. There are some important reasons to use Visual Basic rather than others.

Capability: VB is capable of producing software as sophisticated as any of the


others data-access techniques available. There is little you can do in say, Developer 2000 that cannot be implemented equally well with ADO or OO4O.

Flexibility: You do not have to use VB for only database access. You can use it to
write a text processor, an e-mail listener, or 10,000 other tasks.

Familiarity: Being the most popular language in the world means there is as steady
supply of talented staff for you to add to your development teams. When the general supply is short, you will still be more likely to find development staff then for other language.

Popularity: The popularity of a product is important for you to become familiar


with because you will see more magazine articles and books as well as have better supply of third-party products from companies who will devote their resources in which there is a playback Microsoft Visual Basic, the fastest and easiest way to create applications for Microsoft Windows. Whether you are an experienced professional or brand new to Windows programming, Visual Basic provides you with a complete set of tools to simplify rapid application development. The "Visual" part refers to the method used to create the graphical user interface (GUI). Rather than writing numerous lines of code to describe the appearance and location of interface elements, you simply add prebuilt objects into place on screen. If you've ever used a drawing program such as Paint, you already have most of the skills necessary to create an effective user interface. The "Basic" part refers to the BASIC (Beginners all-purpose Symbolic Instruction Code) language, a language used by more programmers than any other language in the history of computing. Visual Basic has evolved from the original BASIC language and now contains several hundred statements, functions, and keywords, many of which relate directly to the Windows GUI. Beginners can create useful applications by learning just a few of the keywords, yet the power of the language allows professionals to accomplish anything that can be accomplished using any other Windows programming language. The Visual Basic programming language is not unique to Visual Basic. The Visual Basic programming system, Applications Edition included in Microsoft Excel, Microsoft Access, and many other Windows applications uses the same language. The Visual Basic Scripting Edition (VBScript) is a widely used scripting language and a subset of the Visual Basic language. The investment you make in learning Visual Basic will carry over to these other areas. Whether your goal is to create a small utility for yourself or your work group, a large enterprise-wide system, or even distributed applications spanning the globe via the Internet, Visual Basic has the tools you need.

Data access features allow you to create databases, front-end applications, and scalable server-side components for most popular database formats, including Microsoft SQL Server and other enterprise-level databases. ActiveX technologies allow you to use the functionality provided by other applications, such as Microsoft Word word processor, Microsoft Excel spreadsheet, and other Windows applications. You can even automate applications and objects created using the Professional or Enterprise editions of Visual Basic. Internet capabilities make it easy to provide access to documents and applications across the Internet or Intranet from within your application, or to create Internet server applications. Your finished application is a true .exe file that uses a Visual Basic Virtual Machine that you can freely distribute.

Visual Basic Editions Visual Basic is available in three versions; each geared to meet a specific set of development requirements. The Visual Basic Learning edition allows programmers to easily create powerful applications for Microsoft Windows and Windows NT. It includes all intrinsic controls, plus grid, tab, and data-bound controls. The Professional edition provides computer professionals with a full-featured set of tools for developing solutions for others. It includes all the features of the Learning edition, plus additional ActiveX controls, the Internet Information Server Application Designer, integrated Visual Database Tools and Data Environment, Active Data Objects, and the Dynamic HTML Page Designer. The Enterprise edition allows professionals to create robust distributed applications in a team setting. It includes all the features of the Professional edition, plus Back Office tools such as SQL Server, Microsoft Transaction Server, Internet Information Server, Visual SourceSafe, SNA Server, and more.

CHAPTER-4

Introduction To SQL Server

Introduction to SQL Server


Microsoft SQL Server OLAP Services provides an online analytical processing (OLAP) architecture for rapid access to data warehouse data. Data from the data warehouse is extracted, summarized, organized, and stored in multidimensional structures for rapid response to user queries. OLAP Services and PivotTable Service provide the capability to design, create, and manage cubes from data warehouses and to provide client access to OLAP data. The OLAP server manages the data; PivotTable Service works with the server to provide client access to the data.

Client/Server Architecture
Microsoft SQL Server is designed to work effectively in a number of environments: As a two-tier or multitier client/server database system As a desktop database system

Client/Server Database Systems:


Client/server systems are constructed so that the database can reside on a central computer, known as a server, and are shared among several users. Users access the server through a client or server application: In a two-tier client/server system, users run an application on their local computer, known as a client that connects over a network to the server running SQL Server. The client application runs both business logic and the code to display output to the user, and is also known as a thick client. In a multitier client/server system, the client application logic is run in two locations: The thin client is run on the users local computer and is focused on displaying results to the user. The business logic is located in server applications running on a server. Thin clients request functions from the server application, which is itself a multithreaded application capable of working with many concurrent users. The server application is the one that opens connections to the database server and can be running on the same server as the database, or it can connect across the network to a separate server operating as a database server. This is a typical scenario for an Internet application. For example, a server application can run on a Microsoft Internet Information Services (IIS) and service thousands of thin clients running on the Internet or an Intranet. The server application uses a pool of connections to communicate with a copy of SQL Server. SQL Server can be installed on the same computer as IIS, or it can be installed on a separate server in the network. Having data stored and managed in a central location offers several advantages: Each data item is stored in a central location where all users can work with it. Separate copies of the item are not stored on each client, which eliminates problems with users having to ensure they are all working with the same information.

Business and security rules can be defined one time on the server and enforced equally among all users. This can be done in a database through the use of constraints, stored procedures, and triggers. It can also be done in a server application. A relational database server optimizes network traffic by returning only the data an application needs. For example, if an application working with a file server needs to display a list of the names of sales representatives in Oregon, it must retrieve the entire employee file. If the application is working with a relational database server, it sends this command: SELECT first_name, last_name FROM employees WHERE emp_title = 'Sales Representative' AND emp_state = 'OR' The relational database sends back only the names of the sales representatives in Oregon, not all of the information about all employees. Hardware costs can be minimized. Because the data is not stored on each client, clients do not have to dedicate disk space to storing data. The clients also do not need the processing capacity to manage data locally, and the server does not need to dedicate processing power to displaying data. The server can be configured to optimize the disk I/O capacities needed to retrieve data, and clients can be configured to optimize the formatting and display of data retrieved from the server. The server can be stored in a relatively secure location and equipped with devices such as an Uninterruptable Power Supply (UPS) more economically than fully protecting each client. Maintenance tasks such as backing up and restoring data are simplified because they can focus on the central server. In large client/server systems, thousands of users may be connected to a SQL Server installation at the same time. SQL Server has full protection for these environments, with safeguards that prevent problems such as having multiple users trying to update the same piece of data at the same time. SQL Server also allocates the available resources effectively, such as memory, network bandwidth, and disk I/O, among the multiple users.

SQL Server applications can run on the same computer as SQL Server. The application connects to SQL Server using Windows Interprocess Communications (IPC) components, such as shared memory, instead of a network. This allows SQL Server to be used on small systems where an application needs to store its data locally.

Desktop Database Systems:


While SQL Server works effectively as a server, it can also be used in applications that need stand-alone databases stored locally on the client. SQL Server can configure itself dynamically to run efficiently with the resources available on a client, without the need to dedicate a database administrator to each client. Application vendors can also embed SQL Server as the data storage component of their applications. When clients use local SQL Server databases, one copy of the SQL Server database engine runs on the client and manages all the SQL Server databases on the client. Applications connect to the database engine in Much the same way they connect across the network to a database engine running on a remote server.

Database Architecture:
Microsoft SQL Server data is stored in databases. The data in a database is organized into the logical components visible to users. A database is also physically implemented as two or more files on disk. When using a database, you work primarily with the logical components such as tables, views, procedures, and users. The physical implementation of files is largely transparent. Typically, only the database administrator needs to work with the physical implementation.

CHAPTER-5

Introduction To ODBC

Introduction To ODBC
ODBC is currently the major technique for communicating between Visual Basic and relational database management system such as a SQL Server. ODBC has become an industry standard with most of the database vendors fully supporting it. In fact, failure to produce an ODBC driver can have a decided impact on the financial viability of a product. In addition to providing access to relational databases, there are ODBC interfaces available for a large range of other application from desktop applications, such as Microsoft Access and Excel (which is to be expected), to application you would not normally associate with databases, such as Visio. We discuss following topic of ODBC. The origin of ODBC ODBC Driver ODBC conformance levels Selecting an ODBC driver Setting up an ODBC data source Testing your ODBC connection

The origin of ODBC


ODBC stands for Open database Connectivity and was created as an architecture to provide a way for application programs (Such as VB) to communicate with different vendors databases. It was created by a consortium, called the SQL Access Group that had representatives from most of the database vendors, including IBM, Sybase, Microsoft, oracle, and Digital Equipment Corporation. By 1990, they had thrased out a slimmed-down, SQL-based, call-level interface model. In the succeeding years, it has been enhanced conciderably.

Figure: The ODBC view of your SQL Server Connection


Visual Basic Data Access Library ODBC Driver Manager ODBC Driver Network Software Oracle Server

The ODBC interface is usually of a set of API calls, but it does standardize more then just that. For example, the data types and error codes are generally standard across RDBMS implementation, though it is surprising how many differences there can be between ODBC drivers. The ODBC API can be used even from Visual Basic, but Microsoft has spent much energy on providing more practical methods of using it. As far as the client machine is concerned there are several layers of software that you unknowingly use, and these are shown is simplified networking view in figure above.

ODBC Driver
One of the more confucing aspects of ODBC is to find out exactly what works with your driver and your database. Lets take a look as what type of features ODBC can present to a developer and then see what applies to SQL Server and why?

ODBC Drievr Categories:Three categories are used to define an ODBC driver. These categories are base upon the architecture that the driver supports. 1. Single Tier Single-tier drivers are built for databases that cannot process SQL statements. These are normally file-based systems, such as Microsoft Access and Foxpro, but also include Excel. These databases are passive: they do not have any actively running software. It is up to your ODBC driver to know how to get data out of database and where and how the locking feature works. The driver takes a SQL command and converts it into a series of API calls appropriate to the database. 2. Two Tier Two-tier ODBC drivers are for true client/server environment: they are designed for active databases that communicate by SQL. There is often some translation and parsing of the SQL commands you send to it before it reaches the database. This is necessary because databases often have their own dialects of SQL. This translation will occur when you pass a query from Visual Basic to SQL Sever. If you want to use any SQL Server specific syntax, then you must bypass this translation and parse and pass the SQL statement straight through to the database. You use the chapters. Atypical two tier ODBC driver sends data from the application to the database. The client machine will run the application, the ODBC driver, and Driver Manager, while the server will be on a separate machine and have the SQL Server running. Both machines will run compatible networking software. 3. Three Tier A much less common type of ODBC driver is the three-tier, or multi-tier driver. This driver is typically used when three kind of gateway between the database server and the client.

ODBC Conformance Levels:In addition to the number of tiers that an ODBC driver is designed for, the drivers are also categorized according to their conformance level. The conformance level is a measure of how much of the ODBC API specification the driver supports. There are three levels to be aware of:

Core Level:The driver must allow you to a database, prepare and execute SQL statements, retrieves results sets from queries, use COMMIT and ROLLBACK statements for transaction control, and retrieve errors. Level 1 The driver should allow everything at the core level as well as provide driverspecific dialog boxes for connecting the database, the ability to get and set connection, and the ability to obtain driver and data source information. Level 2 The driver should allow everything at the previous two levels as well as allow you to list and browse the capabilities of data sources, retrieves result sets in different formats, and provide scrollbar cursors. It should also allow you to retrieve extra catalog information from the database. If an ODBC driver is advertised at a specific level, then it must provide all the features of that level. This does not mean that a level 1 driver, for example , cannot provide some level 2 features. In fact, most do provide a scrollbar cursor. Because of this, level 1 drivers have been used for some complicated development and should not be ruled out. Although the conformance levels are quit specific, this conformance does not always translate into practice. This was not a problem until developers were given tools, such as Remote Data Objects (RDO), that require a level 2 driver for their more advanced features. If you select the wrong driver, you are likely to see the dreaded Driver not capable message.

Selecting an ODBC Driver


Now that we have found out what types of ODBC drivers there are and what are and what their capabilities are, it is time to select one for working With your SQL Server database. One of the most frustrating aspects of ODBC is finding a driver that does whet you want. Many drivers claim high compatibility to the various conformance levels, but each new driver has slightly different capabilities or, what is worse, affects the capabilities of those you last installed on your machine. Given the speed with which things change, it is difficult to the definitive on which drivers that come either from SQL Server or Oracle and learn to understand and live with their peculiarities. My recommendation is to either one of these companys ODBC driver but be careful before you upgrade. Do not get copies of all the latest versions and blindly install them without allowing for the fact that they may interface with each other. If you have test machine, then install any new driver on that and make sure it works as advertised and does not destructively interface with othr drivers. Sometimes the only way to get out of a situation like this is to reformat the hard drive and start again. One particular case in point is the driver that came as part of MDAC1.5, the Microsoft Data Access Component, that provides features for ADO (Active Data Components). The new driver exposed a bug in RDO2.0, which was not fixed until Visual Basic 6.0.

Sources of ODBC Drivers


Several possible sources of ODBC drivers are available for SQL Server; however, unless you want to pay a third party driver, your choices really boll down to two: One from Microsoft and ine from Oracle.

Microsoft ODBC Driver


The Microsoft ODBC driver is available with Visual Basic, through you will find the driver can become out-of-date fairly quickly. The version that comes with Visual Basic 6 is preferable version.

Oracle ODBC Driver


The oracle ODBC driver is actually developed by intersolv. It is packaged with several Oracle products including the servers.

Setting Up an ODBC Data Source


Having selected your driver , it is noe time to install it and set up a data source. To do this, you use the ODBC Data Source Administrative program(ODBCAD32.EXE). Which should be present on your machine as the Control Panel, 32bit ODBC. To

run this you should use the following steps: 1. Click the start button, and select Settings Control Panel. 2. Double click 32 bit ODBC.

You will now see a window such as the one shown in figure below. You will notice several tabs. These tabs are described in following table.

Tab Heading User DNS System DNS File DNS ODBC Drivers Tracing About

Description This heading lists the data source names Set up for the current user. This heading lists the Data Source Names set up for the system rather than individual user. This heading lists the file-based Data Source This heading lists the ODBC drivers that are installed on the local machine. This heading controls whether the ODBC driver manager races the SQL calls. This heading lists the version and file name for all the keys ODBC DLLs. You should not down this information for your documentation because other software can overwrite drivers.

Table: The option of the ODBC Data Source Administrator

To add a new DNS for SQL Server, we must first make sure that SQL Server driver is installed. You can see the drivers that have been installed on the ODBC Drivers tab. If it is not installed, you will have to get the driver software from your vendor of choice and install it. When youve installed the driver , then you should select the User DNS tab and click the Add button. This button allows you to add a new Data Source Name. When you click the Add button, you will see a list of all the available drivers. Select one you want, and double-click it. Now you must fill in a description of the DNS you want to set up.

There are usually three or four fields you have to fill in. Data Source Name: You can give the data source name (DNS) you want: though you should obviously make it meaningful. You can set up any number of DNSs for the same ODBC driver. In practice, it is simplest to use the same name you used for the SQL Server database service name. Description: Use any description that you want here. Your users will hopefully never see this field, so you can leave it blank if you want, though it might help you to differentiate if you have set up many DNSs. Server: This is the name of your server to which you want to connect, it might be a local server or a server on network.

Creating an ODBC Connecting String


A connection string is a strng that includes sufficient information for your VB application to make connection to the SQL Server database. The string is passed to the ODBC Driver Manager, which then takes responsibility for making the connection. You will normally have to use this connection string when you first connect to the database with an OpenDatabase or similar method. You will also use it for Data Controls in the Access Property. There are several optional parts to the connect string, and the possible data can differ for different ODBC drivers. The string itself is made up of keywords are shown in following table. ODBC DATABASE UID PWD DNS LOGINTIMEOUT Identifies the string as an ODBC connection string. This keyword has associate value. The database name. This keyword is mainly useful for identifying the .mdb file in an Access database. The default username for the data source. The password for the default user name. Including this value is a security concern and should be avoided. The data source name that you have set in the ODBC administrator application. The time in seconds that the login will be attempted before timing out. The default is 20 seconds. Note that this information can also be stored in the registry.

OLE-DB
The latest alternative to ODBC from Microsoft has come about for two major reason. The first is the need for a Component Object Model-Based, Data-access technology, which will make it possible for the technology to become cross-platform rather than being confined to a Window environment. To make your data-access method useable across platforms. The distributed version of COM (DCOM) is currently in competition with CORBA (Common Object Request Broker Architecture) from a consortium of vendors. Only time will how these two products fare or whether they will merge in some form. The second desire for movement away from ODBC is that, although ODBC was designed, as an access method for relational databases (such as Oracle and SQL Server) there is need to be able to access data sources other than relational sources. Each source, whether it is an e-mail system, an object-oriented database, HTML files, or an office workflow system requires its own access method and new ways to link the various data sources together plans to phase it out and gradually replace it with a Universal Data Access technology (UDA) as part of the distributed network Architecture plans for the next few years. There are two fundamentally different approaches to accessing different types of data sources. One approach is to bring all the data into the database, which requires the database be extensible with a large variety of tools for accessing and processing the data. This naturally is SQL servers approach, and the database is already capable of handling spatial, graphics, video, and audio data as well as advanced text-handling capabilities. This universal approach fits in well with a data-warehouse environment in which your enterprise data is completely pulled into the database periodically. The alternative approach is to build a toolset that provides the same capability of universality but is external to the individual data sources. This approach needs to be a layered one with interoperable components that provides an interface to the data sources as well as allow processing and querying of the data once it is presented in a unified manner. Microsoft has taken this approach. Although these are two completing techniques, this does not rule out the possibility of them working together. In fact, the component approach can complement the database approach and provide any missing capabilities you feel you need. As an SQL Server user, you can get the best of both worlds. The UDA is designed for improved performance and scalability as well as flexibility and the improved stability of a simpler system with less parts to fail. The important part of the UDA to us as SQL Server and VB developer is that ODBC layer will be replaced with OLE-DB, an architecture consisting of a set of system-level data-access interfaces. OLE-DB is not conductive to access from VB, but then it is not really intended to be. Though they were available with MDAC 1.5, VB 6.0 provides us with the new models of ActiveX Data Objects (ADO) and Remote Data Services (RDS). VB 6.0 also provides a native OLE-DB provider. OLE-DB is a set of components-based interfaces for data management shows following figure. These are based on COM and consist of three categories of interface:

Data Providers: These are the interface to the actual data source; for example, they will expose the rows and columns of your SQL Server tables. Whatever data source use, the will be exposed as roust to the components that use them. The data providers take

over the role of both ODBC Driver Manager and database-specific drivers.
Data Consumers: Any components that accesses the data from a data provider is considered a data consumer. In this case, ActiveX Data Objects fulfills that role. Service components: These are components that provide some kind of processing capability to the system. A query processor would not normally be required if you were only accessing data from a SQL Server database because the native query processor would be much efficient. However, when using data sources without their own query processor or when linking data from SQL Server and another data sources, then this capability becomes more important. Visual Basic ActiveX Data Objects OLE-DB

ODBC Driver Manager ODBC Driver

OLE-DB Native Provider

Network Software

CHAPTER-6

System Development life cycle

The concept of life cycle model for software development is based on the idea of making projects more manageable and effective by breaking the work down into simpler and more controllable units. The project is broken down into several phases or stages. Each stage requires different plans, resources, methods, procedures and standards. Life-cycle model is useful for developer as well as user. From the developers point of view, it outlines the development strategy, whereas from the users point of view, it outlines the testing and acceptable testing phases and indicates to him, as to where his intervention is required. Life-cycle are basically of two-types: Sequential Cyclic In real life, a project may require mixture of several methods. E.G., a sequential approach to the low risk and stable requirement, and a cyclic approach for the high risk of unstable parts. Model I follow: I have followed the waterfall model (Sequential in nature) for my system, which have a series of phases, each of which is self contained mini project with defined endproducts.

WATERFALL DIAGRAM

Software Engineering Analysis Design Code Testing Maintenance

6.1 Initial Investigation


Initial investigation is the wan of determining whether the request is valid and feasible before recommendation is reached to do nothing, improve or modify the existing system or built a new one. Thus initial investigation has the objective of determining the validity of the users request for a candidate system and whether a feasibility study be conducted.
Project Proposal: The project was proposed by Span Diagnostics LTD, Sachin (Surat) Project Definition: The name of system is Enterprise Resource Package. The main objective of this system is to keep of all receipt & Dispatch of products, Instrument History Record, as well as Purchase Detail and their Quality Control. Corporation Mission: The aim of implementing the proposed system is: To computerized the Stock Information System. To bring the system on the uniform SQL-Server (RDBMS) and integrate with Production monitoring system. To provide user-friendly programs for capturing data as well as for presenting summarized data. To reduce lots of manual works and eliminate physical paper and movement.

Fact Finding
Following methods are used to collect relevant information: Initial guideline from Project Guide: After I was assigned this project my project guide initialized me to the system. He provided me general information about the organization, the general flow of the ERP and its functioning. He is already working on that project and he has given small part of his project. Who is computer engineer in Span Diagnostics LTD. Visit to user departments: After getting the initial information about ERP system, I obtained detailed information from various persons concerned. I also discussed their requirements and collected suggestion from them about the system. Continued interaction with Project Guide and people from other department: Through the duration of my project work I remained in continuous touch with both project guide and various person from the other department. They provided me with

additional information about the working and various issues involved in implementing new ideas. After investigation we concluded that the users proposal is valid and proposed system is feasible.

6.2 Feasibility Study


Depending on the result of initial investigation, problem is expanded to a more detailed feasibility study. System Objective: The main objective of this system is to keep track of purchase detail, Part Receipt/Dispatch Detail and provide timely output Eliminate physical movement of paper Bring the system on uniform SQL-Server platform and integrate with purchase monitoring and Raw material inventory system.

Develop the system in such a way that user has to feed minimum data. To built in proper security check in the system so that there is no unauthorized data access. To incorporate proper validation, so that there is no invalid data entered. Develop the system in such a way that it can manage large amount of data (VLDB). Keeping history data of last few years in generating trend analysis report. The Questions for feasibility analysis are: 1. What are the users demonstrable needs and how does a candidate system meet them? User wanted the computerized system as explain in previous topic. The candidate system will enable user to enter all receipt/dispatch detail of product, purchase detail, & Instrument Record card directly in pc rather than doing manually. That will too less frustrate work than to do it manually, system will also enable them to generate report about all transaction done by the company. So that the worker do not have to count stock manually by counting receipt & dispatch one by one transaction. Simply they have generate report through system and match the stock at store. 2. What resources are available for given system? Is the problem worth solving? As explain in previous topic that companys most of the work is done by computerized system, so company have already their center database for their Customers, Suppliers, Products, Employees etc. So I did not have to generate them again, I had to use that database for the system that I have generated. 3. What are the likely impact of the candidate system on the organization?

This system will save time of employee, that they spent on doing all that things manually. And this system will be more user friendly. The computerized invoice, purchase order, Stock report of the system will make good impact of company on the outside world.

Types of feasibility study


Technical The Company has Windows 2000 with SQL-Server. The proposed system is developed using existing configuration & thus technically feasible. Economic It satisfies the Economic Feasibility as no additional cost will be incurred upon the company. It compliments the existing system. Operational The system is menu driven therefore it becomes easy for the end users. Thus it satisfies the operational feasibility as minimum efforts are to be put in by end users. Social The system does not disturb the working style of the existing system of the company, contrary it becomes a part of the existing module. Thus it fully satisfies social feasibility.

Scope of the system


When the instrument are received from the customers or internal person for repairing system will store all the information regarding that person and action taken to repair that instrument. When the products are received or dispatch from store the system will maintain the available stock at store and inform the stock manager about the current status of stock When any requirement is made for product then the indent is taken by the system, that indent is checked by purchase manager and the y make decesion that the purchase order made on indent or not. The system will store all the information about indent and purchase order. After purchase order made, and the products are received from supplier the QC was done on that received material and if QC fails for three times then that product will send back to the supplier for replacement. System also take care about interdivisional transfer of products. Summary of stock details of material handled by person is also maintained.

6.3 Analysis
Analysis is the detailed study of the various operation performed by a system and their relationship within and outside of the system.

Structured Analysis:
Structure analysis is a set of technique and graphical tool that helps the analyst to develop a new kind of system specification that are easily understandable to the user.

The main objective of structure analysis is to organize the tasks associate with requirement determination so as to give accurate and complete development of a new or modified system.

Characteristics of structured analysis:


It is graphic The process is partitioned so that we have a clear picture of the progression from general to specific in the system flow. It is logical than physical It calls for rigorous study of the user area, a commitment that is often taken lightly in the traditional approach to the system analysis.

Data Flow Diagram:


Purchase

Receipt Purchas e

Stock At HO

QC

Other Issue Other Receipt

Indent

Part Receipt/Dispatch & Instrument History Record Card

Other Purchase2

Other Purchase1

Stock at Instrument Division

Purchase

Data Dictionary:
I have developed 9 master table for this system and 13 transaction table, they all are normalized. The list below describes the name of field, their type and size occupy for field.

Master Table
(1) Instrument Assignment Master

Field Code ProductCode

Type varchar varchar

Size 6 12

SerialNo EmployeeCode CustomerCode 12 CreatedDT

varchar varchar varchar WarrantyOverDate MakerID smalldatetime

12 12 datetime varchar 4 12 8

(2) Suppliers Master


SupplierCode SupplierName Address1 Address2 Address3 City PinCode State Country Phone1 Phone2 Fax Email WebAddress ContactPerson CSTNo STNo ExciseRegNo ClosedFlag AccountNo CreditPeriod LocalSupplier MakerID DtmCreated varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar bit int smallint varchar varchar datetime 4 2 1 12 8 30 30 1 30 30 20 10 30 30 15 15 15 30 40 60 30 12 40 30

(3) Employees Master


EmployeeCode EmployeeName Sex BirthDate JoiningDate LeavingDate LeavingReason EmployeeType Address1 Address2 Address3 Field varchar varchar varchar smalldatetime smalldatetime smalldatetime varchar varchar varchar varchar varchar Type 12 40 1 4 4 4 50 30 30 30 30 Size

City PinCode State Country Phone Email ClosedFlag FirstName MiddleName LastName DepotCode SiteCode MakerID DtmCreated

varchar varchar varchar varchar varchar varchar bit varchar varchar varchar varchar varchar varchar datetime 1

20 10 30 30 15 30 19 1 18 12 12 12 8

(4) Customers Master


CustomerCode CustomerAccountNo CustomerName Address1 Address2 Address3 City PinCode State Country Phone1 Phone2 Fax Email ContactPerson Discount CreditPeriod CreditLimit CustomerType CustomerCategory DrugLicenseNo CSTNo STNo SundryCustomer LocalCustomer CFormFlag EmployeeCode ManagerCode DepotCode SiteCode OutStandingAmount TempCreditLimit TempCreditDate ClosedFlag Field varchar int varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar money smallint money varchar varchar varchar varchar varchar bit varchar bit varchar varchar varchar varchar money money smalldatetime bit Type 4 40 30 30 30 20 10 30 30 15 15 15 30 40 8 2 8 1 30 20 30 30 1 1 1 12 12 12 12 8 8 4 1 Size 12

MakerId DtmCreated

varchar datetime

12 8

(5) Part Master


ProductCode ParentProductCode ParentCompanyCode InstrumentCode OpeningStock Currency FOB Rate FOBX Date1 No WithFreight Duty COGRs COGQty COGDol COGRupees NRP GP COGQtyRupees QtyStock StoredStock DailyStock NRPQty FREQ MinQty Status MakerID DtmCreated varchar varchar varchar varchar real char real real real varchar char real real real real real real real real real real varchar real real real real char char datetime 20 20 20 20 4 4 4 4 4 10 10 4 4 4 4 4 4 4 4 4 4 10 4 4 4 4 10 10 8

(6) Currency Master


Currency Value char real 10 4

(7) Products Master


Field ProductCode ProductName ProductCategory ProductGroup ExciseHeading PackSize Field Type varchar varchar varchar varchar varchar float Type Size 12 40 50 30 10 8 Size

Upper_PackSize PackingUnit ShelfLife StdRate StdBatchSize StdBatchUnit MinimumQty OpeningQty OpeningFree ReceivedQty ReceivedFree BookedQty BookedFree DispatchQty DispatchFree CTaxable LTaxable CSTaxRate LSTaxRate TurnoverTaxRate SurchargeRate StorageDescription LaunchDate Intermediate Manufactured Traded ConversionFactor ClosedFlag MakerID DtmCreated ItemNo DrAccountNo FinishingOpeningQty FinishingInQty FinishingOutQty SalesTaxYN BOMBatchSize ConversionCost ProcessLoss DirectLabour MinimumOverhead MaximumOverhead LastPurchaseDate LastPurchaseRate LastImportDate LastImportRate

float varchar smallint money float varchar int int int int int int int int int bit bit money money money money varchar datetime bit bit bit int bit varchar datetime int int int int int bit float money int money money money datetime money datetime money

8 5 2 8 8 5 4 4 4 4 4 4 4 4 4 1 1 8 8 8 8 12 8 1 1 1 4 1 12 8 4 4 4 4 4 1 8 8 4 8 8 8 8 8 8 8

(8) User Account Master


UserCode UserID Field varchar varchar Type 5 15 Size

UserName PWS MakerID CreatedDt

varchar varchar varchar datetime

30 50 30 8

(9) User Accesses Master


UserCode OptionName Access MakerID CreatedDt varchar varchar bit varchar datetime 5 50 1 30 8

Transaction Table
(1) Instrument_History
Code Date1 CardNo SerialNo Accesories ComplaintBySender ActualComplaint Reason Action PartsReplaced Charges AttendedBy1 AttendedBy2 AttendedBy3 AttendedBy4 QCDoneBy1 QCDoneBy2 QCDoneBy3 QCDoneBy4 Time1 FinalStatus Remarks ToFrom1 EmployeeCode1 Mode1 Place1 ReceivingDate DispatchDate ToFrom2 EmployeeCode2 Mode2 Place2 Field varchar datetime varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar datetime datetime varchar varchar varchar varchar Type 15 8 15 15 80 80 80 100 180 60 10 20 20 20 20 20 20 20 20 10 40 50 50 20 50 20 8 8 50 20 50 20 Size

Warranty AMC ChargedService Stock RGS MakerID DtCreated

bit bit bit bit varchar varchar datetime

1 1 1 1 20 15 8

(2)

Part_Receipt_Parent
TransactionNo Engineer HeadQuater Date1 Remarks MakerID DtmCreated varchar varchar varchar datetime varchar varchar datetime 10 25 20 8 100 50 8

(3)

Part_Receipt_Child
SrNo TransactionNo ReceiptDate ProductCode Schedule Quantity InstrumentCode SerialNo CustomerCode SupplierCode Invoice InvoiceNo Warranty SpecialRemarks MakerID DtmCreated int varchar datetime varchar char real varchar varchar varchar varchar char varchar varchar varchar varchar datetime 4 12 8 20 10 4 20 10 20 20 10 20 10 100 50 8

(4)

IndentParent
IndentNo IndentDate GivenTo PreparedBy Closed Remark MakerId CreatedDT TransactionNo varchar datetime varchar varchar bit varchar varchar smalldatetime real 15 8 20 30 1 50 12 4 4

(5)

IndentChild

Field IndentNo ProductCode Quantity DeliverySchedule SpecialRemarks SupplierCode MakerId CreatedDT TransactionNo

Type varchar varchar float float varchar varchar varchar smalldatetime real

Size 15 12 8 8 30 12 12 4 4

(6)

POParent
PONo PODate Category Import SupplierCode Closed Remarks PRNo PRDate EnqNo EnqDate QtnNo QtnDate IndDept CapitalItem ProductionItem ConsumableStores PackingMaterials PrintingMaterials Other Transport TradeDiscount Excise1 Excise2 CST ST PaymentTerms DeliverySchedule FaxNo FaxTo FaxCountry Attn From1 Currency Price Documentation5 Field varchar smalldatetime varchar bit varchar bit nvarchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar real varchar Type 18 4 12 1 12 1 50 15 10 15 10 15 10 15 10 10 10 10 10 10 30 10 10 10 10 10 50 40 15 25 20 25 25 5 4 20 Size

Documentation6 Documentation7 Labelling5 Labelling6 Labelling7 Instruction1 Instruction2 Instruction3 Instruction4 Instruction5 MakerId CreatedDT TransactionNo

varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar smalldatetime real

20 20 20 20 20 20 20 20 20 20 12 4 4

(7)

POChild
PONo IndentNo ProductCode CategoryNo Unit POQuantity Rate Per Currency SupplierCode MakerID CreatedDT TransactionNo varchar varchar varchar varchar varchar float float varchar varchar nvarchar varchar smalldatetime real 18 15 12 12 7 8 8 5 2 12 12 4 4

(8)

ReceiptParent
ReceiptNo ReceiptDate Remarks MakerID CreatedDT TransactionNo varchar datetime varchar varchar smalldatetime real 12 8 50 12 4 4

(9)

ReceiptChild
ReceiptNo PONo ProductCode ReceiptQuantity ReceiptRate SerialNo DeliveryChallanNo DeliveryChallanDate ExpiryDate Field varchar varchar varchar float float varchar varchar datetime datetime Type 12 18 12 8 8 15 15 8 8 Size

WarrantyPeriod SupplierCode QC QCAttempt MakerID CreatedDT TransactionNo

int varchar char int varchar smalldatetime real

4 12 1 4 12 4 4

(10) OTIParent
OTINo OTIDate Reason CustomerCode Remarks OtherChargeRemark OtherCharges Debit TotalAmount BranchCode TransactionNo varchar datetime varchar varchar varchar varchar real bit real varchar real 12 8 50 12 50 50 4 1 4 1 4

(11) OTIChild
OTINo ProductCode IssuedQuantity IssuedRate SerialNo AvailableQuantity MakerID CreatedDT TransactionNo varchar varchar real real varchar real varchar datetime real 12 12 4 4 15 4 12 8 4

(12) OTRParent
OTRNo OTRDate CustomerCode TotalAmount Reason Remarks BranchCode Credit MakerID CreatedDT TransactionNo varchar datetime varchar real varchar varchar varchar bit varchar smalldatetime real 10 8 12 4 50 50 1 1 12 4 4

(13) OTRChild
Field Type Size

OTRNo PONo ProductCode ReceiptQuantity ReceiptRate SerialNo DeliveryChallanNo DeliveryChallanDate ExpiryDate WarrantyPeriod SupplierCode CreatedDT MakerID TransactionNo

varchar varchar varchar float float varchar varchar datetime datetime int varchar smalldatetime varchar real

12 12 12 8 8 15 15 8 8 4 12 4 12 4

Information gathering:
I have collected all the required information about user staff, the work- flow of system. Work-flow focuses on what happens to the data thorough various points in a system. This have been shown by data flow diagram. I have used various information tools for gathering information about firm. That are review of literature, procedure, and forms that are used by the company. I have done on site observation many times for information. It is process of recognizing and noting people, objects, and occurrence to obtain information. I have used direct observation type of observation, in this type observation takes place when the analyst actually observe the subject or the system at work place. On site observation has limitation when we need to learn about people's perceptions, feelings, or motivation, however. Therefor I have also done the questionnaires to the various employee of the company.

Cost benefit analysis:


In developing cost estimates for a system, we need to consider several cost elements. 1. No hardware cost because company already using the computers, printers and other related hardware required for system. 2. No Personnel cost because the staff that are doing the all the things manually are involved for this computerized system. And also no development charge because I am under training. 3. No facility cost because the system is installed in already working computer, there is no need to new site. 4. Only operating cost is that salary paid for data-entry and parer, ribbon for printing purpose. 5. supply cost is variable that increase with use of paper, ribbons, disks and like.

6.4 Design
logical and physical design:

system design goes thorough two phases of development: logical and physical design. A data flow diagram shows the logical design of system and defines the boundaries of the system. When analyst prepare the logical system design, they specify user needs at a level of detail that virtually determines the information flow into and out of the system and the required data resources

Input Design:
I have initially captured all original paper related to the system. That are used to design the input design, the sequence of field, the type of field, their size etc. Input media for the system is keyboard, and the data entry in the system is done online, that make use of a processor that accepts commands and data from the operator thorough keyboard. I have design the menu form for the system that simplifies computer data entry or access.

Output Design:
Computer output is the most important and direct source of information to the user. Printers are used for the output for this system. I have design the output form in three different application and that are Microsoft Excel, Crystal Report as well as in DOS-Editor. The output describe the various detail about companys transaction regarding to users requirement.

Form design:
A form is generally classified by what it does in the system, and that are Action form, memory form, and Report form. I have used all three types of form in System form design. The characteristics of the form are as follows. 1. the form title clarify clearly what it does in the system. 2. The form is easy to use. 3. Physical factors are also considered. 4. Order of data entry is maintained. 5. The size of field for data entry is maintained, to make data entry easy. 6. The instruction is used wherever required.

Visual layout of System form.


ERP

Master

Transaction

Reports

Instrument Assignment

Purchase

Instrument

Purchase

Purchase Suppliers Indent Part Receipt Dispatch

Employees

Purchase (Local) Purchase (Import)

Instrument History record card

Customers

Part

Receipt

Currency

Receipt QC

Products

Other Issue

Other Receipt

6.5

Code

As I have prepare my self for generate the system as per the requirement, so have started to implement the code. I have try my level best to generate extreme programming for this system. I will discuss only the View used by the system, no code at all!

(1) CREATE VIEW dbo.BalanceQty AS SELECT TempDispatch.Engineer, TempDispatch.ProductName, SUM(ISNULL(TempDispatch.qty, 0) - ISNULL(TempReceive.qty, 0)) AS balanceqty FROM TempDispatch FULL OUTER JOIN TempReceive ON TempDispatch.Engineer = TempReceive.Engineer AND TempDispatch.ProductCode = TempReceive.ProductCode GROUP BY TempDispatch.Engineer, TempDispatch.ProductName (2) CREATE VIEW dbo.[City] AS SELECT CityName AS City FROM CCData.dbo.City (3) CREATE VIEW dbo.Competitors AS SELECT * FROM InstERPSachin.dbo.Competitors (4) CREATE VIEW dbo.Customers AS SELECT InstERPSachin.dbo.Customers.* FROM InstERPSachin.dbo.Customers (5) CREATE VIEW dbo.Employees AS SELECT InstERPSachin.dbo.Employees.* FROM InstERPSachin.dbo.Employees (6) CREATE VIEW dbo.ExcelReport AS SELECT DISTINCT OpeningStock, Part_Master.ProductCode, QtyStock FROM Part_Master, Part_Receipt_Child WHERE Part_Master.ProductCode = Part_Receipt_Child.ProductCode (7) CREATE VIEW dbo.Fill_Customers AS SELECT Employees1.EmployeeName AS ManagerName, Customers.*, Employees.EmployeeName AS EmployeeName FROM Customers LEFT OUTER JOIN Employees ON Customers.EmployeeCode = Employees.EmployeeCode LEFT OUTER JOIN Employees Employees1 ON Customers.ManagerCode = Employees1.EmployeeCode

(8)

CREATE VIEW dbo.Fill_Instrument_Assignment AS SELECT InstrumentAssignment.*, Products.ProductName AS ProductName, Employees.EmployeeName AS EmployeeName, Customers.CustomerName AS CustomerName FROM InstrumentAssignment LEFT OUTER JOIN Customers ON InstrumentAssignment.CustomerCode = Customers.CustomerCode LEFT OUTER JOIN Employees ON InstrumentAssignment.EmployeeCode = Employees.EmployeeCode LEFT OUTER JOIN Products ON InstrumentAssignment.ProductCode = Products.ProductCode

(9) CREATE VIEW dbo.Fill_Instrument_History AS SELECT Products.ProductName, Customers.CustomerName, Customers.Address1, Customers.City, Customers.State, Customers.Country, Customers.Phone1, Customers.Fax, InstrumentAssignment.ProductCode, InstrumentAssignment.CustomerCode, Customers.Address2, Customers.Address3, Customers.Phone2, Instrument_History.* FROM Products RIGHT OUTER JOIN InstrumentAssignment ON Products.ProductCode = InstrumentAssignment.ProductCode LEFT OUTER JOIN Customers ON InstrumentAssignment.CustomerCode = Customers.CustomerCode RIGHT OUTER JOIN Instrument_History ON InstrumentAssignment.SerialNo = Instrument_History.SerialNo (10) CREATE VIEW dbo.Fill_Part_Master AS SELECT Part_Master.*, Products.ProductName AS Productname, Products1.ProductName AS Instrumentname, Competitors.CompanyName AS companyname FROM Part_Master LEFT OUTER JOIN Products ON Part_Master.ProductCode = Products.ProductCode LEFT OUTER JOIN Products Products1 ON Part_Master.InstrumentCode = Products1.ProductCode LEFT OUTER JOIN Competitors ON Part_Master.ParentCompanyCode = Competitors.CompanyCode (11) CREATE VIEW dbo.Fill_Part_Received_Child

AS SELECT Products.ProductName, Suppliers.SupplierName, Products1.ProductName AS InstrumentName, Part_Receipt_Child.*, Customers.CustomerName AS CustomerName, Customers.City AS Place FROM Part_Receipt_Child LEFT OUTER JOIN Suppliers ON Part_Receipt_Child.SupplierCode = Suppliers.SupplierCode LEFT OUTER JOIN Customers ON Part_Receipt_Child.CustomerCode = Customers.CustomerCode LEFT OUTER JOIN Products ON Part_Receipt_Child.ProductCode = Products.ProductCode LEFT OUTER JOIN Products Products1 ON Part_Receipt_Child.InstrumentCode = Products1.ProductCode (12) CREATE VIEW dbo.Instrument_History_Search AS SELECT Code, CONVERT(varchar(12), Date1, 3) AS Date1, CardNo, SerialNo, Accesories, ComplaintBySender, ActualComplaint, Reason, Action, PartsReplaced, Charges, AttendedBy1, AttendedBy2, AttendedBy3, AttendedBy4, QCDoneBy1, QCDoneBy2, QCDoneBy3, QCDoneBy4, Time1, FinalStatus, Remarks, ToFrom1, EmployeeCode1, Mode1, Place1, CONVERT(varchar(12), ReceivingDate, 3) AS ReceivingDate, CONVERT(varchar(12), DispatchDate, 3) AS DispatchDate, ToFrom2, EmployeeCode2, Mode2, Place2, Warranty, AMC, ChargedService, Stock, RGS, MakerID, DtCreated FROM Instrument_History (13) CREATE VIEW dbo.InstrumentAssignment AS SELECT * FROM InstERPSachin.dbo.InstrumentAssignment (14) CREATE VIEW dbo.Part_Receipt_Dispatch_Search AS SELECT TOP 100 PERCENT Part_Receipt_Parent.TransactionNo, Part_Receipt_Parent.Engineer, Part_Receipt_Parent.HeadQuater, CONVERT(varchar(12), Part_Receipt_Parent.Date1, 3) AS Date1, Part_Receipt_Parent.Remarks, Fill_Part_Received_Child.ProductName, Fill_Part_Received_Child.SupplierName, Fill_Part_Received_Child.InstrumentName, Fill_Part_Received_Child.SrNo, CONVERT(Varchar(12), Fill_Part_Received_Child.ReceiptDate, 3) AS ReceiptDate,

Fill_Part_Received_Child.ProductCode, Fill_Part_Received_Child.Schedule, Fill_Part_Received_Child.Quantity, Fill_Part_Received_Child.InstrumentCode, Fill_Part_Received_Child.SerialNo, Fill_Part_Received_Child.CustomerCode, Fill_Part_Received_Child.SupplierCode, Fill_Part_Received_Child.Invoice, Fill_Part_Received_Child.InvoiceNo, Fill_Part_Received_Child.Warranty, Fill_Part_Received_Child.SpecialRemarks, Fill_Part_Received_Child.CustomerName, Fill_Part_Received_Child.Place FROM Part_Receipt_Parent LEFT OUTER JOIN Fill_Part_Received_Child ON Part_Receipt_Parent.TransactionNo = Fill_Part_Received_Child.TransactionNo (15) CREATE VIEW dbo.PendingIndents AS SELECT TotalIndentQuantity.IndentNo, TotalIndentQuantity.ProductCode, TotalIndentQuantity.IndentQuantity, ISNULL(qryTotalPOQuantityAgainstIndent.TotalPOQuantity, 0) AS POQuantity, products.ProductName, products.StdRate, TotalIndentQuantity.SupplierCode, Suppliers.SupplierName, products.PackingUnit, TotalIndentQuantity.GivenTo FROM TotalIndentQuantity INNER JOIN products ON TotalIndentQuantity.ProductCode = products.ProductCode LEFT OUTER JOIN Suppliers ON TotalIndentQuantity.SupplierCode = Suppliers.SupplierCode LEFT OUTER JOIN QryTotalPOQuantityAgainstIndent ON TotalIndentQuantity.SupplierCode = qryTotalPOQuantityAgainstIndent.SupplierCode AND TotalIndentQuantity.ProductCode = qryTotalPOQuantityAgainstIndent.ProductCode AND TotalIndentQuantity.IndentNo = qryTotalPOQuantityAgainstIndent.IndentNo WHERE (TotalIndentQuantity.IndentQuantity ISNULL(qryTotalPOQuantityAgainstIndent.TotalPOQuantity, 0) > 0) (16) CREATE VIEW dbo.PendingPOs AS SELECT TotalPOQuantity.POQuantity, SUM(ISNULL(ReceiptChild.ReceiptQuantity, 0)) AS ReceiptQuantity, TotalPOQuantity.PONo,

TotalPOQuantity.SupplierCode, Suppliers.SupplierName, TotalPOQuantity.ProductCode, products.ProductName, Products.StdRate FROM Suppliers INNER JOIN TotalPOQuantity ON Suppliers.SupplierCode = TotalPOQuantity.SupplierCode INNER JOIN Products ON TotalPOQuantity.ProductCode = products.ProductCode LEFT OUTER JOIN ReceiptChild ON TotalPOQuantity.PONo = ReceiptChild.PONo AND TotalPOQuantity.ProductCode = ReceiptChild.ProductCode AND TotalPOQuantity.SupplierCode = ReceiptChild.SupplierCode GROUP BY TotalPOQuantity.POQuantity, TotalPOQuantity.PONo, TotalPOQuantity.SupplierCode, Suppliers.SupplierName, TotalPOQuantity.ProductCode, products.ProductName, Products.StdRate HAVING (TotalPOQuantity.POQuantity SUM(ISNULL(ReceiptChild.ReceiptQuantity, 0)) > 0) (17) CREATE VIEW dbo.[ProductCategories] AS SELECT * FROM CCData.dbo.ProductCategories (18) CREATE VIEW dbo.Products1 AS SELECT * FROM CCData.dbo.Products (19) CREATE VIEW dbo.QryAvilableProductStock AS SELECT qryTotalReceiptProductStock.ProductCode, qryTotalReceiptProductStock.SerialNo, qryTotalReceiptProductStock.ExpiryDate, qryTotalReceiptProductStock.ReceiptQuantity, ISNULL(qryTotalIssuedProductStock.IssuedQuantity, 0) AS IssuedQuantity, qryTotalReceiptProductStock.ReceiptQuantity ISNULL(qryTotalIssuedProductStock.IssuedQuantity, 0) AS AvailableQuantity FROM qryTotalReceiptProductStock LEFT OUTER JOIN qryTotalIssuedProductStock ON qryTotalReceiptProductStock.ProductCode = qryTotalIssuedProductStock.ProductCode AND qryTotalReceiptProductStock.SerialNo = qryTotalIssuedProductStock.SerialNo

(20) CREATE VIEW dbo.qryIndentReceiptSummaryDetail AS SELECT IndentParent.IndentNo, IndentParent.IndentDate, IndentChild.ProductCode, products.ProductName, IndentChild.Quantity, IndentChild.DeliverySchedule, IndentParent.GivenTo, IndentParent.PreparedBy, IndentParent.Closed AS IndentClosed, POChild.PONo, POParent.PODate, POParent.Closed AS POClosed, POChild.POQuantity, POChild.Rate, POChild.SupplierCode, ReceiptParent.ReceiptNo, ReceiptParent.ReceiptDate, ReceiptChild.ReceiptQuantity, ReceiptChild.ReceiptRate, ReceiptChild.SerialNo, ReceiptChild.QC, ReceiptChild.QCAttempt, Suppliers.SupplierName FROM POParent INNER JOIN POChild ON POParent.PONo = POChild.PONo INNER JOIN Suppliers ON POChild.SupplierCode = Suppliers.SupplierCode RIGHT OUTER JOIN IndentParent INNER JOIN IndentChild ON IndentParent.IndentNo = IndentChild.IndentNo INNER JOIN products ON IndentChild.ProductCode = products.ProductCode ON POChild.SupplierCode = IndentChild.SupplierCode AND POChild.IndentNo = IndentChild.IndentNo AND POChild.ProductCode = IndentChild.ProductCode AND POChild.IndentNo = IndentParent.IndentNo LEFT OUTER JOIN ReceiptChild INNER JOIN ReceiptParent ON ReceiptChild.ReceiptNo = ReceiptParent.ReceiptNo ON POChild.ProductCode = ReceiptChild.ProductCode AND POParent.PONo = ReceiptChild.PONo (21) CREATE VIEW dbo.qryQuantityWiseIndentSummary AS SELECT TOP 100 PERCENT IndentNo, IndentDate, ProductCode, ProductName, Quantity, SUM(ISNULL(POQuantity, 0)) AS POQuantity, SUM(ISNULL(ReceiptQuantity, 0)) AS ReceiptQuantity FROM dbo.qryReportIndentReceiptSummary GROUP BY IndentNo, IndentDate, ProductCode,

ProductName, Quantity HAVING (Quantity - SUM(ISNULL(ReceiptQuantity, 0)) > 0) ORDER BY IndentNo (22) CREATE VIEW dbo.QryReportIndent AS SELECT IndentParent.IndentNo, IndentParent.IndentDate, IndentParent.GivenTo, IndentParent.PreparedBy, IndentParent.Remark, IndentChild.ProductCode, products.ProductName, IndentChild.Quantity, IndentChild.DeliverySchedule, IndentChild.SpecialRemarks FROM IndentParent INNER JOIN IndentChild ON IndentParent.IndentNo = IndentChild.IndentNo INNER JOIN products ON IndentChild.ProductCode = products.ProductCode (23) CREATE VIEW dbo.qryReportIndentReceiptSummary AS SELECT IndentParent.IndentNo, IndentParent.IndentDate, IndentChild.ProductCode, products.ProductName, IndentChild.Quantity, IndentChild.DeliverySchedule, IndentParent.GivenTo, IndentParent.PreparedBy, POChild.PONo, POParent.PODate, POChild.POQuantity, POChild.Rate, POChild.SupplierCode, ReceiptParent.ReceiptNo, ReceiptParent.ReceiptDate, SUM(ReceiptChild.ReceiptQuantity) AS ReceiptQuantity FROM POParent INNER JOIN POChild ON POParent.PONo = POChild.PONo INNER JOIN Suppliers ON POChild.SupplierCode = Suppliers.SupplierCode RIGHT OUTER JOIN IndentParent INNER JOIN IndentChild ON IndentParent.IndentNo = IndentChild.IndentNo INNER JOIN products ON IndentChild.ProductCode = products.ProductCode ON POChild.SupplierCode = IndentChild.SupplierCode AND POChild.IndentNo = IndentChild.IndentNo AND POChild.ProductCode = IndentChild.ProductCode AND POChild.IndentNo = IndentParent.IndentNo LEFT OUTER JOIN ReceiptChild INNER JOIN ReceiptParent ON ReceiptChild.ReceiptNo = ReceiptParent.ReceiptNo

ON POChild.ProductCode = ReceiptChild.ProductCode AND POParent.PONo = ReceiptChild.PONo GROUP BY IndentParent.IndentNo, IndentParent.IndentDate, IndentChild.ProductCode, products.ProductName, IndentChild.Quantity, IndentChild.DeliverySchedule, IndentParent.GivenTo, IndentParent.PreparedBy, POChild.PONo, POParent.PODate, POChild.POQuantity, POChild.Rate, POChild.SupplierCode, ReceiptParent.ReceiptNo, ReceiptParent.ReceiptDate (24) CREATE VIEW dbo.qryTotalIssuedProductStock AS SELECT ProductCode, SerialNo, SUM(IssuedQuantity) AS IssuedQuantity FROM dbo.OTIChild GROUP BY ProductCode, SerialNo UNION SELECT ProductCode, SerialNo, SUM(DispatchQty + DispatchFree) AS IssuedQuantity FROM dbo.AdviseChild GROUP BY ProductCode, SerialNo (25) CREATE VIEW dbo.qryTotalPOQuantityAgainstIndent AS SELECT IndentNo, ProductCode, SUM(POQuantity) AS TotalPOQuantity, SupplierCode FROM POChild GROUP BY IndentNo, ProductCode, SupplierCode (26) CREATE VIEW dbo.QryTotalReceiptProductStock AS SELECT ProductCode, SerialNo, SUM(ReceiptQuantity) AS ReceiptQuantity, ExpiryDate FROM qryTotalReceiptProductStockUnion GROUP BY ProductCode, SerialNo, ExpiryDate CREATE VIEW dbo.qryTotalReceiptProductStockUnion AS SELECT ProductCode, SerialNo, ReceiptQuantity, ExpiryDate FROM ReceiptChild WHERE QC = 'P' UNION SELECT ProductCode, SerialNo, ReceiptQuantity, ExpiryDate FROM OTRChild

(27) CREATE VIEW dbo.ReportAvailableStock AS SELECT ISNULL(ReportAvailableStockReceipt.Receipt, 0) - ISNULL(ReportAvailableStockDispatch.Dispatch, 0) AS AvailableStcok, Part_Master.OpeningStock, Products.ProductName, ReportAvailableStockReceipt.ProductCode FROM ReportAvailableStockReceipt LEFT OUTER JOIN Products ON ReportAvailableStockReceipt.ProductCode = Products.ProductCode LEFT OUTER JOIN ReportAvailableStockDispatch LEFT OUTER JOIN Part_Master ON ReportAvailableStockDispatch.ProductCode = Part_Master.ProductCode ON ReportAvailableStockReceipt.ProductCode = ReportAvailableStockDispatch.ProductCode (28) create view ReportAvailableStockDispatch as SELECT ProductName, ProductCode, SUM(Quantity) AS Dispatch From Fill_Part_Received_Child GROUP BY ProductName, ProductCode, Schedule HAVING (Schedule = 'dispatch') (29) create view ReportAvailableStockReceipt as SELECT ProductCode, SUM(Quantity) AS Receipt From Part_Receipt_Child GROUP BY ProductCode, Schedule HAVING (Schedule = 'Receive') (30) CREATE VIEW dbo.ReportPartReceiptDispatch AS SELECT TOP 100 PERCENT Part_Receipt_Parent.TransactionNo, Part_Receipt_Parent.Engineer, Part_Receipt_Parent.HeadQuater, Part_Receipt_Parent.Date1, Part_Receipt_Parent.Remarks, Fill_Part_Received_Child.ProductName, Fill_Part_Received_Child.SupplierName, Fill_Part_Received_Child.InstrumentName, Fill_Part_Received_Child.SrNo, Fill_Part_Received_Child.ReceiptDate, Fill_Part_Received_Child.ProductCode, Fill_Part_Received_Child.Schedule, Fill_Part_Received_Child.Quantity, Fill_Part_Received_Child.InstrumentCode, Fill_Part_Received_Child.SerialNo, Fill_Part_Received_Child.CustomerCode, Fill_Part_Received_Child.SupplierCode, Fill_Part_Received_Child.Invoice, Fill_Part_Received_Child.InvoiceNo, Fill_Part_Received_Child.Warranty, Fill_Part_Received_Child.SpecialRemarks, Fill_Part_Received_Child.CustomerName, Fill_Part_Received_Child.Place FROM Part_Receipt_Parent LEFT OUTER JOIN

Fill_Part_Received_Child ON Part_Receipt_Parent.TransactionNo = Fill_Part_Received_Child.TransactionNo (31) CREATE VIEW dbo.[Suppliers] AS SELECT * FROM ccdata.dbo.suppliers (32) create view TempDispatch as (SELECT Part_Receipt_Parent.Engineer,SUM(Part_Receipt_Child.Quantity) AS qty,Products.ProductName, Part_Receipt_Child.Schedule,Products.ProductCode FROM Products RIGHT OUTER JOIN Part_Receipt_Child ON Products.ProductCode = Part_Receipt_Child.ProductCode RIGHT OUTER JOIN Part_Receipt_Parent ON Part_Receipt_Child.TransactionNo = Part_Receipt_Parent.TransactionNo GROUP BY Part_Receipt_Parent.Engineer, Products.ProductName, Part_Receipt_Child.Schedule, Products.ProductCode HAVING (Part_Receipt_Child.Schedule = 'DISPATCH')) (33) create view TempReceive as (SELECT Part_Receipt_Parent.Engineer,SUM(Part_Receipt_Child.Quantity) AS qty,Products.ProductName, Part_Receipt_Child.Schedule,Products.ProductCode FROM Products RIGHT OUTER JOIN Part_Receipt_Child ON Products.ProductCode = Part_Receipt_Child.ProductCode RIGHT OUTER JOIN Part_Receipt_Parent ON Part_Receipt_Child.TransactionNo = Part_Receipt_Parent.TransactionNo GROUP BY Part_Receipt_Parent.Engineer, Products.ProductName, Part_Receipt_Child.Schedule, Products.ProductCode HAVING (Part_Receipt_Child.Schedule = 'RECEIVE')) (34)CREATE VIEW dbo.TotalDispatch AS SELECT ProductCode, SUM(Quantity) AS Quantity2 FROM Part_Receipt_Child GROUP BY ProductCode, Schedule HAVING (Schedule = 'dispatch') (35) CREATE VIEW dbo.TotalIndentQuantity AS SELECT IndentChild.IndentNo, IndentChild.ProductCode, SUM(IndentChild.Quantity) AS IndentQuantity, IndentChild.SupplierCode, IndentParent.GivenTo FROM IndentChild INNER JOIN IndentParent ON IndentChild.IndentNo = IndentParent.IndentNo WHERE (IndentParent.Closed = 0) GROUP BY IndentChild.IndentNo, IndentChild.ProductCode, IndentChild.SupplierCode, IndentParent.GivenTo (36) CREATE VIEW dbo.TotalParts AS SELECT ISNULL(TotalReceipt.Quantity1, 0)

- ISNULL(TotalDispatch.Quantity2, 0) AS TotalStock, TotalReceipt.ProductCode, Part_Master.OpeningStock FROM TotalDispatch LEFT OUTER JOIN Part_Master ON TotalDispatch.ProductCode = Part_Master.ProductCode RIGHT OUTER JOIN TotalReceipt ON TotalDispatch.ProductCode = TotalReceipt.ProductCode GROUP BY ISNULL(TotalReceipt.Quantity1, 0) - ISNULL(TotalDispatch.Quantity2, 0), TotalReceipt.ProductCode, Part_Master.OpeningStock, TotalDispatch.ProductCode (37) CREATE VIEW dbo.TotalPOQuantity AS SELECT POChild.PONo, POChild.ProductCode, SUM(POChild.POQuantity) AS POQuantity, POChild.SupplierCode FROM POChild INNER JOIN POParent ON POChild.PONo = POParent.PONo WHERE (POParent.Closed = 0) GROUP BY POChild.PONo, POChild.ProductCode, POChild.Rate, POChild.SupplierCode (38) CREATE VIEW dbo.TotalReceipt AS SELECT ProductCode, SUM(Quantity) AS Quantity1 FROM Part_Receipt_Child GROUP BY ProductCode, Schedule, ReceiptDate HAVING (Schedule = 'RECEIVE')

6.6

Testing:

No program or system is perfect; communication between the user and the designer is not always complete or clear, and time is usually short. The result is error and more errors. The number and nature of errors in new design depend on many factors. 1. I have done unit testing of system to check whether the particular unit is functioning as requirement or not, if any error occurred them it was resolved at a moment. 2. I have also done the sequential testing. 3. After that I have also done the system testing by running the system entirely. 4. Acceptance testing is also done by running the system with live data by the actual user.

6.7

Maintenance

I have done the maintenance of the system as per the users requirement, and will do.

CHAPTER-7

Working of System

Now we will move from the development issue to practical use of the system, means how to use the system Here we will first Main menu and then master form and how to use them

Start-up Form (Login)


This form is start up form of the application, here you must enter the user id and password if exist. If you correctly enter all things you will enter in main application.

Main Menu:

This main menu contains the shortcut to all the application form. This menu has 5 Tabs that are as follow: 1. Master Tab: that contains all the master form used in the system

2. User Tab: that contains the user master from where you can create the new user for the application and as well as you can change the existing password. 3. Transaction Tab: contains the part receipt/dispatch and instrument history record card forms. 4. Purchase Tab: contains all the form related to the purchase. 5. Skin Tab: from which you can change the screen layout of the system.

Common things in all form:


(1)

(2) (3)

(4) (5)

If you want to add new record then click on add new button, then form will clear for you. Now add all necessary detail in the form, and click on the save button. Record will be stored and will give you a message that record is saved. After clicking add new button if you dont want to add new record then click on cancel button. If you want to edit any record then you will have to directly makes change on the form, the save button will visible for you, and making changes click on the save button the edited record will be updated in the database. If you want to search for particular record then click on search button that is displayed at upper-top corner of the form. The new frame will be visible for you, now you have to select field in left side combo by clicking it. Search will be performed regarding to that field. Now enter the value for which you want to search in the right side textbox in the form. The data grid at the bottom of that frame will filled up by searched result, if search not found then it would be blank. Now click on searched result to bring it on the main form. To close the search frame click again on search button you can also use ESC key. If you want to move through the records then click on any four button having caption of <<, <, >, >>. If you want to delete the record just click on the delete button, the current record displayed on the form will be deleted. Note: you cannot delete the record in master form because the Transaction regarding to that record wills loss, means loss of data. You cannot delete record from transaction form for which transaction is held in the another form. For Example-you cannot delete indent entry on which PO is released, to delete that record you have to delete other related records in the another forms. To exit form the form click on Exit button displayed at the right-bottom of the form

(6)

Master Forms
(1) Instrument Assignment
This form stores all the information about the instrument assignment. Figure:

(2)

Supplier Master
This form contains all the information about the Suppliers; this form has two tabs you have to enter all the required information in both tabs.

(3)

Employees Master
This form contains all the information about the employees of the company

(4)

Customers Master
This form contains all the information about the customers of the company.

(5)

Part Master
This form contains information about the various part produced by the company. The related value automatically changes when you enter value in its

related field. It automatically counts the quantity in stock when you select product code

(6)

Currency Master
This form contains the currency used by the company and its related value.

(7) Products Master


This form contains all the related information related to the products.

(7)

User Master:
This form is used to create new user for the application, and also specify the permissions for the various users of application. If you specify the YES in front of particular option then that user are authorized for access that form otherwise not.

(8)

Change Password
This form is used to change the password of the user who has currently logon. For that you have enter your old password, and two times new password and then click on OK button. Your password will be changed. The password is case sensitive, so be careful

Transaction Forms
(1) Instrument History Record Card

This form contains all the information about the instrument that received at instrument division for repairing purpose. Here you have to enter just serial no of instrument and it will display all the information about the customer and its warranty, AMC Period etc. You have to enter the process, which is done, on the instrument at instrument division.

(2) Part Receipt Dispatch


This form contains all the information about the part, which are received and dispatched at instrument division.

(3) Indent
This form contains information about the indent generated by various employees (Department).

(4) Purchase(Local)
This form contains information about the purchase order against Indent if the purchase is local

(5) Purchase(Import)
This form contains information about the purchase order against Indent if the purchase is from abroad

(6) Receipt
This form contains detail of receipt of goods against the purchase order.

(7) Receipt QC

After the goods are received against the purchase order, the QC will done on the received goods, this form contains all detail of QC of products.

(8) Other Issue


This form is used to stock correction and for damaged or expired goods.

(9) Other Receipt


This form is also used for stock correction. For this type of receipt no purchase orders or indents are required.

Reports
This system is produce report as per the requirement. I have developed the report in the three different applications. For the printing of the screen display you have just click on print view or print button on the screen. The print view will be generated.

Reports For Part Receipt Dispatch:


For the receipt dispatch summary for particular engineer, customer, supplier, date, schedule will be generated easily. For that you have click on the report button on the part receipt dispatch form. It will display the following screens, you have to just enter appropriate field and click on OK button or click on cancel button for cancel report generation.

Figure:

For Engineers Stock detail:

For Available Stock Detail:

For Part Receipt/Dispatch Detail:

Reports Purchase Module:


Reports for Purchase Process is generated from clicking on report button on the main menus Purchase Tab. When you click this button you will see figure as follows:

For quantity wise pending detail: (Condensed=Big font)

For Indent PO & Receipt Summary:

For indent PO & Receipt Summary in Detail:

CHAPTER-8

Installation of System

This Section describes the installation part of the ERP. You must run the setup.exe to install the ERP. When you double click on the setup.exe file of ERP, setup shows the following dialog box.

After completing above process setup shows the following message.

Now, setup asks you to change the default path of the installation file of the stock information system? If you want to change the path of ERP system in another drive/directory the press the button Change Directory and then enter the path. If you dont want to change the path then setup automatically install the ERP system file in default directory C:\Program files\ERP\. Now press the button given in the dialog box for further process of installation. Shows the following figure.

Now setup will ask you to choose the program group. If you press continue button without any change setup put the ERP.exe file in group as StartProgramERP. Then setup shows that the file is installing at

specified directory/drive. At last it shows dialog box indicating that setup is installed successfully.

CHAPTER-9

Features

The system has following features:


It stores all the information about the goods received and dispatched at instrument division. It stores all the information about the indent generated. It stores the information about the Purchase Order generated against the indent. After Purchase order is issued the receipt of goods against the PO is also stores in the System. The record of QC of received goods also stores. It also stores information about the instrument received at Instrument division for repairing. It also stores the information about instrument assignment. It gives different types of Crystal Report, DOS Report, Excel Report Which are required at the end of the month, as well as daily report. Report are also printed on pre-printed form wherever required.

CHAPTER-10

References

REFRENCES
1. Visual Basic 6 in 21 Days -By Nathan Gurewich & Ori Gurewich 2. DataBase Programming with Visual Basic 6 in 21 Days -By Curtis Smith & Michael Amundsen 3. Mastering SQL Server 2000 -By Mike Gunderloy & Josheph Jorden

Potrebbero piacerti anche