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

📄 sy_jypxxwh.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 4 页
字号:
          exit;
        end;
        if (Trim(DBDateEdit1.Text) = '') then
        begin
          CHQMsgBox('“发行日期”内容不能为空!');
          ActiveControl := DBDateEdit1;
          exit;
        end;
      end;
    1:
      begin
        if (Trim(DBEdit13.Text) = '') then
        begin
          CHQMsgBox('“枚代码”内容不能为空!');
          ActiveControl := DBEdit13;
          exit;
        end;
        if (Trim(DBEdit14.Text) = '') then
        begin
          CHQMsgBox('“志号”内容不能为空!');
          ActiveControl := DBEdit14;
          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('TB_JYPTXXB', 'TDM = ''' +
            trim(Qry_tao.FieldByName('TDM').AsString) + '''') then
          begin
            CHQMsgBox('该套邮品的记录已经存在!');
            ActiveControl := DBEdit1;
            exit;
          end;

        end;
      1: //图
        begin
          if ExistRecord('TB_JYPMXXB', 'TDM=''' + trim(Qry_tao.FieldByName('TDM').AsString) +
            ''' AND MDM=''' + trim(Qry_mei.FieldByName('MDM').AsString) + '''') then
          begin
            CHQMsgBox('该枚邮品的记录已经存在!');
            ActiveControl := DBEdit13;
            exit;
          end;
        end;
    end;

    vlp_stao_tdm := Qry_tao.fieldbyname('TDM').AsString;
    if vlp_FocusGrid.Tag = 1 then //图
    begin
      vlp_smei_mdm := Qry_mei.fieldbyname('MDM').AsString;
    end;
  end
  else
  begin //edit
  //**
    if vlp_FocusGrid.Tag = 1 then //tu
    begin
      if (Qry_mei.FieldByName('MDM').AsString <> vlp_oldmeival.old_mei_mdm) then //(Qry_mei.FieldByName('JHH').AsString <> oldtuval.old_tu_jhh) or
      begin
        if ExistRecord('TB_JYPMXXB', 'TDM=''' +
          Qry_tao.FieldByName('TDM').AsString + ''' AND MDM=''' +
          Qry_mei.FieldByName('MDM').AsString + '''') then
        begin
          CHQMsgBox('该枚邮品的记录已经存在!');
          Qry_mei.FieldByName('MDM').AsString := vlp_oldmeival.old_mei_mdm;
          ActiveControl := DBEdit13;
          exit;
        end;
        vlp_smei_mdm := Qry_mei.fieldbyname('TX').AsString;
      end;
    end;
  end;

  {直接进行事务处理}
  Qry_tao.DataBase.StartTransaction;
  try
    (vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
    (vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;

  {进行保存图的程序}
    case vlp_FocusGrid.Tag of
      0:
        Save_Tao_Pic;
      1:
        Save_Mei_Pic;
    end;

{    if (vlp_status = 3) and (vlp_FocusGrid.Tag = 1) and
       (vlp_oldmeival.old_mei_tdm <> Qry_mei.FieldByName('TX').AsString)then//edit tu ,并且 tx发生改变
    with Qry_sub do
    begin
      Close;
      SQL.Clear;
      SQL.Add('DELETE from tf_pfxjhtu where jhh=''' +
        Qry_mei.FieldByName('JHH').AsString + ''' and tx= ' +
        Qry_mei.FieldByName('TX').AsString);
      ExecSQL;
    end;                        }
    Qry_tao.DataBase.Commit;

    {新增/修改结束,恢复设置}
    CBo_tao.Enabled := True;
  except
    Qry_tao.DataBase.RollBack;
    raise exception.Create('数据访问错误!');
  end;

{syz注释,目的:避免录入地发行日期不是当前显示年度,导致出现查找不到地问题}
//  vlp_FocusGrid.DataSource.DataSet.Close;
//  vlp_FocusGrid.DataSource.DataSet.Open;

  SetEditStatus(0);
  case vlp_focusgrid.tag of
    0: //套
      Qry_tao.Locate('TDM', vlp_stao_tdm, [loPartialKey]);
    1: //图
      Qry_mei.Locate('TDM; MDM', VarArrayOf([vlp_stao_tdm, vlp_smei_mdm]), [loPartialKey]);
  end;

  CBo_taoClick(Sender); {完成,显示一下图案} {}
end;

{保存套信息}
procedure TFrm_jyp.Save_Tao_Pic;
var
  Des_FileStream: TFileStream;
  if_Exist_Rec: Boolean;
begin
  if Target_name = '' then {没有选择图,直接退出} {}
    Exit;

  {判断是否存在数据}
  with Qry_TA do
  begin
    Close;
    SQL.Text := 'Select TDM,TA from TB_JYPTTAXXB Where TDM=' + '''' + Qry_Tao.fieldbyname('TDM').asstring + '''';
    Open;
    if IsEmpty = True then
      if_Exist_Rec := False
    else
      if_Exist_Rec := True;
  end;

  Des_FileStream := TFileStream.Create(Target_name, fmOpenRead);
  Des_FileStream.Position := 0;

  {形成要操作的记录}
  if if_Exist_Rec = False then
    with Qry_TA do
    begin
      Append;
      FieldByName('TDM').AsString := Qry_Tao.fieldbyname('TDM').asstring;
    end
  else
    Qry_TA.Edit;

  TBlobField(Qry_TA.FieldByName('TA')).loadfromStream(Des_FileStream);
  Qry_TA.Post;
  Des_FileStream.Free;
end;

{保存图信息}
procedure TFrm_jyp.Save_Mei_Pic;
var
  Des_FileStream: TFileStream;
  if_Exist_Rec: Boolean;
begin
  if Target_name = '' then {没有选择图,直接退出} {}
    Exit;

  {判断是否存在,以便决定是插入还是修改}
  with Qry_TA do
  begin
    Close;
    SQl.Clear;
    Sql.Add('Select TDM,MDM,TA from TB_JYPMTAXXB Where TDM=');
    SQl.Add('''' + Qry_mei.fieldbyname('TDM').asstring + '''and MDM=''' + Qry_mei.fieldbyname('MDM').asstring + '''');
    Open;

    if IsEmpty = False then
      if_Exist_Rec := True
    else
      if_Exist_Rec := False;
  end;

  Des_FileStream := TFileStream.Create(Target_name, fmOpenRead);
  Des_FileStream.Position := 0;

  {设置为修改状态,如果存在记录,直接执行,否则插入}
  if if_Exist_Rec = False then
    with Qry_TA do
    begin
      Append;
      FieldByName('TDM').AsString := Qry_mei.fieldbyname('TDM').asstring;
      FieldByName('MDM').AsString := Qry_mei.fieldbyname('MDM').asstring;
    end
  else
    Qry_TA.Edit;

  {真正插入图形}
  TBlobField(Qry_TA.FieldByName('TA')).loadfromStream(Des_FileStream);
  Des_FileStream.Free;
  Qry_TA.Post;
end;


procedure TFrm_jyp.Act_cancelExecute(Sender: TObject);
begin
  Qry_tao.DataBase.StartTransaction;
  try
    if vlp_focusgrid.tag = 0 then
      Qry_tao.AfterScroll := nil;
    (vlp_FocusGrid.DataSource.DataSet as TQuery).CancelUpdates;
    Qry_tao.AfterScroll := Qry_taoAfterScroll;
    Qry_tao.DataBase.Commit;
  except
    Qry_tao.DataBase.RollBack;
    raise exception.Create('数据访问错误!');
  end;

(*syz删除,因为插入地方式改变了,不在插入地时候直接插入,所以修改
  case vlp_focusgrid.tag of
    0:                                                      //套
      begin
        Qry_tao.Locate('TDM', vlp_stao_tdm, [loPartialKey]);

        With Qry_TA do
        begin
          Close;
          SQL.Clear;
          SQL.Add('Delete TB_JYPTTAXXB Where TDM=''' + Qry_Tao.FieldByName('TDM').AsString + '''');
          ExecSQL;
        end;
      end;
    1:                                                      //图
      begin
        Qry_mei.Locate('TDM; MDM', VarArrayOf([vlp_stao_tdm, vlp_smei_mdm]), [loPartialKey]);
        With Qry_TA do
        begin
          Close;
          SQL.Text := 'Delete TB_JYPMTAXXB Where TDM=''' + Qry_mei.fieldbyname('TDM').asstring + '''' +
            ' and MDM=''' + Qry_mei.fieldbyname('MDM').asstring + '''';
{
        SQL.Clear ;
        SQL.Add('Delete TB_JYPMTAXXB Where TDM:=:TDM and MDM=:MDM');
        Prepared:=true;syz搬移
        params[0].AsString := Qry_mei.fieldbyname('TDM').asstring;
        Params[1].AsString:=  Qry_mei.fieldbyname('MDM').asstring;
        Prepared:=true;syz搬移
}
          ExecSql;
        end;
      end;
  end;
*)
  SetEditStatus(0);

  {新增/修改结束,恢复设置}
  CBo_tao.Enabled := True;
  CBo_taoClick(Sender); {刷新一下图} {syz}
end;

procedure TFrm_jyp.Act_exitExecute(Sender: TObject);
begin
  close;
end;

procedure TFrm_jyp.FormCreate(Sender: TObject);
begin
  vlp_stao_tdm := '';
  vlp_smei_mdm := '';
  vlp_FocusGrid := DBGid_tao;

  SetEditStatus(0, -3);

end;

procedure TFrm_jyp.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
  begin
    DBGid_tao.TitleFont.Color := clblack;
    DBGid_mei.Color := clWindow;
    DBGid_tao.Color := cl3DLight;
  end;

  if (vlp_FocusGrid = DBGid_mei) then
  begin
    DBGid_mei.TitleFont.Color := clnavy;
    DBGid_mei.Color := clWindow;
    DBGid_tao.Color := cl3DLight;
  end
  else
  begin
    DBGid_mei.TitleFont.Color := clblack;
    DBGid_tao.Color := clWindow;
    DBGid_mei.Color := cl3DLight;
  end;
  GBo_tao.Visible := (vlp_FocusGrid = DBGid_tao);
  GBo_mei.Visible := (vlp_FocusGrid = DBGid_mei);

  if (vlp_FocusGrid = DBGid_mei) then
  begin
    Act_add.Enabled := (not Qry_tao.IsEmpty) and (vlp_status = 0);
    Act_Delete.Enabled := (not Qry_mei.IsEmpty) and (vlp_status = 0);
    Act_modify.Enabled := Act_Delete.Enabled;
    for i := 0 to GBo_mei.ControlCount - 1 do
    begin
      if (not (GBo_mei.Controls[i] is TLabel)) and (GBo_mei.Controls[i].Visible) then
        if uppercase(GBo_mei.Controls[i].ClassName) = 'TDBLOOKUPCOMBOBOX' then
        begin
          vl_s_oldfld := (GBo_mei.COntrols[i] as TDBLookUpComboBox).DataField;
          (GBo_mei.COntrols[i] as TDBLookUpComboBox).DataField := '';
          (GBo_mei.COntrols[i] as TDBLookUpComboBox).DataField := vl_s_oldfld;
        end;
      if uppercase(GBo_mei.Controls[i].ClassName) = 'TDBEDIT' then
      begin
        vl_s_oldfld := (GBo_mei.COntrols[i] as TDBEdit).DataField;
        (GBo_mei.COntrols[i] as TDBEdit).DataField := '';
        (GBo_mei.COntrols[i] as TDBEdit).DataField := vl_s_oldfld;
      end;
      if uppercase(GBo_mei.Controls[i].ClassName) = 'TDBMEMO' then
      begin
        vl_s_oldfld := (GBo_mei.COntrols[i] as TDBMemo).DataField;
        (GBo_mei.COntrols[i] as TDBMemo).DataField := '';
        (GBo_mei.COntrols[i] as TDBMemo).DataField := vl_s_oldfld;
      end;
    end;
  end
  else
  begin
    Act_add.Enabled := (vlp_status = 0);
    Act_Delete.Enabled := (not Qry_tao.IsEmpty) and (vlp_status = 0);
    Act_modify.Enabled := Act_Delete.Enabled;
  end;

  CBo_taoClick(Sender); {syz增加,目的,使切换到套/枚代码的时候能够显示图案} {}
end;

procedure TFrm_jyp.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_RETURN then
  begin
    if ((Sender as TCustomForm).activecontrol is TMEMO) then //or (self.activecontrol is TDBGRid) then
    else
    begin
      postmessage((Sender as TWinControl).handle, WM_KEYDOWN, 9, 0);
      postmessage((Sender as TWinControl).handle, WM_KEYUP, 9, 0);
    end;
  end;
end;

{图保存地点}
procedure TFrm_jyp.SpeedButton1Click(Sender: TObject);
begin
  if OpenPictureDialog1.Execute = False then
  begin
    Target_name := ''; {设置为空,保存的时候不进行操作} {}
    exit;
  end;

  {已经设定了OpenPictureDialog1属性必须是存在文件,此时直接读取文件}
  Target_name := OpenPictureDialog1.FileName;

  image2.Visible := True;
  image2.Stretch := false;
  image2.Picture.LoadFromFile(Target_name);
  Image2.BringToFront;
end;

{选择套的图案}
procedure TFrm_jyp.SpeedButton2Click(Sender: TObject);
var
  Des_FileStream: TFileStream;
  SQStr: string;
  if_Exist_Rec: Boolean;
begin
  if OpenPictureDialog1.Execute = False then
  begin
    Target_name := ''; {设置为空,保存的时候不进行操作} {}
    exit;
  end;

  {已经设定了OpenPictureDialog1属性必须是存在文件,此时直接读取文件}
  Target_name := OpenPictureDialog1.FileName;

  image1.Visible := True;
  image1.Stretch := false;
  image1.Picture.LoadFromFile(Target_name);
  Image1.BringToFront;
end;

procedure TFrm_jyp.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanCLose := CheckExit;
end;

procedure TFrm_jyp.Qry_taoCBGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure TFrm_jyp.Qry_taoCBSetText(Sender: TField; const Text: string);
begin
  CurrSetText(Sender, Text);
end;

{-------------------------------------------------------------------------------}
{根据不同条件显示邮品发行日期}
procedure TFrm_jyp.RB_no_ndClick(Sender: TObject);
begin

⌨️ 快捷键说明

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