procedure
TMainForm
.
dstSpcPostError(DataSet: TDataSet; E: EDatabaseError;
var
Action: TDataAction);
var
i:
integer
;
s,gridName:
string
;
begin
S :=
''
;
gridName:=GetGridName(DataSet
.
Name);
for
i :=
0
to
DataSet
.
FieldCount -
1
do
begin
if
DataSet
.
Fields[i].Required
and
DataSet
.
Fields[i].IsNull
then
s := s +
'Поле '
+(FindComponent(gridName)
as
TDBGridEh).Columns[GetColumnByName(DataSet
.
Fields[i].FullName,(FindComponent(gridName)
as
TDBGridEh))].Title
.
Caption+
' не может быть пустым. '
;
end
;
E
.
Message:=s;
end
;
function
TMainForm
.
GetColumnByName(
const
sFieldName :
String
; GridEh : TDBGridEh):
Integer
;
var
i:
Integer
;
begin
Result := -
1
;
for
i :=
0
to
GridEh
.
Columns
.
Count-
1
do
begin
if
GridEh
.
Columns[i].FieldName = sFieldName
then
begin
Result := i;
break;
end
;
end
;
end
;
function
TMainForm
.
GetGridName(a:
string
):
string
;
var
i:
integer
;
begin
result :=
''
;
for
I:=
0
to
ComponentCount -
1
do
if
(Components[i]
is
TDBGridEh)
then
if
(Components[i]
as
TDBGridEh).DataSource
.
DataSet
.
Name = a
then
begin
result := (Components[i]
as
TDBGridEh).Name;
break;
end
;
end
;