📄 sy_jypfx.pas
字号:
Act_add.Enabled := (SelectedRowsCount = 1);
Act_delete.Enabled := (SelectedRowsCount = 1);
Act_modify.Enabled := (SelectedRowsCount = 1);
exit;
end
else
begin
Act_add.Enabled := true;
Act_delete.Enabled := true;
Act_modify.Enabled := true;
Act_send.Enabled := false;
exit;
end;
VLp_status := SubMod;
//设置DBGrid状态
if (vlp_FocusGrid = DBGid_tao) then
DBGid_tao.TitleFont.Color := clnavy
else
DBGid_tao.TitleFont.Color := clblack;
if (VLp_FocusGrid = DBGid_mei) then
DBGid_mei.TitleFont.Color := clnavy
else
DBGid_mei.TitleFont.Color := clblack;
GBo_tao.Visible := (vlp_FocusGrid = DBGid_tao);
GBo_mei.Visible := (vlp_FocusGrid = DBGid_mei);
//设置button状态
Act_add.Enabled := (SubMod = 0);
Act_delete.Enabled := (SubMod = 0);
Act_modify.Enabled := (SubMod = 0);
Act_save.Enabled := (SubMod = 1) or (SubMod = 3);
Act_cancel.Enabled := (SubMod = 1) or (SubMod = 3);
Act_send.Enabled := Act_add.Enabled;//(SubMod = 0) or (SubMod = 4);
DBGid_tao.Enabled := (SubMod = 0) or (SubMod = 2);
DBGid_mei.Enabled := (SubMod = 0) or (SubMod = 2);
vl_b_tao := ((SubMod = 1) or (SubMod = 3) and (vlp_FocusGrid.Tag = 0));
for i := 0 to GBo_tao.ControlCount - 1 do
begin
if (GBo_tao.Controls[i] is TDBEdit) or
(GBo_tao.Controls[i] is TDBDateEdit) or
(GBo_tao.Controls[i] is TDBMemo) or
(GBo_tao.Controls[i] is TSpeedButton) or
(GBo_tao.Controls[i] is TDBLookupComboBox) then
begin
(GBo_tao.Controls[i]).Enabled := vl_b_tao;
end;
end;
DBEdit1.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
vl_b_mei := ((SubMod = 1) or (SubMod = 3) and (vlp_FocusGrid.Tag = 1));
for i := 0 to GBo_mei.ControlCount - 1 do
begin
if (GBo_mei.Controls[i] is TDBEdit) or
(GBo_mei.Controls[i] is TDBDateEdit) or
(GBo_mei.Controls[i] is TDBMemo) or
(GBo_mei.Controls[i] is TSpeedButton) then
begin
(GBo_mei.Controls[i]).Enabled := vl_b_mei;
end;
end;
end;
procedure TFrmY_jypfx.Act_addExecute(Sender: TObject);
begin
SetEditStatus(1);
vlp_FocusGrid.DataSource.DataSet.Append;
case vlp_FocusGrid.Tag of
0:
begin
Qry_tao.FieldByName('ND').AsString := SpinEdit1.Text;
Qry_pplb.First;
Qry_tao.FieldByName('JYPLB').AsString := Qry_pplb.FieldByName('JYPLDM').AsString;
DBLCbox_jyplb.KeyValue := Qry_pplb.FieldByName('JYPLDM').AsString;
Qry_tzdm.First;
Qry_tao.FieldByName('TZDM').AsString := Qry_tzdm.FieldByName('TZDM').AsString;
DBLCbox_tz.KeyValue := Qry_tzdm.FieldByName('TZDM').AsString;
DBEdit1.SetFocus;
end;
1: //mei
begin
Qry_mei.FieldByName('JHH').AsString := Qry_tao.FieldByName('JHH').AsString;
Qry_mei.FieldByName('DW').AsString := Qry_tao.FieldByName('DW').AsString;
Qry_mei.FieldByName('JHFXL').AsString := Qry_tao.FieldByName('JHFXL').AsString;
DBEdit13.SetFocus;
end;
end;
end;
procedure TFrmY_jypfx.Act_deleteExecute(Sender: TObject);
begin
if ((vlp_FocusGrid.tag = 0) and (DBGid_tao.DataSource.DataSet.IsEmpty)) or
((vlp_FocusGrid.tag = 1) and (DBGid_mei.DataSource.DataSet.IsEmpty)) then
begin
CHQMsgBox('当前没有可删除的记录!');
exit;
end;
if CHQMsgBox('确实要删除选中的记录吗?', 2) <> IDYes then
Exit;
{ if DBGid_tao.SelectedRows.Count = 0 then
begin
DBGid_tao.SelectedRows.CurrentRowSelected := true;
end;}
vlp_FocusGrid.DataSource.DataSet.Next;
if (VLp_FocusGrid.DataSource.DataSet.Eof) then
begin
VLp_FocusGrid.DataSource.DataSet.Prior;
vlp_stao_jhh := Qry_tao.fieldbyname('JHH').AsString;
if VLp_FocusGrid.Tag = 1 then
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
VLp_FocusGrid.DataSource.DataSet.Next;
end
else
begin
vlp_stao_jhh := Qry_tao.fieldbyname('JHH').AsString;
if vlp_FocusGrid.Tag = 1 then
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
vlp_FocusGrid.DataSource.DataSet.Prior;
end;
Qry_tao.DataBase.StartTransaction;
try
with Qry_super do
begin
case vlp_FocusGrid.tag of
0: //套
begin
Close;
SQL.Clear;
SQL.Add('DELETE FROM TF_YPFXJHM WHERE JHH =''' +
Qry_tao.fieldbyname('JHH').AsString + '''');
ExecSQL;
vlp_FocusGrid.DataSource.DataSet.Delete;
end;
1: //图
begin
vlp_FocusGrid.DataSource.DataSet.Delete;
end;
end;
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
Qry_tao.DataBase.Commit;
except
Qry_tao.DataBase.RollBack;
raise exception.Create('数据访问错误!');
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
vlp_FocusGrid.DataSource.DataSet.Close;
vlp_FocusGrid.DataSource.DataSet.Open;
case vlp_focusgrid.tag of
0: //套
Qry_tao.Locate('JHH', vlp_stao_jhh, []);
1: //图
Qry_mei.Locate('JHH; MXH', VarArrayOf([vlp_stao_jhh, vlp_imei_mxh]), []);
end;
end;
procedure TFrmY_jypfx.Act_modifyExecute(Sender: TObject);
begin
if vlp_FocusGrid.DataSource.DataSet.IsEmpty then
begin
CHQMsgBox('当前没有可修改的记录!');
exit;
end;
if DBGid_tao.SelectedRows.Count = 0 then
begin
DBGid_tao.SelectedRows.CurrentRowSelected := true;
end;
vlp_stao_jhh := Qry_tao.fieldbyname('JHH').AsString;
if vlp_focusgrid.tag = 1 then //图
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
vlp_FocusGrid.DataSource.DataSet.Edit;
SetEditStatus(3);
if vlp_FocusGrid.Tag = 1 then //tu
begin
ActiveControl := DBEdit13;
vlp_oldmeival.old_mei_jhh := Qry_mei.FieldByName('JHH').AsString;
vlp_oldmeival.old_mei_mxh := Qry_mei.FieldByName('MXH').AsString;
end
else //tao
begin
ActiveControl := DBEdit8;
end;
end;
procedure TFrmY_jypfx.Act_saveExecute(Sender: TObject);
begin
case vlp_FocusGrid.Tag of
0:
begin
if (Trim(DBEdit1.Text) = '') then
begin
CHQMsgBox('“计划号”内容不能为空!');
ActiveControl := DBEdit1;
exit;
end;
if (Trim(DBEdit8.Text) = '') then
begin
CHQMsgBox('“序号”内容不能为空!');
ActiveControl := DBEdit8;
exit;
end;
if (Trim(DBEdit3.Text) = '') then
begin
CHQMsgBox('“套名称”内容不能为空!');
ActiveControl := DBEdit3;
exit;
end;
end;
1:
begin
if (Trim(DBEdit13.Text) = '') then
begin
CHQMsgBox('“枚序号”内容不能为空!');
ActiveControl := DBEdit13;
exit;
end;
if (Trim(DBEdit15.Text) = '') then
begin
CHQMsgBox('“名称”内容不能为空!');
ActiveControl := DBEdit15;
exit;
end;
end;
end;
if (vlp_status = 1) then //add编辑状态
begin
case vlp_FocusGrid.tag of
0: //套
begin
if ExistRecord('TF_YPFXJHTAO', 'JHH = ''' +
trim(Qry_tao.FieldByName('JHH').AsString) + '''') then
begin
CHQMsgBox('该套集邮品的发行计划信息已经存在!');
ActiveControl := DBEdit1;
exit;
end;
Qry_tao.FieldByName('ZBR').AsString := VG_UserName;
end;
1: //图
begin
if ExistRecord('TF_YPFXJHM', 'JHH=''' + trim(Qry_tao.FieldByName('JHH').AsString) +
''' AND MXH=''' + trim(Qry_mei.FieldByName('MXH').AsString) + '''') then
begin
CHQMsgBox('该枚集邮品的记录已经存在!');
ActiveControl := DBEdit13;
exit;
end;
end;
end;
vlp_stao_jhh := Qry_tao.fieldbyname('JHH').AsString;
if vlp_FocusGrid.Tag = 1 then //图
begin
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
end;
end
else
begin //edit
//**
if vlp_FocusGrid.Tag = 1 then //tu
begin
if (Qry_mei.FieldByName('MXH').AsString <> vlp_oldmeival.old_mei_mxh) then //(Qry_mei.FieldByName('JHH').AsString <> oldtuval.old_tu_jhh) or
begin
if ExistRecord('TF_YPFXJHM', 'JHH=''' +
Qry_tao.FieldByName('JHH').AsString + ''' AND MXH=''' +
Qry_mei.FieldByName('MXH').AsString + '''') then
begin
CHQMsgBox('该枚集邮品的发行计划信息已经存在!');
Qry_mei.FieldByName('MXH').AsString := vlp_oldmeival.old_mei_mxh;
ActiveControl := DBEdit13;
exit;
end;
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
end;
end;
end;
Qry_tao.DataBase.StartTransaction;
try
(vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
Qry_tao.DataBase.Commit;
except
Qry_tao.DataBase.RollBack;
raise exception.Create(vlp_s_errmsg);
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
vlp_FocusGrid.DataSource.DataSet.Close;
vlp_FocusGrid.DataSource.DataSet.Open;
case vlp_focusgrid.tag of
0: //套
Qry_tao.Locate('JHH', vlp_stao_jhh, []);
1: //图
Qry_mei.Locate('JHH; MXH', VarArrayOf([vlp_stao_jhh, vlp_imei_mxh]), []);
end;
SetEditStatus(0);
end;
procedure TFrmY_jypfx.Act_cancelExecute(Sender: TObject);
begin
Qry_tao.DataBase.StartTransaction;
try
(vlp_FocusGrid.DataSource.DataSet as TQuery).CancelUpdates;
Qry_tao.DataBase.Commit;
except
Qry_tao.DataBase.RollBack;
raise exception.Create(vlp_s_errmsg);
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
case vlp_focusgrid.tag of
0: //套
Qry_tao.Locate('JHH', vlp_stao_jhh, []);
1: //图
Qry_mei.Locate('JHH; MXH', VarArrayOf([vlp_stao_jhh, vlp_imei_mxh]), []);
end;
SetEditStatus(0);
end;
procedure TFrmY_jypfx.Act_exitExecute(Sender: TObject);
begin
close;
end;
procedure TFrmY_jypfx.DBGid_taoEnter(Sender: TObject);
var
i: integer;
vl_s_oldfld: string;
begin
vlp_FocusGrid := (Sender as TDBGrid);
if (vlp_FocusGrid = DBGid_tao) then
begin
DBGid_tao.TitleFont.Color := clnavy;
DBGid_tao.Color := clWindow;
DBGid_mei.Color := cl3DLight;
end
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -