Делите путем


Објашњење табела и записа у апликацијама са подлогом

У Power Apps можете да направите апликацију подлоге која приступа информацијама у Microsoft Excel, SharePoint, SQL Server и неколико других извора који чувају податке у записима и табелама. Да бисте најефикасније радили са овом врстом података, прегледајте концепте који су у основи ових структура.

  • Запис садржи једну или више категорија информација о особи, месту или ствари. На пример, запис може садржати име, адресу е-поште и телефонски број једног клијента. Остали алати називају запис „ред“ или „ставка“.
  • Табела садржи један или више записа који садрже исте категорије информација. На пример, табела може садржати имена, адресе е-поште и телефонске бројеве од 50 клијената.

У својој апликацији ћете користити формуле за креирање, ажурирање и манипулацију записима и табелама. Вероватно ћете прочитати, па записати податке у екстерном извору података, који је проширена табела. Поред тога, можете да креирате једну или више унутрашњих табела које се називају колекције.

Можете да изградите различите формуле које узимају назив табеле као аргумент, баш као што формуле у програму Excel узимају једну или више референци ћелија као аргументе. Неке формуле у Power Apps враћају табелу која одражава остале аргументе које сте навели. На пример, можете да креирате формулу:

  • да бисте ажурирали запис у табели наводећи ту табелу као један од више аргумената за функцију Закрпа
  • да додате, уклоните и преименујете колоне у табели наводећи ту табелу као аргумент за функције AddColumns, DropColumns, или RenameColumns. Ниједна од тих функција не мења изворну табелу. Уместо тога, функција враћа другу табелу на основу осталих аргумената које наведете.

Елементи табеле

Елементи табеле.

Записи

Сваки запис садржи макар једну категорију информација за особу, место или ствар. Горенаведени пример приказује запис за сваки производ (Чоколада, Хлеб и Вода) и колону за сваку категорију информација (Цена, Количина на залихама и Количина на поруџбини).

У формули можете да се сами позивате на запис, изван контекста табеле, користећи витичасте заграде. На пример, овај запис { Назив: „Јагоде“, цена: 7,99 } није повезан са табелом. Имајте на уму да имена поља, као што су Назив и Цена у том примеру, нису затворена у двоструким наводницима.

Поља

Поље је појединачни податак у запису. Ову врсту поља можете да прикажете као вредност у колони за одређени запис.

Баш као и са контролом, односи се и на поље записа користећи . оператор на снимку. На пример, First(Products).Name враћа поље Назив за први запис у табли Производи.

Поље може садржати други запис или табелу, као што пример за функцију GroupBy показује. Можете угнездити колико год нивоа записа и табела желите.

Колоне

Колона се односи на исто поље за један или више записа у табели. У горњем примеру, сваки производ има поље цена, а та цена је у истој колони за све производе. Табела изнад има четири колоне, хоризонтално приказане на врху:

  • Назив
  • Цена
  • Количина на залихама
  • Количина на поруџбини

Назив колоне се одражава на поља у тој колони.

Све вредности унутар колоне су истог типа података. У примеру горе, колона „Количина на залихама“ увек садржи број и не може садржати ниску, као што је „12 јединица“, за један запис. Вредност било ког поља такође може бити празно.

Можда сте ступце називали „поља“ у другим алаткама.

Напомена

За изворе података као што су SharePoint, Excel или Power BI плочице које садрже имена колона са размацима, Power Apps ће заменити размаке са "_x0020_". На пример, „Назив колоне“ у SharePoint, Excel или Power BI плочици појавиће се као „Column_x0020_Name“ у услузи Power Apps када се приказује у распореду података или користи у формули.

Table

Табела садржи један или више записа, сваки са више поља која имају конзистентна имена у записима.

Свака табела која је ускладиштена у извору података или колекцији има име, које користите за упућивање на табелу и прослеђивање функцијама које табеле узимају као аргументе. Табеле такође могу бити резултат функције или формуле.

Као у следећем примеру, табелу можете изразити табелу формулом користећи функцију Табела са скупом записа које изражавате у витичастим заградама:

Table( { Value: "Strawberry" }, { Value: "Vanilla" } )

