Hello All,
I have a question, is that possible to provide helptoolTip in textfield that each item has to be shown different helptool,like I have decision for each parameter different HoverOver_desc (placed screenshot) has to be shown, how that can be shown in textfield?
a!textField( readOnly:index( rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ), "isReadOnly_bool", {} ), value: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).parameters, saveInto: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).parameters, helpTooltip: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).HoverOver_Desc, ),
Discussion posts and replies are publicly visible
I am not sure I understand what you want to achieve. Before starting the guessing-game, can you help me understand it better?
Since you haven't shared the whole code, I'm assuming you are forming a loop on something. So Yes you can do this to get different parameters of a textField for multiple fields. I would suggest not calling the decision again and again for each parameter instead save it in a local variable outside textField and then property the fields from that.
I need to achieve providing helptoolTip in textfield,for different items, that mentioned in the decision and tried in text field.
Could you brief me or can u share sample code?
According to what I have understood from your explanation
a!forEach( items: local!data, expression: a!localVariables( local!parameters: rule!decision( Param_description: fv!item.parameterId_int ), a!textField( value: property(local!parameters, "parameters", null), saveInto: property(local!parameters, "parameters", null), helpTooltip: property(local!parameters, "HoverOver_Desc", null), readOnly: property( local!parameters, "isReadOnly_bool", null ) ) ) )
OK. Your code seems a bit clunky, but should work. What do you see when rendering this interface?
I have used a!forEach already.How could I use one more a!foreach?
a!localVariables( local!parameterId: cons!CR_RISKMITIGATION_PARAMETERS, local!AddedBusinessRiskAndMitigates_cdt: 'type!{urn:com:appian:types:NBF}CR_BP_RiskMitigation'( cif_int: "" ), local!RemoveButton, local!ParameterDescription, local!InfoIcon, { a!gridLayout( label: cons!CR_LAB_BUSINESS_MODULE_ALL_FIELDS[2], labelPosition: "ABOVE", helpTooltip: rule!CR_DSC_getBusinessProfileToolTipsByFields( FieldName: cons!CR_LAB_BUSINESS_MODULE_ALL_FIELDS[2] ), headerCells: { a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[1], showWhen: false() ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[1] ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[3] & cons!CR_TXT_DISPLAY_ASTERISK ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[4] & cons!CR_TXT_DISPLAY_ASTERISK ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[5] & cons!CR_TXT_DISPLAY_ASTERISK ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[6] ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[7] & cons!CR_TXT_DISPLAY_ASTERISK ), /* For the "Remove" column */ a!gridLayoutHeaderCell( label: "", showWhen: if( local!RemoveButton, true(), false() ) ) }, columnConfigs: { a!gridLayoutColumnConfig( width: "NARROW", weight: 1, showWhen: false() ), a!gridLayoutColumnConfig( width: "NARROW", ), a!gridLayoutColumnConfig( width: "DISTRIBUTE", weight: 1 ), a!gridLayoutColumnConfig( width: "NARROW" ), a!gridLayoutColumnConfig( width: "NARROW" ), a!gridLayoutColumnConfig( width: "NARROW", weight: null ), a!gridLayoutColumnConfig( width: "DISTRIBUTE", weight: 1 ), /* For the "Remove" column */ a!gridLayoutColumnConfig( width: "ICON", showWhen: if( local!RemoveButton, true(), false() ) ) }, rows: { a!forEach( items: ri!BusinessRiskAndMitigates_cdt, expression: a!gridRowLayout( contents: { a!textField( showWhen: false(), readOnly: true(), value: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).parameters, saveInto: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).parameters ), a!textField( readOnly:index( rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ), "isReadOnly_bool", {} ), value: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).parameters, saveInto: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).parameters, helpTooltip: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).HoverOver_Desc, ), a!paragraphField( label: "Overview", placeholder: "", validations: rule!CR_FN_setMaximumCharactersValidation( comments_txt: fv!item.overview_txt ), required: true(), readOnly: if( isnull( ri!IsReadOnly_boolean ), false, ri!IsReadOnly_boolean ), value: fv!item.overview_txt, saveInto: fv!item.overview_txt, height: "SHORT" ), a!radioButtonField( choiceLayout: "COMPACT", label: "Probability", required: true(), disabled: if( isnull( ri!IsReadOnly_boolean ), false, ri!IsReadOnly_boolean ), choiceLabels: cons!CR_PROBABILITY_IMPACT_VALUES, choiceValues: cons!CR_PROBABILITY_IMPACT_VALUES, placeholderLabel: "Select", value: fv!item.probability_txt, saveInto: { fv!item.probability_txt, if( not( or( isnull( fv!item.impact_txt ), isnull( fv!item.probability_txt ) ) ), a!save( fv!item.risks_txt, rule!CR_DCS_getRiskByImpactAndProbability( impact: fv!item.impact_txt, probability: fv!item.probability_txt ).valueOutput ), {} ) } ), a!radioButtonField( choiceLayout: "COMPACT", label: "Impact", required: true(), disabled: if( isnull( ri!IsReadOnly_boolean ), false, ri!IsReadOnly_boolean ), choiceLabels: cons!CR_PROBABILITY_IMPACT_VALUES, choiceValues: cons!CR_PROBABILITY_IMPACT_VALUES, placeholderLabel: "Select", value: fv!item.impact_txt, saveInto: { fv!item.impact_txt, if( not( or( isnull( fv!item.impact_txt ), isnull( fv!item.probability_txt ) ) ), a!save( fv!item.risks_txt, rule!CR_DCS_getRiskByImpactAndProbability( impact: fv!item.impact_txt, probability: fv!item.probability_txt ).valueOutput ), {} ) } ), a!imageField( label: "Risk", images: a!documentImage( showWhen: not( or( isnull( fv!item.impact_txt ), isnull( fv!item.probability_txt ) ) ), document: a!iconIndicator( rule!CR_DCS_getRiskByImpactAndProbability( impact: fv!item.impact_txt, probability: fv!item.probability_txt ).iconOutput ) ) ), a!paragraphField( label: "Mitigants", required: true(), height: "SHORT", validations: rule!CR_FN_setMaximumCharactersValidation( comments_txt: fv!item.mitigants_txt ), readOnly: if( isnull( ri!IsReadOnly_boolean ), false, ri!IsReadOnly_boolean ), value: fv!item.mitigants_txt, saveInto: fv!item.mitigants_txt ), a!textField( readOnly: true(), showWhen: if( local!RemoveButton, if( fv!index <= count( cons!CR_RISKMITIGATION_PARAMETERS )-1 , true(), false() ), false() ) ), a!imageField( label: "delete " & fv!index, images: a!documentImage( document: a!iconIndicator( "REMOVE" ), altText: "Remove Item", caption: "Remove", /*& fv!item.CIF,*/ link: a!dynamicLink( value: fv!index, saveInto: { if( isnull( fv!item.id_int ), a!save( ri!BusinessRiskAndMitigates_cdt, remove( ri!BusinessRiskAndMitigates_cdt, save!value ) ), a!deleteFromDataStoreEntities( dataToDelete: { entity: cons!CR_ENTITY_BP_RISK_MITIGATION, identifiers: fv!item.id_int }, onSuccess: a!save( ri!BusinessRiskAndMitigates_cdt, remove( ri!BusinessRiskAndMitigates_cdt, save!value ) ) ) ) } ) ), size: "ICON", showWhen: if( local!RemoveButton, if( fv!index > count( cons!CR_RISKMITIGATION_PARAMETERS )-1 , if( ri!IsReadOnly_boolean, false(), true() ), false() ), false() ) ) } ) ) }, addRowLink: a!dynamicLink( label: "Add Item", value: { addValue: + 1 }, saveInto: { a!save( ri!BusinessRiskAndMitigates_cdt, append( ri!BusinessRiskAndMitigates_cdt, 'type!{urn:com:appian:types:NBF}CR_BP_RiskMitigation'( requestId_int: ri!requestId_Int, cif_int: ri!cif_int, parameterId_int: cons!CR_BP_RISK_PARAMETER_IDS[7], addedOn_dt: now(), addedBy_txt: loggedInUser() ) ) ), a!save( local!AddedBusinessRiskAndMitigates_cdt, ldrop( ri!BusinessRiskAndMitigates_cdt, count( local!parameterId ) ) ), a!save( local!RemoveButton, true() ) }, showWhen: if( isnull( ri!IsReadOnly_boolean ), true, not( ri!IsReadOnly_boolean ) ) ), selectionSaveInto: {}, validations: {}, shadeAlternateRows: true ) } )
sid said:How could I use one more a!foreach?
You wouldn't. You'd put Sanchit's logic (which i agree with) inside your existing a!foreach() loop that you're launching at line 87 in the above code. You would simply declare a new a!localVariables() declaration inside the "expression" parameter, above / containing the a!gridRowLayout() call.
a!localVariables( local!parameterId: cons!CR_RISKMITIGATION_PARAMETERS, local!AddedBusinessRiskAndMitigates_cdt: 'type!{urn:com:appian:types:NBF}CR_BP_RiskMitigation'( cif_int: "" ), local!RemoveButton, local!ParameterDescription, local!InfoIcon, { a!gridLayout( label: cons!CR_LAB_BUSINESS_MODULE_ALL_FIELDS[2], labelPosition: "ABOVE", helpTooltip: rule!CR_DSC_getBusinessProfileToolTipsByFields( FieldName: cons!CR_LAB_BUSINESS_MODULE_ALL_FIELDS[2] ), headerCells: { a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[1], showWhen: false() ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[1] ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[3] & cons!CR_TXT_DISPLAY_ASTERISK ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[4] & cons!CR_TXT_DISPLAY_ASTERISK ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[5] & cons!CR_TXT_DISPLAY_ASTERISK ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[6] ), a!gridLayoutHeaderCell( label: cons!CR_GD_LAB_KEYRISKS_MITIGANTS[7] & cons!CR_TXT_DISPLAY_ASTERISK ), /* For the "Remove" column */ a!gridLayoutHeaderCell( label: "", showWhen: if( local!RemoveButton, true(), false() ) ) }, columnConfigs: { a!gridLayoutColumnConfig( width: "NARROW", weight: 1, showWhen: false() ), a!gridLayoutColumnConfig( width: "NARROW", ), a!gridLayoutColumnConfig( width: "DISTRIBUTE", weight: 1 ), a!gridLayoutColumnConfig( width: "NARROW" ), a!gridLayoutColumnConfig( width: "NARROW" ), a!gridLayoutColumnConfig( width: "NARROW", weight: null ), a!gridLayoutColumnConfig( width: "DISTRIBUTE", weight: 1 ), /* For the "Remove" column */ a!gridLayoutColumnConfig( width: "ICON", showWhen: if( local!RemoveButton, true(), false() ) ) }, rows: { a!forEach( items: ri!BusinessRiskAndMitigates_cdt, expression: a!localVariables( local!parameters: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ), a!gridRowLayout( contents: { a!textField( showWhen: false(), readOnly: true(), value: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).parameters, saveInto: rule!CR_RISK_PARAMETER_MAPPING( Param_description: fv!item.parameterId_int ).parameters ), a!textField( readOnly: property( local!parameters, "isReadOnly_bool", null ), value: property( local!parameters, "parameters", null ), saveInto: property( local!parameters, "parameters", null ), helpTooltip: property( local!parameters, "HoverOver_Desc", null ), ), a!paragraphField( label: "Overview", placeholder: "", validations: rule!CR_FN_setMaximumCharactersValidation( comments_txt: fv!item.overview_txt ), required: true(), readOnly: if( isnull( ri!IsReadOnly_boolean ), false, ri!IsReadOnly_boolean ), value: fv!item.overview_txt, saveInto: fv!item.overview_txt, height: "SHORT" ), a!radioButtonField( choiceLayout: "COMPACT", label: "Probability", required: true(), disabled: if( isnull( ri!IsReadOnly_boolean ), false, ri!IsReadOnly_boolean ), choiceLabels: cons!CR_PROBABILITY_IMPACT_VALUES, choiceValues: cons!CR_PROBABILITY_IMPACT_VALUES, placeholderLabel: "Select", value: fv!item.probability_txt, saveInto: { fv!item.probability_txt, if( not( or( isnull( fv!item.impact_txt ), isnull( fv!item.probability_txt ) ) ), a!save( fv!item.risks_txt, rule!CR_DCS_getRiskByImpactAndProbability( impact: fv!item.impact_txt, probability: fv!item.probability_txt ).valueOutput ), {} ) } ), a!radioButtonField( choiceLayout: "COMPACT", label: "Impact", required: true(), disabled: if( isnull( ri!IsReadOnly_boolean ), false, ri!IsReadOnly_boolean ), choiceLabels: cons!CR_PROBABILITY_IMPACT_VALUES, choiceValues: cons!CR_PROBABILITY_IMPACT_VALUES, placeholderLabel: "Select", value: fv!item.impact_txt, saveInto: { fv!item.impact_txt, if( not( or( isnull( fv!item.impact_txt ), isnull( fv!item.probability_txt ) ) ), a!save( fv!item.risks_txt, rule!CR_DCS_getRiskByImpactAndProbability( impact: fv!item.impact_txt, probability: fv!item.probability_txt ).valueOutput ), {} ) } ), a!imageField( label: "Risk", images: a!documentImage( showWhen: not( or( isnull( fv!item.impact_txt ), isnull( fv!item.probability_txt ) ) ), document: a!iconIndicator( rule!CR_DCS_getRiskByImpactAndProbability( impact: fv!item.impact_txt, probability: fv!item.probability_txt ).iconOutput ) ) ), a!paragraphField( label: "Mitigants", required: true(), height: "SHORT", validations: rule!CR_FN_setMaximumCharactersValidation( comments_txt: fv!item.mitigants_txt ), readOnly: if( isnull( ri!IsReadOnly_boolean ), false, ri!IsReadOnly_boolean ), value: fv!item.mitigants_txt, saveInto: fv!item.mitigants_txt ), a!textField( readOnly: true(), showWhen: if( local!RemoveButton, if( fv!index <= count( cons!CR_RISKMITIGATION_PARAMETERS ) - 1, true(), false() ), false() ) ), a!imageField( label: "delete " & fv!index, images: a!documentImage( document: a!iconIndicator( "REMOVE" ), altText: "Remove Item", caption: "Remove", /*& fv!item.CIF,*/ link: a!dynamicLink( value: fv!index, saveInto: { if( isnull( fv!item.id_int ), a!save( ri!BusinessRiskAndMitigates_cdt, remove( ri!BusinessRiskAndMitigates_cdt, save!value ) ), a!deleteFromDataStoreEntities( dataToDelete: { entity: cons!CR_ENTITY_BP_RISK_MITIGATION, identifiers: fv!item.id_int }, onSuccess: a!save( ri!BusinessRiskAndMitigates_cdt, remove( ri!BusinessRiskAndMitigates_cdt, save!value ) ) ) ) } ) ), size: "ICON", showWhen: if( local!RemoveButton, if( fv!index > count( cons!CR_RISKMITIGATION_PARAMETERS ) - 1, if( ri!IsReadOnly_boolean, false(), true() ), false() ), false() ) ) } ) ) ) }, addRowLink: a!dynamicLink( label: "Add Item", value: { addValue: + 1 }, saveInto: { a!save( ri!BusinessRiskAndMitigates_cdt, append( ri!BusinessRiskAndMitigates_cdt, 'type!{urn:com:appian:types:NBF}CR_BP_RiskMitigation'( requestId_int: ri!requestId_Int, cif_int: ri!cif_int, parameterId_int: cons!CR_BP_RISK_PARAMETER_IDS[7], addedOn_dt: now(), addedBy_txt: loggedInUser() ) ) ), a!save( local!AddedBusinessRiskAndMitigates_cdt, ldrop( ri!BusinessRiskAndMitigates_cdt, count( local!parameterId ) ) ), a!save( local!RemoveButton, true() ) }, showWhen: if( isnull( ri!IsReadOnly_boolean ), true, not( ri!IsReadOnly_boolean ) ) ), selectionSaveInto: {}, validations: {}, shadeAlternateRows: true ) } )
I have written like this ,still I dont see the helptool for each parameter
Thanks Mike for clearing that out.
Can you show us what you can see? I'm still not sure what you mean by each parameter.
And also what is the value in ri!BusinessRiskAndMitigates_cdt