GIÁO TRÌNH PHÁT TRIỂN VÀ HOÀN THIỆN ỨNG DỤNG TRÊN NỀN TẢNG VISUAL BASIC


Tổng quan về giáo trình

Giáo trình tập trung vào các công đoạn hoàn thiện sản phẩm phần mềm ứng dụng trên nền tảng Microsoft Visual Basic và hệ quản trị cơ sở dữ liệu. Trong chương trình đào tạo ngành Công nghệ Thông tin và Kỹ thuật Phần mềm ở bậc đại học, tài liệu này thuộc nhóm học phần thực hành phát triển ứng dụng chuyên ngành, giữ vai trò kết nối giữa khối kiến thức lập trình cơ sở dữ liệu với quy trình đóng gói và phát hành phần mềm thực tế.

Mục tiêu học tập của giáo trình bao gồm:

  • Phân tích và thiết kế các định dạng báo cáo đầu ra phục vụ công tác quản lý dữ liệu.
  • Xây dựng báo cáo truy vấn bằng công cụ tích hợp DataReport và phần mềm báo cáo chuyên dụng Crystal Reports.
  • Thiết kế hệ thống tài liệu trợ giúp người dùng dạng tệp .chm bằng công cụ HTML Help Workshop và lập trình nhúng vào ứng dụng Visual Basic qua giao diện lập trình ứng dụng (Win32 API).
  • Thực hiện quy trình đóng gói phần mềm thành bộ cài đặt độc lập bằng tiện ích Package and Deployment Wizard và công cụ InstallShield 2008 Premiere.

Về cấu trúc và cách tiếp cận, giáo trình triển khai nội dung theo quy trình hoàn thiện sản phẩm phần mềm: từ kết xuất dữ liệu báo cáo (Chương 5), biên soạn tài liệu hướng dẫn người dùng (Chương 6), đến đóng gói và triển khai ứng dụng (Chương 7). Tài liệu kết hợp chặt chẽ giữa lý thuyết phân loại chức năng và quy trình thao tác từng bước (step-by-step) trên các dự án mẫu cụ thể.

Điểm đặc trưng của giáo trình là sự đối sánh song song giữa các công cụ tích hợp sẵn trong môi trường Microsoft Visual Studio và các công cụ chuyên nghiệp độc lập của bên thứ ba, cung cấp đầy đủ bảng thuộc tính cấu hình và mã nguồn thực thi chi tiết.


Nội dung kiến thức cốt lõi

                              QUY TRÌNH HOÀN THIỆN ỨNG DỤNG
                                            │
     ┌──────────────────────────────────────┼──────────────────────────────────────┐
     │                                      │                                      │
     ▼                                      ▼                                      ▼
┌─────────────────────────┐    ┌─────────────────────────┐    ┌─────────────────────────┐
│        CHƯƠNG 5         │    │        CHƯƠNG 6         │    │        CHƯƠNG 7         │
│     BÁO CÁO ĐẦU RA      │    │    TÀI LIỆU TRỢ GIÚP    │    │       BỘ CÀI ĐẶT        │
├─────────────────────────┤    ├─────────────────────────┤    ├─────────────────────────┤
│• Phân loại 3 mẫu báo cáo│    │• Tệp cấu thành: .hhc,   │    │• Package & Deployment:  │
│• Cấu trúc 5 phần chuẩn  │    │  .hhk, .hhp, .html      │    │  Single/Multiple .cab,  │
│• DataReport &           │    │• Cấu hình tiếng Việt    │    │  $(WinSysPath), DAO     │
│  DataEnvironment        │    │  CP 1258 (Win 2000/XP)  │• InstallShield 2008:    │
│• Crystal Reports &      │    │• API Win32: hhctrl.ocx, │  Windows 7, UAC,        │
│  Active Data (.ttx)     │    │  user32, cấu trúc UDT   │  Best Practices         │
└─────────────────────────┘    └─────────────────────────┘    └─────────────────────────┘

Các chương và chủ đề chính

Chương 5: Tạo báo cáo đầu ra cho ứng dụng