Такође можете дефинисати табелу са једном колоном помоћу угластих заграда. Еквивалентан начин писања горенаведеног:

[ "Strawberry", "Vanilla" ]

Формуле табела

У програму Excel и Power Apps, користите формуле за манипулирање бројевима и нискама текста на сличне начине:

  • У програму Excel укуцајте вредност, као што је 42, у ћелији А1, а затим укуцајте формулу, као што је А1 + 2 у другој ћелији за приказ вредности 44.
  • У Power Apps, подесите Slider1 својство Подразумевано на 42, а затим поставите својство ознаке Текст на Slider1.Value + 2 да би се приказала вредност 44.

У оба случаја, израчуната вредност се аутоматски мења ако промените вредности аргумената (на пример, број у ћелији A1 или вредност Slider1).

Слично томе, можете користити формуле за приступ и манипулацију подацима у табелама и записима. Можете користити имена табела као аргументе у неким формулама, као што су Min(Catalog, Price) да покажете најнижу вредност у колони Цена у табели Каталог. Остале формуле дају читаве табеле као повратне вредности, као што су RenameColumns(Catalog, "Price", "Cost"), што враћа све записе из табеле Каталог, али мења име колоне Цена на Трошак.

Баш као и код бројева, формуле које укључују табеле и записе аутоматски се поново израчунавају како се основна табела или запис мења. Ако је цена производа у табели Каталог спуштена испод претходног минимума, повратна вредност формуле Min ће се аутоматски променити у складу са њом.

Прођимо кроз неколико једноставних примера.

  1. Направите празну апликацију за телефон и додајте вертикалну контролу Галерија која садржи друге контроле.

    На екрану се подразумевано приказује текст чувара места из табеле са називом CustomGallerySample. Својство Ставке контроле екрана Галерија се аутоматски поставља на ту табелу.

    Галерија.

    Напомена

    Неке контроле су преуређене и проширене ради илустрације.

  2. Уместо да поставите својство Ставке у име табеле, поставите га на формулу која укључује назив табеле као аргумент, као у овом примеру:

    Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)

    Ова формула укључује функцију Сортирај која узима назив табеле као свој први аргумент и назив колоне у тој табели као свој други аргумент. Функција такође подржава опционални трећи аргумент који предвиђа да желите да сортирате податке у опадајућем редоследу.

    Сортирање за галерију.

  3. Подесите својство Ставке на формулу која узима формулу из претходног корака као аргумент и враћа табелу, као у овом примеру:

    FirstN(Sort(CustomGallerySample, SampleHeading, SortOrder.Descending), 2)

    У овој формули ви користите функцију FirstN за приказивање одређеног броја записа у табели. Користите функцију Сортирај као први аргумент за FirstN и број (у овом случају, 2) као други аргумент, који одређује колико записа треба да се прикаже.

    Читава формула враћа табелу која садржи прва два записа из табеле CustomGallerySample, сортирано по колони SampleHeading у опадајућем реду.

    FirstN за галерију.

Функције табеле и својства контроле

Размотрите функцију Нижи. Ако променљива добродошлица садржи текстуалну ниску „Здраво свима“, формула Lower( welcome ) враћа „здраво свима“. Ова функција ни на који начин не мења вредност у тој променљивој. Нижи је чиста функција у томе што само обрађује улазно и производи излазно. То је све; нема нуспојава. Све функције у програму Excel и већина функција у Power Apps су чисте су функције које омогућавају аутоматско поновно израчунавање радне свеске или апликације.

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

  • Сортирај, Филтрирај – Сортира и филтрира записе.
  • FirstN, LastN – враћа први N или последњи N запис у табели.
  • Abs, Sqrt, Round, RoundUp, RoundDown – Аритметичке операције на сваком запису табеле са једном колоном, што даје табелу са резултатима са једном колоном.
  • Left, Mid, Right, Replace, Substitute, Trim, Lower, Upper, Proper – Стринг манипулације на сваком запису табеле са једном колоном, што даје табелу са стринговима са једном колоном.
  • Len – За колону са стринговима, враћа табелу са једном колоном која садржи дужину сваког стринга.
  • Concatenate – Саставља више колона са стринговима, чиме се прави табела са стринговима са једном колоном.
  • AddColumns, DropColumns, RenameColumns, ShowColumns – Манипулација колоном у табели, чиме се добија нова табела са различитим колонама.
  • Distinct – Уклаља дуплиране записе.
  • Shuffle – Меша записе насумичним редоследом.
  • HashTags – Претражује хеш ознаке у стрингу.
  • Errors – Пружа информације о грешци када радите са извором података.

