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

📄 ss_xxjs.pas

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

{-------------------------------------------------------------------------------}
{设置从表所有数据为未读}
procedure TFrm_XXJS.SetMX_AllUnRead;
var
  l_XXDM, l_SFRQ: string;
  l_XH: Integer;
begin
  l_XXDM := qry_Info.FieldByName('XXDM').AsString;
  l_SFRQ := qry_Info.FieldByName('SFRQ').AsString;

  {更新数据库中从表}
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'Update TG_XXSFQKTSMXB Set GHZT=''0'' where FSJSBJ=''0'' and XXDM=''' + l_XXDM + ''' and SFRQ=''' + l_SFRQ + '''';
    ExecSQL;
  end;
  {更新主表}
  with qry_Info do
  begin
    Edit;
    FieldByName('GHZT').AsString := '0';
    ApplyUpdates;
  end;

  {刷新从表}
  l_XH := qry_MXInfo.FieldByName('XH').AsInteger;
  qry_InfoAfterScroll(nil);
  qry_MXInfo.Locate('XH', l_XH, []);
end;

{-------------------------------------------------------------------------------}
{删除当前明细记录}
procedure TFrm_XXJS.DelMX;
begin
  qry_MXInfo.Delete;
  qry_MXInfo.ApplyUpdates;
  if qry_MXInfo.IsEmpty = True then
  begin
    qry_Info.Delete;
    qry_Info.ApplyUpdates;
  end;
end;

{-------------------------------------------------------------------------------}
{删除当前所有明细记录}
procedure TFrm_XXJS.DelMX_All;
var
  l_XXDM, l_SFRQ: string;
begin
  if CHQMsgBox('确实要删除当前所有的明细记录吗?', 2) = mrNo then
    Exit;

  l_XXDM := qry_Info.FieldByName('XXDM').AsString;
  l_SFRQ := qry_Info.FieldByName('SFRQ').AsString;
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'Delete TG_XXSFQKTSMXB where FSJSBJ=''0'' and XXDM=''' + l_XXDM + ''' and SFRQ=''' + l_SFRQ + '''';
    ExecSQL;
  end;
  qry_Info.Delete;
  qry_Info.ApplyUpdates;
end;

{-------------------------------------------------------------------------------}
{将主表中一条记录标记为已读}
procedure TFrm_XXJS.Set_Read;
var
  l_XXDM, l_SFRQ: string;
  l_XH: Integer;
begin
  l_XXDM := qry_Info.FieldByName('XXDM').AsString;
  l_SFRQ := qry_Info.FieldByName('SFRQ').AsString;
  l_XH := qry_MXInfo.FieldByName('XH').AsInteger;

  {直接更新主表}
  with qry_Info do
  begin
    Edit;
    FieldByName('GHZT').AsString := '1';
    ApplyUpdates;
  end;

  {更新数据库中从表}
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'Update TG_XXSFQKTSMXB set GHZT=''1'' where FSJSBJ=''0'' and XXDM=''' + l_XXDM + ''' and SFRQ=''' + l_SFRQ + '''';
    ExecSQL;
  end;

  {刷新从表}
  qry_InfoAfterScroll(nil);
  qry_MXInfo.Locate('XH', l_XH, []);
end;

{-------------------------------------------------------------------------------}
{将主表中全部当前记录标记为已读}
procedure TFrm_XXJS.Set_AllRead;
var
  l_SQL_Part: string;
  l_XXDM, l_SFRQ: string;
  l_XH: Integer;
begin
  l_XXDM := qry_Info.FieldByName('XXDM').AsString;
  l_SFRQ := qry_Info.FieldByName('SFRQ').AsString;
  l_XH := qry_MXInfo.FieldByName('XH').AsInteger;

  l_SQL_Part := Get_SQL_Part;
  with qry_Tmp do
  begin
    {更新从表信息}
    Close;
    SQL.Text := 'Update TG_XXSFQKTSMXB Set GHZT=''1'' ' + l_SQL_Part;
    ExecSQL;

    {更新主表信息}
    Close;
    SQL.Text := 'Update TG_XXSFQKTSZB Set GHZT=''1'' ' + l_SQL_Part;
    ExecSQL;
  end;

  {重新读取信息}
  with qry_Info do
  begin
    Close;
    SQL.Text := 'Select XXDM,SFRQ,XXMC,GHZT From TG_XXSFQKTSZB ' + l_SQL_Part + ' order by XXDM';
    Open;
    Locate('XXDM;SFRQ', VarArrayOf([l_XXDM, l_SFRQ]), []);
  end;
  qry_InfoAfterScroll(nil);
  qry_MXInfo.Locate('XH', l_XH, []);
end;

{-------------------------------------------------------------------------------}
{设置主表中的一条数据为未读}
procedure TFrm_XXJS.Set_UnRead;
var
  l_XXDM, l_SFRQ: string;
  l_XH: Integer;
begin
  l_XXDM := qry_Info.FieldByName('XXDM').AsString;
  l_SFRQ := qry_Info.FieldByName('SFRQ').AsString;
  l_XH := qry_MXInfo.FieldByName('XH').AsInteger;

  {直接更新主表}
  with qry_Info do
  begin
    Edit;
    FieldByName('GHZT').AsString := '0';
    ApplyUpdates;
  end;

  {更新数据库中从表}
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'Update TG_XXSFQKTSMXB set GHZT=''0'' where FSJSBJ=''0'' and XXDM=''' + l_XXDM + ''' and SFRQ=''' + l_SFRQ + '''';
    ExecSQL;
  end;

  {刷新从表}
  qry_InfoAfterScroll(nil);
  qry_MXInfo.Locate('XH', l_XH, []);
end;

{-------------------------------------------------------------------------------}
{设置主表中的所有数据为未读}
procedure TFrm_XXJS.Set_AllUnRead;
var
  l_SQL_Part: string;
  l_XXDM, l_SFRQ: string;
  l_XH: Integer;
begin
  l_XXDM := qry_Info.FieldByName('XXDM').AsString;
  l_SFRQ := qry_Info.FieldByName('SFRQ').AsString;
  l_XH := qry_MXInfo.FieldByName('XH').AsInteger;

  l_SQL_Part := Get_SQL_Part;
  with qry_Tmp do
  begin
    {更新从表信息}
    Close;
    SQL.Text := 'Update TG_XXSFQKTSMXB Set GHZT=''0'' ' + l_SQL_Part;
    ExecSQL;

    {更新主表信息}
    Close;
    SQL.Text := 'Update TG_XXSFQKTSZB Set GHZT=''0'' ' + l_SQL_Part;
    ExecSQL;
  end;

  {重新读取信息}
  with qry_Info do
  begin
    Close;
    SQL.Text := 'Select XXDM,SFRQ,XXMC,GHZT From TG_XXSFQKTSZB ' + l_SQL_Part + 'order by XXDM';
    Open;
    Locate('XXDM;SFRQ', VarArrayOf([l_XXDM, l_SFRQ]), []);
  end;

  qry_InfoAfterScroll(nil);
  qry_MXInfo.Locate('XH', l_XH, []);
end;

{-------------------------------------------------------------------------------}
{删除主表记录}
procedure TFrm_XXJS.Del;
var
  l_XXDM, l_SFRQ: string;
begin
  l_XXDM := qry_Info.FieldByName('XXDM').AsString;
  l_SFRQ := qry_Info.FieldByName('SFRQ').AsString;
  {删除子表记录}
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'Delete TG_XXSFQKTSMXB  where FSJSBJ=''0'' and XXDM=''' + l_XXDM + ''' and SFRQ=''' + l_SFRQ + '''';
    ExecSQL;
  end;

  {删除主表记录}
  qry_Info.Delete;
  qry_Info.ApplyUpdates;
end;

{-------------------------------------------------------------------------------}
{删除所有主表记录}
procedure TFrm_XXJS.Del_All;
var
  l_SQL_Part: string;
  l_XXDM, l_SFRQ: string;
begin
  if CHQMsgBox('确实要删除当前所有的记录吗?', 2) = mrNo then
    Exit;

  l_XXDM := qry_Info.FieldByName('XXDM').AsString;
  l_SFRQ := qry_Info.FieldByName('SFRQ').AsString;

  l_SQL_Part := Get_SQL_Part;
  with qry_Tmp do
  begin
    {删除从表信息}
    Close;
    SQL.Text := 'Delete TG_XXSFQKTSMXB ' + l_SQL_Part;
    ExecSQL;

    {删除主表信息}
    Close;
    SQL.Text := 'Delete TG_XXSFQKTSZB ' + l_SQL_Part;
    ExecSQL;
  end;

  {重新读取信息}
  with qry_Info do
  begin
    Close;
    SQL.Text := 'Select XXDM,SFRQ,XXMC,GHZT From TG_XXSFQKTSZB ' + l_SQL_Part + ' order by XXDM';
    Open;
  end;
  qry_InfoAfterScroll(nil);
end;

{-------------------------------------------------------------------------------}
{取得SQL的后半部分}
function TFrm_XXJS.Get_SQL_Part: string;
var
  SQLString: string;
  l_position, l_length: Integer;
begin
  {得到SQL语句Where后面的部分}
  SQLString := qry_Info.SQL.Text;
  l_length := Length(SQLString);
  l_position := pos('where', SQLString);
  SQLString := Copy(SQLString, l_position, l_length - l_position);

  {剔除SQL语句Order by后面的东西}
  l_position := pos('order', SQLString);
  if l_position = 0 then
  begin
    Result := SQLString;
    Exit;
  end;

  SQLString := Copy(SQLString, 1, l_position - 1);
  Result := SQLString;
end;

{============================选择对哪一个进行操作===============================}
{进行设为已读操作}
procedure TFrm_XXJS.bbtn_MX_Set_ReadClick(Sender: TObject);
begin
  Do_What := 0;
  pm_Info.Popup(
    Self.Left + pnl_Bottom.Left + bbtn_Set_Read.Left + bbtn_Set_Read.Width div 2 + 18,
    Self.Top + pnl_Bottom.Top + bbtn_Set_Read.Top + bbtn_Set_Read.Height div 2 + 40);
end;
{进行全部设为已读操作}
procedure TFrm_XXJS.bbtn_MX_Set_AllReadClick(Sender: TObject);
begin
  Do_What := 1;
  pm_Info.Popup(
    Self.Left + pnl_Bottom.Left + bbtn_Set_AllRead.Left + bbtn_Set_AllRead.Width div 2 + 18,
    Self.Top + pnl_Bottom.Top + bbtn_Set_AllRead.Top + bbtn_Set_AllRead.Height div 2 + 40);
end;
{设为未读}
procedure TFrm_XXJS.bbtn_Set_UnReadClick(Sender: TObject);
begin
  Do_What := 2;
  pm_Info.Popup(
    Self.Left + pnl_Bottom.Left + bbtn_Set_UnRead.Left + bbtn_Set_UnRead.Width div 2 + 18,
    Self.Top + pnl_Bottom.Top + bbtn_Set_UnRead.Top + bbtn_Set_UnRead.Height div 2 + 40);
end;
{全部设为未读}
procedure TFrm_XXJS.bbtn_Set_AllUnReadClick(Sender: TObject);
begin
  Do_What := 3;
  pm_Info.Popup(
    Self.Left + pnl_Bottom.Left + bbtn_Set_AllUnRead.Left + bbtn_Set_AllUnRead.Width div 2 + 18,
    Self.Top + pnl_Bottom.Top + bbtn_Set_AllUnRead.Top + bbtn_Set_AllUnRead.Height div 2 + 40);
end;
{进行删除操作}
procedure TFrm_XXJS.bbtn_MX_DelClick(Sender: TObject);
begin
  Do_What := 4;
  pm_Info.Popup(
    Self.Left + pnl_Bottom.Left + bbtn_Del.Left + bbtn_Del.Width div 2 + 18,
    Self.Top + pnl_Bottom.Top + bbtn_Del.Top + bbtn_Del.Height div 2 + 40);
end;
{进行全部删除操作}
procedure TFrm_XXJS.bbtn_AllDelClick(Sender: TObject);
begin
  Do_What := 5;
  pm_Info.Popup(
    Self.Left + pnl_Bottom.Left + bbtn_AllDel.Left + bbtn_AllDel.Width div 2 + 18,
    Self.Top + pnl_Bottom.Top + bbtn_AllDel.Top + bbtn_AllDel.Height div 2 + 40);
end;

{-------------------------------------------------------------------------------}
{对主表进行操作}
procedure TFrm_XXJS.pmi_mainClick(Sender: TObject);
begin
  if qry_Info.IsEmpty = True then Exit;

  case Do_What of
    0: Set_Read;
    1: Set_AllRead;
    2: Set_UnRead;
    3: Set_AllUnRead;
    4: Del;
    5: Del_All;
  end;
end;
{-------------------------------------------------------------------------------}
{对明细表进行操作}
procedure TFrm_XXJS.pmi_MXClick(Sender: TObject);
begin
  if qry_MXInfo.IsEmpty = True then Exit;

  case Do_What of
    0: SetMX_Read;
    1: SetMX_ALLRead;
    2: SetMX_UnRead;
    3: SetMX_AllUnRead;
    4: DelMX;
    5: DelMX_All;
  end;
end;

{---------------------------------主表操作--------------------------------------}
{设为已读}
procedure TFrm_XXJS.pmi_Main_SetReadClick(Sender: TObject);
begin
  if qry_Info.IsEmpty = True then Exit;
  Set_Read;
end;
{全部设为已读}
procedure TFrm_XXJS.pmi_Main_SetAllReadClick(Sender: TObject);
begin
  if qry_Info.IsEmpty = True then Exit;
  Set_AllRead;
end;
{设为未读}
procedure TFrm_XXJS.pmi_Main_SetUnReadClick(Sender: TObject);
begin
  if qry_Info.IsEmpty = True then Exit;
  Set_UnRead;
end;
{全部设为未读}
procedure TFrm_XXJS.pmi_Main_SetAllUnReadClick(Sender: TObject);
begin
  if qry_Info.IsEmpty = True then Exit;
  Set_AllUnRead;
end;
{删除}
procedure TFrm_XXJS.pmi_Main_DelClick(Sender: TObject);
begin
  if qry_Info.IsEmpty = True then Exit;
  Del;
end;
{全部删除}
procedure TFrm_XXJS.pmi_Main_DelAllClick(Sender: TObject);
begin
  if qry_Info.IsEmpty = True then Exit;
  Del_All;
end;
{-------------------------------明细表操作--------------------------------------}
{设为已读}
procedure TFrm_XXJS.pmi_MX_SetReadClick(Sender: TObject);
begin
  if qry_MXInfo.IsEmpty = True then Exit;
  SetMX_Read;
end;
{全部设为已读}
procedure TFrm_XXJS.pmi_MX_SetAllReadClick(Sender: TObject);
begin
  if qry_MXInfo.IsEmpty = True then Exit;
  SetMX_ALLRead;
end;
{设为未读}
procedure TFrm_XXJS.pmi_MX_SetUnReadClick(Sender: TObject);
begin
  if qry_MXInfo.IsEmpty = True then Exit;
  SetMX_UnRead;
end;
{全部设为未读}
procedure TFrm_XXJS.pmi_MX_SetAllUnReadClick(Sender: TObject);
begin
  if qry_MXInfo.IsEmpty = True then Exit;
  SetMX_AllUnRead;
end;
{删除}
procedure TFrm_XXJS.pmi_MX_DelClick(Sender: TObject);
begin
  if qry_MXInfo.IsEmpty = True then Exit;
  DelMX;
end;
{全部删除}
procedure TFrm_XXJS.pmi_MX_DelAllClick(Sender: TObject);
begin
  if qry_MXInfo.IsEmpty = True then Exit;
  DelMX_All;
end;


end.

⌨️ 快捷键说明

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