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

📄 gf_ffxjh.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 5 页
字号:

var
  vl_b_tao, vl_b_tu: boolean;
  i: integer;
begin
//设置button状态
  SpinEdit1.Enabled := (SubMod = 0) or (SubMod = 4);
  ToolButton1.Enabled := (SubMod = 0) or (SubMod = 4);

  if (SubMod = 1) or (SubMod = 3) then
  begin
    CBo_ta.Checked := false;
    CBo_taClick(nil);
  end;

  if (SubMod = 4) then
    if (SelectedRowsCount > 0) then
    begin
      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_fx.Enabled := false;
      Act_send_fxl.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_tu) then
    DBGid_tu.TitleFont.Color := clnavy
  else
    DBGid_tu.TitleFont.Color := clblack;

//设置字段“修改状态”的显示
  if SelectedRowsCount<0 then
  begin
    for i:= 0 to DBGid_tao.Columns.Count -1 do
    if uppercase(DBGid_tao.Columns.Items[i].FieldName) = 'ZT' then
    begin
      DBGid_tao.Columns.Items[i].Visible := ((SubMod = 2) and (SelectedRowsCount = -1));
      break;
    end;
    for i:= 0 to DBGid_tu.Columns.Count -1 do
    if uppercase(DBGid_tu.Columns.Items[i].FieldName) = 'ZT' then
    begin
      DBGid_tu.Columns.Items[i].Visible := ((SubMod = 2) and (SelectedRowsCount = -1));
      break;
    end;
  end;

  GBo_tao.Visible := (vlp_FocusGrid = DBGid_tao);
  GBo_tu.Visible := (vlp_FocusGrid = DBGid_tu);

//设置button状态
  Act_add.Enabled := (SubMod = 0);
  Act_delete.Enabled := (SubMod = 0);
  Act_modify.Enabled := (SubMod = 0);
  Act_select.Enabled := (SubMod = 0) or (SubMod = 2);
  Act_print.Visible := true;
  Act_save.Enabled := (SubMod = 1) or (SubMod = 3);
  Act_cancel.Enabled := (SubMod = 1) or (SubMod = 3);

//  Act_send_fx.Enabled := (SubMod = 0) or ((SubMod = 2) and (SelectedRowsCount=-2));
//  Act_send_fxl.Enabled := (SubMod = 0) or ((SubMod = 2) and (SelectedRowsCount=-2));
  Act_fs_all.Enabled := (SubMod = 0) or ((SubMod = 2) and (SelectedRowsCount=-2));
  Act_fs_any.Enabled := (SubMod = 0) or ((SubMod = 2) and (SelectedRowsCount=-2));

  DBGid_tao.Enabled := (SubMod = 0) or (SubMod = 2);
  DBGid_tu.Enabled := (SubMod = 0) or (SubMod = 2);

  vl_b_tao := ((SubMod = 1) or (SubMod = 3) and (vlp_FocusGrid.Tag = 0));
  DBEit_tao_nd.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
  DBEit_tao_xh.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
  DBLCB_tao_pplb.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
  DBLCB_tao_tz.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
  CBo_mzdwtao.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
  DBEit_tao_mc.Enabled := vl_b_tao;
  DBEit_tao_qtms.Enabled := vl_b_tao;
  DBEit_tao_fxl.Enabled := vl_b_tao;
  DBEit_tao_qtmz.Enabled := vl_b_tao;
  DBEit_tao_tpsj.Enabled := vl_b_tao;
  DBDEit_tao_fxrq.Enabled := vl_b_tao;
  DBLCBo_tao_pzr.Enabled := vl_b_tao;
  DBEit_tao_bz.Enabled := vl_b_tao;

  vl_b_tu := ((SubMod = 1) or (SubMod = 3) and (vlp_FocusGrid = DBGid_tu));
  CBo_mzdwtu.Enabled := ((SubMod = 1) and (vlp_FocusGrid = DBGid_tu));
  DBEit_tu_tx.Enabled := vl_b_tu;
  DBEit_tu_tumc.Enabled := vl_b_tu;
  DBDEit_tu_fxrq.Enabled := vl_b_tu;
  DBEit_tu_mz.Enabled := vl_b_tu;
  DBEit_tu_sj.Enabled := vl_b_tu;
  DBEit_tu_gg.Enabled := vl_b_tu;
  DBEit_tu_wxgg.Enabled := vl_b_tu;
  DBEit_tu_fxl.Enabled := vl_b_tu;
  DBEit_tu_bz.Enabled := vl_b_tu;