Многе од ових функција узимају табелу са једном колоном као свој улаз. Ако цела табела има само једну колону, можете је одредити именом. Ако табела има више колона, једну од тих колона можете одредити помоћу синтаксе Table.Column. На пример, Products.Name враћа табелу са једном колоном само за вредности Назив из табеле Производи.

Изглед табеле можете потпуно да промените како год желите тако што ћете користити функције AddColumns, RenameColumns, ShowColumns или DropColumns. Дакле, ове функције мењају само свој излаз, не и њихов извор.

Својства контрола такође могу бити табеле:

  • Items – Примењује се на галерије, оквире са листама и комбиноване оквире. Ово својство дефинише табелу коју приказује галерија или листа.
  • SelectedItems – Примењује се на оквире са листама и комбиноване оквире. Ово својство дефинише табелу ставки које је корисник изабрао ако је омогућено SelectMultiple.

Формуле понашања

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

  • Collect, Clear, ClearCollect – Креира колекције, брише их и додаје им податке.
  • Patch – Мења једно поље у запису или више њих.
  • Update, UpdateIf – Ажурира записе који одговарају једном наведеном критеријуму или више њих.
  • Remove, RemoveIf – Брише записе који одговарају једном наведеном критеријуму или више њих.

Снимање формула

Такође можете изградити формулу која израчунава податке за појединачни запис, узима појединачни запис као аргумент и пружа појединачни запис као повратну вредност. Вратимо се на претходно наведени пример галерије и искористимо својство Gallery1.Selected за приказивање информација из било ког записа који корисник изабере у тој галерији.

  1. Додајте Дугме и подесите њено својство OnSelect према овој формули:
    Collect( SelectedRecord, Gallery1.Selected )

  2. Док држите тастер Alt притиснут, изаберите дугме.

  3. У менију Датотека изаберите Колекције.

    Колекција SelectedRecord.

Ова формула враћа запис који укључује не само податке из записа који је тренутно изабран у галерији, већ и сваку контролу у тој галерији. На пример, запис садржи колону SampleText која одговара колони SampleText у оригиналној табели, као и колону Subtitle1 која представља ознаку која приказује податке из те колоне. Изаберите икону табеле у колони Subtitle1 да бисте увели у те податке.

Напомена

Колона Subtitle1 може да носи назив Subtitle2 или сличан, ако сте додали елементе које ова тема не одређује.

Сада када имате изабрани запис, из њега можете извући појединачна поља са оператором . .

  1. Додајте контролу Ознака, а затим је померите испод галерије и дугмета.

  2. Подесите својство ознаке Текст на овај израз:
    "Selected: " & Gallery1.Selected.SampleHeading

    Својство Text са ажурираном ознаком.

Узели сте својство Изабрано, што је запис, и из њега издвојили својство SampleHeading.

Запис такође можете користити као контејнер опште намене за сродне именоване вредности.

  • Ако градите формулу око функције UpdateContext и Navigate, користите запис да бисте прикупили променљиве контекста које желите да ажурирате.
  • Користите својство Ажурирања на контроли Уређивање обрасца ради прикупљања измена које је корисник унео у образац.
  • Користите функцију Patch да бисте ажурирали извор података, али и објединили записе.

У тим случајевима, запис никада није био део табеле.

Функције записа и својства контроле

Функције које враћају записе:

  • FirstN, LastN – враћа први или последњи запис или записе у табели.
  • Lookup – Враћа први запис из табеле која одговара једном критеријуму или више њих.
  • Patch – Ажурира извор података или обједињује записе.
  • Defaults – Враћа подразумеване вредности за извор података.

