Search code examples
sharepoint-listpowerappspowerapps-formulapowerapps-selected-items

How to check if a Choice field option is selected


In our PowerApps form we have the DisplayMode of our submit button determined by a formula that checks all the mandatory fields have been completed.

If (
    And(
        Or(DPIAForm.Mode=FormMode.Edit,DPIAForm.Mode=FormMode.New),
        Not IsBlank(TitleField.Text),
        Not IsBlank(DescOfInitiativeField.Text),
        DateRaisedField.SelectedDate <> Date(
            1900,
            01,
            01
        ),
        Not IsEmpty(PersonalDataChoiceField.SelectedItems.Value),
        Not IsEmpty(SpecialCatChoiceField.SelectedItems.Value),
        Not IsEmpty(ChildrensDataChoiceField.SelectedItems.Value),
        Not IsEmpty(CriminalChoiceDataField.SelectedItems.Value),
        Not IsEmpty(SourcesOfDataChoiceField.SelectedItems.Value),
        Not IsEmpty(NumberOfIndividualDataSubjectsChoiceField.SelectedItems.Value),
        Not IsEmpty(LawfulBasisChoiceField.SelectedItems.Value),
        Not IsBlank(ProviderField.Text),
        Not IsEmpty(NewTechnologyChoiceField.SelectedItems.Value),
        Not IsEmpty(DataEvaluatedOrScoredChoiceField.SelectedItems.Value),
        Not IsEmpty(DecisionsMadeAutomaticallyChoiceField.SelectedItems.Value),
        //Not IsBlank(KindofDecisionsMadeAutomaticallyField.Text),
        If(DecisionsMadeAutomaticallyChoiceField.SelectedItems.Value ="Yes", Not IsBlank(KindofDecisionsMadeAutomaticallyField.Text), "" ),
        Not IsEmpty(IndividualNotAwareOfPersonalDataCaptureChoiceField.SelectedItems.Value),
        Not IsEmpty(DataTransferredOutsideEEAChoiceField.SelectedItems.Value),
        Not IsBlank(WhoWillHaveAccessToDataField.Text),
        Not IsEmpty(MonitoringIndividualsChoiceField.SelectedItems.Value),
        Not IsEmpty(CriminalChoiceDataField.SelectedItems.Value),
        Not IsEmpty(MonitoringIndividualsChoiceField.SelectedItems.Value),
        Not IsEmpty(DataRetentionPlanChoiceField.SelectedItems.Value),
        Not IsBlank(RetentionPlanForPersonalDataField.Text),
        Not IsBlank(RetentionPlanForSensitiveDataField.Text),
        Not IsBlank(RetentionPlanForChildrensDataField.Text),
        Not IsBlank(RetentionPlanForCriminalConvictionDataField.Text),
        Not IsEmpty(SupplierDueDiligenceDoneChoiceField.SelectedItems.Value),
        Not IsEmpty(GDPRCompliantContractWithAll3rdPartiesChoiceField.SelectedItems.Value),
        StatusDataField.Text = "Draft"
        ),
    DisplayMode.Edit,
    DisplayMode.Disabled)

the part we are having trouble with is the formula in the middle:

    If(DecisionsMadeAutomaticallyChoiceField.SelectedItems.Value ="Yes", Not IsBlank(KindofDecisionsMadeAutomaticallyField.Text), "" ),

here I want to test that if the user has selected "Yes" in the drop-down/choice field ecisionsMadeAutomaticallyChoiceField and if so, then the field KindofDecisionsMadeAutomaticallyField must not be blank/empty in order for the Submit button to be enabled...

But I am getting an error Invalid argument type on If(DecisionsMadeAutomaticallyChoiceField.SelectedItems.Value ="Yes"

I have also tried:

If(DecisionsMadeAutomaticallyChoiceField.SelectedItems(1)

so what's the correct way to do this in our formula?


Solution

  • I found the answer is to check that Yes is selected in the following way:

    if("Value" in ComboBox.SelectedItems.Value, 
    Not IsBlank(TextDataField.Text), IsBlank(TextDataField.Text) ),
    

    so in my case the correct formula is:

    if("Yes" in DecisionsMadeAutomaticallyChoiceField.SelectedItems.Value, 
    Not IsBlank(KindofDecisionsMadeAutomaticallyField.Text), 
    IsBlank(KindofDecisionsMadeAutomaticallyField.Text) ),