RET BAR KOD2 — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м |
||
| Строка 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