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

📄 sy_jypfx.pas

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