1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
| void __fastcall TFProverka::SG1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
//------------------------------------------------------------------------------
// Предупреждение - все пустые Желтым цветом
// кроме,
//------------------------------------------------------------------------------
//Выделяю в желтый цвет все пустые ячейки и CBWarning->Checked
if ( SG1->Cells[ACol][ARow]=="" && indi && CBWarning->Checked
&& ACol!=7 && ACol!=16 && ACol!=17 )
{
TRect recc = Rect;
recc.left = Rect.left+2;
recc.top = Rect.top+2;
SG1->Canvas->Brush->Color = clYellow;
SG1->Canvas->FillRect(Rect);
DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
}
//------------------------------------------------------------------------------
// Дата рождения больше текущей
//------------------------------------------------------------------------------
//Если Дата рождения не пустая и indi=true и стоит галочка записи с ошибками,
if ( SG1->Cells[7][ARow]!="" && indi && CBError->Checked )
{
AnsiString dateBirth = SG1->Cells[ACol][ARow];
TDateTime dt;
//Если Дата рождения больше текущей
if ( TryStrToDate(dateBirth, dt)
&& Dateutils::CompareDate(Today(), dt) != GreaterThanValue)
{
TRect recc = Rect;
recc.left = Rect.left+2;
recc.top = Rect.top+2;
SG1->Canvas->Brush->Color = clRed;
SG1->Canvas->FillRect(Rect);
DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
//Делаю неактивной кнопку Сохранить XML
BSaveXML->Enabled = false;
}
}
//------------------------------------------------------------------------------
// Дата рождения пустая
//------------------------------------------------------------------------------
//Если Дата рождения пустая и indi=true и стоит галочка записи с ошибками,
if (ACol==7 && SG1->Cells[7][ARow]=="" && indi && CBError->Checked )
{
TRect recc = Rect;
recc.left = Rect.left+2;
recc.top = Rect.top+2;
SG1->Canvas->Brush->Color = clRed;
SG1->Canvas->FillRect(Rect);
DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
BSaveXML->Enabled = false;
}
//------------------------------------------------------------------------------
// Ошибка Формата даты
//------------------------------------------------------------------------------
//Если Дата рождения не пустая и indi=true и стоит галочка записи с ошибками,
if ( ACol==7 && ARow>1 && SG1->Cells[7][ARow]!="" && indi && CBError->Checked )
{
AnsiString dateBirth = SG1->Cells[ACol][ARow];
TDateTime dt;
//Если ошибка Формата даты
if ( !TryStrToDate(dateBirth, dt) )
{
TRect recc = Rect;
recc.left = Rect.left+2;
recc.top = Rect.top+2;
SG1->Canvas->Brush->Color = clRed;
SG1->Canvas->FillRect(Rect);
DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
BSaveXML->Enabled = false;
}
}
//------------------------------------------------------------------------------
// Дата рождения больше 100 лет
//------------------------------------------------------------------------------
//Если Дата рождения не пустая и indi=true и стоит галочка записи с ошибками,
if ( ACol==7 && SG1->Cells[7][ARow]!="" && indi && CBError->Checked )
{
AnsiString dateBirth = SG1->Cells[ACol][ARow];
TDateTime dt;
//Если дата больше 100 лет
if ( TryStrToDate(dateBirth, dt)
&& Dateutils::CompareDate(Today(), dt) == GreaterThanValue
&& YearsBetween(Today(), dt) > 100 )
{
TRect recc = Rect;
recc.left = Rect.left+2;
recc.top = Rect.top+2;
SG1->Canvas->Brush->Color = clRed;
SG1->Canvas->FillRect(Rect);
DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
BSaveXML->Enabled = false;
}
} |