TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG FRAMEWORK HỖ TRỢ CÁC HÌNH THỨC TRẮC NGHIỆM -10 potx - Pdf 20



124
9.2 Kỹ thuật automation Microsoft Word
9.2.1 Giới thiệu
Automation là kỹ thuật cho phép tận dụng các tính năng của 1 ứng dụng có sẵn và
tích hợp vào trong chương trình của mình.
Hệ thống của chúng em đòi hỏi phải kết xuất các đề thi ra file để phục vụ cho yêu
cầu thi trên giấy, cũng như phải nhập được dữ liệu câu hỏi từ các định dạng file để
tận dụng ngân hàng đề thi đã có từ trước đến nay.
Theo nhận xét thì định dạ
ng file .doc và file .pdf là phổ biến nhất hiện nay cho việc
lưu trữ ngân hàng đề thi, tuy nhiên đã có nhiều chương trình hỗ trợ cho việc chuyển
qua lại giữa 2 định dạng file này. Thêm nữa, file .doc có thể dễ dàng được tạo ra vì
MS Word là trình soạn thảo văn bản rất thân thiện, phổ biến. Vì vậy, chúng em
quyết định sử dụng kỹ thuật automation để automate MS Word nhằm sử dụng trực
tiếp các tính năng có sẵn củ
a Word phục vụ cho yêu cầu nhập xuất/kết xuất ngân
hàng đề thi, câu hỏi của hệ thống.
9.2.2
Các đối tượng trong MS Word

Hình 9-1 Sơ đồ quan hệ của các đối tượng của MS Word
 Mặc định là được ẩn đi.
9.2.3
Ngôn ngữ VBA (Microsoft Visual Basic for Applications)
Tất cả các ứng dụng của Microsoft Office đều có ngôn ngữ script của nó, đó
chính là VBA. Ngôn ngữ này có thể được sử dụng để thực hiện các nhiệm vụ trong
ứng dụng. Nói 1 cách dễ hiểu thì tất cả các thao tác trên ứng dụng thông qua thanh
menu và bàn phím đều có thể được diễn tả lại bằng ngôn ngữ này. Vì vậy, có 1 cách
giúp cho người chưa quen với đối tượng của MS Word xác định được các công việc 126
phải làm khi thực hiện automation là sử dụng các macro của chính MS Word ghi lại
các thao tác muốn automate.
Ví dụ bạn muốn automate MS Word để tạo 1 file mới, gõ vào 1 đoạn text rồi
lưu lại nhưng bạn không biết phải sử dụng các hàm nào. Bạn có thể thông qua các
macro để biết được điều đó.
Trước tiên, bạn phải ghi lại 1 macro mới.

Hình 9-2 Record macro trong MS Word
Sau đó, bạn thực hiện các thao tác muốn automate rồi dừng việc ghi macro lại.
Và cuối cùng, bạn chỉ việc xem MS Word đã thao tác như thế nào thông qua macro
vừa ghi được.
ảnh cụ thể để copy lưu vào trong cơ sở dữ liệu.
Object missing = System.Reflection.Missing.Value;

object saveFileName = uniqueFileName;
object fileFormat = Word.WdSaveFormat.wdFormatHTML;

// Luu vao file tam duoi dang html
wordApp.ActiveDocument.SaveAs(
ref saveFileName, ref fileFormat, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing);
129
wordApp.ActiveDocument.Close(ref missing, ref missing, ref missing);

StreamReader r = new StreamReader(uniqueFileName);
string str = r.ReadToEnd();
r.Close();

int n1 = str.IndexOf("<body");
char tempChar = '<';

130
9.2.4.2
Export
Hệ thống hỗ trợ việc export 1 đề thi ra file .doc theo 1 template đề thi có sẵn.
Template đề thi được tạo ra theo ý thích của các giáo viên và được copy vào trong
thư mục WordFile Temlates của hệ thống. 1 template đề thi phải đáp ứng các yêu
cầu sau:
- Có 1 bookmark có tên là assName đặt tại vị trí giáo viên muốn hiển thị tên
bài thi.
- Có 1 bookmark có tên là assHeader đặt tại vị trí giáo viên muốn hiển thị các
ghi chú đầu bài thi (header)
- Có 1 bookmark có tên là assFooter đặt tại vị trí giáo viên muốn hiển thị các
ghi chú cuố
i bài thi (footer)
- Có 1 bookmark có tên là assSections đặt tại vị trí giáo viên muốn bắt đầu
hiển thị các section, các câu hỏi của bài thi.
- Phần nào giáo viên không muốn hiển thị thì bookmark đánh dấu phần đó
không cần phải được tạo ra.
Khi có yêu cầu export 1 đề thi ra file, chương trình sẽ tìm vị trí các bookmark,
nếu bookmark tồn tại trong file template được chọn thì chương trình sẽ ghi đoạn
văn bản phù hợp vào vị trí bookmark đó.
foreach (Word.Bookmark brm in privateWordApp.ActiveDocument.Bookmarks)
if (brm.Name == "assHeader")
ReplaceBookmarkText("assHeader", privateAssessment.HeaderNote);