end;

procedure TFrmf_ffxjh.Act_addExecute(Sender: TObject);
var
  vl_w_Year, vl_w_Month, vl_w_Day: word;
  vl_s_gg: string;
  vl_s_wxgg: string;
  vl_s_mz: string;
  vl_s_sj: string;
  vl_s_yzbb: string;
begin
  SetEditStatus(1);
  if (vlp_FocusGrid.Tag = 1) then
    if (not Qry_pfxjhtu.IsEmpty) then
    begin
      Qry_pfxjhtu.first;
      vl_s_gg:= Qry_pfxjhtu.FieldByName('gg').AsString;
      vl_s_wxgg:= Qry_pfxjhtu.FieldByName('wxgg').AsString;
      vl_s_yzbb:= Qry_pfxjhtu.FieldByName('yzbb').AsString;
      vl_s_mz:= Qry_pfxjhtu.FieldByName('mz').AsString;
      vl_s_sj:= Qry_pfxjhtu.FieldByName('sj').AsString;
    end;
  if (vlp_FocusGrid.Tag = 0) then
    DBGid_tao.SelectedRows.CurrentRowSelected := false;
  vlp_FocusGrid.DataSource.DataSet.Append;

  if (vlp_FocusGrid.Tag = 1) then//图
  begin
    Qry_pfxjhtu.FieldByName('PPLB').Value := Qry_pfxjhtao.FieldByName('PPLB').Value;
    Qry_pfxjhtu.FieldByName('TZDM').Value := Qry_pfxjhtao.FieldByName('TZDM').Value;
    Qry_pfxjhtu.FieldByName('FXL').Value  := Qry_pfxjhtao.FieldByName('FXL').Value;
    Qry_pfxjhtu.FieldByName('FXRQ').Value := Qry_pfxjhtao.FieldByName('FXRQ').Value;

    ActiveControl := DBEit_tu_tx;
    Qry_pfxjhtu.FieldByName('GG').AsString := vl_s_gg;
    Qry_pfxjhtu.FieldByName('WXGG').AsString := vl_s_wxgg;
    Qry_pfxjhtu.FieldByName('YZBB').AsString := vl_s_yzbb;
    Qry_pfxjhtu.FieldByName('MZ').AsString := vl_s_mz;
    Qry_pfxjhtu.FieldByName('SJ').AsString := vl_s_sj;
  end
  else//套
  begin
    DecodeDate(now, vl_w_Year, vl_w_Month, vl_w_Day);
    Qry_pfxjhtao.FieldByName('ND').AsString := SpinEdit1.Text;
    Qry_pfxjhtao.FieldByName('ZBR').AsString := VG_UserName;
    Qry_pplb.First;
    Qry_pfxjhtao.FieldByName('PPLB').Value:= Qry_pplb.FieldByName('YZLDM').Value;
    Qry_tzdm.First;
    Qry_pfxjhtao.FieldByName('TZDM').Value := Qry_tzdm.FieldByName('TZDM').Value;
    CBo_mzdwtao.ItemIndex := 1;
    Qry_pfxjhtao.FieldByName('QTMZ').AsFloat := 0;
    ActiveControl := DBEit_tao_nd;
  end;

end;

procedure TFrmf_ffxjh.Act_deleteExecute(Sender: TObject);
var
  vl_b_isold: boolean;
  vl_s_jsdwdm: string;
  vl_s_tx: string;
