5,388
社区成员
发帖
与我相关
我的任务
分享
// 保存处理
procedure SysMethodFromKeep(Sender: TObject);
begin
// 校验处理
SysFormevent.SysFormeventCheck(Sender);
// 新增状态
if Man.InUp = 'IN' then
begin
// 基础资料类型
if Copy(TForm(Sender).UnitName, 1, 1) = 'U' then
begin
SysMethodFromUIn(Sender)
end;
// 单据类型
if Copy(TForm(Sender).UnitName, 1, 1) = 'Z' then
begin
SysMethodFromZIn(Sender)
end;
end
// 更新状态
else if Man.InUp = 'UP' then
begin
// 基础资料类型
if Copy(TForm(Sender).UnitName, 1, 1) = 'U' then
begin
SysMethodFromUUp(Sender)
end;
// 单据类型
if Copy(TForm(Sender).UnitName, 1, 1) = 'Z' then
begin
// SysMethodFromZUp(Sender)
end;
end;
end;
else if TForm(Sender).Components[i] is TDBLookupComboboxEh then
begin
if TDBLookupComboboxEh(TForm(Sender).Components[i]).Name = TableID then
begin
if Man.FDQuery1.FieldByName('CheckType').AsString = '非空' then
begin
if TDBLookupComboboxEh(TForm(Sender).Components[i]).Text = '' then
begin
Error := Man.FDQuery1.FieldByName('TableName').AsString + '不能为空';
MessageBox(0, PWCHAR(Error), '警告', MB_OKCANCEL);
exit;
end
end
end
end
procedure TSysFormevent.SysFormeventCheck(Sender: TObject);
var
i: Integer;
j: Integer;
FDQuery: TFDQuery;
FDQueryItem: TFDQuery;
DBGridEh: TDBGridEh;
DBGridEhItem: TDBGridEh;
TableID: String;
TableItemID: String;
MemTableEh: TMemTableEh;
FDMemTable: TFDMemTable;
Error: String;
RepeatName: String;
begin
// 控件初始化
FDQuery := nil;
FDQueryItem := nil;
MemTableEh := nil;
FDMemTable := nil;
RepeatName := '';
Man.FDQuery1.Close;
Man.FDQuery1.SQL.Clear;
Man.FDQuery1.SQL.Add('select * from t_Formcheck where ModID=''' +
Man.ChilFormTable + ''' or ModID=''' + Man.ChilFormTable + 'Item''');
Man.FDQuery1.Open;
while not Man.FDQuery1.Eof do
begin
for i := 0 to TForm(Sender).ComponentCount - 1 do
begin
TableID:=Man.FDQuery1.FieldByName('TableID').AsString;
if TForm(Sender).Components[i] is TEdit then
begin
if TEdit(TForm(Sender).Components[i]).Name = TableID then
begin
if Man.FDQuery1.FieldByName('CheckType').AsString = '非空' then
begin
if TEdit(TForm(Sender).Components[i]).Text = '' then
begin
Error := Man.FDQuery1.FieldByName('TableName').AsString + '不能为空';
// MessageDlg( '这是MessageDlg消息框', mtCustom, [mbOK], 0);
MessageBox(0, PWCHAR(Error), '警告',MB_ABORTRETRYIGNORE);
exit;
end
end
end
end
else if TForm(Sender).Components[i] is TComboBox then
begin
if TComboBox(TForm(Sender).Components[i]).Name = TableID then
begin
if Man.FDQuery1.FieldByName('CheckType').AsString = '非空' then
begin
if TComboBox(TForm(Sender).Components[i]).Text = '' then
begin
Error := Man.FDQuery1.FieldByName('TableName').AsString + '不能为空';
MessageBox(0, PWCHAR(Error), '警告', MB_ICONEXCLAMATION);
exit;
end
end
end
end
else if TForm(Sender).Components[i] is TDBLookupComboboxEh then
begin
if TDBLookupComboboxEh(TForm(Sender).Components[i]).Name = TableID then
begin
if Man.FDQuery1.FieldByName('CheckType').AsString = '非空' then
begin
if TDBLookupComboboxEh(TForm(Sender).Components[i]).Text = '' then
begin
Error := Man.FDQuery1.FieldByName('TableName').AsString + '不能为空';
MessageBox(0, PWCHAR(Error), '警告', MB_OKCANCEL);
exit;
end
end
end
end
else if (TForm(Sender).Components[i] is TDBGridEh) then
begin
if TDBGridEh(TForm(Sender).Components[i]).Name = 'DBGridEhBJ' then
begin
TDBGridEh(TForm(Sender).Components[i]).DataSource.DataSet.First;
while not TDBGridEh(TForm(Sender).Components[i]).DataSource.DataSet.Eof do
begin
for j := 0 to TDBGridEh(TForm(Sender).Components[i]).FieldCount-1 do
begin
if TDBGridEh(TForm(Sender).Components[i]).Fields[j].FullName=TableID then
begin
if Man.FDQuery1.FieldByName('CheckType').AsString = '非空' then
begin
if TDBGridEh(TForm(Sender).Components[i]).DataSource.DataSet.FieldByName(TableID).AsString = '' then
begin
Error := Man.FDQuery1.FieldByName('TableName').AsString+ '不能为空';
MessageBox(0, PWCHAR(Error), '警告', MB_ICONEXCLAMATION);
exit;
end
end
ELSE if Man.FDQuery1.FieldByName('CheckType').AsString = '重复' then
begin
RepeatName := RepeatName + TableID + '-' + TDBGridEh(TForm(Sender).Components[i]).DataSource.DataSet.FieldByName(TableID).AsString;
if Pos(TableID + '-' + TDBGridEh(TForm(Sender).Components[i]).DataSource.DataSet.FieldByName(TableID).AsString,RepeatName)>0 then
begin
Error := Man.FDQuery1.FieldByName('TableName').AsString+ '有重复数据';
MessageBox(0, PWCHAR(Error), '警告', MB_ICONEXCLAMATION);
exit;
end;
end;
end;
end;
TDBGridEh(TForm(Sender).Components[i]).DataSource.DataSet.Next;
end
end
end
end;
Man.FDQuery1.Next;
end;
end;