CHƯƠNG 1: CƠ SỞ LÝ LUẬN VÀ GIỚI THIỆU NGÂN HÀNG Á CHÂU 3
1.1. Cơ sở lý luận 3
1.1.1. Marketing: 3
1.1.1.1. Hiểu khách hàng: 3
1.1.1.2. Thu thập thông tin về khách hàng: 4
1.1.2. Các phương thức của Marketing: 5
1.1.2.1. POSM: Point of sales material, Point of sales merchandise, product of sales material: truyền thông tại điểm bán hàng. 5
1.1.2.2. Khuyến mại hay khuyến mãi là hoạt động xúc tiến thương mại của thương nhân nhằm xúc tiến việc mua bán hàng hoá, cung ứng dịch vụ bằng cách dành cho khách hàng những lợi ích nhất định. 5
1.1.2.3. Quảng cáo là hình thức tuyên truyền, giới thiệu thông tin về sản phẩm, dịch vụ, công ty hay ý tưởng, quảng cáo là hoạt động truyền thông phi trực tiếp giữa người với người mà trong đó người muốn truyền thông phải trả tiền cho các phương tiện truyền thông đại chúng để đưa thông tin đến thuyết phục hay tác động đến người nhận thông tin 6
1.1.2.4. Marketing trực tiếp: 7
1.1.2.4.1. Khái niệm và bản chất 7
1.1.2.4.2. Chức năng 8
1.1.2.4.3. Vai trò 8
1.1.2.4.4. Các phương thức 9
1.1.2.4.5. Các yếu tố quyết định sự thành công 9
1.1.3. Những khó khăn trong xây dựng, triển khai chiến lược marketing và cách khắc phục: 9
1.1.3.1. Kế hoạch triển khai tài liệu thương hiệu được quản lí kém sẽ là một túi tiền không đáy. 9
1.1.3.2. Cần xây dựng kế hoạch triển khai dự án 9
1.1.3.3. Thu thập thông tin cụ thể, tránh những thông tin mập mờ 10
1.1.3.4. Thiết kế là công đoạn ít tốn kém nhất nhưng tốn nhiều công sức nhất 10
1.1.3.5. Tính trọn vẹn của những mẫu thiết kế phải được giữ nguyên 10
1.1.3.6. Đưa những mẫu thiết kế căn bản lên nhiều phương tiện khác nhau như đèn, phương tiện giao thông, văn phòng phẩm và trang phục. 10
1.1.3.7. Thực hiện truyền thông nội bộ về dự án 10
1.1.3.8. Đừng quên kế hoạch truyền thông nhằm thông báo cho khách hàng, giới truyền thông và cổ đông 11
1.2. Tổng quan về ngân hàng thương mại cổ phần Á Châu 11
1.2.1. Giới thiệu về ngân hàng Á Châu 11
1.2.1.1. Quá trình hình thành và phát triển 11
1.2.1.2. Mạng lưới hoạt động 11
1.2.1.3. Định hướng phát triển 12
1.2.1.4. Cơ cấu tổ chức: Hình 1.1: Cơ cấu tổ chức 13
1.2.1.5. Thành tựu: 16
1.2.1.6. Ngành nghề kinh doanh 17
1.2.1.7. Tình hình hoạt động 17
1.2.2. Giới thiệu bộ phận kinh doanh khối Khách Hàng Cá Nhân 19
1.2.2.1. Đối tượng phục vụ của khối Khách Hàng Cá Nhân 20
1.2.2.2. Sản phẩm, dịch vụ Ngân hàng phục vụ cho khách hàng cá nhân 20
1.2.2.3. Kênh phân phối cung cấp sản phẩm cho khách hàng cá nhân 20
1.2.2.4. Chức năng 20
1.2.2.4.1. Xây dựng và phát triển: 20
1.2.2.4.2. Tham gia vào đào tạo và phát triển đội ngũ nhân sự phục vụ khách hàng cá nhân. 20
1.2.2.5. Cơ cấu tổ chức của khối 20
1.2.2.6. Nhiệm vụ 22
1.2.2.6.1. Xây dựng kế hoạch: 22
1.2.2.6.2. Theo dõi, quản lý và đánh giá hiệu quả kinh doanh: 22
1.2.2.7. Tổ chức 23
1.2.2.7.1. Bộ phận/Tổ kế hoạch: 23
1.2.2.7.2. Bộ phận/Tổ quản lý kinh doanh: 23
1.2.2.8. Mô tả công việc của nhân viên kê hoạch 23
1.2.2.8.1. Thu thập và phân tích thị trường: 23
1.2.2.8.2. Phân tích dữ liệu khách hàng cá nhân (KHCN) 24
1.2.2.8.3. Đề xuất, phối hợp và quản lý thực hiện hoạt động nghiên cứu thị trường (NCTT) 24
1.2.2.8.4. Xây dựng kế hoạch marketing SP/Dịch Vụ KHCN: 24
1.2.2.8.5. Phối hợp quản lý thực hiện vá đánh giá hiệu quả hoạt động marketing SP/Dịch Vụ KHCN 24
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 24
2.1. Khái niệm 24
2.2. Phân tích và thiết kế cơ sở dữ liệu 25
2.2.1. Các khái niệm thông tin 25
2.2.2. Yêu cầu đặt ra 26
2.2.2.1. Yêu cầu lưu trữ, quản trị 26
2.2.2.2. Yêu cầu xử lý: 26
2.2.2.3. Yêu cầu phân tích, đánh giá 26
2.2.2.4. Yêu cầu dự báo 27
2.2.3. Mô hình thực thể và mối kết hợp 27
2.2.4. Mô hình Codd 28
2.2.5. Ràng buộc toàn vẹn 29
2.2.6.1. Tân từ: 29
2.2.6.2. Đặc tả hình thức: 30
2.2.6.3. Bảng tầm ảnh hưởng: 30
2.2.6. Các phụ thuộc hàm và chuẩn hóa dữ liệu 31
CHƯƠNG 3: GIẢI PHÁP 33
3.1. Giới thiệu SQL SERVER 2005: 34
3.2. Giới thiệu Visual Studio 2005 35
3.3. Giới thiệu phần mềm phân nhóm khách hàng: 36
3.4. Hướng dẫn sử dụng: 36
3.5. Lợi ích khi sử dụng chương trình: 74
3.5.1. Lợi ích về thời gian: 74
3.5.2. Lợi ích về cài đặt: 75
3.5.3. Lợi ích về sử dụng: 75
3.6. Yêu cầu về các phần mềm hỗ trợ khi cài đặt chương trình: 75
3.6.1. Yêu cầu cài đặt Microsoft SQL Server 2005: 75
3.6.2. Yêu cầu cài đặt phần mềm XlsToSql chuyển đổi dữ liệu từ file excel sang database của SQL Server: 75
Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 79
4.1. Thu thập dữ liệu ở các khu vực khác: 80
4.2. Điền đầy đủ các giá trị muốn thống kê trong combobox 80
4.3. Thiết kế form cho Import dữ liệu: 80
Sử dụng phần mềm khác để Import dữ liệu đôi khi gây bất tiện cho người sử dụng, vì vậy cần thiết kế giao diện cho phép Import dữ liệu từ file excel trong phần mềm. Các giao diện thì tương tự như các giao diện của phần mềm XlsToSql. 80
4.4. Bên cạnh thống kê bằng các con số, nên có những mô hình cho thấy cơ cấu khách hàng được phân nhóm theo từng tiêu chí. 80
4.5. Kết hợp bái toán phân nhóm khách hàng với phương pháp datamining: 80
Mục đích đi tìm luật, giúp nhận diện được thói quen, sở thích của khách hàng 80
81 trang |
Chia sẻ: netpro | Lượt xem: 1877 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đề tài Phần mềm hỗ trợ phân nhóm khách hàng của ngân hàng thương mại cổ phần Á Châu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
h hàng theo từng vùng. Trong đó có 5 khu vực chính là: Miền Bắc, Miền Trung, Miền Đông Nam Bộ, Miền Tây Nam Bộ, TP Hồ Chí Minh.
Từ thống kê theo vùng địa lý đưa ra thống kê theo tiêu chí tuổi, thu nhập, còn đủ điều kiện hành nghề hay không, chuyên môn, nơi làm việc. Trong đó có bao nhiêu nam và bao nhiêu nữ.
Thống kê theo tiêu chí tuổi gồm 4 khoảng là dưới 30 tuổi, 30 – 40, 40 – 50, 50 – 60 tuổi. Ứg với từng khách hàng ở độ tuổi này thì thống kê theo mức thu nhập, sau đó thống kê theo vùng địa lý mà khách hàng đang sinh sống.
Thống kê theo sự chọn lựa về vùng địa lý, thu nhập, tuổi, chuyên môn, giới tính.
Mục đích của thống kê là nhận diện và khoanh vùng chính xác các đối tượng khách hàng cần tiếp cận, nâng cao hiệu quả bán hàng. Bổ sung những đặc điểm khác biệt giữa khách hàng tín dụng tại từng khu vực và những yếu tố ảnh hưởng đến quyết định của khách hàng để có phương pháp tiếp cận phù hợp.
2.2.2.4. Yêu cầu dự báo
Phục vụ cho công việc dự báo. Từ những mô hình thống kê dự báo trên cơ sở dữ liệu khách hàng cũ đã từng giao dịch với Ngân hàng Á Châu, áp dụng vào cơ sở dữ liệu này để nhận thấy nhu cầu của những đối tượng khách hàng này.
2.2.3. Mô hình thực thể và mối kết hợp
BV
CT_BV
NV
1
∞
1
∞
Hình 2.1: Mô hình thực thể và mối kết hợp
2.2.4. Mô hình Codd
Quan hê BV(MaBV, TenBV)
Tên thuộc tính
Diễn giải
Loại
Ghi chú
MaBV
Mã Loại Bệnh viện
Char(4)
Khóa chính
TenBV
Tên Bệnh viện
Varchar2()
Not null
Quan hệ CT_BV (ID,MaCTBV, MaBV, TenCTBV, ĐiaChi, MaGD)
Tên thuộc tính
Diễn giải
Loại
Ghi chú
ID
Mã số bệnh viện
Numeric(5)
Khóa chính
MaCTBV
Mã của bệnh viện theo kí tự chữ
Char(4)
Not null và Unique
MaBV
Mã Loại bệnh viện
Char(4)
Khóa ngoại
TenCTBV
Tên bệnh viện
Varchar2(50)
Not null
DiaChi
Địa chỉ bệnh viện
Varchar2(100)
MaGD
Mã nhân viên làm giám đốc
Numeric
Quan hệ NV (IDNV, MaNV, SCCHN, NCCCHN, NHHCCHN, SODDK, NCDDK, NHHDDK, HO, TEN, LOAIHINHHN, NSINH, SONHA, DUONG, PHUONG, QUAN, ID, ThuNhap, GioiTinh)
Tên thuộc tính
Diễn giải
Loại
Ghi chú
IDNV
Mã số khách hàng
Numeric (18,0)
Khóa chính
MaNV
Mã số khách hàng theo kí tự chữ
nchar (5)
Not null và Unique
SCCHN
Số chứng chỉ hành nghề
Numeric (18,0)
NCCCHN
Ngày cấp chứng chỉ hành nghề
smalldatetime
NHHCCHN
Ngày hết hạn chứng chỉ hành nghề
smalldatetime
SDDK
Số đủ điều kiện
Numeric (18,0)
NCDDK
Ngày cấp chứng chỉ đủ điều kiện
Smalldatetime
NHHDDK
Ngày hết hạn chứng chỉ đủ điều kiện
smalldatetime
HO
Họ khách hàng
nvarchar2(100)
TEN
Tên khách hàng
nvarchar2(50)
LOAIHINHHN
Loại hình hành nghề
nvarchar2(100)
NSINH
Năm sinh của khách hàng
Numeric(4)
SONHA
Số nhà của khách hàng
nvarchar2(50)
DUONG
Tên đường trong địa chỉ nhà
nvarchar2(50)
PHUONG
Tên phường
nvarchar2(50)
QUAN
Tên quận
nvarchar2(40)
ID
Mã bệnh viện mà khách hàng công tác
Numeric(5,0)
Khóa ngoài
THUNHAP
Thu nhập hàng tháng của khách hàng
Numeric(18,0)
GIOITINH
Giới tính của khách hàng
Numeric(1)
2.2.5. Ràng buộc toàn vẹn
2.2.6.1. Tân từ:
R1: Mỗi loại bệnh viện phải có 1 mã loại bệnh viện riêng.
R2: Mỗi tên bệnh viện phải có mã bệnh viện và mã bệnh viện theo kí tự chữ riêng.
R3: Mỗi khách hàng phải có mã khách hàng và mã khách hàng theo kí tự chữ riêng.
R4: Các mã giám đốc trong bảng CT_BV phải có mã nằm trong danh sách mã khách hàng trong bảng NV
R5: Giới tính chỉ có 2 giá trị 0 và 1
R6: ngày hết hạn cấp chứng chỉ hành nghề và đủ điều kiện so với ngày cấp phải trong khoảng 5 năm.
R7: Giá trị của mã loại bệnh viện trong mỗi dòng của bảng CT_BV phải trùng với giá trị của mã loại bệnh viện trong mỗi dòng của bảng BV
R8: Giá trị của mã bệnh viện trong mỗi dòng của bảng NV phải trùng với giá trị của mã bệnh viện trong mỗi dòng của bảng CT_BV.
2.2.6.2. Đặc tả hình thức:
R1: "t1, t2 Î BV, t1≠t2 → t1.MaBV≠t2.MaBV
R2: "t1, t2 Î CT_BV, t1≠t2 → t1.MaCTBV≠t2.MaCTBV Ù t1.ID≠t2.ID
R3: "t1, t2 Î NV, t1≠t2 → t1.MaKH≠t2.MaKH Ù t1.IDKH≠t2.IDKH
R4: "t1 Î CT_BV, $t1’ Î NV → t1.MaGD=t1’.IDNV
R5: "t1 Î NV → t1.Gioitinh Î {0,1}
R6: "t1 Î NV → t1.NHHCCHN – t1.NCCCHN =5*365 Ù t1.NHHDDK – t1.NCDDK =5*365
R7: "t1 Î CT_BV, $t1’ Î BV → t1.MaBV=t1’.MaBV
R8: : "t1 Î NV, $t1’ Î CT_BV → t1.IDKH=t1’.IDKH
2.2.6.3. Bảng tầm ảnh hưởng:
R1
Thêm
Xóa
Sửa
BV
+
-
+(MaBV)
R2
Thêm
Xóa
Sửa
CT_BV
+
-
+(ID, MaCTBV)
R3
Thêm
Xóa
Sửa
NV
+
-
+(IDKH, MaKH)
R4
Thêm
Xóa
Sửa
CT_BV
+
-
+(MaGD)
NV
+
+
+(IDKH)
R5
Thêm
Xóa
Sửa
NV
+
-
+(Gioitinh)
R6
Thêm
Xóa
Sửa
NV
+
-
+(NCCCHN, NHHCCHN, NCDDK, NHHDDK)
R7
Thêm
Xóa
Sửa
CT_BV
+
-
+(MaBV)
BV
-
+
R8
Thêm
Xóa
Sửa
NV
+
-
+(ID)
CT_BV
-
+
2.2.6. Các phụ thuộc hàm và chuẩn hóa dữ liệu
BV
MaBV
TenBV
Đặt:
A: MaBV
B: TenBV
Q(AB)
Ta có phụ thuộc hàm: F={A→B}
Đạt chuẩn 1 vì không có thuộc tính đa trị.
Đạt chuẩn 2 vì các thuộc tính không khóa đều phụ thuộc đầy đủ vào khóa A.
Đạt chuẩn 3 vì không có phụ thuộc bắc cầu.
Đạt chuẩn 4 vì A là siêu khóa.
CT_BV
ID
MaCTBV
MaBV
TenCTBV
Diachi
MaGD
Đặt :
A: ID
B: MaCTBV
C: MaBV
D: TenCTBV
E: Diachi
F: MaGD
Q{ABCDEF}
Ta có phụ thuộc hàm: F={A→BCDEF}
Đạt chuẩn 1 vì không có thuộc tính đa trị
Đạt chuẩn 2 vì các thuộc tính không khóa đều phụ thuộc vào khóa A
Đạt chuẩn 3 vì không có phụ thuộc bắc cầu.
Đạt chuẩn 4 vì A là thuộc tính siêu khóa
Quan hệ NV (IDKH, MaKH, SCCHN, NCCCHN, NHHCCHN, SODDK, NCDDK, NHHDDK, HO, TEN, LOAIHINHHN, NSINH, SONHA, DUONG, PHUONG, QUAN, ID, ThuNhap, GioiTinh)
NV
IDKH
MaKH
SCCHN
NCCCHN
NHHCCHN
SODDK
NCDDK
NHHDDK
HO
TEN
LOAIHINHHN
NSINH
SONHA
DUONG
PHUONG
QUAN
ID
THUNHAP
GIOITINH
Đặt:
A: IDKH
B: MaKH
C: SOCCHN
D: NCCCHN
E: NHHCCHN
F: SODDK
G: NCDDK
H: NHHDDK
I: HO
J: TEN
K: LOAIHINHHN
L: NSINH
M: SONHA
N: DUONG
O: PHUONG
P: QUAN
Q: ID
R: THUNHAP
S: GIOITINH
Q{ABCDEFGHIJKLMNOPQRS}
Ta có phụ thuộc hàm: F={A→BCDEFGHIJKLMNOPQRS}
Đạt chuẩn 1 vì không có thuộc tính đa trị
Đạt chuẩn 2 vì các thuộc tính không khóa đều phụ thuộc vào khóa A
Đạt chuẩn 3 vì không có phụ thuộc bắc cầu
Đạt chuẩn 4 vì A là thuộc tính siêu khóa
CHƯƠNG 3: GIẢI PHÁP
Giới thiệu SQL SERVER 2005:
SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer. Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS.
SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý" với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server....
SQL Server có 7 editions:
Enterprise : Chứa đầy đủ các đặc trưng của SQL Server và có thể chạy tốt trên hệ thống lên đến 32 CPUs và 64 GB RAM. Thêm vào đó nó có các dịch vụ giúp cho việc phân tích dữ liệu rất hiệu quả (Analysis Services)
Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM.
Personal: được tối ưu hóa để chạy trên PC nên có thể cài đặt trên hầu hết các phiên bản windows kể cả Windows 98.
Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc.... Edition này có thể cài trên Windows 2000 Professional hay Win NT Workstation.
Desktop Engine (MSDE): Ðây chỉ là một engine chạy trên desktop và không có user interface (giao diện). Thích hợp cho việc triển khai ứng dụng ở máy client. Kích thước database bị giới hạn khoảng 2 GB.
Win CE : Dùng cho các ứng dụng chạy trên Windows CE
Trial: Có các tính năng của Enterprise Edition, download free, nhưng giới hạn thời gian sử dụng.
Giới thiệu Visual Studio 2005
Phiên bản Visual Studio 2005 cũng hỗ trợ các ngôn ngữ lập trình hướng đối tượng mới như: C# , VB.Net, J# và ngôn ngữ lập trình "siêu mạnh" là C++.Net, tích hợp mạnh mẽ với các tính năng hấp dẫn: Thiết kế giao diện, hỗ trợ viết mã (coding)không những giúp viết mã nhanh hơn, đúng hơn mà còn giúp những lập trình viên mới làm quen với .Net nhanh chóng hơn. Đặc biệt, VS 2005 còn có khả năng sử dụng lại các đoạn mã mẫu. Không những thế, VS 2005 cho phép tạo ứng dụng với giao diện giống với giao diện của Outlook.
Xây dựng ứng dụng Web nhanh hơn:
VS 2005 đã đưa vào công cụ phát triển Web mới là Visual Web Developer. Công cụ này cho phép tạo ra các ứng dụng Web được viết bằng ASP.NET 2.0. Với Visual Web Developer, có khoảng 50 điều khiển Web mới được tích hợp giúp phát triển ứng dụng Web nhanh và đơn giản hơn. Cải tiến lớn trong ASP.NET 2.0 là hỗ trợ tạo Master Page và cho phép các trang khác kế thừa lại Master Page. Một ưu điểm lớn nữa của Visual Web Developer là dễ dàng tạo một dự án ứng dụng Web (Web project) rất đơn giản như tạo một ứng dụng trên Windows bình thường.Hỗ trợ phát triển ứng dụng cho thiết bị di động:
Microsoft đã xây dựng môi trường phát triển ứng dụng .Net Compact Framework vừa nhỏ gọn như J2 ME mà lại đơn giản, dễ sử dụng như .Net. Môi trường phát triển ứng dụng này có thể hoạt động trên các điện thoại di động, các thiết bị có sử dụng HĐH Windows CE, Windows Mobile...
Đóng gói và triển khai ứng dụng:
Visual Studio 2005 cho phép đóng gói và triển khai ứng dụng đơn giản và dễ dàng hơn. Nhờ công nghệ đóng gói và triển khai ứng dụng ClickOne mới, sẽ dễ dàng triển khai các ứng dụng đó trên máy chủ Web, hoặc các mạng chia sẻ tập tin. Hỗ trợ ứng dụng 64 bit:
Xu hướng bộ xử lý 64 bit và bộ xử lý đa nhân đang ngày càng phát triển mạnh mẽ và cũng gây khó cho các nhà phát triển phần mềm. NetFramework 2.0 cũng như Visual Studio 2005 hỗ trợ tốt và tối ưu cho tính toán 64 bit.
Đa dạng sản phẩm:
Visual Studio 2005 được phát hành không chỉ là vài bản như: Standard, Pro, Premium... giống các phiên bản trước. Microsoft phát hành không chỉ nhiều hạng mục mà đa dạng sản phẩm khác nhau phục vụ cho những mục đích khác nhau của người dùng. Nhưng đáng chú ý nhất là 2 bản: Visual Studio Express và Visual Studio Team System.
Giới thiệu phần mềm phân nhóm khách hàng:
Phần mềm phân nhóm khách hàng cá nhân được xây dựng dựa trên nhu cầu phân nhóm khách hàng phục vụ cho việc nhận diện và khoanh vùng các đối tượng cần tiếp cận, nâng cao hiệu quả bán hàng. Đồng thời, bổ sung những đặc điểm khác biệt giữa khách hàng tín dụng tại từng khu vực và những yếu tố ảnh hưởng đến quyết định của khách hàng để có phương pháp tiếp cận phù hợp.
Phần mềm được viết trên Window Form của phần mềm Visual Studio 2005 và cơ sở dữ liệu SQL Server 2005.
Hướng dẫn sử dụng:
Button để chuyển sang form thống kê chung
Nhập vào tên database về khách hàng của ACB
Nhập vào data source của máy cài SQL SERVER
Hình 3.1: Form đầu tiên
Formketnoicosodulieu: yêu cầu nhập thông tin để kết nối cơ sở dữ liệu hiện có ở nơi cài đặt chương trình.
Khi mở chương trình, form đầu tiên hiện lên.
Trên hình mô tả là những thông tin này đã được mặc định sẵn.
Data source là (local)SQLEXPRESS, khi cài chương trình vào bất kì máy nào cũng có thể kết nối được, không cần phải sửa lại cho đúng với tên data source của từng máy khác nhau.
Cơ sở dữ liệu ở đây là KH_TONGHOP, khi attach cơ sở dữ liệu về khách hàng của ACB vào SQL SERVER, thì đã có tên mặc định là như vậy, trong trường hợp database được người quản trị thay đổi thì lúc này mới phải nhập lại.
Click vào button bên dưới để chuyển sang form thống kê thông tin chung.
Code cho button Chuyển sang form thông tin chung:
private void button1_Click(object sender, EventArgs e)
{
Formthongtin_chung f = new Formthongtin_chung();
f.CNS = "Data Source=" + textBox1.Text + ";Initial Catalog=" + textBox2.Text + ";Integrated Security=True";
this.Hide();
f.Show();
string s = textBox1.Text;
string s1 = textBox2.Text;
f.textbox1 = s;
f.textbox2 = s1;
}
5 khu vực chính phân nhóm KH
Khung thể hiện KQ thống kê chung theo quận
Các tiêu chuẩn tìm kiếm theo khu vực sống của KH, trong từng tiêu chuẩn lại có những tiêu chuẩn nhỏ hơn là quận
Hình 3.2: Form thongtin_chung
Formthongtinhung khi hiện lên ban đầu sẽ có giao diện như hình vẽ.
Các combobox hỗ trợ người sử dụng chọn lựa các giá trị mặc định có sẵn. Có 5 khu vực chính tương ứng với từng combobox
Miền Bắc
Miền Trung
Miền Đông Nam Bộ
Miền Tây Nam Bộ
Thành Phố Hồ Chí Minh
Trong từng combobox chứa thông tin các quận có trong khu vực đó.
Các giá trị theo quận trong khu vực
Click chuột vào combobox để chọn giá trị
Form 3.3: Form thongtin_chung và các giá trị trong combobox TPHCM
Người sử dụng click chuột vào đúng giá trị quận muốn thống kê, và giá trị quận này sẽ là tiêu chuẩn chung cho các thống kê bên dưới.
Trên hình vẽ đã chọn khu vực thống kê là TPHCM.
Hiển thị kết quả theo chọn lựa khu vực theo %
Click vào button để thống kê
Form 3.4: Form thongtin_chung và hiển thị kết quả ở button KQ
Sau khi đã click chọn giá trị là quận 1 trong khu vực TPHCM, người sử dụng click vào buton KQ ngay bên dưới để cho hiển thị kết quả ở textbox ngay bên cạnh. Kết quả của textbox được tính dựa trên tổng số khách hàng ở khu vực quận được chọn lựa trên tổng khách hàng thống kê được theo phần trăm.
Người sử dụng dễ dàng nhận diện được khách hàng ưa thích sống ở khu vực quận nào trong TP dựa trên tỉ lệ phần trăm.
Kết quả được tính theo câu lệnh SQL trong SQLCommand cm_khuvuc
SELECT left(round(Q1.dk * 1.0 / Q2.tong * 1.0,3)*100,5) AS kq FROM (SELECT COUNT(IDNV) AS dk FROM NV WHERE (QUAN = @X)) AS Q1 CROSS JOIN (SELECT COUNT(IDNV) AS tong FROM NV AS NV_1) AS Q2
Code cho button KQ:
private void button1_Click(object sender, EventArgs e)
{
try
{
if (cb_khuvuc.CanSelect == true)
{
string s;
cm_khuvuc.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
sqlConnection1.Open();
s = cm_khuvuc.ExecuteScalar().ToString();
txt_khuvuc.Text = s;
sqlConnection1.Close();
}
else
{
MessageBox.Show("Hãy chọn giá trị trong combobox khu vực muốn thống kê");
}
}
catch (Exception eloi)
{
MessageBox.Show("Hãy chọn giá trị trong combobox khu vực muốn thống kê");
}
}
5 tiêu chí con
Button hiện lên các tiêu chí con
Hình 3.5: Form thongtin_chung và kết quả hiển thị cho button Hiện thông tin chi tiết
Sau khi có được thống kê chung về khu vực sống của khách hàng theo quận. Người sử dụng tiếp tục thống kê theo nhiều tiêu chí khác như tuổi, thu nhập, đủ điều kiện hành nghề, trình độ chuyên môn, hiện đang công tác ở bệnh viện nằm ở khu vực quận nào …
Tất cả những tiêu chí con này đều dược cho ẩn đi, mục đích là người sử dụng có thể tùy ý lựa chọn cho hiện lên, tránh việc cùng một lúc quá nhiều tiêu chí hiện lên khiến cho việc sử dụng phần mềm phức tạp.
Người sử dụng click vào button Hiện thông tin chi tiết để cho hiện lên 5 tiêu chí con
Code cho button Hiện thông tin chi tiết:
private void button17_Click(object sender, EventArgs e)
{
groupBox10.Visible = true;
groupBox11.Visible = true;
groupBox12.Visible = true;
groupBox15.Visible = true;
groupBox16.Visible = true;
comboBox7.Visible = true;
comboBox8.Visible = true;
comboBox9.Visible = true;
comboBox12.Visible = true;
comboBox13.Visible = true;
button2.Visible = true;
button3.Visible = true;
button4.Visible = true;
button7.Visible = true;
button8.Visible = true;
}
MessageBox hiện cảnh báo chãy nhập giá trị trong combobox
Hình 3.6: Form thongtin_chung và message cảnh báo hãy nhập giá trị cho combobox
Khi người sử dụng không chọn giá trị trong combobox, mà đã click vào button KQ để xuất ra kết quả, thì chương trình sẽ hiện lên thông báo cảnh báo nên click chọn giá trị cho combobox trước, sau đó click vào button cho hiện kết quả. Người sử dụng click OK, và chọn giá trị trong combobox như bình thường.
Code cho button KQ:
private void button2_Click(object sender, EventArgs e)
{
try
{
textBox2.Visible = true;
textBox3.Visible = true;
textBox4.Visible = true;
label42.Visible = true;
label43.Visible = true;
label44.Visible = true;
label45.Visible = true;
label46.Visible = true;
int[] mang = new int[5];
mang[0] = 0;
mang[1] = 30;
mang[2] = 40;
mang[3] = 50;
mang[4] = 60;
if (comboBox7.SelectedIndex == 0)
{
datakhuvuc.SelectCommand.Parameters["@Y"].Value = mang[0];
datakhuvuc.SelectCommand.Parameters["@Z"].Value = mang[1];
}
if (comboBox7.SelectedIndex == 1)
{
datakhuvuc.SelectCommand.Parameters["@Y"].Value = mang[1];
datakhuvuc.SelectCommand.Parameters["@Z"].Value = mang[2];
}
if (comboBox7.SelectedIndex == 2)
{
datakhuvuc.SelectCommand.Parameters["@Y"].Value = mang[2];
datakhuvuc.SelectCommand.Parameters["@Z"].Value = mang[3];
}
if (comboBox7.SelectedIndex == 3)
{
datakhuvuc.SelectCommand.Parameters["@Y"].Value = mang[3];
datakhuvuc.SelectCommand.Parameters["@Z"].Value = mang[4];
}
datakhuvuc.SelectCommand.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
datakhuvuc.Fill(myset.thunhap_quan);
textBox2.Text = myset.thunhap_quan.Rows[0].ItemArray[0].ToString();
textBox3.Text = myset.thunhap_quan.Rows[0].ItemArray[1].ToString();
double b = double.Parse(textBox3.Text);
double a = (100 - b);
textBox4.Text = a.ToString();
}
catch (Exception eloi1)
{
MessageBox.Show("Hãy chọn giá trị trong combobox");
return;
}
}
Kết quả
Hình 3.7: Form thongtin_chung và hiển thị kết quả cho button KQ trong groupbox TUỔI
Người sử dụng click vào combobox trong tiêu chí tuổi để thống kê theo tiêu chí lớn là khu vực quận và tiêu chí con là tuổi khách hàng. Trong đó tuổi được phân ra thành 4 nhóm:
Dưới 30
Từ 30-40
Từ 40-50
Từ 50-60
Kết quả hiện ngay bên dưới button KQ, và thống kê theo nam, nữ bên dưới được tính theo câu truy vấn SQL trong SQLdataAdapter datakhuvuc:
SELECT LEFT(ROUND(Q3.dk3 * 1.0 / Q2.dk2 * 1.0 * 100, 2), 5) AS kq_thunhap_quan, LEFT(ROUND(Q3_3.dk3_3 * 1.0 / Q2.dk2 * 1.0 * 100, 2), 5)
AS kq_nu_tuoi_quan
FROM (SELECT COUNT(IDNV) AS dk2
FROM NV AS NV_1
WHERE (QUAN = @X)) AS Q2 CROSS JOIN
(SELECT COUNT(IDNV) AS dk3
FROM NV
WHERE (CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), GETDATE(), 109), 8, 4)) - NSINH BETWEEN @Y AND @Z) AND (QUAN = @X))
AS Q3 CROSS JOIN
(SELECT COUNT(IDNV) AS dk3_3
FROM NV AS NV_2
WHERE (GioiTinh = '1') AND (CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), GETDATE(), 109), 8, 4)) - NSINH BETWEEN @Y AND
@Z) AND (QUAN = @X)) AS Q3_3
Kết quả
Hình 3.8: Form thongtin_chung và hiển thị kết quả của button KQ trong groupbox THU NHẬP
Người sử dụng click vào combobox trong tiêu chí thu nhập để thống kê theo tiêu chí lớn là khu vực quận và tiêu chí con là thu nhập khách hàng. Trong đó thu nhập được phân ra thành 6 nhóm:
Dưới 5 triệu
Từ 5-10 triệu
Từ 10-20 triệu
Từ 20-30 triệu
Từ 30-50 triệu
Trên 50 triệu
Việc bắt lỗi tương tự như button KQ ở groupbox TUỔI
Kết quả được tính theo câu lệnh SQL trong dataSQLAdapter datakhuvuc_thunhap:
SELECT LEFT(ROUND(Q1.dk1 * 1.0 / Q2.dk2 * 1.0 * 100, 2), 5) AS kq_thunhap_quan, LEFT(ROUND(Q1_1.dk1_1 * 1.0 / Q2.dk2 * 1.0 * 100, 2), 5)
AS kq_nu_thunhap_quan
FROM (SELECT COUNT(IDNV) AS dk1
FROM NV
WHERE (ThuNhap BETWEEN @A AND @B) AND (QUAN = @X)) AS Q1 CROSS JOIN
(SELECT COUNT(IDNV) AS dk2
FROM NV
WHERE (QUAN = @X)) AS Q2 CROSS JOIN
(SELECT COUNT(IDNV) AS dk1_1
FROM NV
WHERE (GioiTinh = '1') AND (ThuNhap BETWEEN @A AND @B) AND (QUAN = @X)) AS Q1_1
Code cho button KQ trong groupbox THU NHẬP:
private void button3_Click(object sender, EventArgs e)
{
try
{
textBox7.Visible = true;
textBox8.Visible = true;
textBox9.Visible = true;
label10.Visible = true;
label11.Visible = true;
label12.Visible = true;
label13.Visible = true;
label14.Visible = true;
int[] mang = new int[7];
mang[0] = 0;
mang[1] = 5000000;
mang[2] = 10000000;
mang[3] = 20000000;
mang[4] = 30000000;
mang[5] = 40000000;
mang[6] = 50000000;
if (comboBox8.CanSelect == true)
{
if (comboBox8.SelectedIndex == 0)
{
datakhuvuc_thunhap.SelectCommand.Parameters["@A"].Value = mang[0];
datakhuvuc_thunhap.SelectCommand.Parameters["@B"].Value = mang[1];
datakhuvuc_thunhap.SelectCommand.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
}
else if (comboBox8.SelectedIndex == 1)
{ datakhuvuc_thunhap.SelectCommand.Parameters["@A"].Value = mang[1];
datakhuvuc_thunhap.SelectCommand.Parameters["@B"].Value = mang[2];
datakhuvuc_thunhap.SelectCommand.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
}
else if (comboBox8.SelectedIndex == 2)
{ datakhuvuc_thunhap.SelectCommand.Parameters["@A"].Value = mang[2];
datakhuvuc_thunhap.SelectCommand.Parameters["@B"].Value = mang[3];
datakhuvuc_thunhap.SelectCommand.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
}
else if (comboBox8.SelectedIndex == 3)
{
datakhuvuc_thunhap.SelectCommand.Parameters["@A"].Value = mang[3];
datakhuvuc_thunhap.SelectCommand.Parameters["@B"].Value = mang[4];
datakhuvuc_thunhap.SelectCommand.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
}
else if (comboBox8.SelectedIndex == 4)
{ datakhuvuc_thunhap.SelectCommand.Parameters["@A"].Value = mang[4];
datakhuvuc_thunhap.SelectCommand.Parameters["@B"].Value = mang[5];
datakhuvuc_thunhap.SelectCommand.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
}
else if (comboBox8.SelectedIndex == 5)
{ datakhuvuc_thunhap.SelectCommand.Parameters["@A"].Value = mang[5];
datakhuvuc_thunhap.SelectCommand.Parameters["@B"].Value = mang[6];
datakhuvuc_thunhap.SelectCommand.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
}
else if (comboBox8.SelectedIndex == 6)
{ datakhuvuc_thunhap.SelectCommand.Parameters["@A"].Value = mang[6];
datakhuvuc_thunhap.SelectCommand.Parameters["@B"].Value = 100000000;
datakhuvuc_thunhap.SelectCommand.Parameters["@X"].Value = cb_khuvuc.SelectedItem;
}
datakhuvuc_thunhap.Fill(myset.khuvuc_thunhap);
textBox7.Text = myset.khuvuc_thunhap.Rows[0].ItemArray[0].ToString();
textBox8.Text = myset.khuvuc_thunhap.Rows[0].ItemArray[1].ToString();
double b = double.Parse(textBox8.Text);
double a = (100 - b);
textBox9.Text = a.ToString();
}
else
{
MessageBox.Show("Hãy chọn giá trị trong combobox");
}
}
catch (Exception eloi3)
{
MessageBox.Show("Hãy chọn giá trị trong combobox");
}
}
Kết quả
Hình 3.9: Form thongtin_chung và hiển thị kết quả của button KQ trong groupbox ĐỦ ĐK HÀNH NGHỀ
Người sử dụng click vào combobox trong tiêu chí đủ điều kiện hành nghề để thống kê theo tiêu chí lớn là khu vực quận và tiêu chí con là đủ điều kiện hành nghề. Trong đó đủ điều kiện hành nghề bao gồm còn hạn sử dụng của chứng chỉ hành nghề và đủ điều kiện.
Kết quả được tính theo câu lệnh SQL trong SQLdataAdapter datakhuvuc_dudk:
SELECT LEFT(ROUND(Q4.dk4 * 1.0 / Q2.dk2 * 1.0 * 100, 2), 5) AS kq_dudk_quan, LEFT(ROUND(Q4_4.dk4_4 * 1.0 / Q2.dk2 * 1.0 * 100, 2), 5)
AS kq_nu_dudk_quan
FROM (SELECT COUNT(IDNV) AS dk2
FROM NV
WHERE (QUAN = @X)) AS Q2 CROSS JOIN
(SELECT COUNT(IDNV) AS dk4
FROM NV AS NV_2
WHERE (CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), GETDATE(), 109), 8, 4)) - CONVERT(numeric(4),
SUBSTRING(CONVERT(varchar(50), NHHCCHN, 109), 8, 4)) > 0) AND (CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), GETDATE(),
109), 8, 4)) - CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), NHHCCHN, 109), 8, 4)) IS NOT NULL) AND (CONVERT(numeric(4),
SUBSTRING(CONVERT(varchar(50), GETDATE(), 109), 8, 4)) - CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), NHHDDK, 109), 8,
4)) > 0) AND (CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), GETDATE(), 109), 8, 4)) - CONVERT(numeric(4),
SUBSTRING(CONVERT(varchar(50), NHHDDK, 109), 8, 4)) IS NOT NULL) AND (QUAN = @X)) AS Q4 CROSS JOIN
(SELECT COUNT(IDNV) AS dk4_4
FROM NV AS NV_1
WHERE (CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), GETDATE(), 109), 8, 4)) - CONVERT(numeric(4),
SUBSTRING(CONVERT(varchar(50), NHHCCHN, 109), 8, 4)) > 0) AND (CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), GETDATE(),
109), 8, 4)) - CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), NHHCCHN, 109), 8, 4)) IS NOT NULL) AND (CONVERT(numeric(4),
SUBSTRING(CONVERT(varchar(50), GETDATE(), 109), 8, 4)) - CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), NHHDDK, 109), 8,
4)) > 0) AND (CONVERT(numeric(4), SUBSTRING(CONVERT(varchar(50), GETDATE(), 109), 8, 4)) - CONVERT(numeric(4),
SUBSTRING(CONVERT(varchar(50), NHHDDK, 109), 8, 4)) IS NOT NULL) AND (QUAN = @X) AND (GioiTinh = '1')) AS Q4_4
Code cho button KQ trong groupbox Đủ điều kiện hành nghề:
private void button4_Click(object sender, EventArgs e)
{
try
{
textBox10.Visible = true;
textBox11.Visible = true;
textBox12.Visible = true;
label15.Visible = true;
label16.Visible = true;
label17.Visible = true;
label18.Visible = true;
label19.Visible = true;
if (comboBox9.CanSelect == true)
{
if (comboBox9.Selecte
Các file đính kèm theo tài liệu này:
- Phát triển ứng dụng phân nhóm khách hàng - Ngân hàng Á Châu (Điểm cao DH QGTPHCM).doc