begin
  if ((vlp_FocusGrid.tag =0) and (DBGid_tao.DataSource.DataSet.IsEmpty)) or
     ((vlp_FocusGrid.tag =1) and (DBGid_tu.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;

  if vlp_FocusGrid.tag = 1 then
    vl_s_tx := Qry_pfxjhtu.fieldbyname('TX').AsString;

  vlp_FocusGrid.DataSource.DataSet.Next;
  if (VLp_FocusGrid.DataSource.DataSet.Eof) then
  begin
    VLp_FocusGrid.DataSource.DataSet.Prior;
    vlp_stao_jhh := Qry_pfxjhtao.fieldbyname('JHH').AsString;
    if VLp_FocusGrid.Tag = 1 then
    begin
      vlp_itu_tx := Qry_pfxjhtu.fieldbyname('TX').AsInteger;
    end;
    VLp_FocusGrid.DataSource.DataSet.Next;
  end
  else begin
    vlp_stao_jhh := Qry_pfxjhtao.fieldbyname('JHH').AsString;
    if vlp_FocusGrid.Tag = 1 then
    begin
      vlp_itu_tx := Qry_pfxjhtu.fieldbyname('TX').AsInteger;
    end;
    vlp_FocusGrid.DataSource.DataSet.Prior;
  end;

  if (DBGid_tao.DataSource.DataSet.FieldByName('SDATEFX').AsString <> '') then
    with data.Qry_super do
    begin
      vl_b_isold := true;
      Close;
      SQL.Clear;
      SQL.Add('SELECT JSDWDM FROM TG_XTTXFSGNB WHERE CSDM =''sf_jhbd''');
      Open;
      vl_s_jsdwdm := trim(FieldByName('JSDWDM').AsString);
    end
  else
    vl_b_isold := false;

  data.DM.StartTransaction;
  try
    with data.Qry_super do
    begin
      case vlp_FocusGrid.tag of
      0://套
        begin
          //*************************已发送过
          if vl_b_isold then
          begin
            //-************************写套历史(insert)
            Close;
            SQL.Clear;
            SQL.Add('INSERT INTO TF_FFXJHTAOLS(JHH,BBH,QXBZ,ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,FXRQ,TPSJ,FXL,PZR,ZBR,ZBRQ,BZ,XGZT,SDATEFX,SDATEFXL) ' +
              'SELECT JHH,BBH+1,''t'',ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,FXRQ,TPSJ,FXL,PZR,ZBR,ZBRQ,BZ,''3'',SDATEFX,SDATEFXL ' +
              'FROM TF_FFXJHTAOLS WHERE JHH =''' +
              Qry_pfxjhtao.fieldbyname('JHH').AsString +''' and bbh=' + inttostr(Qry_pfxjhtao.fieldbyname('BBH').AsInteger-1));
            ExecSQL;
            //-************************写图当前(delete)
            Close;
            SQL.Clear;
            SQL.Add('DELETE FROM TF_FFXJHTU WHERE JHH =''' +
              Qry_pfxjhtao.fieldbyname('JHH').AsString +'''');
            ExecSQL;
            //-************************写套caco
            Close;
            SQL.Clear;
            SQL.Add('INSERT INTO TF_FFXJHTAO_CACO(JHH,BBH,QXBZ,ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,FXRQ,TPSJ,FXL,PZR,ZBR,ZBRQ,BZ,COMM_DEPT,XGZT) ' +
              'SELECT JHH,BBH+1,''t'',ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,FXRQ,TPSJ,FXL,PZR,ZBR,ZBRQ,BZ,''' +
              vl_s_jsdwdm + ''',''3'' FROM TF_FFXJHTAOLS WHERE JHH =''' +
              Qry_pfxjhtao.fieldbyname('JHH').AsString +''' and BBH=' +
              inttostr(Qry_pfxjhtao.fieldbyname('BBH').AsInteger-1));
            ExecSQL;
          end
          else//未发送过
          begin//-************************写图当前(delete)
            Close;
            SQL.Clear;
            SQL.Add('DELETE FROM TF_FFXJHTU WHERE JHH =''' +
              Qry_pfxjhtao.fieldbyname('JHH').AsString +'''');
            ExecSQL;
          end;
          vlp_FocusGrid.DataSource.DataSet.Delete;
        end;
      1://图
        begin
          Close;
          SQL.Clear;
          SQL.Add('Update tf_Ffxjhtao set zbrq=(select trunc(sysdate) from dual) where jhh=''' +
            Qry_pfxjhtao.fieldbyname('JHH').AsString + '''');
          ExecSQL;
          if ExistRecord('TF_FFXJHTULS','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''') then
          begin //上次发送过,并且未被删除-->XGZT:=3
            Close;
            SQL.Clear;
            SQL.Add('Update tf_ffxjhtu set(JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,TUJC,MZ,SJ,GG,WXGG,FXL,FXRQ,BZ,XGZT) = ' +
              '(SELECT JHH,BBH+1,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,TUJC,MZ,SJ,GG,WXGG,FXL,FXRQ,BZ,''3'' FROM TF_FFXJHTULS WHERE JHH=''' +
              Qry_pfxjhtao.fieldbyname('JHH').AsString + ''' AND BBH=' +
              inttostr(Qry_pfxjhtao.fieldbyname('BBH').AsInteger-1) +
              ' and TX=' + Qry_pfxjhtu.fieldbyname('TX').AsString+') ' +
              'where JHH= ''' + Qry_pfxjhtao.fieldbyname('JHH').AsString +
              ''' and tx= ' + Qry_pfxjhtu.fieldbyname('TX').AsString);
            ExecSQL;
          end
          else
          begin//上次没有该图记录-->delete
            vlp_FocusGrid.DataSource.DataSet.Delete;
          end;
        end;
      end;
    end;
    (vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
    if vlp_FocusGrid.Tag = 1 then
      SumTAO(vl_s_tx);
    data.DM.Commit;
  except
    data.DM.RollBack;
    raise exception.Create('数据访问错误!');
  end;
  (vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
  Qry_pfxjhtao.Close;
  Qry_pfxjhtao.Open;
  Qry_pfxjhtao.Locate('JHH', vlp_stao_jhh, [loPartialKey]);
  if vlp_focusgrid.tag = 1 then
  begin
    Qry_pfxjhtu.Close;
    Qry_pfxjhtu.Open;
    Qry_pfxjhtu.Locate('JHH; TX', VarArrayOf([vlp_stao_jhh, vlp_itu_tx]),[loPartialKey]);
  end;
end;

procedure TFrmf_ffxjh.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_pfxjhtao.fieldbyname('JHH').AsString;
  if vlp_focusgrid.tag = 1 then //图
  begin
    vlp_itu_tx := Qry_pfxjhtu.fieldbyname('TX').AsInteger;
  end;
  vlp_FocusGrid.DataSource.DataSet.Edit;
  SetEditStatus(3);
  if vlp_FocusGrid.Tag = 1 then//tu
  begin
    ActiveControl := DBEit_tu_tx;
    vlp_oldtuval.old_tu_jhh := Qry_pfxjhtu.FieldByName('JHH').AsString;
    vlp_oldtuval.old_tu_tx := Qry_pfxjhtu.FieldByName('TX').AsString;
  end
  else//tao
  begin
    ActiveControl := DBEit_tao_mc;
  end;

end;

procedure TFrmf_ffxjh.Act_saveExecute(Sender: TObject);
var
  vl_s_xh: String;
  vl_v_lsh: variant;
  vl_i_xgzt: integer;
//  vl_v_isadd: boolean;
  i: integer;
begin
  case vlp_FocusGrid.Tag of
  0:
    begin
      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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -