Đến nội dung


Hình ảnh

Mời hợp tác phát triển dự án Dự toán trên Excel


  • Please log in to reply
6 replies to this topic

#1 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 23 August 2012 - 06:50 AM

Hiện tại chúng tôi có hướng và giải pháp cho một phần mềm dự toán Excel được lập trình bằng Microsoft Office với công nghệ VSTO 3.0.
Rất mong các bạn, các đơn vị có năng lực, hứng thú cùng tham gia đầu tư với chúng tôi để tiếp tục phát triển dự toán Excel thành hiện thực.
Chúng tôi có bản quyền code và được sự cho phép của tác giả Đỗ Anh Xuân.
Hiện tại công việc đã thực hiện được như sau :

http://www.youtube.com/watch?v=ZLLwo3pYpKk

Để hiểu thêm về dự án "Phần mềm dự toán XT" chúng tôi xin trình bày một số lý thuyết sau :
VBA (Visual Basic for Application) từ lâu đã được biết đến như một công cụ lập trình quen thuộc và dễ dùng cho việc phát triển ứng dụng trên nền Office cũng như mở rộng tính năng cho Office (sau đây xin gọi chung là ứng dụng nền). Tuy nhiên, vì đã ra đời khá lâu (năm 1993) và ít có sự cải tiến nên hiện tại cũng bộc lộ một số hạn chế như:
• Không hỗ trợ font chữ Unicode.
• Chỉ sử dụng ngôn ngữ Visual Basic (VB).
• Môi trường lập trình (IDE) và các Controls đi kèm lạc hậu so với các công cụ mới như Visual Studio (VS) 2008.
• Bảo vệ mã chương trình không triệt để.
• Chưa bắt kịp sự phát triển các tính năng của các phiên bản Office mới như Office 2007.
Vì lý do trên, Microsoft đã phát triển công cụ lập trình VSTO (môi trường .NET, là một phần trong bộ Visual Studio 2008) nhằm hỗ trợ tốt hơn việc lập trình trên Office (như Word, Excel, Outlook, PowerPoint...).
Về bản chất VSTO là một Add-in của Visual Studio (VS). VSTO xuất hiện từ khoảng đầu năm 2004 dựa trên VS 2003, với mục đích thay thế VBA trong Excel, Word. Nhưng phải đến phiên bản VS 2008 thì VSTO mới thực sự hoàn chỉnh với sự hỗ trợ lập trình mạnh mẽ trên các ứng dụng của Office 2003 và 2007.
Giống VBA, VSTO cũng tác động trực tiếp với các ứng dụng nền, như vậy sẽ khá thuận lợi khi người dùng chuyển từ VBA sang VSTO.
Những đặc điểm nổi bật của VSTO 3.0 (hay còn gọi là VSTO 2008):
• Hỗ trợ các ngôn ngữ mà VS hỗ trợ: VB .NET, C++, C#...
• Tận dụng giao diện đồ họa Windows Form của VS.
• Cải thiện khả năng truy cập cơ sở dữ liệu với server (SQL và ADO)
• Bảo vệ mã chương trình bằng cách che dấu và ngăn cản sự thay đổi từ bên ngoài.
• VSTO 3.0 cho phép tạo ứng dụng ở dạng nhúng hoặc độc lập.
Dạng nhúng: các ứng dụng được lưu theo các file dữ liệu của office như docx, xlsx... và chỉ sử dụng được cho file đó.
Dạng độc lập: mã chương trình được xuất thành dạng file *.dll, từ đó tham chiếu vào các ứng dụng tương ứng. Việc cài đặt các ứng dụng VSTO 3.0 rất đơn giản nhờ công nghệ ClickOnce.
Một số ứng dụng của VSTO:
• Tùy biến giao diện Ribbon
• Thay thế VBA dạng add-ins
• Tạo TaskPane cho ứng dụng Office
• Cá nhân hóa Outlook.
Về cơ bản, giống như VBA, VSTO được xây dựng dựa trên kiến trúc COM, cho nên người dùng có thể sử dụng các thành phần sẵn có của ứng dụng nền trong việc xây dựng chương trình của mình, giúp thời gian phát triển được rút ngắn.
Một dự án được xây dựng bằng VSTO dựa trên ứng dụng nền nào thì nó phụ thuộc chặt chẽ vào ứng dụng nền đó, bởi theo mặc định, dự án VSTO sẽ hoạt động và sử dụng các thành phần trong chính ứng dụng nền đó.
Sự khác biệt cơ bản nhất của VSTO trong các ứng dụng nền (ví dụ giữa Word và Excel) là cách thức sử dụng các thành phần (đối tượng) của ứng dụng nền. Cho nên khi xây dựng ứng dụng bằng VSTO, cũng như VBA, thì việc hiểu rõ mô hình đối tượng của ứng dụng nền là yêu cầu bắt buộc.