Chương 5 trình bày phương pháp kết xuất thông tin quản lý từ cơ sở dữ liệu. Nội dung chia báo cáo thành 3 loại cơ bản:

  • Báo cáo chi tiết đầy đủ: Liệt kê toàn bộ các bản ghi trong bảng dữ liệu; số dòng hiển thị tương ứng chính xác với số dòng trong bảng.
  • Báo cáo chi tiết có chọn lọc: Liệt kê các bản ghi thỏa mãn điều kiện lọc; số dòng hiển thị tương ứng với số bản ghi thỏa điều kiện.
  • Báo cáo tổng hợp: Mỗi dòng thể hiện dữ liệu đại diện cho một nhóm bản ghi trong bảng cơ sở dữ liệu.

Cấu trúc bản thiết kế báo cáo chuẩn gồm 5 phần:

  1. ReportHeader: Hiển thị một lần duy nhất tại đầu trang đầu tiên.
  2. PageHeader: Hiển thị lặp lại tại phần đầu của mỗi trang.
  3. Detail: Chứa các điều khiển hiển thị nội dung bản ghi dữ liệu.
  4. PageFooter: Hiển thị lặp lại tại cuối mỗi trang, thường dùng chèn số trang (InsertControl -> Current Page Number).
  5. ReportFooter: Hiển thị một lần tại cuối cùng của trang kết thúc báo cáo, dùng để hiển thị tổng cộng thông qua RptFunction.

Quy trình thiết kế được phân tách qua hai công cụ:

  • DataReport: Sử dụng các điều khiển RptLabel, RptTextbox, RptImage, RptLine, RptShape, RptFunction. Dữ liệu được liên kết thông qua thuộc tính DataSource (trỏ đến đối tượng DataEnvironment) và DataMember (trỏ đến đối tượng Command). Mã nguồn Visual Basic điều khiển báo cáo thông qua việc gán câu lệnh SQL động vào thuộc tính Source của đối tượng Recordset, mở lại kết nối và gọi phương thức DataReport1.Show.
  • Crystal Reports: Thiết lập nguồn dữ liệu trung gian thông qua tệp định nghĩa trường Active Data (Field Definitions Only) có phần mở rộng .ttx. Thiết kế giao diện với các trường dữ liệu, đối tượng dòng kẻ (Insert line), khung hộp (Insert box), văn bản (Insert Text Object) và trường công thức (Formula Field như TenLop). Trong mã lệnh Visual Basic, báo cáo được điều khiển bằng đối tượng CrystalReport, nạp dữ liệu bằng phương thức SetTablePrivateData, truyền công thức qua mảng Formulas và kích hoạt in bằng PrintReport.

Chương 6: Biên soạn tài liệu hướng dẫn sử dụng

Chương 6 hướng dẫn xây dựng tài liệu trợ giúp dạng tệp .chm thông qua tiện ích Microsoft HTML Help Workshop.

  • Cấu trúc tệp trợ giúp bao gồm các thành phần: tệp dự án Help (.hhp), tệp mục lục dạng cây (.hhc), tệp chỉ mục từ khóa (.hhk) và các tài liệu nội dung định dạng .html.
  • Định dạng nội dung: Sử dụng phông chữ Unicode (Verdana, cỡ chữ 10pt), hình ảnh định dạng .gif, sử dụng bảng (table) để cố định vị trí các phần tử, và áp dụng kỹ thuật đánh dấu vị trí (Bookmark) dạng #bookmark nhằm gom nhóm thuật ngữ, giảm dung lượng tệp.
  • Hỗ trợ ngôn ngữ tiếng Việt: Cấu hình hệ điều hành Windows 2000 hoặc Windows XP nạp bảng mã Vietnamese locale CP 1258, thiết lập ngôn ngữ dự án thành Vietnamese, và sử dụng bộ gõ Unikey với bảng mã CP 1258.
  • Tích hợp hệ thống trợ giúp vào mã nguồn Visual Basic: Tạo module showhelp, khai báo kiểu dữ liệu người dùng (HH_IDPAIR, HH_FTS_QUERY, HH_AKLINK), định nghĩa các hằng số hệ thống (HH_DISPLAY_TOC, HH_DISPLAY_INDEX, HH_DISPLAY_TOPIC, HH_HELP_CONTEXT) và khai báo các hàm API Win32 từ thư viện hhctrl.ocx (HtmlHelpA, HtmlHelpTopic, HtmlHelpSearch, HtmlHelpIndex) và user32 (GetDlgCtrlID, SendMessage). Cung cấp các thủ tục đóng gói: ShowContents, ShowIndex, ShowTopic, ShowTopicID.

