Bài số 02: XML NotePad

tuhocvba

Administrator
Thành viên BQT
=======================================
PHẦN 1: THỰC HIỆN CÀI ĐẶT XML Schema và XML NotePad
=======================================
Chúng ta cần một phần mềm biên tập XML để hỗ trợ.
Phần mềm XML Schema được biết tới như là một công cụ tạo XML khi nó có thể cho chúng ta lựa chọn Element hoặc Atribute từ gợi ý, nhưng nó lại không kiểm tra lỗi một cách hoàn hảo.
Tóm lại, chúng ta sẽ cài đặt hai phần mềm:
Phần mềm 1: XML Schema , cài vào để lấy thư viện của nó mà thôi (mình hiểu thế, thực tế không dùng tới phần mềm này)
Các bạn download ở đây:
Nếu là Office 2007 thì download ở đây:
Nếu là Office 2010 trở đi thì download ở đây (Mình đang dùng Office 2013 nên mình dùng cái này):
Phần mềm 2: XML Notepad, dùng để biên tập file XML

Sau khi cài đặt hai phần mềm trên, trên phần mềm XML Notepad bạn vào View => Schemas.
Tiếp theo bạn vào File, chọn Add Schemas, chọn tới customUI.xsd (Đường dẫn: C:\Program Files (x86)\CustomUIEditor\Schemas )
Hình ảnh minh họa:
Bạn cần đăng nhập để thấy đính kèm

Chú ý đừng tích chọn vào Disabled nhé.
Ấn OK.
Nguồn tham khảo:
 

tuhocvba

Administrator
Thành viên BQT
=======================================
PHẦN 2: THỰC HÀNH VỚI XML NotePad
=======================================
Ở phần này, trước khi bàn về việc tại sao lại thế, tôi muốn mọi người bắt chước và thao tác trên phần mềm XML NotePad, làm sao để tạo được mã XML có cấu trúc và giá trị như dưới đây.
Bạn cần đăng nhập để thấy đính kèm


Sau khi đã tự mình thực hành, bạn có thể xem video dưới đây, tôi mô tả lại quá trình mình tự thực hành ra sao:
Bạn cần đăng nhập để thấy đa phương tiện
Trong quá trình thực hành, tôi gặp khó khăn, không biết làm thế nào để tạo ra folder và nút màu đỏ một cách nhuần nhuyễn. Nhưng sau khi xem topic tham khảo , tôi đã có thể thực hiện nhuần nhuyễn như trong video các bạn đã thấy.
 

Euler

Administrator
Thành viên BQT
Kết quả thực hành và tự thay đổi thông số startFromScratch:
XML:
<?xml version="1.0" encoding="utf-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
        <ribbon startFromScratch="true">
            <tabs>
                <tab id="Tab1" label="tuhocvba.net" keytip="T">
                    <group id="Group1" label="ThongBao" keytip="M">
                         <button id="button1" label="TinNhan" keytip="L" size="large" onAction="tuhocvba"/>
                     </group>
                 </tab>
             </tabs>
         </ribbon>
     </customUI>
startFromScratch="true" cho nên kết quả là: Các Tab khác biến mất hoàn toàn, chỉ còn lại tab mới.
Bạn cần đăng nhập để thấy đính kèm

Nếu để là startFromScratch="false" thì các Tab mặc định của Excel vẫn còn, và Tab mới được thêm vào.
Bạn cần đăng nhập để thấy đính kèm
 

vbano1

SMod
Thành viên BQT
1.Custom UI Editor
Bạn cần đăng nhập để thấy đính kèm

Hiện tại vẫn chưa phân biệt được khác nhau giữa Office 2007, vì không có ai dùng Office2007. Đối với lựa chọn Office 2010, xác nhận dùng được cho Office 2013, Office 2016. Mình nghĩ không có vấn đề gì.
2. UTF-8
Một trong hai dòng code mà video đề cập, trong đó có dòng code về UTF-8.
XML:
<?xml version="1.0" encoding="utf-8"?>
Việc này cũng giống như mọi người gõ text trên notepad thôi, để không lỗi font thì để UTF-8 cho an toàn.
Bạn cần đăng nhập để thấy đính kèm


Ảnh minh họa dùng trên win tiếng nhật, có lẽ là không có vấn đề gì với mọi người. Có thể tưởng tượng được phải không :)
3. startFromScratch="true"
Giá trị mặc định của nó là false. Khi để là true thì chẳng còn tab nào hiển thị ngoại trừ tab mà bạn sẽ tạo ra bằng XML.
Mọi người thử mã XML sau, xem excel của bạn sẽ như thế nào nhé.
XML:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="true" />
</customUI>
Chú ý khi gõ giá trị true hay false thì các chữ cái đều không viết hoa.
4. Tự mình tạo tab
XML:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="true">
    <tabs>
      <tab id="Tab1" />
    </tabs>
  </ribbon>
</customUI>
startFromScratch = true nên các tab vốn có của excel sẽ bị biến mất, chỉ còn tab mới hiển thị. Nhưng tab mới không có thuộc tính label cho nên khi hiển thị chẳng có cái tên nào, chỉ là một khoảng trắng.
Bạn cần đăng nhập để thấy đính kèm