Својства која враћају записе:

  • Selected – Примењује се на галерије и оквире са листама. Враћа тренутно изабрани запис.
  • Updates – Примењује се на галерије. Скупља све промене које корисник обави у обрасцу за унос података.
  • Update – Примењује се на контроле уноса, као што су контроле уноса текста и клизачи. Поставља појединачна својства за галерију да би се објединила.

Опсег записа

Неке функције раде тако што појединачно процењују формулу у свим записима табеле. Резултат формуле се користи на различите начине:

  • AddColumns – Формула пружа вредност додатног поља.
  • Average, Max, Min, Sum, StdevP, VarP – Формула даје вредност за агрегацију.
  • Filter, Lookup – Формула одређује да ли запис треба укључити у излаз.
  • Concat – Формула одређује стрингове који треба да се надовезују.
  • Distinct - Формула враћа вредност, користи се за препознавање дуплираних записа.
  • ForAll – Формула може да врати било коју вредност, потенцијално са нуспојавама.
  • Sort – Формула пружа вредност за сортирање записа.
  • With – Формула може да врати било коју вредност, потенцијално са нуспојавама.

Унутар ових формула можете навести поља записа који се обрађује. Свака од ових функција ствара „опсег записа“ у коме се процењује формула, где су поља записа доступна као идентификатори највишег нивоа. Можете такође да наведете својства контроле и друге вредности из апликације.

На пример, узмите табелу Производи:

Пример производа.

Да бисте направили табелу за овај пример у својој апликацији, уметните дугме, поставите својство OnSelect на ову формулу, а затим изаберите дугме (кликните га док држите тастер Alt у Power Apps Studio):

Set( Products,
    Table(
        { Product: "Widget",    'Quantity Requested': 6,  'Quantity Available': 3 },
        { Product: "Gadget",    'Quantity Requested': 10, 'Quantity Available': 20 },
        { Product: "Gizmo",     'Quantity Requested': 4,  'Quantity Available': 11 },
        { Product: "Apparatus", 'Quantity Requested': 7,  'Quantity Available': 6 }
    )
)

Да бисте утврдили да ли је било који од ових производа тражио више него што је доступно:

Filter( Products, 'Quantity Requested' > 'Quantity Available' )

Први аргумент за Филтер је табела записа на којој треба радити, а други аргумент је формула. Филтер креира опсег записа за процену ове формуле у којој су поља сваког записа доступна, у овом случају Производ, Захтевана количина и Доступна количина. Резултат поређења одређује да ли сваки запис треба да буде укључен у резултат функције:

Филтрирана табела.

Додатно, у овом примеру можемо израчунати колико сваког производа треба наручити:

AddColumns( 
    Filter( Products, 'Quantity Requested' > 'Quantity Available' ), 
    "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
)

Овде у резултат додајемо израчунату колону. AddColumns има сопствени опсег записа који користи за израчунавање разлике између онога што је тражено и онога што је доступно.

Додате колоне.

На крају, можемо да смањимо табелу са резултатима на само оне колоне које желимо:

ShowColumns(
    AddColumns(
        Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
        "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
    ),
    "Product",
    "Quantity To Order"
)

Ажурирана табела.

Имајте у виду да смо у горњем тексту користили двоструке наводнике („“) на неким местима, а једноструке наводнике (´) на другим местима. Једноструки наводници су потребни када се референцирају вредности објекта, као што су поље или табела, у ком име објекта садржи размак. Двоструки наводници се користе када не референцирамо вредност објекта, већ уместо тога говоримо о њему, посебно у ситуацијама у којима објекат још не постоји, као у случају AddColumns.

Разјашњавање

Називи поља који су додати с опсегом записа замениће иста имена на другим местима у апликацији. Кад се то догоди, и даље можете приступати вредностима изван опсега записа помоћу оператора за @ разјашњавање:

  • Да бисте приступили вредностима из угнежђених опсега записа, користите оператор @ са називом табеле којом управљате када користите овај образац:
    Table[@FieldName]
  • Да бисте приступили глобалним вредностима, као што су извори података, колекције и променљиве контекста, користите образац [@ObjectName] (без ознаке табеле).