Chương 7: Tạo bộ cài đặt cho ứng dụng

Chương 7 phân tích nguyên lý đóng gói phần mềm để ứng dụng có thể vận hành độc lập trên máy tính người dùng cuối mà không phụ thuộc vào môi trường phát triển (IDE).

  • Package and Deployment Wizard: Tiện ích có sẵn trong Microsoft Visual Studio 6.0 Tools, hỗ trợ tạo gói cài đặt tiêu chuẩn (Standard Setup Package với tệp setup.exe), gói cài đặt qua Internet, hoặc tạo tệp phụ thuộc (Dependency file). Cấu hình nén dữ liệu theo tệp .cab đơn (Single cab) hoặc chia nhỏ đa tệp (Multiple cab), tích hợp gói trình điều khiển cơ sở dữ liệu DAO (Jet 2.x), xử lý các tệp phụ thuộc bị thiếu (Missing Dependency như cpeaut32.dll), và thiết lập nhóm thực đơn Start Menu.
  • Thiết lập đường dẫn cài đặt biến hệ thống (Install Location):
    • $(WinSysPath): Trỏ tới thư mục C:\WINDOWS\system32.
    • $(WinPath): Trỏ tới thư mục gốc C:\WINDOWS.
    • $(CommonFiles)$(CommonFilesSys): Trỏ tới thư mục tệp dùng chung.
    • $(ProgramFiles): Trỏ tới thư mục chương trình cài đặt.
    • $(AppPath): Trỏ tới thư mục đích của ứng dụng, cấu hình các thư mục con như $(AppPath)\Data (chứa cơ sở dữ liệu .mdb) và $(AppPath)\REPORTS (chứa tệp mẫu báo cáo .rpt, .ttx).
    • $(MSDAOPath): Trỏ tới thư mục chứa thư viện DAO của hệ thống.
    • $(Font): Trỏ tới thư mục phông chữ hệ thống.
  • Thiết lập tệp chia sẻ (Shared files): Quản lý các thư viện dùng chung cho nhiều ứng dụng.
  • InstallShield 2008 Premiere: Giải pháp đóng gói chuyên nghiệp hỗ trợ môi trường Windows Vista, Windows 7, cơ chế kiểm soát tài khoản người dùng (UAC), Windows Installer 4.0, .NET Framework 3.0, IIS 7.0, SQL Server 2005. Tích hợp bộ kiểm tra xung đột InstallShield Best Practices Validation, công nghệ Standalone Build, công cụ chuyển đổi gói cài đặt InstallShield Repackager và hỗ trợ đa ngôn ngữ (33 ngôn ngữ).

Kiến thức nền tảng được xây dựng

Giáo trình cung cấp hệ thống kiến thức kỹ thuật nền tảng:

  • Kiến trúc phân tầng báo cáo: Phân tách logic giữa lớp dữ liệu cơ sở dữ liệu quan hệ, tầng trung gian định nghĩa cấu trúc dữ liệu (DataEnvironment, .ttx, DAO.Recordset) và tầng hiển thị giao diện báo cáo (DataReport, CrystalReport).
  • Mô hình tài liệu trợ giúp Win32: Cơ chế tương tác giữa ứng dụng và hệ điều hành thông qua thông điệp hệ thống và hàm API Win32 của thư viện liên kết động hhctrl.ocx.
  • Cơ chế phụ thuộc phần mềm (Software Dependency Management): Nguyên lý phân phối các tệp thi hành (.exe), tệp thư viện động (.dll), tệp điều khiển ActiveX (.ocx) và cấu hình đăng ký khóa hệ thống khi triển khai lên máy tính đích.

