|
Создание базы данных |
248 Next i1249 GettingDiagData = True1250 1251 Case False ' ************************************************************************1252 ReDim DiagData(2 * SelectColList. ListCount) 1253 For R% = 0 To SelectColList. ListCount - 11254 Call GetTableIndex(SelectColList. List(R), TI) 1255 Call GetColIndex(SelectColList. List(R), TI, CI) 1256 ' зная номер таблицы и номер поля данных нужно проверить тип поля1257 If (DB(TI). Cols(CI). Class <> ccInteger) Then1258 Call MsgForm. ErrorMsg("Нельзя строить диаграмму по нечисленным данным! ") 1259 Exit Function1260 End If1261 Dim Summary As Integer1262 Summary = 01263 For i% = 0 To DB(TI). Header. RowCount - 11264 Summary = Summary + DB(TI). Rows(i). Fields(CI) 1265 Next i1266 ' заполнение массива данных1267 DiagData(2 * R) = Summary1268 DiagData(2 * R + 1) = MainForm. TabStrip. Tabs(TI + 1). Caption + ". " + DB(TI). Cols(CI). title1269 Next R1270 GettingDiagData = True1271 End Select1272 1273End Function12741275Private Sub OkBut_Click() 1276 If (OkBut. Tag = 0) Then Exit Sub1277 Call SoundClick1278 1279 If GettingDiagData(SelectColList. ListCount = 1) Then1280 Load DiagResForm1281 Call DiagResForm. InitDiagData(DiagData, DiagTypeCombo. ListIndex, (Enabled3DCheck. value = 1)) 1282 DiagResForm. Show vbModal1283 End If1284End Sub12851286Private Sub CancelBut_Click() 1287 Call SoundClick1288 Unload Me1289End Sub12901291Private Sub TableColList_DblClick() 1292 i% = TableColList. ListIndex1293 s$ = "{ " + CStr(TableIndexCombo. ListIndex) + ", " + TableIndexCombo. Text + " } " + TableColList. List(i) 1294 For j% = 0 To SelectColList. ListCount - 11295 If (SelectColList. List(j) = s) Then Exit Sub1296 Next j1297 Call ButEnabled(OkImg, OkBut, True) 1298 SelectColList. AddItem s1299End Sub13001301Private Sub SelectColList_DblClick() 1302 If (SelectColList. ListIndex > - 1) Then SelectColList. RemoveItem SelectColList. ListIndex1303 Call ButEnabled(OkImg, OkBut, (SelectColList. ListCount > 0)) 1304End Sub13051306Private Sub TableIndexCombo_Click() 1307 DBI% = TableIndexCombo. ListIndex1308 TableColList. Clear1309 For i% = 0 To DB(DBI). Header. ColCount - 11310 TableColList. AddItem DB(DBI). Cols(i). title1311 Next i1312 If (TableColList. ListCount > 0) Then TableColList. ListIndex = 01313End SubФорма: PasswordForm. frm1314Public res As Boolean13151316Private Sub Form_Activate() 1317 res = False1318 If Frame1. Visible Then1319 PassText. SetFocus1320 Else1321 SetPassText. SetFocus1322 End If1323End Sub13241325Private Sub Form_Load() 1326 Call ButEnabled(OkImg, OkBut, True) 1327 Call ButEnabled(CancelImg, CancelBut, True) 1328 TopImg. Picture = MainForm. TopImageList. ListImages(1). Picture1329End Sub13301331Private Sub OkBut_Click() 1332 res = True1333 Call SoundClick1334 Hide1335End Sub13361337Private Sub CancelBut_Click() 1338 Call SoundClick1339 Hide1340End Sub13411342Private Sub PassText_KeyDown(KeyCode As Integer, Shift As Integer) 1343 If (KeyCode = 13) Then Call OkBut_Click1344End Sub13451346Private Sub SetPassText_KeyDown(KeyCode As Integer, Shift As Integer) 1347 If (KeyCode = 13) Then Call OkBut_Click1348End SubФорма: AboutForm. frm1349Private Sub Form_Load() 1350 Call MInit1351 Call ButEnabled(OkImg, OkBut, True) 1352 Label6. Caption = "v. " + CStr(App. Major) + ". " + CStr(App. Minor) + ". " + CStr(App. Revision) 1353End Sub13541355Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) 1356 Call MDown(x, y) 1357End Sub13581359Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) 1360 Call MMove(hwnd, x, y) 1361End Sub13621363Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) 1364 Call MUp1365End Sub13661367Private Sub Image2_Click() 1368 Call ShellExecute(0, "", "mailto: xerx@nightmail. ru", "", "", 1) 1369End Sub13701371Private Sub NoViewLabel_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) 1372 Call MDown(x, y) 1373End Sub13741375Private Sub NoViewLabel_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) 1376 Call MMove(hwnd, x, y) 1377End Sub13781379Private Sub NoViewLabel_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) 1380 Call MUp1381End Sub13821383Private Sub OkBut_Click() 1384 Unload Me1385End SubФорма: DiagResForm. frm1386Dim dW%, dH%, dX%, dH2%1387Dim DiagData() As TDiagElem1388Dim DrawingMode As Byte, Use3D As Boolean13891390' константы для вывода куска более 270 градусов (выводимая часть) 1391Const mode270begin As Byte = 11392Const mode270end As Byte = 213931394' данные для процедур рисования1395 Const Pi_180 As Double = 1.74532925199433E-021396 Const Pi_2 As Double = 1.57079632679491397 Const NearZero As Double = 1E-4513981399 Dim Xc%, Yc% ' центр диаграммы1400 Dim Radius# ' радиус кусков1401 Dim InRad# ' радиус разноса кусков1402 Dim OneGradus# ' единиц в одном градусе1403 Dim ChartHeight% ' высота графика1404 Dim ChartWidth% ' ширина графика1405 Dim ChartTop% ' верх графика1406 Dim ChartDown% ' низ графика1407 Dim ItemCount% ' кол-во элементов1408 Dim Max%, Sum% ' максимальное значение и сумма всех значений1409 Dim OldGrad# ' предыдущий угол1410 Dim LineCount As Long ' количество полос заливки1411 Dim d3D% ' смещение в 3D, в пикселях1412 Dim dWidth As Single ' ширина одного столбца1413 Dim dHeight As Single ' высота 'единицы высоты'1414 Dim StartFillColor As Long1415 Dim EndFillColor As Long1416 Dim LineColor As Long1417 Dim LineWidth As Byte1418 Dim PointRadius%1419 Dim Ellipce#1420 Dim UseColorFill As Boolean1421 Dim UseCircleLegend As Boolean1422 Dim UseLineLeftValues As Boolean14231424Public Sub InitDiagData(Data(), ByVal Mode As Byte, ByVal May3D As Boolean) 1425 ReDim DiagData(UBound(Data) \ 2 - 1) 1426 d# = 255 / (UBound(Data) \ 2 - 1) 1427 For i% = 0 To (UBound(Data) \ 2 - 1) 1428 DiagData(i). Val = Abs(Data(2 * i)) 1429 DiagData(i). Text = Data(2 * i + 1) 1430 DiagData(i). Color = RGB(i * d, i * d, i * d) 1431 Next i1432 DrawingMode = Mode1433 Use3D = May3D1434 1435 Label2. Visible = (DrawingMode <> 3) 1436 Label3. Visible = Label2. Visible1437 VScroll. Enabled = Not Label2. Visible1438End Sub14391440Public Sub ColorFill(PB As PictureBox, ByVal StColor As Long, ByVal EnColor As Long) 1441 Dim dR#, dG#, DB#, dC1 As Long, dC2 As Long1442 Dim R#, G#, B#1443 Dim intLoop As Long1444 1445 PB. Line (0, 0) - (PB. Width, PB. Height), EnColor, BF14461447 ' get Red1448 dC1 = StColor - (StColor \ &H100) * &H1001449 R = dC11450 dC2 = EnColor - (EnColor \ &H100) * &H1001451 dR = (dC1 - dC2) / LineCount1452 1453 ' get Green1454 dC1 = (StColor - (StColor \ &H10000) * &H10000 - dC1) \ &H1001455 G = dC11456 dC2 = (EnColor - (EnColor \ &H10000) * &H10000 - dC2) \ &H1001457 dG = (dC1 - dC2) / LineCount1458 1459 ' get Blue1460 dC1 = StColor \ &H100001461 B = dC11462 dC2 = EnColor \ &H100001463 DB = (dC1 - dC2) / LineCount14641465 With PB1466. DrawStyle = 11467. DrawMode = vbCopyPen1468. ScaleMode = vbPixels1469. DrawWidth = 21470. ScaleHeight = LineCount1471 For intLoop = 0 To LineCount - 11472 PB. Line (0, intLoop) - (PB. Width, intLoop - 1), RGB(R, G, B), BF1473 R = R - dR: If (R < 0) Then R = 255: If (R > 255) Then R = 01474 G = G - dG: If (G < 0) Then G = 255: If (G > 255) Then G = 01475 B = B - DB: If (B < 0) Then B = 255: If (B > 255) Then B = 01476 Next intLoop1477. ScaleMode = vbTwips1478. DrawWidth = 11479 End With1480End Sub14811482Sub OutOneElem(ElemIndex As Integer, StAn#, EnAn#, Optional Mode270Mode As Byte = 0) 1483 ' центральный угол1484 angle# = (StAn + (EnAn - StAn) / 2) * Pi_1801485 1486 ' динамическая глубина1487 d3D_% = Round(d3D / 100 * (100 - Round(100 * Ellipce))) 1488 If (d3D_ = 0) Then d3D_ = 11489 ' динамическое смещение центров кусков1490 r_# = Ellipce * d3D / 1001491 1492 X1# = Xc + Radius * Cos(angle) 1493 Y1# = Yc - Radius * Sin(angle) 1494 1495 x# = Xc + InRad / Radius * (X1 - Xc) 1496 y# = Yc + InRad / Radius * (Y1 - Yc) * r_1497 1498 If (Not Use3D) Then1499 Chart. FillStyle = 01500 Chart. FillColor = DiagData(ElemIndex). Color1501 If (StAn <> 0) Then1502 Chart. Circle (x, y), Radius, LineColor, - StAn * Pi_180, - EnAn * Pi_180, Ellipce1503 Else1504 Chart. Circle (x, y), Radius, LineColor, - 1E-45, - EnAn * Pi_180, Ellipce1505 End If1506 Chart. FillStyle = 11507 1508 ' вывод значений1509 R# = 1.3. * Radius1510 X2# = x + R * Cos(angle) 1511 Y2# = y - Ellipce * R * Sin(angle) 1512 1513 x0# = x + Radius * Cos(angle) 1514 y0# = y - Ellipce * Radius * Sin(angle) 1515 1516 str_1$ = CStr(DiagData(ElemIndex). Text) 1517 d1# = Chart. TextWidth(str_1) 1518 str_2$ = CStr(DiagData(ElemIndex). Val) 1519 d2# = Chart. TextWidth(str_2) 1520 1521 If UseCircleLegend Then1522 Chart. DrawStyle = 41523 Chart. Line (x0, y0) - (X2, Y2), LineColor1524 Chart. DrawStyle = 01525 1526 If Not ((angle > Pi_2) And (angle <= 3 * Pi_2)) Then1527 Chart. Line (X2, Y2) - (X2 + d1, Y2), LineColor1528 Chart. CurrentX = X21529 Chart. CurrentY = Y21530 Chart. Print CStr(str_1) 1531 1532 Chart. CurrentX = X21533 Chart. CurrentY = Y2 - Chart. TextHeight(str_2) 1534 Chart. Print CStr(str_2) 1535 Else1536 Chart. Line (X2, Y2) - (X2 - d1, Y2), LineColor1537 Chart. CurrentX = X2 - d11538 Chart. CurrentY = Y21539 Chart. Print CStr(str_1) 1540 1541 Chart. CurrentX = X2 - d11542 Chart. CurrentY = Y2 - Chart. TextHeight(str_2) 1543 Chart. Print CStr(str_2) 1544 End If1545 End If1546 1547 Else1548 Chart. FillStyle = 01549 Chart. FillColor = DiagData(ElemIndex). Color1550 1551 Select Case Mode270Mode1552 Case 01553 sa# = StAn1554 If (sa = 0) Then sa = 1E-45 Else sa = sa * Pi_1801555 For i% = d3D_ To 1 Step - 11556 If (i = d3D_) Then1557 Chart. DrawStyle = vbSolid1558 Chart. Circle (x, Screen. TwipsPerPixelY * (i - 1) + y), Radius, LineColor, - sa, - EnAn * Pi_180, Ellipce1559 Chart. DrawStyle = vbInvisible1560 ElseIf (i = 1) Then1561 Chart. DrawStyle = vbSolid1562 Chart. Circle (x, y), Radius, LineColor, - sa, - EnAn * Pi_180, Ellipce1563 Chart. DrawStyle = vbInvisible1564 Else1565 Chart. Circle (x, Screen. TwipsPerPixelY * (i - 1) + y), Radius, LineColor, - sa, - EnAn * Pi_180, Ellipce1566 End If1567 Next i1568 1569 Case mode270begin1570 For i% = d3D_ To 1 Step - 11571 If (i = d3D_) Then1572 Chart. DrawStyle = vbSolid1573 Chart. Circle (x, Screen. TwipsPerPixelY * (i - 1) + y), Radius, LineColor, - StAn * Pi_180, - EnAn * Pi_180, Ellipce1574 Chart. DrawStyle = vbInvisible1575 Else1576 Chart. Circle (x, Screen. TwipsPerPixelY * (i - 1) + y), Radius, LineColor, - StAn * Pi_180, - angle, Ellipce1577 End If1578 Next i1579 1580 Case mode270end1581 For i% = d3D_ To 1 Step - 11582 If (i = 1) Then1583 Chart. DrawStyle = vbSolid1584 Chart. Circle (x, y), Radius, LineColor, - StAn * Pi_180, - EnAn * Pi_180, Ellipce1585 Else1586 Chart. DrawStyle = vbInvisible1587 Chart. Circle (x, Screen. TwipsPerPixelY * (i - 1) + y), Radius, LineColor, - angle, - EnAn * Pi_180, Ellipce1588 End If1589 Next i1590 End Select1591 1592 Chart. FillStyle = 11593 Chart. DrawStyle = vbSolid1594 1595 ' вывод значений1596 R# = 1.3. * Radius1597 X2# = x + R * Cos(angle) 1598 Y2# = y - Ellipce * R * Sin(angle) 1599 1600 x0# = x + Radius * Cos(angle) 1601 y0# = y - Ellipce * Radius * Sin(angle) 1602 1603 str_1$ = CStr(DiagData(ElemIndex). Text) 1604 d1# = Chart. TextWidth(str_1) 1605 str_2$ = CStr(DiagData(ElemIndex). Val) 1606 d2# = Chart. TextWidth(str_2) 1607 1608 If UseCircleLegend Then1609 Chart. DrawStyle = 41610 Chart. Line (x0, y0) - (X2, Y2), LineColor1611 Chart. DrawStyle = 01612 1613 If Not ((angle > Pi_2) And (angle <= 3 * Pi_2)) Then1614 Chart. Line (X2, Y2) - (X2 + d1, Y2), LineColor1615 Chart. CurrentX = X21616 Chart. CurrentY = Y21617 Chart. Print CStr(str_1) 1618 1619 Chart. CurrentX = X21620 Chart. CurrentY = Y2 - Chart. TextHeight(str_2) 1621 Chart. Print CStr(str_2) 1622 Else1623 Chart. Line (X2, Y2) - (X2 - d1, Y2), LineColor1624 Chart. CurrentX = X2 - d11625 Chart. CurrentY = Y21626 Chart. Print CStr(str_1) 1627 1628 Chart. CurrentX = X2 - d11629 Chart. CurrentY = Y2 - Chart. TextHeight(str_2) 1630 Chart. Print CStr(str_2) 1631 End If1632 End If1633 1634 ' а теперь вывод боковых линий1635 Chart. DrawStyle = 016361637 ' начальный угол1638 If Not ((StAn > 90) And (StAn < 180)) Then1639 sa# = StAn * Pi_1801640 x0 = x + Radius * Cos(sa) 1641 y0 = y - Radius * Ellipce * Sin(sa) 16421643 If (Mode270Mode <> mode270end) Then
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|