RET BAR KOD2 — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м
Строка 1: Строка 1:
 
[[RET_BAR_KOD2]] - это программа из справочника [[R266]]
 
[[RET_BAR_KOD2]] - это программа из справочника [[R266]]
 +
Если имеются одинаковые PNAME и ID ( задвоенные записи ), то удаляем записи без KODORG
 +
= Текст =
 +
local sql, aa, i, r08, last_pname
 +
 +
sql := [ Select ID From R08 Where ID <> '' Group by PNAME, ID Having Count( * ) > 1 ]
 +
aa := SqlToArr( sql, { 'ID' }, ReflisPath )
 +
 +
if ![[IsEmpty]]( aa )
 +
  aa := PrepareArr( aa )
 +
  for i := 1 to len( aa )
 +
    try
 +
      r08 := OpenKlsf( 'R08' )
 +
      ( r08 )->( SetFilter( [ ID = '] + aa[i] + [' ] ) )
 +
      last_pname := ( r08 )->PNAME
 +
      ( r08 )->( DbSkip() )
 +
      if last_pname == ( r08 )->PNAME
 +
        // имена совпадают - удаляем запись без производителя KODORG
 +
        ( r08 )->( SetFilter( [ ID = '] + aa[i] + [' and KODORG = 0 ] ) )
 +
        ( r08 )->( TryToDelete() )
 +
      endif
 +
    finally
 +
      CloseTable( r08 )
 +
    end
 +
  next
 +
endif
 
= Смотрите также =
 
= Смотрите также =
 
[[Полезные функции]]
 
[[Полезные функции]]
  
 
[[Функции Delphi]]
 
[[Функции Delphi]]

Версия 09:41, 26 сентября 2018

RET_BAR_KOD2 - это программа из справочника R266

Если имеются одинаковые PNAME и ID ( задвоенные записи ), то удаляем записи без KODORG

Текст

local sql, aa, i, r08, last_pname

sql := [ Select ID From R08 Where ID <>  Group by PNAME, ID Having Count( * ) > 1 ]
aa := SqlToArr( sql, { 'ID' }, ReflisPath )

if !IsEmpty( aa )
  aa := PrepareArr( aa )
  for i := 1 to len( aa )
    try
      r08 := OpenKlsf( 'R08' )
      ( r08 )->( SetFilter( [ ID = '] + aa[i] + [' ] ) )
      last_pname := ( r08 )->PNAME
      ( r08 )->( DbSkip() )
      if last_pname == ( r08 )->PNAME
        // имена совпадают - удаляем запись без производителя KODORG
        ( r08 )->( SetFilter( [ ID = '] + aa[i] + [' and KODORG = 0 ] ) )
        ( r08 )->( TryToDelete() )
      endif
    finally
      CloseTable( r08 )
    end
  next
endif

Смотрите также

Полезные функции

Функции Delphi