Kỹ năng phát triển

Thông qua nội dung học tập, người học hình thành các kỹ năng chuyên môn:

  • Thiết kế bố cục báo cáo thống kê, tổng hợp dữ liệu đáp ứng yêu cầu quản lý nghiệp vụ.
  • Viết mã lệnh điều khiển nguồn dữ liệu động bằng SQL và liên kết đối tượng dữ liệu trong Visual Basic.
  • Xây dựng cấu trúc tài liệu trợ giúp hoàn chỉnh, cấu hình mục lục đa cấp, tạo chỉ mục liên kết từ khóa và biên dịch tệp trợ giúp chuẩn .chm.
  • Khai báo và sử dụng hàm API Windows để điều khiển các tính năng cấp hệ điều hành từ môi trường Visual Basic.
  • Đóng gói ứng dụng, cấu hình đúng vị trí các tệp phụ thuộc hệ thống và kiểm thử bộ cài đặt trên môi trường hệ điều hành sạch.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng phương pháp tiếp cận sư phạm dựa trên tình huống thực tế (case-based learning) và thực hành theo quy trình kỹ thuật. Nội dung lý thuyết về thuộc tính và cú pháp lệnh luôn đi liền với ví dụ triển khai cụ thể trên hệ thống.

                  QUY TRÌNH HỌC TẬP VÀ THỰC HÀNH CHUYÊN MÔN
                                       │
     ┌─────────────────────────────────┼─────────────────────────────────┐
     │                                 │                                 │
     ▼                                 ▼                                 ▼
┌────────────────────────┐   ┌────────────────────────┐   ┌────────────────────────┐
│  1. THIẾT KẾ BÁO CÁO   │   │  2. XÂY DỰNG TRỢ GIÚP  │   │  3. ĐÓNG GÓI ỨNG DỤNG  │
├────────────────────────┤   ├────────────────────────┤   ├────────────────────────┤
│• Khai báo DataEnv/TTX  │   │• Soạn thảo HTML/Table  │   │• Phân tích Dependency  │
│• Gán tham số SQL động  │   │• Cấu hình CP 1258      │   │• Cấu hình $(AppPath)   │
│• Kiểm thử DataReport / │   │• Nhúng Win32 API       │   │• Kiểm thử trên hệ điều │
│  Crystal Reports       │   │  (hhctrl.ocx)          │   │  hành sạch             │
└────────────────────────┘   └────────────────────────┘   └────────────────────────┘