Ако је табела којом се руководи израз, као што је Filter( Table, ... ), онда се оператор разјашњавања не може користити. Само најдубљи опсег снимања може приступити пољима из овог израза табеле, не користећи оператор за разјашњавање.

На пример, замислите да имате колекцију X:

Колекција X.

Ову колекцију можете да креирате помоћу ClearCollect( X, [1, 2] ).

И још једну колекцију Y:

Колекција Y.

Ову колекцију можете да креирате помоћу ClearCollect( Y, ["A", "B"] ).

Поред тога, дефинишите променљиву контекста са именом Вредност помоћу ове формуле: UpdateContext( {Value: "!"} )

Хајде да све то саставимо. У овом контексту, следећа формула:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Y[@Value] & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

даје ову табелу:

XY табела.

Шта се овде дешава? Последња функција ForAll дефинише опсег записа за X и дозвољава сваком запису приступ пољу Value док се обрађује. Може се приступити једноставним коришћењем речи Вредност или коришћењем X[ @Value].

Најдубља функција ForAll дефинише још један опсег записа за Y. Пошто ова табела такође садржи дефинисано поље Value, коришћење поља Value овде се односи на поље у запису за Y, а не више на поље у обрасцу X. Овде, да бисмо приступили пољу за X, Value , морамо да користимо дужу верзију оператора за разјашњавање.

Пошто је Y је најдубљи опсег записа, приступ пољима ове табеле не захтева разјашњавање, омогућавајући нам да користимо ову формулу са истим резултатом:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Value & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

Сви опсези записа ForAll замењују глобални опсег. Променљива контекста Вредност коју смо дефинисали није доступна по називу без оператера за разјашњавање. Да бисте приступили овој вредности, употребите [ @Value].

Разгрупиши своди резултат зато што угнежђене функције ForAll резултирају у угнежђеној табли резултата.

Табеле са једном колоном

Да бисте радили на једној колони из табеле, користите функцију ShowColumns као у овом примеру:

ShowColumns( Products, "Product" )

Ова формула производи ову табелу са једним колоном:

Табела са једном колоном.

За краћу алтернативу, наведите Table.Column, која издваја табелу са једном колоном са Колоном из Табеле. На пример, ова формула даје потпуно исти резултат као и коришћење ShowColumns.

Products.Product

Уметнути записи

Записе изражавате користећи витичасте заграде који садрже именоване вредности поља. На пример, можете да изразите први запис у табели на почетку ове теме помоћу ове формуле:

{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 }

Формуле можете уградити и у друге формуле, као што овај пример показује:

{ Name: First(Products).Name, Price: First(Products).Price * 1.095 }

Можете угнездити записе угнежђавањем витичастих заграда, као што овај пример показује:

{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand, 'OnOrder': ThisItem.QuantOnOrder } }

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

Имајте на уму да вредност у колони Цена не садржи симбол валуте, као што је знак долара. То форматирање ће се применити када се вредност прикаже.

Уметнуте табеле

Табелу можете креирати користећи функцију Табела и скуп записа. Можете да изразите табелу на почетку ове теме помоћу ове формуле:

Table( 
    { Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 },
    { Name: "Bread", Price: 4.95, 'Quantity on Hand': 34, 'Quantity on Order': 0 },
    { Name: "Water", Price: 4.95, 'Quantity on Hand': 10, 'Quantity on Order': 0 } 
)

Такође можете да угнездите табеле:

Table( 
    { Name: "Chocolate", 
      'Quantity History': Table( { Quarter: "Q1", OnHand: 10, OnOrder: 10 },
                                 { Quarter: "Q2", OnHand: 18, OnOrder: 0 } ) 
    }
)

Табеле са уметнутим вредностима

Табеле са једним колоном можете да креирате тако што ћете навести вредности у угластим заградама. Добијена табела има једну колону, под називом Вредност.

На пример, [ 1, 2, 3, 4 ] је еквивалентно Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) и враћа ову табелу:

Уграђена табела.

Напомена

Можете ли нам рећи о својим жељеним поставкама језика у документацији? Испуните кратку анкету. (имајте на уму да је ова анкета на енглеском језику)

Анкета ће трајати око седам минута. Не прикупљају се лични подаци (изјава о приватности).