18.1. Lấy một số câu hỏi theo nhãn đã biết
1. Khi biết một số nhãn của các câu hỏi ví dụt2017:b10,t2017:b15ta lấy vào: \loadselectedproblems[bttn]{t2017:b10,t2017:b15}{01cauhoi-toan-2017}
Dùng nó trong tùy chọn [baithi]:
\begin{vnmultiplechoice}[keycolumns=3]% \useproblem[bttn]{t2017:b10}
\useproblem[bttn]{t2017:b15} \end{vnmultiplechoice}
Trong tùy chọn [baitap]
\loadselectedproblems[bttn]{t2017:b10,t2017:b15}{01cauhoi-toan-2017} \showproblems
\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }] \item\useproblem[bttn]{t2017:b10}
\item\useproblem[bttn]{t2017:b15} \end{enumerate}
2. Tương tự nếu có nhiều nhãn đưa vào danh sách: \def\dsnhan{t2017:b20,t2017:b21,t2017:b22}
\loadselectedproblems[bttnnew]{\dsnhan}{01cauhoi-toan-2017}
Sử dụng các nhãn như trên, nhưng ở đây ta dùng cách khác trong tùy chọn [baithi] \begin{vnmultiplechoice}[keycolumns=3]%
\foreachproblem[bttnnew]{\thisproblem} \end{vnmultiplechoice}
Trong tùy chọn [baitap] \showproblems
\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }]
\foreachproblem[bttnnew]{\item\label{prob:\thisproblemlabel}\thisproblem} \end{enumerate}
3. Lấy các nhãn câu hỏi trong tệp dữ liệu:
Với lớp vieexamdesign.cls đưa vào tự chọn draft; \documentclass[11pt,draft]{vieexamdesign} Lấy toàn bộ câu hỏi bằng lệnh và môi trường
\begin{vnmultiplechoice}[keycolumns=3]% \selectallproblems{01cauhoi-toan-2017} \end{vnmultiplechoice}
Khi biên dịch sẽ có trang đầu tiên chứa các nhãn kèm theo tên tệp chứa nhãn như [01cauhoi-toan-2017,t2017:b01] [01cauhoi-toan-2017,t2017:b02]
[01cauhoi-toan-2017,t2017:b03] [01cauhoi-toan-2017,t2017:b04] [01cauhoi-toan-2017,t2017:b05] [01cauhoi-toan-2017,t2017:b06] ....
Chép nhãn vào một tệp và lấy nhãn bằng thay thế tên tệp bằng trắng,... t2017:b01, t2017:b02, t2017:b03, t2017:b04, t2017:b05, t2017:b06, t2017:b07, t2017:b08, t2017:b09, t2017:b10, t2017:b11, t2017:b12, t2017:b13, t2017:b14, t2017:b15, t2017:b16, t2017:b17, t2017:b18, t2017:b19, t2017:b20, t2017:b21, t2017:b22, t2017:b23, t2017:b24, t2017:b25, t2017:b26, t2017:b27, t2017:b28, t2017:b29, t2017:b30, t2017:b31, t2017:b32, t2017:b33, t2017:b34, t2017:b35, t2017:b36, t2017:b37, t2017:b38, t2017:b39, t2017:b40, t2017:b41, t2017:b42, t2017:b43, t2017:b44, t2017:b45, t2017:b46, t2017:b47, t2017:b48, t2017:b49, t2017:b50
18.2. Lấy một số câu hỏi ngẫu nhiên từ tệp dữ liệu
1. Bằng lệnh lấy một số câu hỏi, ví dụ như lấy 5 câu hỏi trong tệpcauhoi02-ktracnghiem.tex \loadrandomproblems[ktracnghiem]{5}{cauhoi02-ktracnghiem}
Tương ứng lệnh này dùng các câu hỏi được gọi vào bộ nhớ trên như sau: Tùy chọn [baithi] của dethi
\begin{vnmultiplechoice}[keycolumns=3] \foreachproblem[ktracnghiem]{\thisproblem}
\end{vnmultiplechoice}
Tùy chọn [baitap] \showproblems
\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }]
\foreachproblem[ktracnghiem]{\item\label{prob:\thisproblemlabel}\thisproblem} \end{enumerate}
2. Lệnh lấy một số ngẫu nhiên câu hỏi trong tệp dữ liệu mà không cần đưa qua bộ nhớ, ví dụ lấy 4 câu hỏi từ tệp01cauhoi-toan-2017:
Trong tùy chọn [baithi]
\begin{vnmultiplechoice}[keycolumns=3] \selectrandomly{01cauhoi-toan-2017}{4}
\end{vnmultiplechoice}
Trong tùy chọn [baitap] \showproblems
\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }] \selectrandomly{01cauhoi-toan-2017}{4}
18.3. Lấy toàn bộ câu hỏi và lấy đồng thời trong nhiều tệp
1. Lấy toàn bộ câu hỏi trong tệp, tùy chọn [baithi] \begin{vnmultiplechoice}[keycolumns=3]
\selectallproblems{01cauhoi-toan-2017} \end{vnmultiplechoice}
Tùy chọn [baitap] \showproblems
\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }] \selectallproblems{01cauhoi-toan-2017}
\end{enumerate}
2. Những lệnh trên có thể lấy câu hỏi trong nhiều tệp khác nhau một lúc. xem trong tệp vidu02-tracnghiem-nhan-cauhoi.tex
Nhưng chú ý không đồng thời lấy hai lần câu hỏi có cùng một nhãn, mỗi câu hỏi chỉ lấy vào bộ nhớ 1 lần, nếu nhiều hơn chương trình sẽ bóa lỗi.