📄 gf_pfxjh.pas
字号:
if Frmf_img <> nil then
Frmf_img.Close;
SaveAllColWidth(Self);
end;
procedure TFrmf_pfxjh.CBo_taClick(Sender: TObject);
begin
if not CBo_ta.Checked then
Frmf_img.Visible := False;
if CBo_ta.Checked then
begin
// Frmf_img.Visible := True;
// DBGid_tu.Columns[4].Visible := True;
with Qry_pfxjhtu do
begin
Close;
SQL.Text := ' select d.TUDM,d.ZH,a.JHH,a.BBH,a.TZDM,a.TX,a.TBBH,a.QXBZ,a.PPLB,a.TUMC,'
+' a.MZ,a.SJ,a.GG,a.WXGG,a.FXL,a.FXRQ,a.XGZT,a.BZ,a.YZBB,'
+' DECODE(a.XGZT,''0'',''未改动'',''1'',''修改'',''2'',''新增'',''3'',''删除'') as ZT from'
+' TF_PFXJHTU a,'
+' (select b.jhh jhh1,c.zh,c.txh,c.tudm from TB_YZPPTXXB b, TB_YZPPTUXXB c where b.tdm=c.tdm ) d'
+' where (a.JHH=d.JHH1(+)) and (a.TX=d.TXH(+)) and (a.JHH=:JHH) and (a.XGZT <> ''3'') order by TO_NUMBER(a.TX)';
Open;
end;
end
else
begin
// Frmf_img.Visible := False;
// DBGid_tu.Columns[4].Visible := False;
with Qry_pfxjhtu do
begin
Close;
SQL.Text := ' select '' '' tudm ,'' '' zh,JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,'
+' MZ,SJ,GG,WXGG,FXL,FXRQ,XGZT,BZ,YZBB,'
+' DECODE(XGZT,''0'',''未改动'',''1'',''修改'',''2'',''新增'',''3'',''删除'') as ZT from TF_PFXJHTU '
+' where JHH=:JHH and XGZT <> ''3'' order by TO_NUMBER(TX)';
Open;
end;
end;
Qry_pfxjhtao.AfterScroll(nil);
if Qry_pfxjhtu.IsEmpty then Exit;
Qry_pfxjhtuAfterScroll(nil);
if CBo_ta.Checked then
Frmf_img.Visible := True;
end;
procedure TFrmf_pfxjh.DBEit_tu_txKeyPress(Sender: TObject; var Key: Char);
begin
pub_KeyPress(Sender, Key);
end;
procedure TFrmf_pfxjh.DBEit_tao_xhKeyPress(Sender: TObject; var Key: Char);
begin
pub_KeyPress(Sender, Key);
end;
procedure TFrmf_pfxjh.SumTao(P_S_TX: string='');
var
vl_d_mz: double;
vl_d_sj: double;
vl_d_ms: double;
begin
with data.Qry_super do
begin
Close;
SQL.Clear;
SQL.Add('select sum(MZ),sum(SJ),count(JHH) from tf_pfxjhtu ' +
'where JHH = ''' + DBGid_tao.DataSource.DataSet.FieldByName('JHH').AsString + '''');
if length(P_S_TX) > 0 then
SQL.Add(' and TX<>''' + P_S_TX + '''');
SQL.Add(' and XGZT <> ''3'' group by JHH');
Open;
vl_d_mz := Fields[0].AsFloat;
vl_d_sj := Fields[1].AsFloat;
vl_d_ms := Fields[2].AsFloat;
Close;
SQL.Clear;
SQL.Add('update TF_PFXJHTAO set QTMS=' + floattostr(vl_d_ms) +
', QTMZ=' + floattostr(vl_d_mz) + ', TPSJ=' + floattostr(vl_d_sj) +
' where JHH = ''' + DBGid_tao.DataSource.DataSet.FieldByName('JHH').AsString +
''' and XGZT<>''3''');
ExecSQL;
end;
end;
function TFrmf_pfxjh.CheckTAOField(): boolean;
begin
Result := false;
if (DBEit_tao_nd.Text = '') then
begin
CHQMsgBox('“年度”内容不能为空!');
ActiveControl := DBEit_tao_nd;
exit;
end;
if (DBEit_tao_xh.Text = '') then
begin
CHQMsgBox('“序号”内容不能为空!');
ActiveControl := DBEit_tao_xh;
exit;
end;
if (DBLCB_tao_pplb.Text = '') then
begin
CHQMsgBox('“票品类别”内容不能为空!');
ActiveControl := DBLCB_tao_pplb;
exit;
end;
if (DBEit_tao_mc.Text = '') then
begin
CHQMsgBox('“套名称”内容不能为空!');
ActiveControl := DBEit_tao_mc;
exit;
end;
if (DBEit_tao_qtms.Text = '') then
begin
CHQMsgBox('“全套枚数”内容不能为空!');
ActiveControl := DBEit_tao_qtms;
exit;
end;
if (DBEit_tao_qtmz.Text = '') then
begin
CHQMsgBox('“全套面值”内容不能为空!');
ActiveControl := DBEit_tao_qtmz;
exit;
end;
if (DBDEit_tao_fxrq.Text = ' - - ') then
begin
CHQMsgBox('“发行日期”内容不能为空!');
ActiveControl := DBDEit_tao_fxrq;
exit;
end;
if (DBEit_tao_fxl.Text = '') or (DBEit_tao_fxl.Text = '0') then
begin
CHQMsgBox('“套发行量”内容不能为空!');
ActiveControl := DBEit_tao_fxl;
exit;
end;
Result := true;
end;
function TFrmf_pfxjh.CheckTUField(): boolean;
begin
Result := false;
if (DBEit_tu_tx.Text = '') then
begin
CHQMsgBox('“图序”内容不能为空!');
ActiveControl := DBEit_tu_tx;
exit;
end;
if (DBEit_tu_tumc.Text = '') then
begin
CHQMsgBox('“图名称”内容不能为空!');
ActiveControl := DBEit_tu_tumc;
exit;
end;
if (DBEit_tu_mz.Text = '') then
begin
CHQMsgBox('“面值”内容不能为空!');
ActiveControl := DBEit_tu_mz;
exit;
end;
if (DBEit_tu_sj.Text = '') then
begin
CHQMsgBox('“售价”内容不能为空!');
ActiveControl := DBEit_tu_sj;
exit;
end;
if (DBEit_tu_gg.Text = '') then
begin
CHQMsgBox('“规格”内容不能为空!');
ActiveControl := DBEit_tu_gg;
exit;
end;
if (DBEit_tu_fxl.Text = '') or (DBEit_tu_fxl.Text = '0') then
begin
CHQMsgBox('“发行量”内容不能为空或零值!');
ActiveControl := DBEit_tu_fxl;
exit;
end;
if (DBDEit_tu_fxrq.Text = ' - - ') then
begin
CHQMsgBox('“发行日期”内容不能为空!');
ActiveControl := DBDEit_tu_fxrq;
exit;
end;
Result := true;
end;
function TFrmf_pfxjh.SaveAftAddTao():boolean;
var
vl_s_xh: String;
vl_v_lsh: variant;
begin
Result := false;
if ExistRecord('TF_PFXJHTAO', '(ND = ''' +
Qry_pfxjhtao.FieldByName('ND').AsString +
''') AND (XH = ''' + Qry_pfxjhtao.FieldByName('XH').AsString +
''') AND (PPLB = ''' + Qry_pfxjhtao.FieldByName('PPLB').AsString +
''') AND (TZDM = ''' + Qry_pfxjhtao.FieldByName('TZDM').AsString +''')') then
begin
CHQMsgBox('该套邮票的记录已经存在!');
ActiveControl := DBEit_tao_nd;
exit;
end;
vl_s_xh := 'G1' + DBEit_tao_nd.Text;
GetCurrVal(0, 'tg_yljhhsjb where nd=''' + DBEit_tao_nd.Text + ''' and flm=''1''', 'lsh+1', vl_v_lsh);
if VarIsEmpty(vl_v_lsh) then
begin
vl_s_xh := vl_s_xh + '01';
end
else
if length(vartostr(vl_v_lsh)) = 1 then
vl_s_xh := vl_s_xh + '0' + vartostr(vl_v_lsh)
else
vl_s_xh := vl_s_xh + vartostr(vl_v_lsh);
Qry_pfxjhtao.FieldByName('JHH').AsString := vl_s_xh;
Qry_pfxjhtao.FieldByName('BBH').AsInteger := 1;
Qry_pfxjhtao.FieldByName('XGZT').AsString := '2';//新增
Result := true;
end;
function TFrmf_pfxjh.SaveAftAddTu(var pv_i_xgzt: integer): boolean;
var
i: integer;
begin
Result := false;
pv_i_xgzt := -1;
//当前工作表中是否有JHH&TX&(XGZT<>3)重复的记录
if ExistRecord('TF_PFXJHTU', 'JHH=''' + Qry_pfxjhtao.FieldByName('JHH').AsString +
''' AND TX=' + Qry_pfxjhtu.FieldByName('TX').AsString + ' AND XGZT<>''3''') then
begin
vlp_FocusGrid.DataSource.DataSet.FieldByName('JHH').AsString := '';
CHQMsgBox('该图邮票的记录已经存在!');
ActiveControl := DBEit_tu_tx;
exit;
end;
//历史表中,该计划号的最新图信息是否有JHH&(BBH-1)&TX&(XGZT<>3)的记录(上次发送时有效)
with data.Qry_sub do
begin
Close;
SQL.Clear;
SQL.Add('select tx,tumc,mz,sj,gg,wxgg,fxl,fxrq,bz ' +
'from tf_pfxjhtuls where (JHH=''' +
Qry_pfxjhtao.FieldByName('JHH').AsString + ''') AND (BBH=' +
inttostr(Qry_pfxjhtao.FieldByName('BBH').AsInteger-1) + ') AND (TX=' +
Qry_pfxjhtu.FieldByName('TX').AsString + ') AND (XGZT<>''3'')');
Open;
if (not IsEmpty) then//上次存在且当时未被删
begin
if ExistRecord('TF_PFXJHTU', 'JHH=''' +
Qry_pfxjhtao.FieldByName('JHH').AsString + ''' AND TX=' +
Qry_pfxjhtu.FieldByName('TX').AsString + ' AND XGZT=''3''') then
begin//此次已被删
for i:= 0 to FieldCount-1 do
if trim(DBGid_tu.DataSource.DataSet.FieldByName(Fields[i].FieldName).AsString) <> trim(Fields[i].AsString) then
break;
if i=FieldCount then
pv_i_xgzt:= 0
else
pv_i_xgzt:= 1;
end;
//此次未被删已被处理过
end
else //上次没有,或有但是被删除,置为增加状态
pv_i_xgzt:= 2;
end;
Qry_pfxjhtu.FieldByName('TBBH').AsString := '1';
Qry_pfxjhtu.FieldByName('JHH').AsString := Qry_pfxjhtao.FieldByName('JHH').AsString;
Qry_pfxjhtu.FieldByName('BBH').AsInteger := Qry_pfxjhtao.FieldByName('BBH').asInteger;
Result := true;
end;
procedure TFrmf_pfxjh.SaveAftModTao(var pv_i_xgzt: integer);
var
i: integer;
begin
with data.Qry_super do
begin
Close;
SQL.Clear;
SQL.Add('select tmc,qtms,qtmz,tpsj,fxrq,fxl,pzr,bz,zbr ' +
'from tf_pfxjhtaols where jhh=''' + Qry_pfxjhtao.FieldByName('JHH').AsString +
''' AND BBH=' + inttostr(Qry_pfxjhtao.FieldByName('BBH').AsInteger-1));
Open;
if (not IsEmpty) then//上次发送过
begin
for i:=0 to FieldCount-1 do
if trim(DBGid_tao.DataSource.DataSet.FieldByName(Fields[i].FieldName).AsString) <> trim(Fields[i].AsString) then
break;
if i<>FieldCount then//与上次发送的有不同
Upd_pfxjhtao.ModifySQL.Text := 'update TF_PFXJHTAO ' +
'set XH = :XH,PPLB = :PPLB, TZDM = :TZDM ,TMC = :TMC, QTMS = :QTMS, QTMZ = :QTMZ, TPSJ = :TPSJ, ' +
'FXRQ = :FXRQ, FXL = :FXL, PZR = :PZR, ZBR = ''' +vg_username +
''', ZBRQ = (select trunc(sysdate) from dual), BZ = :BZ, ' +
'XGZT = ''1'' where JHH = :OLD_JHH'
else begin
if trim(FieldByName('zbr').AsString) <> trim(vg_username) then//另一个用户
Upd_pfxjhtao.ModifySQL.Text := 'update TF_PFXJHTAO ' +
'set ZBR = ''' + vg_username + ''' where jhh = :OLD_JHH'
else
pv_i_xgzt:= 0;//没有改动,不做处理
end;
end
else//
Upd_pfxjhtao.ModifySQL.Text := 'update TF_PFXJHTAO ' +
'set XH = :XH, PPLB = :PPLB, TZDM = :TZDM ,TMC = :TMC, QTMS = :QTMS, QTMZ = :QTMZ, TPSJ = :TPSJ, ' +
'FXRQ = :FXRQ, FXL = :FXL, PZR = :PZR, ZBR = ''' + vg_username +
''', ZBRQ = (select trunc(sysdate) from dual), BZ = :BZ, ' +
'XGZT = ''2'' where JHH = :OLD_JHH';
end;
end;
function TFrmf_pfxjh.CheckExistedTu():boolean;
begin
Result := false;
if (Qry_pfxjhtu.FieldByName('TX').AsString <> vlp_oldtuval.old_tu_tx) then//(Qry_pfxjhtu.FieldByName('JHH').AsString <> oldtuval.old_tu_jhh) or
begin
if ExistRecord('TF_PFXJHTU', 'JHH=''' +
Qry_pfxjhtao.FieldByName('JHH').AsString + ''' AND TX=' +
Qry_pfxjhtu.FieldByName('TX').AsString + ' and XGZT<>''3''') then
begin
vlp_FocusGrid.DataSource.DataSet.FieldByName('JHH').AsString := '';
CHQMsgBox('该图邮票的记录已经存在!');
Qry_pfxjhtu.FieldByName('JHH').AsString := vlp_oldtuval.old_tu_jhh;
Qry_pfxjhtu.FieldByName('TX').AsString := vlp_oldtuval.old_tu_tx;
ActiveControl := DBEit_tu_tx;
exit;
end;
vlp_itu_tx := Qry_pfxjhtu.fieldbyname('TX').AsInteger;
end;
Result := true;
end;
procedure TFrmf_pfxjh.AddTaoInTrans();
begin
with data.Qry_sub do
begin
Close;
SQL.Clear;
if ExistRecord('tg_yljhhsjb', 'nd=''' + DBEit_tao_nd.Text + ''' and flm=''1''') then
SQL.Add('update tg_yljhhsjb set lsh = lsh+1 where nd =''' + DBEit_tao_nd.Text + ''' and flm=''1''')
else
SQL.Add('insert into tg_yljhhsjb(nd,flm,lsh,cz) values(''' + DBEit_tao_nd.Text + ''',''1'',1,1)');
ExecSQL;
(vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
end;
end;
procedure TFrmf_pfxjh.AddTuInTrans(p_i_xgzt: integer);
begin
if (p_i_xgzt = 0) or (p_i_xgzt = 1) then//上次发送过(有效)—被删除—又被加入
with data.Qry_super do
begin
Close;
SQL.Clear;//恢复套工作表中zbr,zbrq,sdate...字段值
SQL.Add('Update tf_pfxjhtao set(zbr,zbrq,sdatefx,sdatefxl)=(select ''' +
vg_username + ''',trunc(sysdate),sdatefx,sdatefxl from tf_pfxjhtaols where JHH=''' +
Qry_pfxjhtao.FieldByName('JHH').AsString + ''' and BBH = ' +
inttostr(Qry_pfxjhtao.FieldByName('BBH').AsInteger - 1) + ')');
ExecSQL;
DBGid_tu.DataSource.DataSet.FieldByName('XGZT').AsString:= inttostr(p_i_xgzt);
//0——所有字段都没有改变
//1——有的字段发生改变
Close;
SQL.Clear;//删除图工作表中修改状态为“已删除”的该图记录
SQL.Add('Delete from tf_pfxjhtu where jhh=''' +
Qry_pfxjhtao.FieldByName('JHH').AsString + ''' and tx=' +
Qry_pfxjhtu.FieldByName('tx').AsString);
ExecSQL;
end;
if p_i_xgzt=2 then//just 新增
with data.Qry_super do
begin
DBGid_tu.DataSource.DataSet.FieldByName('XGZT').AsString:= '2';
Close;
SQL.Clear;
SQL.Add('Update tf_pfxjhtao set zbr = ''' + VG_UserName + ''', zbrq=(select trunc(sysdate) from dual) where JHH=''' +
Qry_pfxjhtao.FieldByName('JHH').AsString + '''');
ExecSQL;
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
end;
procedure TFrmf_pfxjh.EditTuInTrans();
var
i: integer;
begin
with data.Qry_super do//Qry_sub do
begin
Close;
SQL.Clear;
SQL.Add('Update tf_pfxjhtao set zbr = ''' + VG_UserName +
''', zbrq=(select trunc(sysdate) from dual) where JHH=''' +
Qry_pfxjhtao.FieldByName('JHH').AsString + '''');
ExecSQL;
//tx发生改变
if (vlp_oldtuval.old_tu_tx <> Qry_pfxjhtu.FieldByName('TX').AsString) then
begin
Close;
SQL.Clear;
SQL.Add('DELETE from tf_pfxjhtu where jhh='''
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -