⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gf_pfxjh.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  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 + -