001.
private
void
printDocument1_PrintPage(
object
sender, System.Drawing.Printing.PrintPageEventArgs e)
002.
{
003.
004.
if
(bFirstPage) printDocumentNewPage(sender, e);
005.
006.
#region _Draw Detail
007.
008.
int
yC = 120, xC = 100;
009.
int
a = 0, b = 0, _a = 0, _b = 0,
010.
den_1 = 1, den_2 = 1, _den_1 = 1, _den_2 = 1,
011.
ext_1 = 0, ext_2 = 0, _ext_1 = 0, _ext_2 = 0;
012.
string
_sop = Sop;
013.
string
_Den;
014.
for
(
int
i = 0; i < 6; i++)
015.
{
016.
017.
_den_1 = 1;
018.
_den_2 = 1;
019.
_ext_1 = 0;
020.
_ext_2 = 0;
021.
if
(Den ==
"E/NE"
)
022.
{
023.
switch
(RandomNumber.Randomnumber(1, 4000))
024.
{
025.
case
int
n when n > 3000:
026.
_Den =
"E"
;
break
;
027.
case
int
n when n <= 3000 && n > 2000:
028.
_Den =
"NE"
;
break
;
029.
case
int
n when n <= 2000 && n > 1000:
030.
_Den =
"E_Int"
;
break
;
031.
case
int
n when n <= 1000:
032.
_Den =
"E_Flc"
;
break
;
033.
default
:
034.
_Den =
"E"
;
break
;
035.
}
036.
}
037.
else
038.
{
039.
_Den = Den;
040.
}
041.
042.
if
(_Den ==
"E"
)
043.
{
044.
_den_1 = RandomNumber.Randomnumber(3, 10);
045.
_den_2 = _den_1;
046.
047.
}
048.
else
if
(_Den ==
"NE"
)
049.
{
050.
_den_1 = RandomNumber.Randomnumber(4, 10);
051.
do
052.
{
053.
_den_2 = RandomNumber.Randomnumber(2, 10);
054.
}
while
(_den_1 == _den_2);
055.
056.
}
057.
else
if
(_Den ==
"E_Int"
)
058.
{
059.
int
aa = RandomNumber.Randomnumber(1, 3000);
060.
if
(aa > 1500)
061.
{
062.
_den_2 = 1;
063.
_den_1 = RandomNumber.Randomnumber(3, 10);
064.
}
065.
else
066.
{
067.
_den_1 = 1;
068.
_den_2 = RandomNumber.Randomnumber(3, 10);
069.
}
070.
071.
072.
}
073.
else
if
(_Den ==
"E_Flc"
)
074.
{
075.
076.
_den_1 = RandomNumber.Randomnumber(5, 10);
077.
_den_2 = RandomNumber.Randomnumber(5, 10);
078.
_ext_1 = RandomNumber.Randomnumber(0, 10);
079.
_ext_2 = RandomNumber.Randomnumber(0, 10);
080.
081.
082.
083.
084.
085.
086.
087.
088.
089.
090.
091.
092.
093.
094.
095.
096.
097.
098.
}
099.
100.
101.
102.
103.
104.
105.
_a = (_den_1 == 1) ? RandomNumber.Randomnumber(1, 10) :
106.
((_den_1 == 2) ? 1 : RandomNumber.Randomnumber(1, _den_1));
107.
_b = (_den_2 == 1) ? RandomNumber.Randomnumber(1, 10) :
108.
((_den_2 == 2) ? 1 : RandomNumber.Randomnumber(1, _den_2));
109.
110.
a = _a;
111.
b = _b;
112.
den_1 = _den_1;
113.
den_2 = _den_2;
114.
ext_1 = _ext_1;
115.
ext_2 = _ext_2;
116.
117.
if
(Sop ==
"+-x÷"
)
118.
{
119.
120.
int
aa = RandomNumber.Randomnumber(1, 4000);
121.
switch
(aa)
122.
{
123.
case
int
n when n > 3000:
124.
_sop =
"+"
;
125.
break
;
126.
case
int
n when n <= 3000 && n > 2000:
127.
_sop =
"-"
;
128.
break
;
129.
case
int
n when n <= 2000 && n > 1000:
130.
_sop =
"x"
;
131.
break
;
132.
case
int
n when n <= 1000:
133.
_sop =
"÷"
;
134.
break
;
135.
default
:
136.
_sop =
"+"
;
137.
break
;
138.
139.
}
140.
}
141.
142.
if
(_sop ==
"-"
)
143.
{
144.
double
v_a = (Convert.ToDouble(((_ext_1 == 0) ? 1d : _ext_1)) * Convert.ToDouble(_den_1) + Convert.ToDouble(_a)) / Convert.ToDouble(_den_1);
145.
double
v_b = (Convert.ToDouble(((_ext_2 == 0) ? 1d : _ext_2)) * Convert.ToDouble(_den_2) + Convert.ToDouble(_b)) / Convert.ToDouble(_den_2);
146.
147.
if
(v_a > v_b)
148.
{
149.
a = _b;
150.
b = _a;
151.
den_1 = _den_2;
152.
den_2 = _den_1;
153.
ext_1 = _ext_2;
154.
ext_2 = _ext_1;
155.
}
156.
else
if
(v_a == v_b)
157.
{
158.
b += (b == 1) ? 1 : RandomNumber.Randomnumber(1, b);
159.
}
160.
161.
}
162.
163.
164.
165.
166.
if
(den_2 > 1)
167.
{
168.
e.Graphics.DrawFraction(ext_2, b, den_2, xC + 10, yC);
169.
}
170.
else
171.
{
172.
e.Graphics.DrawString(b.ToString(),
new
Font(
"Angsana New"
, 22),
new
SolidBrush(Color.Black), xC + 60, yC + 15);
173.
}
174.
175.
e.Graphics.DrawString(_sop,
new
Font(
"Angsana New"
, 22),
new
SolidBrush(Color.Black), xC + 80, yC + 15);
176.
177.
if
(den_1 > 1)
178.
{
179.
e.Graphics.DrawFraction(ext_1, a, den_1, xC + 100, yC);
180.
}
181.
else
182.
{
183.
e.Graphics.DrawString(b.ToString(),
new
Font(
"Angsana New"
, 22),
new
SolidBrush(Color.Black), xC + 110, yC + 15);
184.
}
185.
186.
187.
e.Graphics.DrawString(
" วิธีทำ# "
,
new
Font(
"Angsana New"
, 20),
new
SolidBrush(Color.Black), xC + 200, yC + 5);
188.
yC += 150;
189.
190.
}
191.
192.
193.
#endregion
194.
195.
196.
197.
if
(iPage > iPageAll - 1)
198.
{
199.
bNewPage =
false
;
200.
bMorePagesToPrint =
false
;
201.
}
202.
203.
if
(bNewPage)
204.
{
205.
printDocumentNewPage(sender, e);
206.
}
207.
208.
iPage++;
209.
210.
211.
e.HasMorePages = (bMorePagesToPrint) ?
true
:
false
;
212.
}