Trường hợp đoạn văn bản cần ghi có chứa tag image (tức là phải chèn 1 hình
vào file) thì chương trình sẽ thực hiện thêm 1 đối tượng Word.Shape vào tập hợp

Object oMissing = Type.Missing;

// them 1 hinh anh vao tap hop InlineShapes
privateWordApp.Selection.InlineShapes.AddPicture(image, ref
oFalse, ref oTrue, ref oMissing);

pos = strText.IndexOf("/img>");
strText.Remove(0, pos);

pos = strText.IndexOf("<img");
}

privateWordApp.Selection.TypeText(strText);
}
132
Chương 10 Tổng kết
10.1 Kết luận
Sau thời gian nghiên cứu, tìm hiểu các hình thức trắc nghiệm và phát triển ứng
dụng, đề tài đã đạt được các mục tiêu sau:
o Xây dựng được một cổng dịch vụ thi cử là một hệ thống liên hoàn phối
hợp nhuần nhuyễn giữa môi trường web và windows trong việc quản lý

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl=" >

<xsl:template match="@*|node()">
<xsl:apply-templates select="*" />
</xsl:template>

<xsl:template match="assessmentItem">
<xsl:copy>
<xsl:apply-templates select="@* | text() | node()" />

</xsl:copy>
</xsl:template>

<xsl:template match="responseDeclaration">
<xsl:copy>
<xsl:apply-templates select="@* | text() | node()" />
</xsl:copy>
</xsl:template>

<xsl:template match="responseDeclaration/node()
| responseDeclaration/text()
| responseDeclaration/node()/node()
| responseDeclaration/text()/node()">
<xsl:copy>
<xsl:apply-templates select="@* | text() | node()" />
</xsl:copy>
</xsl:template>



<xsl:template match="responseProcessing">
<xsl:copy>
<xsl:apply-templates select="@* | text() | node()" />
</xsl:copy>
</xsl:template>

<xsl:template match="@*">
<xsl:copy>
<xsl:apply-templates select="*" />
</xsl:copy>
</xsl:template>

<xsl:template match="text()">
<xsl:copy>
<xsl:apply-templates select="*" />
</xsl:copy>
</xsl:template>

</xsl:stylesheet>
135

fixed="false">Helium</simpleChoice>
<simpleChoice identifier="C"
fixed="false">Carbon</simpleChoice>
<simpleChoice identifier="O"
fixed="false">Oxygen</simpleChoice>
<simpleChoice identifier="N"
fixed="false">Nitrogen</simpleChoice>
<simpleChoice identifier="Cl"
fixed="false">Chlorine</simpleChoice>
</choiceInteraction>
</itemBody>
<responseProcessing
template=" />nse"
templateLocation=" /RPTemplates/rpMapResponse.xml"/>
</assessmentItem> 136
o Câu hỏi textEntryInteraction:
<?xml version="1.0" encoding="UTF-8"?>
<assessmentItem identifier="textEntry" title="Richard III (Take
3)"
adaptive="false" timeDependent="false">
<responseDeclaration identifier="RESPONSE" cardinality="single"

137
o Câu hỏi orderInteraction:
<?xml version="1.0" encoding="UTF-8"?>
<assessmentItem identifier="order" title="Grand Prix of Bahrain"
adaptive="false" timeDependent="false">
<responseDeclaration identifier="RESPONSE"
cardinality="ordered" baseType="identifier">
<correctResponse>
<value>DriverC</value>
<value>DriverA</value>
<value>DriverB</value>
</correctResponse>
</responseDeclaration>
<outcomeDeclaration identifier="SCORE" cardinality="single"
baseType="integer"/>
<itemBody>
<orderInteraction responseIdentifier="RESPONSE"
shuffle="true">
<prompt>The following F1 drivers finished on the podium in
the first ever Grand Prix of
Bahrain. Can you rearrange them into the correct
finishing order?</prompt>
<simpleChoice identifier="DriverA">Rubens
Barrichello</simpleChoice>

[6] www.asp.net

[7] www.w3.org


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status