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