5. Tạo tab mới với tên tab được hiển thị bằng thuộc tính label.
XML:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="true">
    <tabs>
      <tab id="Tab1" label="Sample"/>
    </tabs>
  </ribbon>
</customUI>
Tên tab mới là Sample. Do ribbon startFromScratch = true nên các tab vốn có của excel không được hiển thị.
Bạn cần đăng nhập để thấy đính kèm


6. Cho các tab vốn có của excel hiển thị.
Thiết định ribbon startFromScratch= false.
Mã:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab id="Tab1" label="Sample"/>
    </tabs>
  </ribbon>
</customUI>
Hình ảnh minh họa dưới đây sẽ làm các bạn hơi rối mắt vì win sử dụng tiếng nhật, nhưng các bạn cũng thấy rằng, tab mới được hiển thị cùng với các tab vốn có của excel.
Bạn cần đăng nhập để thấy đính kèm


7. Tôi muốn tab mới hiển thị trước tab Home.
Chúng ta sử dụng thuộc tính insert... như sau:
insertBeforeMso="TabHome"
XML:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab id="Tab1" label="Sample" insertBeforeMso="TabHome"/>
    </tabs>
  </ribbon>
</customUI>
Bạn cần đăng nhập để thấy đính kèm

Như vậy các bạn đã thấy tab Sample được tạo ra nằm ngoài cùng bên trái rồi đấy.
Suy nghĩ ngược lại, ta cũng có thể để Sample nằm sau tab Home: insertAfterMso
XML:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab id="Tab1" label="Sample" insertAfterMso="TabHome"/>
    </tabs>
  </ribbon>
</customUI>
Bạn cần đăng nhập để thấy đính kèm


8. Keytip
Keytip là phím để bạn truy cập tab bằng phím tắt.
Bạn ấn ALT + keytip là truy cập được vào tab mới.
Theo qui định, bạn được sử dụng từ 1 đến 3 ký tự cho keytip. Các ký tự của bộ gõ tiếng anh nhé.
Mã:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab id="Tab1" label="Sample" insertAfterMso="TabHome" keytip="S" />
    </tabs>
  </ribbon>
</customUI>
Ở code trên, có nghĩa là nếu bạn ấn ALT+S thì sẽ truy cập vào tab Sample.
Bạn cần đăng nhập để thấy đính kèm


9. Hiển thị group
Trong Tab, bạn có thể cho hiển thị tên nhóm (group)
XML:
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab id="Tab1" label="Sample" insertAfterMso="TabHome" keytip="S">
        <group id="Group1" label="Sample group" />
      </tab>
    </tabs>
  </ribbon>
</customUI>
Bạn cần đăng nhập để thấy đính kèm


10. Hiển thị hướng dẫn chức năng
Trên XML Notepad bạn sẽ thấy một thuộc tính có tên là supertip

Bạn cần đăng nhập để thấy đính kèm

Khi trỏ chuột sẽ hiển thị môt popup hướng dẫn như thế này:
Bạn cần đăng nhập để thấy đính kèm

Bài viết được tham khảo và sử dụng hình ảnh từ:
 
Sửa lần cuối bởi điều hành viên:

tuhocvba

Administrator
Thành viên BQT
Đang cần sử dụng món này mà XML Schema tẻo rồi. Ai có link download không thì upload giúp lên với.
@Ngày Mới có cách nào tạo Ribbon gõ tiếng việt không. Hjc.
 
D

Deleted member 1392

Guest
Chưa hiểu câu hỏi của @tuhocvba lắm, là tạo thẻ label có tiếng Việt hay là một cái Textbox gõ tiếng việt ta?.
 

tuhocvba

Administrator
Thành viên BQT
Label có tiếng việt ok rồi . Có cách nào cho chữ label viết trên hai dòng được ko nhỉ, chữ dài quá . Mình thử \n ngắt dòng mà chưa được .
 

tuhocvba

Administrator
Thành viên BQT
Đây, đang bị lỗi chữ nghĩa không xuống dòng theo ý muốn.
Bạn cần đăng nhập để thấy đính kèm

Ai có cao kiến gì không?
 

tuhocvba

Administrator
Thành viên BQT
Không được đâu. Khi hiển thị thì mất &, còn lại #13:
Bạn cần đăng nhập để thấy đính kèm
 
D

Deleted member 1392

Guest
Có để dấu ; sau khi kết thúc thêm kí tự đặc biệt không @tuhocvba. Mình thêm vẫn rất bình thường

Ví dụ:
Mã:
Trang g&#7889;c &#13;Hello
Bạn cần đăng nhập để thấy hình ảnh


Mã:
Ch&#7841;y Copy hello hello &#13;Xin chao
Bạn cần đăng nhập để thấy hình ảnh
 

tuhocvba

Administrator
Thành viên BQT
Kết quả chưa ổn lắm rồi:
Bạn cần đăng nhập để thấy đính kèm
 
Top