Update и UpdateIf функције

Односи се на: Цанвас апликације - Апликације засноване на моделу

Ажурира записе у извору података.

Опис

Update Функцију

Користите Update функцију да замените цео запис у извору података. Насупрот томе, UpdateIf и Патцх функције модификују једну или више вредности у запису, остављајући остале вредности на миру.

За збирку, целокупни запис се мора подударати. Збирке омогућавају дуплиране записе па се може подударати више записа. Можете користити аргумент РемовеФлагс.Алл да ускладите све копије записа; у супротном, само једна копија записа је ажурирана.

Ако извор података аутоматски генерише вредност колоне, вредност те колоне мора поново бити потврђена.

UpdateIf Функцију

Користите UpdateIf функцију да измените једну или више вредности у једном или више записа који одговарају једном или више услова. Услов може бити било која формула која даје резултат тачно или погрешно и може да се референцира на колоне извора података по имену. Функција процењује стање за сваки запис и мења било који запис за који је резултат тачно.

Да бисте одредили модификацију, користите запис о промени који садржи нове вредности својстава. Ако овај запис о промени обезбедите уметнуто са витичастим заградама, формуле својстава се могу референцирати на својства записа који се мења. Ово понашање можете користити за модификовање записа на основу формуле.

Слично UpdateIf, можете користити и функцију Патцх да бисте променили одређене колоне записа без утицаја на друге колоне.

Оба Update и UpdateIf вратити модификовани извор података као табелу . Морате користити било коју функцију у формули понашања.

Делегирање

Ове функције не делегирају на извор података. Међутим , UpdateIf и РемовеИф раде локално да симулирају делегирање до границе од 500/2000 записа. Они прогресивно смањују записе изван границе неделегирања од 500/2000 записа. Прикупљају се записи који испуњавају услов Иф Генерално, максимално 500/2000 записа се прикупљају одвојено, а затим модификују по извршењу. Међутим , више записа може бити ажурирано ако је постојећа локална кеш меморија података велика, јер функција може имати приступ већем броју записа за процену. Само почетни део извора података ће бити преузети, а затим ће се функција применити. Ово можда не представља комплетну слику. Упозорење се може појавити током ауторства да вас подсети на ово ограничење.

Синтакса

Update(ДатаСоурце _, ОлдРецорд , НеwРецорд [, РемовеФлагс.Алл ] )

  • ДатаСоурце – Обавезно. Извор података који садржи запис који желите заменити.
  • ОлдРецорд – Обавезно. Записа за замену.
  • НеwРецорд – Обавезно. Запис замене. Ово није запис промене. Цео запис је замењен, а недостајуће особине садрже празно .
  • РемовеФлагс .Алл – Опционо. У збирци се исти запис може појавити више пута. Наведите аргумент РемовеФлагс.Алл да бисте ажурирали све копије записа.

UpdateIf(ДатаСоурце _, Stanje1 , ChangeRecord1 [, Stanje2 , ChangeRecord2 , ... ] )

  • ДатаСоурце – Обавезно. Извор података који садржи запис или записе које желите изменити.
  • Услови – Обавезно. Формула која се процењује на тачно за запис или записе које желите да измените. Можете користити имена колона у DataSource у формули. У случају да се прође више услова , примењује се само ЦхангеРецорд који се односи на први услов који се процењује као истинито .
  • ЦхангеРецордс - Обавезно. За сваки одговарајући услов, промена записа нових вредности својстава која ће се применити на записе DataSource који задовољавају услов. Ако обезбедите уметнути запис користећи витичасте заграде, вредности својстава постојећег записа могу се користити у формулама својстава.

Примери

У овим примерима ћете заменити или изменити записе у извору података по имену IceCream и започиње подацима из ове табеле:

IceCream пример.

Формула Опис Резултат
Update( Сладолед,
ЛоокУп ( сладолед, укус = "чоколада" ), { ИД: 1, укус: "нана чоколада", количина: 150 } )
Мења запис из извора података. Замените запис.

Извор података IceCream је измењен.
UpdateIf( сладолед, количина > 175, { количина: количина + 10 } ) Мења записе који имају Quantity која је веће од 175. Поље Quantity се инкрементално повећава за 10, а ниједно друго поље се не мења. Измена записа.

Извор података IceCream је измењен.
Update( Сладолед,
ЛоокУп ( Сладолед, Флавор = "Јагода" ),
{ ИД: 3, Укус: "Јагода Вртлог"} )
Мења запис из извора података. Својство Quantity није дато у запису о замени, тако да ће својство бити празно у резултату. Замените запис када количина није испоручена.

Извор података IceCream је измењен.
UpdateIf( Сладолед, истина, { Количина: 0 } ) Поставља вредност својства Quantity за све записе у извору података на 0. Подесите количину за све на 0.

Извор података IceCream је измењен.

Корак по корак

  1. Увозите или креирате колекцију под називом Инвентар и приказујете је у галерији као Приказ података у галерији.

  2. Назовите галерију ProductGallery.

  3. Додајте клизач по имену UnitsSold, и поставите његово својство Max на овај израз:
    ПродуцтГаллерy.Селецтед.УнитсИнСтоцк

  4. Додајте дугме и подесите његово својство OnSelect према овој формули:
    UpdateIf(Инвентар , ПродуцтНаме = ПродуцтГаллерy.Селецтед.ПродуцтНаме, {УнитсИнСтоцк:УнитсИнСтоцк-УнитсСолд.Валуе})

  5. Притисните F5, изаберите производ у галерији, одредите вредност клизачем, а затим изаберите дугме.

    Број јединица на складишту за производ који сте навели смањује се за износ који сте навели.