Các dự án mẫu trong giáo trình

  • Ứng dụng Quản lý sinh viên: Thực hành tạo báo cáo in danh sách sinh viên theo lớp. Xây dựng Form gồm điều khiển Data1 kết nối bảng DM_Lop, điều khiển DBCombo1 nhận danh sách lớp (ListField: TenLop, BoundColumn: MaLop). Viết sự kiện CmdInBC_ClickCmdCrystalReport_Click để truy vấn bảng dssv theo điều kiện malopdt, sau đó xuất ra DataReport hoặc Crystal Reports.
  • Dự án TestMaker 2008: Thực hành quy trình đóng gói phần mềm hoàn chỉnh từ tệp dự án Testmaker.vbp. Xác định tệp phụ thuộc giao diện (mscomct2.ocx, RICHTX32.OCX, MSSTDFMT.DLL), tệp cơ sở dữ liệu databank.mdb, mẫu báo cáo Report.rpt và tệp cấu hình.
  • Tài liệu Thuật ngữ tin học: Dự án minh họa việc tạo tài liệu trợ giúp dạng cây, sử dụng liên kết Bookmark (ví dụ từ khóa AGP liên kết đến neo #AGP trong tệp a.html).

Phương pháp đánh giá và tự học

Hệ thống đánh giá được tổ chức thông qua bộ câu hỏi ôn tập và bài tập tình huống ở cuối mỗi chương:

  • Câu hỏi lý thuyết: Yêu cầu trình bày nguyên tắc thiết kế báo cáo, các bước kết xuất dữ liệu qua DataReportCrystal Reports (sử dụng Active Data Field Definitions Only).
  • 10 bài tập thiết kế mẫu báo cáo thực tế:
    1. Bảng kê hóa đơn bán hàng cho trung tâm thương mại.
    2. Bảng tổng hợp doanh thu bán hàng theo mặt hàng.
    3. Bảng tổng hợp doanh thu bán hàng theo tháng.
    4. Bảng tổng hợp nhập xuất tồn kho hàng hóa vật tư.
    5. Bảng danh sách sinh viên phục vụ điểm danh.
    6. Bảng điểm kiểm tra, chuyên cần sinh viên.
    7. Bảng điểm học phần của sinh viên.
    8. Bảng điểm cá nhân của mỗi sinh viên khi kết thúc khóa học.
    9. Bảng kiểm kê sách trong kho của thư viện.
    10. Bảng thống kê về tình hình mượn sách theo đầu sách.

Về hướng dẫn tự học, giáo trình nhấn mạnh quy trình kiểm thử bộ cài đặt trên máy tính mới cài hệ điều hành (chưa cài Visual Studio). Nếu ứng dụng báo lỗi thiếu thư viện, người học ghi nhận tên tệp, quay lại công cụ đóng gói để bổ sung tệp phụ thuộc và lặp lại quy trình kiểm thử cho đến khi phần mềm vận hành chính xác.


Điểm nổi bật và cập nhật công nghệ

Tài liệu cung cấp các giải pháp kỹ thuật đáp ứng các yêu cầu phát triển phần mềm trong giai đoạn chuyển đổi công nghệ:

Tiêu chí Công cụ tích hợp sẵn Công cụ chuyên dụng / Nâng cao
Công cụ báo cáo DataReport: Tích hợp sẵn trong Visual Studio, liên kết trực tiếp qua DataEnvironment. Crystal Reports: Thiết kế độc lập, quản lý dữ liệu linh hoạt qua tệp định nghĩa .ttx, hỗ trợ công thức Formula Field.
Công cụ đóng gói Package & Deployment Wizard: Đóng gói qua giao diện từng bước, tạo tệp nén .cab, phù hợp điều khiển chuẩn. InstallShield 2008 Premiere: Hỗ trợ Windows 7, Vista, UAC, Windows Installer 4.0, .NET 3.0, kiểm tra chuẩn Best Practices.
Hệ thống trợ giúp Trợ giúp dạng văn bản đơn giản. HTML Help Workshop: Tệp .chm chuẩn nén, hỗ trợ chỉ mục Bookmark, điều khiển qua Win32 API hhctrl.ocx.
  • Xử lý bản địa hóa tiếng Việt: Tài liệu cung cấp giải pháp xử lý bảng mã tiếng Việt trên mục lục tệp trợ giúp .chm thông qua việc nạp thư viện Vietnamese locale CP 1258 trên hệ điều hành Windows 2000 và Windows XP.
  • Dữ liệu thực tế về độ ổn định phần mềm: Trích dẫn số liệu nghiên cứu của IBM: 28% lỗi ứng dụng phát sinh liên quan trực tiếp đến quá trình cài đặt và hiệu chỉnh lỗi, từ đó làm rõ yêu cầu bắt buộc của việc kiểm soát tệp thư viện và cấu hình đường dẫn cài đặt hệ thống.

Đối tượng sử dụng giáo trình

  • Sinh viên đại học và cao đẳng: Thuộc các ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Hệ thống Thông tin Quản lý đang học các học phần Lập trình ứng dụng, Lập trình trực quan, hoặc thực hiện đồ án môn học phát triển phần mềm.
  • Yêu cầu kiến thức tiên quyết (Prerequisites):
    • Nắm vững cú pháp và kỹ thuật lập trình hướng sự kiện trên Visual Basic.
    • Hiểu biết về cơ sở dữ liệu quan hệ, cú pháp ngôn ngữ truy vấn dữ liệu SQL.
    • Đã làm việc với các phương thức kết nối dữ liệu như DAO (Data Access Objects) hoặc ADO (ActiveX Data Objects).
    • Kiến thức cơ bản về cú pháp mã nguồn HTML để biên tập trang trợ giúp.
  • Giảng viên: Sử dụng làm tài liệu giảng dạy, hướng dẫn thực hành phòng máy cho các chuyên đề kết xuất báo cáo và đóng gói sản phẩm; khai thác 10 đề tài thiết kế báo cáo mẫu làm ngân hàng bài tập kiểm tra đánh giá.
  • Lập trình viên và kỹ sư phần mềm: Dùng làm tài liệu tra cứu các cấu trúc hàm Win32 API điều khiển tệp Help hoặc tham chiếu quy trình cấu hình thư mục hệ thống khi đóng gói phần mềm trên môi trường Windows.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với đối tượng người học nào?

Tài liệu phù hợp cho sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và lập trình viên cần nắm vững các kỹ thuật ở giai đoạn cuối của chu trình phát triển phần mềm: tạo báo cáo thống kê, soạn thảo tài liệu trợ giúp và tạo bộ cài đặt phân phối.

2. Cần chuẩn bị kiến thức nền tảng nào trước khi học giáo trình?

Người học cần có kiến thức về ngôn ngữ lập trình Visual Basic 6.0, kỹ năng thao tác với cơ sở dữ liệu (Microsoft Access), câu lệnh truy vấn SQL, mô hình đối tượng DAO/ADO và kiến thức soạn thảo tài liệu HTML cơ bản.

3. Điểm khác biệt của giáo trình so với các tài liệu lập trình thông thường là gì?

Các tài liệu lập trình thông thường chủ yếu tập trung vào cú pháp ngôn ngữ và thiết kế giao diện nhập liệu. Giáo trình này đi sâu vào ba công đoạn hoàn thiện sản phẩm: xử lý logic kết xuất dữ liệu báo cáo đa dạng, lập trình nhúng tệp trợ giúp điện tử qua Win32 API và quy trình cấu hình biến môi trường hệ thống khi đóng gói ứng dụng.

4. Phương pháp thực hành tự học hiệu quả đối với giáo trình là gì?

Người học thực hiện theo thứ tự từng bước được mô tả trong các ví dụ mẫu (ứng dụng Quản lý sinh viên, dự án TestMaker 2008), hoàn thành 10 bài tập thiết kế báo cáo ở cuối Chương 5, và tiến hành kiểm thử bộ cài đặt trên một máy tính hoặc máy ảo cài hệ điều hành sạch để kiểm tra các tệp thư viện phụ thuộc.

5. Giáo trình yêu cầu những công cụ và phần mềm bổ trợ nào?

Các phần mềm cần thiết gồm: Microsoft Visual Basic 6.0 (kèm công cụ DataReport, DataEnvironment, Package and Deployment Wizard), Crystal Reports, Microsoft HTML Help Workshop, Unikey (bảng mã CP 1258), và phần mềm đóng gói chuyên dụng InstallShield 2008 Premiere.


Kết luận

Giáo trình cung cấp các hướng dẫn kỹ thuật phục vụ giai đoạn hoàn thiện ứng dụng phần mềm máy tính để bàn (Desktop Application). Nội dung bao quát toàn diện từ phân loại và thiết kế các định dạng báo cáo đầu ra (Chương 5), xây dựng hệ thống trợ giúp điện tử theo chuẩn .chm có tương thích tiếng Việt (Chương 6), đến quy trình đóng gói phần mềm độc lập xử lý chuẩn xác các tệp phụ thuộc hệ thống (Chương 7).

Lộ trình học tập khuyến nghị cho người học là tuần tự làm chủ kỹ thuật thiết kế báo cáo dữ liệu, thực hành tích hợp module Win32 API điều khiển trợ giúp trực tuyến, và tiến hành đóng gói, kiểm thử phần mềm trên môi trường hệ điều hành độc lập.