Hình 1: Hệ thống các đối tượng cơ bản trong MS Word và Excel
Nói tóm lại, để lập trình với VSTO, cách tốt nhất là làm chủ từng phần. Đầu tiên cần nắm vững một ngôn ngữ lập trình mà Visual Studio hỗ trợ (VB, C# hoặc C++) và cách sử dụng VSIDE để viết mã lệnh cũng như thiết kế giao diện. Sau đó nghiên cứu mô hình đối tượng của các ứng dụng nền (là những thành phần của ứng dụng mà người dùng có thể sử dụng) cũng như cách sử dụng chúng.

Công cụ cần có:
• Visual Studio 2008 với VSTO 3.0
• Microsoft Office 2007 hoặc 2003

Tiếp cận VSTO
Để người dùng bước đầu làm quen với VSTO, bài viết sẽ trình bày các bước tạo các ứng dụng trên MS Excel, Word ở 2 dạng độc lập và nhúng qua 2 ví dụ:



Hình 2: Tạo dự án mới trong Visual Studio 2008
Thêm tính năng xử lý tiếng Việt cho MS Word sử dụng Ribbon (dạng độc lập).

Tạo file Excel có chức năng nhập thông tin cá nhân (dạng nhúng).

Công cụ sử dụng: Visual Studio 2008; Microsoft Office 2007.

Ngôn ngữ lập trình: Visual Basic, nền tảng .NET Framework 3.5



Hình 3: Thêm điều khiển Ribbon
Ví dụ 1: Thêm tính năng xử lý tiếng Việt cho MS Word sử dụng Ribbon.

Tạo mới dự án: Chọn File > New Project, trong Project types chọn Visual Basic > Office > 2007 > Word 2007 Add-in.

Thêm điều khiển Ribbon vào dự án: Project > Add New Item.

Sử dụng Toolbox thêm các điều khiển cần thiết vào Ribbon.


Hình 4: Thiết kế giao diện cho Ribbon
Ribbon này sẽ được thêm vào trong ứng dụng Word khi bạn Debug (Tab Add-ins).

Sau khi thiết kế xong phần giao diện Ribbon, tiến hành viết mã lệnh cho các chức năng. Để điều khiển ứng dụng Word ta truy cập đến đối tượng Application theo cách sau:

Globals.ThisAddIn.Application


Ví dụ đoạn mã sau đây giúp chuyển tất cả nội dung văn bản được đánh dấu thành chữ in hoa.>


Hình 5: Các tính năng được thêm vào MS Word

Dim strSelect As String =

Globals.ThisAddIn.Application.Selection.Text
Globals.ThisAddIn.Application.Selection.Text = strSelect.ToUpper


Trong quá trình viết mã, tiến hành Debug bình thường, VSTO sẽ tự động khởi động MS Word để người lập trình kiểm thử ứng dụng.

Ví dụ 2: Tạo file Excel có chức năng nhập thông tin cá nhân
Tạo mới dự án: Trong Project types chọn Visual Basic > Office > 2007 > Excel 2007 Workbook.
Sử dụng Toolbox thêm các điều khiển dạng nhúng vào bảng tính (worksheet) để tạo form nhập thông tin cá nhân.


Hình 6: Giao diện Excel trong VSIDE

Hình 7: Giao diện Excel trong VSIDE
Viết mã lệnh cho điều khiển Button. Khi bấm Thêm vào danh sách, các thông tin do người dùng sẽ được nhập vào trong danh sách bên dưới.

Ví dụ đoạn mã chương trình khi sự kiện bấm nút "Thêm vào danh sách" xảy ra.

If txtHoTen.Text = "Nhập họ và tên" Then

MsgBox("Chưa nhập Họ và tên!")
ElseIf cbxQueQuan.Text = "Chọn địa danh" Then
MsgBox("Chưa nhập quê quán!")
ElseIf dtNgaySinh.Value.Year = Now.Year Then
MsgBox("Chưa nhập ngày tháng năm sinh!")
ElseIf rdbNam.Checked Or rdbNu.Checked Then
Me.Range("A" & i).Value2 =
Application.WorksheetFunction.Max(Range("A:A")) + 1
Me.Range("B" & i).Value2 = txtHoTen.Text
Me.Range("C" & i).Value2 = cbxQueQuan.Text
Me.Range("D" & i).Value2 = dtNgaySinh.Value
Me.Range("E" & i).Value2 = strGioiTinh
i = i + 1
Else
MsgBox("Chưa nhập giới tính!")
End If


Khi Debug, VSIDE sẽ tự động mở chương trình Excel để người lập trình kiểm thử ứng dụng của mình.

Phân phối cài đặt ứng dụng VSTO

Sau khi hoàn thiện ứng dụng, vấn đề phân phối cài đặt sang máy tính khác thường gặp khó khăn. Nhưng với VSTO 3.0 thì khác. Có 2 cách để thực hiện việc này.

Cách 1: Sử dụng công nghệ ClickOnce của Microsoft.
Chọn Project > Project Properties > Publish


Hình 8: Thiết kế Publish
Thiết lập các thông số tạo bộ cài đặt trên giao diện.

Publish Location: Vị trí tạo bộ cài đặt.

Prerequisites: Xác định các gói phần mềm cần cài đặt trước khi tiến hành cài đặt chương trình. Có 3 lựa chọn chính:

Tải từ website của nhà cung cấp.

Nhúng các gói phần mềm vào cùng thư mục cài đặt chương trình.

Cài đặt từ một thư mục xác định trước.
Nếu các gói phần mềm cần thiết chưa được cài đặt, chương trình sẽ tự động cài đặt theo một trong 3 cách trên.


Hình 9: Các file trong thư mục cài đặt
Chọn Publish Now để phát sinh bộ cài. Khi hoàn thành thư mục Publish xuất hiện các file:

Do lựa chọn Prerequisites theo cách 2, ngoài thư mục chứa chương trình, bộ cài còn nhúng sẵn các bộ cài cần thiết cho việc chạy chương trình như DotNetFX35, VSTOR30, WidnowsInstaller3_1.



Hình 10: Các file trong thư mục Release
Để cài đặt trên máy tính khác, chỉ cần thực thi Setup.exe và làm theo hướng dẫn. Sau khi cài đặt, các tính năng của add-in được thêm vào MS Word hoặc Excel.

Cách 2: Cài đặt trực tiếp qua file *.vsto
Sau khi Build, trong thư mục Project\bin\Release có các file:


Hình 11: Các file trong thư mục Release
Để cài đặt add-in này sang máy tính khác, copy toàn bộ thư mục trên, thực thi file *.vsto để cài đặt.
Để thực thi được các file dạng *.vsto, máy tính cần cài đặt Visual Studio Tools for the Office system 3.0 Runtime (Office 2007), cài đặt bằng file vstor30.exe, tải từ trang web chính thức của Microsoft.



Các bạn quan tâm có thể để lại tin nhắn hoặc gửi mail đến mail :xaydungit@gmail.com hoặc gọi tới số 0944 614 999 - 0989 728 788
Rất vui được hợp tác cùng phát triển dự án!
  • 3

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#2 baggiotung

baggiotung

    biết vẽ circle

  • Members
  • PipPip
  • 31 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 23 August 2012 - 08:55 AM

mình cũng chuẩn bị chuyển qua làm dự toán công trình, mong được học hỏi nhiều
  • 0

#3 reality

reality

    biết pan

  • Members
  • Pip
  • 7 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 01 October 2012 - 10:33 AM

Mình thì làm như thế này rồi xuất sang excel:

Link:

http://www.mediafire...uongTinhTDT.rar

 

Sơ lược:


  • 0

#4 phantuhuong

phantuhuong

    biết dimstyle

  • Moderator
  • PipPipPipPipPip
  • 383 Bài viết
Điểm đánh giá: 200 (khá)

Đã gửi 01 October 2012 - 10:55 AM

Ý tưởng của chú ketxu hay đó, viết hẳn trên Excel 2007 trở đi thì hay hơn, viết trên 2003 làm gì?
  • 1
Bồi dưỡng Excel & VBA cho các đơn vị ở Hà Nội và khu vực lân cận

Từng bước loại đồ Tàu ra khỏi cuộc sống!


#5 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 01 October 2012 - 11:04 AM

Hiện tại e k còn thời gian để làm nữa :(
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#6 reality

reality

    biết pan

  • Members
  • Pip
  • 7 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 19 January 2016 - 06:53 PM

Tiện ích vẽ biểu đồ gannt

http://www.mediafire...nhLapTienDo.rar


  • 0

#7 DuongTrungHuy

DuongTrungHuy

    biết lệnh copy

  • Members
  • PipPipPip
  • 116 Bài viết
Điểm đánh giá: 41 (tàm tạm)

Đã gửi 14 October 2016 - 03:12 PM

Mình cũng đã viết trên Excel để sử dụng nhiều năm rồi. Nhưng viết đơn giản chỉ để làm ăn chứ không đẹp như các Bạn, không biết có hữu ích cho dự án dự tóan Excel này không?

Mời xem:


  • 1