Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Routing(CAPI)
- Section Info
- ' ================================================= PROJECT INFO =================================================
- ' Project Number: 160249240101
- ' ProjectName: SAB Miller Low Carb Cider CPT
- ' Coordinating Country: Australia
- ' Client Company Name: SAB MILLER
- ' Contact Name: Jeanine Whalley
- ' Contact Mail: Jeanine.Whalley@ipsos.com
- ' Study Type: Innoquest CPT
- ' Study Design: Monadic
- ' Data Collection Modes: Computer Assisted Personal Interview
- ' Expected start of Fieldwork: 29-April-2016
- ' Number Of Ad-hoc questions:: 0
- ' Standard Modules: Diagnostic,Influencers,PSM,Line Quest,Source of Volume,Relaunch,Concept Evaluator - standard 4 questions,Incrementality,Product Test
- ' Ordering Mail Description: The protocol is localy created
- ' ================================================================================================================
- End Section
- Section Variable_Definition
- Dim SliceIndex, InnerCat, Cat, Cat1, Cat2, Cat3, Q1, Q2, Q3, Str1, Str2, Str3, Flag, Flag1, List, List1, Slice, Slice1, Slice2, Banner, Banner_PSM, i , WholePartLen, FractialPartLen
- Dim Filler_List, Filler2_List, Interest_List, Competetive_List, C150List, Rot_Question_Order, Ran_Question_Order, TableChart, VarietiesPriorityList
- Dim C1W, C2W, C3W, n, k, initVect, Sum, Sign_Position_Front, Currency_Sign, IsPAPI_CATI, IsOnLine, TestProductsList
- Dim FlagA, FlagB, FlagC, FlagT
- dim BannerUnpriced, BannerAlternative
- dim syyList,syyListFilter, syyCat
- End Section
- Section Variable_Initial_Set
- Comp.Response = {Quit}
- IOM.DefaultStyles.Labels[LabelStyleTypes.lsCategory].Cell.Padding = 3
- IsPAPI_CATI = (LCase(IOM.RoutingContext) = "papi") or (LCase(IOM.RoutingContext) = "cati")
- If IsPAPI_CATI Then IOM.Info.UseKeyCodes=True
- IsOnLine = True
- If IsOnLine Then
- Path = "https://images.synovate.com/cemea/AU1601205701/"
- Else
- Path = IOM.MDM.ProjectDirectory
- End If
- For Each Q1 in ProjectDefines
- If Q1.QuestionDataType = DataTypeConstants.mtCategorical Then
- Q1 = CCategorical(Q1.Properties["Answer"])
- ElseIf Q1.QuestionDataType = DataTypeConstants.mtText Then
- Q1 = Q1.Properties["Answer"]
- ElseIf Q1.QuestionDataType = DataTypeConstants.mtLong Then
- Q1 = cLong(Q1.Properties["Answer"])
- End If
- Next
- With S_B
- .IpsosGreen = "rgb(1,177,175)"
- .IpsosBlue = "rgb(73,99,174)"
- .TableHeaderStyle = "font-weight:bold; font-size:11; background:gainsboro"
- .AltTableHeaderStyle = "font-weight:bold; font-size:11; background:#d8e6e6"
- .TableRowStyle = "font-size:11; background:white"
- .AltTableRowStyle = "font-size:11; background:azure"
- ._999TableExclusiveHeaderStyle = "font-weight:bold; font-size:11; background:#FFFF99"
- ._998TableExclusiveHeaderStyle = "font-weight:bold; font-size:11; background:bisque"
- .TableSumRowStyle = "font-weight:bold; font-size:11; color:white; background:black"
- .ProductImagesHeaderStyle = "font-size:11; color:white; font-weight:bold; background:rgb(73,99,174)"
- .QuestionBanner = "<table width=""100%"" height = ""50px"" style=""border:5px solid " + .IpsosGreen + "; padding:6; background-color:" + .IpsosBlue + """><tr><td width=""70%"" align=""center"" style=""font-size:22pt; color:white; font-weight:bold;"">{#QuestionID}</td><td valign=""middle"" align=""right"" width=""30%"" style=""padding:12""><img height=""92%"" style=""border:5px solid rgb(1,177,175)"" src=""" + Path + "/Templates/images/" + ProjectDefines.StudyType.Response.Value.Format("a") + ".png""/></td></tr></table>"
- End With
- IOM.LayoutTemplate = "Templates\IQ_CPT_Layout.html"
- IOM.Banners.AddNew("QuestionNameBanner", "")
- IOM.AutoSelectOther = True
- Select Case LCase(IOM.RoutingContext)
- Case "web", "cati", "capi"
- Ran_Question_Order = True
- Rot_Question_Order = True
- Case "papi"
- Ran_Question_Order = False
- Rot_Question_Order = False
- End Select
- Country = {AUS} '.ask()'Set this from the sample or ask it as a question
- If cCategorical(Country.Categories.Item[cCategorical(Country.Response.Value)].Properties.Item["LangFilter"]).AnswerCount() = 1 Then
- Language.Response.Value = cCategorical(Country.Categories.Item[cCategorical(Country.Response.Value)].Properties.Item["LangFilter"])
- Else
- Language= {ENU}'.Ask()
- End If
- If Not IOM.Info.IsAutoAnswer Then IOM.Language = Language.Response.Value.Format("a")
- pageA1A2A3.Ask()
- Currency_Sign = Trim(IOM.MDM.Types.Item["Currency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["Sign"])
- Sign_Position_Front = lCase(Trim(IOM.MDM.Types.Item["Currency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["SignPosition"])) = "front"
- ' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
- 'Seting of the Concepts and Concept is only for test purposes. Must be set by scripter according to the project specification!!!!!
- If ProjectDefines.StudyDesign = {MON} Then
- Concepts.Response.Value = A3 'Concepts.DefinedCategories().Ran(1) 'Can be chosen by a Least full cell...
- Else
- Concepts.Response.Value = Concepts.DefinedCategories().Ran(ProjectDefines.NumberOfConcepts.Response.Value) 'Can be chosen by a Least full cell...
- End If
- Screaning_Concept.Response.Value = Concepts.Response.Value'.Ran(1) 'The value is used for the Screening Section
- CurrentConcept.Response.Value = Screaning_Concept.Response.Value
- Screaning_Shelf_Segment = Screaning_Concept.Categories.Item[cCategorical(Screaning_Concept.Response.Value)].Properties.Item["Shelf_Product_Type"] 'It is Mandatory to set this value and to keep it actual
- Interest_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()*cCategorical(Screaning_Concept.Categories[cCategorical(Screaning_Concept.Response.Value)].Properties.Item["Product_Types_Of_Interest"])
- Competetive_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()*cCategorical(Screaning_Concept.Categories[cCategorical(Screaning_Concept.Response.Value)].Properties.Item["Competetive_Product_Types"])
- Filler_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()-Competetive_List-Interest_List-Screaning_Shelf_Segment
- TestProductsList = {}
- For Each Cat1 in CurrentConcept.Categories
- TestProductsList = TestProductsList + cCategorical(Cat1.Properties.Item["Filter_TestProducts_List"])
- Next
- 'Seting of the Concepts, Concept and Product_Type_Of_Interest is only for test purposes. Must be set by scripter according to the project specification!!!!!
- ' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
- End Section
- ' Concepts_Grid[1].C160.Categories.Filter = {_901,_902}
- ' For Each Slice1 in Concepts_Grid[1].C160
- ' Concepts_Grid[1].C160.Categories[Slice1.QuestionName].Label.Inserts.Item[0] = ""
- ' Concepts_Grid[1].C160.Categories[Slice1.QuestionName].Label.Inserts.Item[1] = " " + Trim(IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements[Slice1.QuestionName].Label)
- ' Next
- ' Concepts_Grid[1].C160.Ask()
- ' Concepts_Grid[1].page245Bottle.Ask()
- ' Banner = "<script type='text/javascript'>function resizePic() {if (document.getElementById('pic').style.width=='100px') {document.getElementById('pic').style.width='100%'; document.getElementById('instrZIO').innerHTML='"+Inserts.ZoomOUTImageText.Label+"';}else {document.getElementById('pic').style.width='100px'; document.getElementById('instrZIO').innerHTML='"+Inserts.ZoomINImageText.Label+"';}}</script><table><tr><td><img id='pic' onclick='resizePic()' src='" + Path + "images/concept_priced.png' style='width:100px; cursor:pointer' border='1' alt='" + Inserts.ZoomImageText.Label + "'/><br/></td><td valign='top'><font size='1'><i><span id='instrZIO'>" + Inserts.ZoomINImageText.Label + "</span></i></font></td></tr></table>"
- ' IOM.Banners.AddNew("TESTBANER",Banner)
- ' concepts_grid[1].CONCEPT_INTRO.Show()
- 'Products_grid[1].P240P245.Ask()
- 'Products_grid[1].P300P310block.Ask()
- Section Screener
- COMP.Response = {Quit}
- S5.Ask()
- If IOM.Info.IsAutoAnswer Then S5.Response.Value = {_1}
- If S5 = {_2} Then
- TNUM.Response.Value = {TNUM61}
- Goto Term
- End If
- S80.Ask()
- S10=A3
- ' If cCategorical(Country.Categories.Item[cCategorical(Country.Response.Value)].Properties.Item["Filter_RegionsByCountries_List"]).AnswerCount() = 1 Then
- ' S10.Response.Value = cCategorical(Country.Categories.Item[cCategorical(Country.Response.Value)].Properties.Item["Filter_RegionsByCountries_List"])
- ' ElseIf cCategorical(Country.Categories.Item[cCategorical(Country.Response.Value)].Properties.Item["Filter_RegionsByCountries_List"]).AnswerCount()>1 Then
- ' S10.Ask()
- ' End If
- '
- ' S15.Ask()
- ' S20_Long.Ask()
- ' For Each Cat1 in S25.Categories
- ' If FindItem(Cat1.Label.Inserts, "Ins1") <> "" Then Cat1.Label.Inserts.Item["Ins1"] = IOM.MDM.Types.Item["Categories_List"].Elements.Item[Cat1.Properties.Item["Insert"]].Label
- ' Next
- ' S25.Ask()
- ' If IOM.Info.IsAutoAnswer Then S25.Response.Value = cCategorical(S25.DefinedCategories() - cCategorical(S25.Properties.Item["Termination"])).Ran(1)
- ' If S25*cCategorical(S25.Properties.Item["Termination"]) Then
- ' TNUM.Response.Value = {TNUM62}
- ' Goto Term
- ' End If
- ' S30.Ask()
- ' If IOM.Info.IsAutoAnswer Then S30.Response.Value = cCategorical(S30.DefinedCategories() - {_4,_998}).Ran(1)
- ' If S30=*{_4,_998} Then
- ' TNUM.Response.Value = {TNUM63}
- ' Goto Term
- ' End If
- ' S40.Categories.Filter = Screaning_Shelf_Segment.Response.Value + Competetive_List + Filler_List
- ' If Ran_Question_Order Then
- ' S40.Categories.Order = OrderConstants.oCustom
- ' S40.Categories.Filter = cCategorical(S40.Categories.Filter-{_998,_999}).Ran() + {_998,_999}
- ' End If
- S40.Categories.Filter = S40.Categories - {_998,_999}
- S40.Ask()
- 'If IOM.Info.IsAutoAnswer Then S40.Response.Value = cCategorical(Screaning_Shelf_Segment.Response.Value + Competetive_List).Ran(Int(rnd()*cCategorical(Screaning_Shelf_Segment.Response.Value + Competetive_List).AnswerCount())+1) + Filler_List.Ran(Int(rnd()*Filler_List.AnswerCount()+1))
- '--------------------------------------- Targets seting-----------------------------------------------------------------------------------------------
- ' Set TGTS according to the sample - all respondents belonging to the representative sample are part of this target, boost not need to be included
- TGTS = {_1}
- '_____________________________________________________________________________________________________________________________________________________
- If AnswerCount(Screaning_Shelf_Segment.Response.Value) = 0 Then
- TargetsDefinition.Response.Value = {FUZ}
- Else
- TargetsDefinition.Response.Value = {STD}
- End If
- If TargetsDefinition.Response.Value = {STD} Then
- If S40.Response.Value*Screaning_Shelf_Segment.Response.Value Then
- TGCBCL = {_1}
- TGNCBCL = {_0}
- Else
- TGCBCL = {_0}
- TGNCBCL = {_1}
- End If
- End If
- If AnswerCount(Competetive_List) = 0 Then
- TGCBCO = TGCBCL
- TGNCBCO = TGNCBCL
- Else
- If S40.Response.Value*Competetive_List Then
- TGCBCO = {_1}
- TGNCBCO = {_0}
- Else
- TGCBCO = {_0}
- TGNCBCO = {_1}
- End If
- End If
- ' Sort the list {TGTS, TGCBCL, TGNCBCL, TGCBCO, TGNCBCO} desc. by the free qotatas, excl. the empty cells
- Flag = False
- For Each Cat1 In {TGTS, TGCBCL, TGNCBCL, TGCBCO, TGNCBCO}*ProjectDefines.SampleTargets.Response.Value
- If IOM.Questions[Cat1.Format("a")] = {_1} Then
- ' Pend Quota, If quota is pended then
- Flag = True
- Exit For
- End If
- Next
- If not Flag Then
- TNUM.Response.Value = {TNUM64}
- Goto Term
- End If
- If S40*{_1,_2,_3,_4,_5,_6,_7, _8} then
- Select Case TargetsDefinition.Response.Value
- Case {STD}
- '--- S55
- '--- /S55
- '--- S60
- '--- /S60
- '--- S70
- '--- /S70
- '--- S80
- '--- /S80
- '--- S115
- '--- /S115
- '--- S120
- '--- /S120
- '--- S125
- '--- /S125
- '--- S45
- '--- /S45
- Case {FUZ}
- '--- S55
- S55.Categories.Filter = S40.Response.Value
- If S55.Categories.Count = 1 Then
- S55.Item[0].SC = {_10}
- Else
- If Not(IOM.Info.IsAutoAnswer) Then S55.Validation.Function = "Cat_Sum_Validation"
- S55.Ask()
- End If
- '--- /S55
- End Select
- syyList = ccategorical(GetCatList(S85.Categories, S85.DefinedCategories()))
- syyListFilter = {}
- for each syyCat in syyList
- if ccategorical(S85.Categories[ccategorical(syyCat)].Properties.Item["Brand"])*S40 then
- syyListFilter = syyListFilter + ccategorical(syyCat)
- end if
- next
- 'syyListFilter = syyListFilter + {_997,_998}
- S85.Categories = syyListFilter
- S85.Validation.Function = "S85_Validation"
- S85.Ask()
- Inserts.S85_Other = S85.Response.Other["_997"].Value
- Inserts.S85_291_Other= S85.Response.Other["_291"].Value
- Inserts.S85_292_Other= S85.Response.Other["_292"].Value
- Inserts.S85_293_Other= S85.Response.Other["_293"].Value
- Inserts.S85_294_Other= S85.Response.Other["_294"].Value
- Inserts.S85_295_Other= S85.Response.Other["_295"].Value
- Inserts.S85_296_Other= S85.Response.Other["_296"].Value
- Inserts.S85_297_Other= S85.Response.Other["_297"].Value
- Inserts.S85_298_Other= S85.Response.Other["_298"].Value
- SPM.Categories = S85
- SPM.Ask()
- End If
- S80_INTRO.Ask()
- S80_MEAL.Ask()
- S80b.Ask()
- if S80b* {_1,_2,_3,_4,_5,_6,_7} then
- SMEAL.Ask()
- SMEAL_DRINK.Ask()
- SMEAL_DRINK_PREFERRED.Categories = SMEAL_DRINK
- if AnswerCount(SMEAL_DRINK) > 1 then
- SMEAL_DRINK_PREFERRED.Ask()
- else
- SMEAL_DRINK_PREFERRED = SMEAL_DRINK
- if IOM.Info.IsTest or IOm.Info.IsDebug then SMEAL_DRINK_PREFERRED.Show()
- end if
- end if
- If TGCBCL = {_1} Then
- STarget = {_1}
- STargComp = {_1}
- Else
- STarget = {_2}
- If TGCBCO = {_1} Then
- STargComp = {_2}
- Else
- STargComp = {_3}
- End If
- End If
- '--- S130_1_2_3
- ' If Rot_Question_Order Then S130_1_2_3.Categories.Order = OrderConstants.oRotate
- ' S130_1_2_3.Ask()
- '--- /S130_1_2_3
- '--- S135_1_2_3
- ' If Rot_Question_Order Then S135_1_2_3.Categories.Order = OrderConstants.oRotate
- ' S135_1_2_3.Ask()
- '--- /S135_1_2_3
- End Section
- Section Concept_Evaluation
- SliceIndex = 1
- For Each Cat in Concepts.Response.Value
- Set Slice = Concepts_Grid[SliceIndex]
- CurrentConcept.Response.Value = Cat 'It is Mandatory to set this value and to keep it actual
- Slice.Concept.Response.Value = Cat
- C1W = 0
- C2W = 0
- C3W = 0
- ' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
- 'Seting of the Products, Product, Varieties, Variety is only for test purposes. Must be set by scripter according to the project specification!!!!!
- If A3*{_1} then
- Slice.Products.Response.Value = {_901} 'cCategorical(IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["Filter_TestProducts_List"])
- List={_901}
- else
- Slice.Products.Response.Value = {_902}
- List={_902}
- end if
- Slice.Product.Response.Value = cCategorical(IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["Filter_TestProducts_List"]).Ran(1) 'The value is used for the Concept Evaluation Section
- CurrentProduct.Response.Value = Slice.Product.Response.Value
- Slice.Inserts.ProductBrand.Response.Value = CCategorical(Slice.Product.Categories.Item[Slice.Product.Response.Value].Properties.Item["Brand"])
- Slice.Varieties.Response.Value = List
- Slice.ProductVarieties.Response.Value = CCategorical(Slice.Product.Categories.Item[cCategorical(Slice.Product.Response.Value)].Properties.Item["Filter_Varieties_List"]) 'The value is used for the Concept Evaluation Section
- Slice.Variety.Response.Value = Slice.Varieties.Response.Value.Ran(1) 'The value is used for the Concept Evaluation Section
- Slice.Inserts.Variety.Response.Value = RegExProc(Slice.Variety.Categories.Item[cCategorical(Slice.Variety.Response.Value)].Label, "Replace", "{[a-zA-Z1-9_]+}", "")
- 'Seting of the Products, Product, Varieties, Variety is only for test purposes. Must be set by scripter according to the project specification!!!!!
- ' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
- Slice.Inserts.ParentBrand.Response.Value = cCategorical(Trim(Slice.Product.Categories.Item[cCategorical(Slice.Product.Response.Value)].Properties.Item["ParentBrand"]))
- Slice.Shelf_Segment = IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["Shelf_Product_Type"] 'It is Mandatory to set this value and to keep it actual
- 'Slice.Shelf_Segment_Typical_Use = Slice.Shelf_Segment.Categories.Item[cCategorical(Slice.Shelf_Segment.Response.Value)].Properties.Item["Typical_Use"] 'It is Mandatory to set this value and to keep it actual
- 'Slice.Shelf_Segment_Brands = Slice.Shelf_Segment.Categories.Item[cCategorical(Slice.Shelf_Segment.Response.Value)].Properties.Item["Brands"] 'It is Mandatory to set this value and to keep it actual
- Slice.Inserts.ConceptExposure = Cat
- Interest_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()*cCategorical(IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["Product_Types_Of_Interest"])
- Competetive_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()*cCategorical(IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["Competetive_Product_Types"])
- Filler_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()-Competetive_List-Interest_List-Slice.Shelf_Segment
- Inserts.CE_Tables.Response = Cat
- If TargetsDefinition.Response.Value = {STD} Then
- If S40.Response.Value*Slice.Shelf_Segment.Response.Value Then
- Slice.Targets.Response.Value = {TGCBCL}
- Else
- Slice.Targets.Response.Value = {TGNCBCL}
- End If
- End If
- If AnswerCount(Competetive_List) = 0 Then
- TGCBCO = TGCBCL
- TGNCBCO = TGNCBCL
- Else
- If S40.Response.Value*Competetive_List Then
- Slice.Targets.Response.Value = Slice.Targets.Response.Value + {TGCBCO}
- Else
- Slice.Targets.Response.Value = Slice.Targets.Response.Value + {TGNCBCO}
- End If
- End If
- Banner = "<script type='text/javascript'>function resizePic() {if (document.getElementById('pic').style.width=='100px') {document.getElementById('pic').style.width='100%'; document.getElementById('instrZIO').innerHTML='"+Inserts.ZoomOUTImageText.Label+"';}else {document.getElementById('pic').style.width='100px'; document.getElementById('instrZIO').innerHTML='"+Inserts.ZoomINImageText.Label+"';}}</script><table><tr><td><img id='pic' onclick='resizePic()' src='" + Path + "images/" + IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["nameOnly"] + "' style='width:100px; cursor:pointer' border='1' alt='" + Inserts.ZoomImageText.Label + "'/><br/></td><td valign='top'><font size='1'><i><span id='instrZIO'>" + Inserts.ZoomINImageText.Label + "</span></i></font></td></tr></table>"
- BannerUnpriced = "<script type='text/javascript'>function resizePic() {if (document.getElementById('pic').style.width=='100px') {document.getElementById('pic').style.width='100%'; document.getElementById('instrZIO').innerHTML='"+Inserts.ZoomOUTImageText.Label+"';}else {document.getElementById('pic').style.width='100px'; document.getElementById('instrZIO').innerHTML='"+Inserts.ZoomINImageText.Label+"';}}</script><table><tr><td><img id='pic' onclick='resizePic()' src='" + Path + "images/unpriced/" + IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["nameOnly"] + "' style='width:100px; cursor:pointer' border='1' alt='" + Inserts.ZoomImageText.Label + "'/><br/></td><td valign='top'><font size='1'><i><span id='instrZIO'>" + Inserts.ZoomINImageText.Label + "</span></i></font></td></tr></table>"
- TableChart = "<table cellpadding=""7"" style=""border:1px solid blue""><tr><td align=""left"">"
- If Slice.Varieties.Response.Value.AnswerCount() = 1 Then
- TableChart = TableChart + Slice.Product.Categories.Item[cCategorical(Slice.Product.Response.Value)].Label + Inserts.Table_Header_Single_Variety.Label
- Slice.Inserts.Product_s.Response.Value = {_1}
- Else
- Slice.Inserts.Product_s.Response.Value = {_2}
- Str1 = ""
- For Each Cat1 in Slice.Products.Response.Value
- Str1 = Str1 + ", " + Slice.Products.Categories[Cat1.Format("a")].Label
- Next
- TableChart = TableChart + Str1.Mid(2) + Inserts.Table_Header_Multi_Variety.Label
- End If
- TableChart = TableChart + "</td></tr><tr><td align=""center""><table cellspacing=""2"" Style=""border:0px solid white; align:left""><thead><tr><td Style=""border:1px solid white""/><td align=""center"" Style=""border:1px solid black; " + S_B.TableHeaderStyle + """><b>" + Inserts.Size_Label.Label + "</b></td><td align=""center"" Style=""border:1px solid black; " + S_B.TableHeaderStyle + """><b>" + Inserts.Price_Label.Label + "</b></td></tr></thead><tbody>"
- Flag = False
- For Each Cat1 in Slice.Varieties.Response.Value
- If lCase(Trim(IOM.MDM.Types.Item["Currency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["SignPosition"])) = "front" Then
- Str1 = Trim(IOM.MDM.Types.Item["Currency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["Sign"]) + " " + cDouble(Trim(IOM.MDM.Types.Item["VarietyPrices_List"].Elements.Item[Cat1.Format("a")].Label)).Format("f2")
- Else
- Str1 = cDouble(Trim(IOM.MDM.Types.Item["VarietyPrices_List"].Elements.Item[Cat1.Format("a")].Label)).Format("f2") + " " + Trim(IOM.MDM.Types.Item["Currency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["Sign"])
- End If
- TableChart = TableChart + "<tr><td Style=""border:1px solid black; " + Iif(Flag, S_B.AltTableHeaderStyle, S_B.TableHeaderStyle) + """>" + RegExProc(Slice.Variety.Categories.Item[cCategorical(Cat1)].Label, "Replace", "{[a-zA-Z1-9_]+}", "") + "</td><td align=""right"" Style=""border:1px solid black; " + Iif(Flag, S_B.AltTableRowStyle, S_B.TableRowStyle) + """>" + IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat1.Format("a")].Label + "</td><td align=""right"" Style=""border:1px solid black; " + Iif(Flag, S_B.AltTableRowStyle, S_B.TableRowStyle) + """>" + Str1 + "</td></tr>"
- Flag = Not Flag
- Next
- TableChart = TableChart + "</tbody></table></td></tr></table>"
- Slice.Inserts.Table.Response.Value = TableChart
- If Not IsPAPI_CATI Then Slice.CONCEPT_INTRO_UNPRICED.Show()
- Slice.Concept_Exposure_UNPRICED.label.Inserts.Item["ins1"] = "<img src='" + Path + "images/unpriced/" + IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["nameOnly"] + "' />"
- If Not IsPAPI_CATI Then Slice.Concept_Exposure_UNPRICED.Show()
- IOM.Banners.AddNew("ConceptBannerUnpriced", BannerUnpriced)
- Slice.C10_C15unpriced.Ask()
- Slice.C20unpriced.Ask()
- Slice.C25unpriced.Ask()
- '--- Concepts_Grid.C30, Concepts_Grid.C31, Concepts_Grid.C31_Double, Concepts_Grid.C32, Concepts_Grid.C32_Double, Concepts_Grid.C33, Concepts_Grid.C33_Double, Concepts_Grid.C34, Concepts_Grid.C34_Double
- If ProjectDefines.StandardModules.Response.Value=*{PSM} Then
- If IsPAPI_CATI Or IOM.Info.IsAutoAnswer Then
- Slice.C31_Double.Ask()
- If Not(IOM.Info.IsAutoAnswer) Then Slice.C32_Double.Validation.Function = "C32_C34_Double_Validation"
- Slice.C32_Double.Ask()
- If Not(IOM.Info.IsAutoAnswer) Then Slice.C33_Double.Validation.Function = "C32_C34_Double_Validation"
- Slice.C33_Double.Ask()
- If Not(IOM.Info.IsAutoAnswer) Then Slice.C34_Double.Validation.Function = "C32_C34_Double_Validation"
- Slice.C34_Double.Ask()
- Else
- Slice.C30.Show()
- WholePartLen = Len(cText(Int(cDouble(Trim(IOM.MDM.Types.Item["VarietyPrices_List"].Elements.Item[Slice.Variety.Response.Value.Format("a")].Label)))))
- Str1 = cText(Int(round((0.7*WholePartLen))) + 1) + "em"
- Slice.C31.OtherCategories.Item["WholePart"].OtherQuestion.Style.Width = Str1
- Slice.C32.OtherCategories.Item["WholePart"].OtherQuestion.Style.Width = Str1
- Slice.C33.OtherCategories.Item["WholePart"].OtherQuestion.Style.Width = Str1
- Slice.C34.OtherCategories.Item["WholePart"].OtherQuestion.Style.Width = Str1
- ' Str1 = "^[0-9]{1," + cText(WholePartLen + 1) + "}$"
- ' Slice.C31.OtherCategories.Item["WholePart"].OtherQuestion.Validation.ValidateExpression = Str1
- ' Slice.C32.OtherCategories.Item["WholePart"].OtherQuestion.Validation.ValidateExpression = Str1
- ' Slice.C33.OtherCategories.Item["WholePart"].OtherQuestion.Validation.ValidateExpression = Str1
- ' Slice.C34.OtherCategories.Item["WholePart"].OtherQuestion.Validation.ValidateExpression = Str1
- FractialPartLen = Len(Trim(IOM.MDM.Types.Item["FractialCurrency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["CMultiplier"]))-1
- Str1 = cText(Int(round((0.7*FractialPartLen))) + 1) + "em"
- Slice.C31.OtherCategories.Item["FractialPart"].OtherQuestion.Style.Width = Str1
- Slice.C32.OtherCategories.Item["FractialPart"].OtherQuestion.Style.Width = Str1
- Slice.C33.OtherCategories.Item["FractialPart"].OtherQuestion.Style.Width = Str1
- Slice.C34.OtherCategories.Item["FractialPart"].OtherQuestion.Style.Width = Str1
- ' Str1 = "^[0-9]{1," + cText(FractialPartLen) + "}$"
- ' Slice.C31.OtherCategories.Item["FractialPart"].OtherQuestion.Validation.ValidateExpression = Str1
- ' Slice.C32.OtherCategories.Item["FractialPart"].OtherQuestion.Validation.ValidateExpression = Str1
- ' Slice.C33.OtherCategories.Item["FractialPart"].OtherQuestion.Validation.ValidateExpression = Str1
- ' Slice.C34.OtherCategories.Item["FractialPart"].OtherQuestion.Validation.ValidateExpression = Str1
- If Trim(LCase(IOM.MDM.Types.Item["Currency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["SignPosition"])) = "front" Then
- Slice.Inserts.Currency_Front = Trim(IOM.MDM.Types.Item["Currency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["Sign"])
- Slice.Inserts.Currency_Back = ""
- Else
- Slice.Inserts.Currency_Front = ""
- Slice.Inserts.Currency_Back = Trim(IOM.MDM.Types.Item["Currency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["Sign"])
- End If
- Slice.C31.OtherCategories.Item["WholePart"].OtherQuestion.Label.Inserts.Item["Currency"] = Slice.Inserts.Currency_Front
- Slice.C32.OtherCategories.Item["WholePart"].OtherQuestion.Label.Inserts.Item["Currency"] = Slice.Inserts.Currency_Front
- Slice.C33.OtherCategories.Item["WholePart"].OtherQuestion.Label.Inserts.Item["Currency"] = Slice.Inserts.Currency_Front
- Slice.C34.OtherCategories.Item["WholePart"].OtherQuestion.Label.Inserts.Item["Currency"] = Slice.Inserts.Currency_Front
- Slice.C31.OtherCategories.Item["FractialPart"].OtherQuestion.Label.Inserts.Item["Currency"] = Slice.Inserts.Currency_Back
- Slice.C32.OtherCategories.Item["FractialPart"].OtherQuestion.Label.Inserts.Item["Currency"] = Slice.Inserts.Currency_Back
- Slice.C33.OtherCategories.Item["FractialPart"].OtherQuestion.Label.Inserts.Item["Currency"] = Slice.Inserts.Currency_Back
- Slice.C34.OtherCategories.Item["FractialPart"].OtherQuestion.Label.Inserts.Item["Currency"] = Slice.Inserts.Currency_Back
- Slice.Inserts.Fractial = Trim(IOM.MDM.Types.Item["FractialCurrency"].Elements.Item[Country.Response.Value.Format("a")].Label)
- Slice.Inserts.Fractial2 = """" + Ucase(Trim(IOM.MDM.Types.Item["FractialCurrency"].Elements.Item[Country.Response.Value.Format("a")].Label)) + """"
- Slice.C31.Categories.Item["FractialSign"].Label.Inserts.Item["Fractial"] = Slice.Inserts.Fractial
- Slice.C32.Categories.Item["FractialSign"].Label.Inserts.Item["Fractial"] = Slice.Inserts.Fractial
- Slice.C33.Categories.Item["FractialSign"].Label.Inserts.Item["Fractial"] = Slice.Inserts.Fractial
- Slice.C34.Categories.Item["FractialSign"].Label.Inserts.Item["Fractial"] = Slice.Inserts.Fractial
- Slice.C31.Validation.Function = "C32_C34_Validation"
- Slice.C31.Ask()
- Slice.C31_Double.Response.Value = cDouble(Slice.C31.Response.Other.Item["WholePart"].Value) + (cDouble(Slice.C31.Response.Other.Item["FractialPart"].Value)/cdouble(Trim(IOM.MDM.Types.Item["FractialCurrency"].Elements.Item[Country.Response.Value.Format("a")].Properties.Item["CMultiplier"])))
- Slice.C32.Validation.Function = "C32_C34_Validation"
- Slice.C32.Ask()
- Slice.C33.Validation.Function = "C32_C34_Validation"
- Slice.C33.Ask()
- Slice.C34.Validation.Function = "C32_C34_Validation"
- Slice.C34.Ask()
- End If
- End If
- '--- /Concepts_Grid.C30, Concepts_Grid.C31, Concepts_Grid.C31_Double, Concepts_Grid.C32, Concepts_Grid.C32_Double, Concepts_Grid.C33, Concepts_Grid.C33_Double, Concepts_Grid.C34, Concepts_Grid.C34_Double
- IOM.Banners.Remove("ConceptBannerUnpriced")
- If Not IsPAPI_CATI Then Slice.CONCEPT_INTRO.Show()
- Slice.Concept_Exposure.label.Inserts.Item["ins1"] = "<img src='" + Path + "images/" + IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["nameOnly"] + "' />"
- If Not IsPAPI_CATI Then Slice.Concept_Exposure.Show()
- IOM.Banners.AddNew("ConceptBanner", Banner)
- Slice.C10_C15.Ask()
- Slice.C20.Ask()
- '--- Concepts_Grid.C25
- Slice.C25.Ask()
- '--- /Concepts_Grid.C25
- Slice.C35.Ask()
- '--- Concepts_Grid.C40
- Slice.C40.Ask()
- '--- /Concepts_Grid.C40
- '--- Concepts_Grid.C45
- Slice.C45.Ask()
- '--- /Concepts_Grid.C45
- if not(IOM.Banners.FindItem("ConceptBanner") is null) then IOM.Banners.Remove("ConceptBanner")
- Slice.C50C55.Ask()
- '--- Concepts_Grid.C50
- '--- /Concepts_Grid.C50
- '--- Concepts_Grid.C55
- '--- /Concepts_Grid.C55
- Slice.C60.Banners.AddNew("ConceptBanner", Banner)
- '--- Concepts_Grid.C60
- Slice.C60.Categories.Filter = S40.Response.Value
- ' If (S40.Response.Value*Screaning_Shelf_Segment) And ((S65.Response.Value = {_7}) Or (S85.Response.Value = {_998})) Then Slice.C60.Categories.Filter = GetCatList(Slice.C60.Categories, Slice.C60.DefinedCategories())-Screaning_Shelf_Segment
- ' If Ran_Question_Order Then
- ' Slice.C60.Categories.Order = OrderConstants.oCustom
- ' Slice.C60.Categories.Filter = cCategorical(GetCatList(Slice.C60.Categories, Slice.C60.DefinedCategories())-{_997,_998,_999}).Ran() + {_997,_998,_999}
- ' End If
- Slice.C60.Ask()
- if Slice.C60*{_996} then
- Slice.Inserts.C60_Other.Response.Value = S40.Response.Other["_996"].Value
- elseif Slice.C60*{_997} then
- Slice.Inserts.C60_Other.Response.Value = Slice.C60.Response.Other["_997"].Value
- else
- Slice.Inserts.C60_Other.Response.Value = Slice.C60.format("b")
- end if
- '--- /Concepts_Grid.C60
- If Not(Slice.C60.Response.Value = {_998}) Then
- '--- Concepts_Grid.C110
- Slice.C110.Ask() 'c61
- '--- /Concepts_Grid.C110
- '--- Concepts_Grid.C115
- Slice.C115.Categories.Filter = Slice.C60'cCategorical(Trim(Slice.C60.Categories.Item[Slice.C60.Response.Value.Format("a")].Properties.Item["Filter_Products_List"]))' - TestProductsList
- if Slice.C60*{_1} then Slice.C115[ccategorical(Slice.C60)].SC.Categories = {_1,_2,_3,_4,_5,_6,_7,_8}
- if Slice.C60*{_2} then Slice.C115[ccategorical(Slice.C60)].SC.Categories = {_1,_3,_4,_5,_6,_7,_8}
- if Slice.C60*{_6,_7,_8} then Slice.C115[ccategorical(Slice.C60)].SC.Categories = {_9,_10,_11,_12,_13,_14}
- if Slice.C60*{_1,_2,_6,_7,_8} then
- Slice.C115.Ask() 'c62
- end if
- '--- /Concepts_Grid.C115
- if Slice.C60*{_1} then
- Slice.CBEER.Ask()
- end if
- Slice.C120.Categories.Filter = Slice.C60
- if Slice.C60*{_1,_2} then Slice.c120label = {_1}
- Slice.C120[Slice.C60].SC.Categories = Slice.C120[Slice.C60].SC.Categories - {_998}
- Slice.C120.Ask() 'c63
- '--- Concepts_Grid.C125
- Slice.C125.Ask() 'C64
- '--- /Concepts_Grid.C125
- '--- Concepts_Grid.C65
- if Slice.C60*{_996,_997} then
- Slice.C66.Ask()
- Slice.Inserts.C66Other.Response.Value = Slice.C66.Response
- else
- syyList = ccategorical(GetCatList(Slice.C65.Categories, Slice.C65.DefinedCategories()))
- syyListFilter = {}
- for each syyCat in syyList
- if ccategorical(Slice.C65.Categories[ccategorical(syyCat)].Properties.Item["Brand"])*Slice.C60 then
- syyListFilter = syyListFilter + ccategorical(syyCat)
- end if
- next
- syyListFilter = syyListFilter + ccategorical(S85*{_997})
- Slice.C65.Categories = S85*syyListFilter
- if answercount(S85*syyListFilter)=1 then
- Slice.C65 = S85*syyListFilter
- Slice.Inserts.C65Answer.Response.Value = Slice.C65.format("b")
- if Slice.C65*{_291,_292,_293,_294,_295,_296,_297,_298,_299,_997} then
- Slice.Inserts.C65Answer.Response.Value = S85.Response.Other[Slice.C65.Format("a")].Value
- end if
- elseif answercount(S85*syyListFilter) > 1 then
- Slice.C65.Ask()
- Slice.Inserts.C65Answer.Response.Value = Slice.C65.format("b")
- if Slice.C65*{_291,_292,_293,_294,_295,_296,_297,_298,_299,_997} then
- Slice.Inserts.C65Answer.Response.Value = S85.Response.Other[Slice.C65.Format("a")].Value
- end if
- end if
- end if
- If Not(Slice.C60.Response.Value * {_996,_997,_998}) Then 'IF CODE 997 OR 998 (None) AT C.60, SKIP C70
- Slice.C70.Categories = S85*syyListFilter
- if answercount(S85*syyListFilter)=1 then
- Slice.C70 = S85*syyListFilter
- elseif answercount(S85*syyListFilter)>1 then
- Slice.C70.Banners.AddNew("ConceptBanner", Banner)
- Slice.C70.Ask()
- end if
- end if
- '--- /Concepts_Grid.C65
- end if
- '--- Concepts_Grid.C70
- '--- /Concepts_Grid.C70
- '--- Concepts_Grid.C73
- '--- /Concepts_Grid.C73
- '--- Concepts_Grid.C75
- '--- /Concepts_Grid.C75
- '--- Concepts_Grid.C76
- '--- /Concepts_Grid.C76
- ''--- Concepts_Grid.C80 /should be uncommented if it is required
- ' If (Slice.Targets.Response.Value=*{TGCBCL}) And (Slice.Shelf_Segment*Slice.C60.Response.Value) And (Slice.C25.Response.Value=*{_3,_4,_5}) Then
- ' Slice.C80.Categories.Filter = S85.Response.Value-cCategorical(Slice.Product.Categories[cCategorical(Slice.Product.Response.Value)].Properties.Item["ParentBrand"]) ' If there is old brand for the tested product, exclude it from the list.
- ' If Slice.C80.Categories.Count = 1 Then
- ' Slice.C80.Item[0].Item[0].Response.Value = {_10}
- ' Else
- ' If Not(IOM.Info.IsAutoAnswer) Then Slice.C80.Validation.Function = "Cat_Sum_Validation"
- ' If IsPAPI_CATI Then Slice.C80.Questionemplate = Null
- ' Slice.C80.Ask()
- ' End If
- ' End If
- ''--- /Concepts_Grid.C80
- If Not(Slice.C60.Response.Value = {_998}) Then
- '--- Concepts_Grid.C85
- '--- /Concepts_Grid.C85
- Slice.C90_C95.Ask()
- Slice.C100.Ask()
- end if
- '--- Concepts_Grid.C105
- Slice.C105.Ask()
- '--- /Concepts_Grid.C105
- If IOM.Banners.FindItem("ConceptBanner") is Null Then IOM.Banners.AddNew("ConceptBanner", Banner)
- If Slice.C25.Response.Value=*{_3,_4,_5} Then
- If (Slice.Varieties.Response.Value.AnswerCount()>1) then 'And Not(Slice.C130.Response.Value = {_998}) Then
- '--- Concepts_Grid.C150
- '--- /Concepts_Grid.C150
- '--- Concepts_Grid.C145
- '--- /Concepts_Grid.C145
- End If
- Slice.C130.Categories = GetCatList(Slice.C130.Categories, Slice.C130.DefinedCategories()) - {_998}
- Slice.C130.Ask()
- Slice.C135.Ask()
- Slice.C140.Ask()
- '--- Concepts_Grid.C130,Concepts_Grid.C135
- '--- /Concepts_Grid.C130,Concepts_Grid.C135
- '--- Concepts_Grid.C140
- '--- /Concepts_Grid.C140
- End If
- '--- Concepts_Grid.C155
- '--- /Concepts_Grid.C155
- if not(slice.C60*{_998}) then
- '--- Concepts_Grid.C106
- ' ========================================= CHIP GAME ==============================================
- if Slice.C66 <> null then
- Slice.C106PROD.A.Response.Value = {_c66}
- else
- Slice.C106PROD.A.Response.Value = Slice.C65
- end if
- syyListFilter = GetCatList(Slice.C65.categories,slice.C65.definedcategories())
- syyListFilter = {}
- for each syyCat in syyList
- if ccategorical(Slice.C65.Categories[ccategorical(syyCat)].Properties.Item["Brand"])*Slice.C60 then
- syyListFilter = syyListFilter + ccategorical(syyCat)
- end if
- next
- syyListFilter = syyListFilter + ccategorical(S85*{_997})
- syyListFilter = syyListFilter*S85
- List = cCategorical(syyListFilter - ({_998,_999} + Slice.C106PROD.A.Response.Value + CurrentProduct)).Ran(1) ' S85.Response.Value - ...
- List1 = cCategorical(syyListFilter - ({_998,_999} + Slice.C106PROD.A.Response.Value + List + CurrentProduct)).Ran(1)' S85.Response.Value - ...
- Slice.C106PROD.B.Response.Value = List
- Slice.C106PROD.C.Response.Value = List1
- Slice.C106PROD.T.Response.Value = {_990}
- FlagA = Slice.C106PROD.A.Response.Value.AnswerCount() = 1
- FlagB = Slice.C106PROD.B.Response.Value.AnswerCount() = 1
- FlagC = Slice.C106PROD.C.Response.Value.AnswerCount() = 1
- FlagT = Slice.C106PROD.T.Response.Value.AnswerCount() = 1
- If FlagB Or FlagC Then
- Slice.Inserts.C106_Wording = {_2}
- Else
- Slice.Inserts.C106_Wording = {_1}
- End If
- If FlagA or FlagB or FlagC then Slice.CHIPS_INTRO.Show()
- If FlagT Then
- n=0
- Str1 = ""
- For Each Q1 in Slice.C106_Dummy
- If Eval(Q1.Properties.Item["Condition"]) Then
- k = len(Q1.Categories.Item[0].Label)
- If k > n Then n = k
- k = len(Q1.Categories.Item[1].Label)
- If k > n Then n = k
- Str1 = Str1 + "," + Q1.QuestionName
- End If
- Next
- Slice.C106_Dummy.QuestionFilter = Mid(Str1,1)
- IOM.DefaultStyles.Grids[GridStyleTypes.gsRowHeader].Cell.Width = cText(0.7*(n+1)) + "em"
- If Not(IOM.Info.IsAutoAnswer) Then Slice.C106_Dummy.Validation.Function = "Validate_Chips"
- If IsPAPI_CATI Then Q1.QuestionTemplate = Null
- Slice.C106_Dummy.Ask()
- IOM.DefaultStyles.Grids[GridStyleTypes.gsRowHeader].Cell.Width = ""
- For Each Q1 in Slice.C106_Dummy
- For Each Slice1 in Q1
- Slice.C106[Q1.Categories[Slice1.QuestionName].Properties["ValueSliceName"]].Item[0].Response.Value = Slice1.Item[0].Response.Value
- Next
- Next
- End If
- '--- /Concepts_Grid.C106
- end if
- Slice.C108.Categories.Filter = S85.Response.Value + {_901} '-cCategorical(Products_Placement.TestedVarieties.Categories.Item[Slice1.QuestionName].Properties.Item["ParentBrand"]) ' If there is old brand for the tested product, exclude it from the list.
- If Slice.C108.Categories.Count = 1 Then
- Slice.C108.Item[0].Item[0].Response.Value = {_10}
- ElseIf Slice.C108.Categories.Count > 1 Then
- If Not(IOM.Info.IsAutoAnswer) Then Slice.C108.Validation.Function = "Cat_Sum_Validation"
- Slice.C108.Ask()
- End If
- '--- Concepts_Grid.C160
- If Slice.C25.Response.Value=*{_3,_4,_5} Then
- Slice.C160AD.Categories.Order = OrderConstants.oCustom
- Slice.C160AD.Ask()
- Slice.CMeals_CCuisines.Ask()
- end if
- '--- /Concepts_Grid.C160
- '--- Concepts_Grid.C175
- Slice.C175.Ask()
- '--- /Concepts_Grid.C175
- '--- Concepts_Grid.C165
- '--- /Concepts_Grid.C165
- If IOM.Banners.FindItem("ConceptBanner") <> Null Then IOM.Banners.Remove("ConceptBanner")
- '--- Slice.CE_INTRO, Slice.C200, Slice.C205, Slice.C210, Slice.C215
- Slice.CE_INTRO.label.Inserts.Item["ins1"] = "<img src='" + Path + "images/" + IOM.MDM.Types.Item["Concepts_List"].Elements.Item[Cat.Format("a")].Properties.Item["nameOnly"] + "' />"
- If Not IsPAPI_CATI Then Slice.CE_INTRO.Show()
- Str1 = "<mrRef RefType='script' RefPosition='head' id='CEJSONProperties' class='CEJSONProperties' type='application/json' language='Javascript'>{" + _
- """excl"":""_998""," + _
- """bcolor"":""lightgray""," + _
- """hcolor"":""#ABABFF""," + _
- """scolor"":""yellow""," + _
- """hscolor"":""gold""," + _
- """ccatname"":""" + Cat.Format("a") + ""","
- Slice.C200.Categories.Filter = Cat
- InitVect = ""
- If IsPAPI_CATI Then
- Slice.C200.Questionemplate = Null
- Else
- Slice.C200.Banners.AddNew("CEBanner", Str1 + """vect"":""" + Inserts.CE_Tables.Categories[Cat.Format("a")].Properties.Item["InitialVector_" + Language.Format("a")] + """}</mrRef>")
- End If
- Slice.C200.Ask()
- If Slice.C200.Response.Value.AnswerCount()<Slice.C205.Categories.Item[Cat.Format("a")].Count Then
- Slice.C205.Categories.Filter = Cat
- InitVect = ""
- for each Cat1 in Slice.C205.Categories.Item[Cat.Format("a")].Categories
- If Cat1.Properties.Item["Clickable"] Then
- If Slice.C200.Response.Value*cCategorical(Cat1.Format("a")) Then
- initVect = initVect + "|"+Mid(Cat1.Format("a"),find(Cat1.Format("a"),".")+1)+"~2"
- Else
- initVect = initVect + "|"+Mid(Cat1.Format("a"),find(Cat1.Format("a"),".")+1)+"~0"
- End If
- Else
- initVect = initVect + "|"+Mid(Cat1.Format("a"),find(Cat1.Format("a"),".")+1)+"~2"
- End If
- next
- If IsPAPI_CATI Then
- Slice.C205.Questionemplate = Null
- Slice.C205.Categories.Filter = GetCatList(Slice.C205.Categories, Slice.C205.DefinedCategories()) - Slice.C200.Response.Value
- Else
- Slice.C205.Banners.AddNew("CEBanner", Str1 + """vect"":""" + Mid(initVect, 1) + """}</mrRef>")
- End If
- Slice.C205.Ask()
- Else
- Slice.C205.Response = {_998}
- End If
- Slice.C210.Categories.Filter = Cat
- If Slice.C210.Response.Value is not null then Slice.C210.Response.Value = Slice.C210.Response.Value-Slice.C205.Response.Value
- If IsPAPI_CATI Then
- Slice.C210.Questionemplate = Null
- Else
- Slice.C210.Banners.AddNew("CEBanner", Str1 + """vect"":""" + Inserts.CE_Tables.Categories[Cat.Format("a")].Properties.Item["InitialVector_" + Language.Format("a")] + """}</mrRef>")
- End If
- Slice.C210.Ask()
- Slice.C215.Categories.Filter = Cat
- If IsPAPI_CATI Then
- Slice.C215.Questionemplate = Null
- Else
- Slice.C215.Banners.AddNew("CEBanner", Str1 + """vect"":""" + Inserts.CE_Tables.Categories[Cat.Format("a")].Properties.Item["InitialVector_" + Language.Format("a")] + """}</mrRef>")
- End If
- Slice.C215.Ask()
- '--- /Slice.CE_INTRO, Slice.C200, Slice.C205, Slice.C210, Slice.C215
- If IOM.Banners.FindItem("ConceptBanner") is Null Then IOM.Banners.AddNew("ConceptBanner", Banner)
- '--- Concepts_Grid.C220
- Slice.C220.Ask()
- '--- /Concepts_Grid.C220
- Slice.C240Name.AsK()
- Slice.C240 = Slice.C240Name.Item["C240AD"].Response.Value
- Slice.C245_PAck.Ask()
- Slice.C245 = Slice.C245_PAck.Item["C245AD"].Response.Value
- Slice.C250.Ask()
- ' Slice.CBENEFITS.Ask()
- ' Slice.page245Bottle.Ask()
- ' Slice.page245Pack.Ask()
- if not(IOM.Banners.FindItem("ConceptBanner") is null) then IOM.Banners.Remove("ConceptBanner")
- '--- Concepts_Grid.C170
- '--- /Concepts_Grid.C170
- '--- Concepts_Grid.C180
- '--- /Concepts_Grid.C180
- '--- Concepts_Grid.C185
- '--- /Concepts_Grid.C185
- '--- Concepts_Grid.Emoti
- '--- /Concepts_Grid.Emoti
- '--- Concepts_Grid.C235
- '--- /Concepts_Grid.C235
- '--- Concepts_Grid.C240
- '--- /Concepts_Grid.C240
- '--- Concepts_Grid.C245
- '--- /Concepts_Grid.C245
- '--- Concepts_Grid.C250
- '--- /Concepts_Grid.C250
- SliceIndex = SliceIndex + 1
- Next
- End Section
- Section Demographics
- ' D10.Ask()
- ' D45a.Ask()
- D10D45aBLOCK.Ask()
- DAttitudes.ASk()
- End Section
- EndOfCE.Show()
- FinalCE.Show()
- Section Products
- '--- Products_Placement,MailingInfo,Products_Grid
- Products_Placement.TestedVarieties.Categories.Filter = {}
- SliceIndex = 1
- Set Slice = Concepts_Grid[SliceIndex]
- Products_Placement.TestedVarieties.Categories={_901}
- If Not (Slice.C25.Response.Value = {_1}) Then
- if A3*{_1} then
- Products_Placement.TestedVarieties.Categories = {_901}
- Products_Placement.TestedVarieties[{_901}].Varieties.Categories = {_901}
- Products_Placement.TestedVarieties[{_901}].Varieties = {_901}
- else
- Products_Placement.TestedVarieties.Categories = {_902}
- Products_Placement.TestedVarieties[{_902}].Varieties.Categories = {_902}
- Products_Placement.TestedVarieties[{_902}].Varieties = {_902}
- end if
- ' For Each Cat1 in Products_Placement.TestedVarieties
- ' For Each Cat2 in GetCatList(Cat1.Varieties.Categories, Cat1.Varieties.DefinedCategories())
- ' Cat1.Varieties.Categories[Cat2.Format("a")].Label.Inserts.Item["Ins1"] = ""
- ' Cat1.Varieties.Categories[Cat2.Format("a")].Label.Inserts.Item["Ins2"] = " - " + Trim(IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat2.Format("a")].Label)
- ' Next
- ' Next
- Else
- Products_Placement.TestedVarieties[{_901}].Varieties.Categories.Filter = {}
- End If
- SliceIndex = 1
- For Each Slice1 in Products_Placement.TestedVarieties
- If Slice1.Varieties.Response.Value.AnswerCount()>0 Then
- For Each InnerCat In Slice1.Varieties.Response.Value
- if SliceIndex > 1 then
- exit for
- end if
- Set Slice = Products_Grid[SliceIndex]
- CurrentProduct.Response.Value = cCategorical(Slice1.QuestionName)
- Slice.Product.Response.Value = cCategorical(Slice1.QuestionName)
- For Each Cat1 in Concepts.Categories
- If cCategorical(Cat1.Properties.Item["Filter_Products_List"])=*CurrentProduct.Response.Value Then
- CurrentConcept.Response.Value = cCategorical(Cat1)
- Exit For
- End If
- Next
- Slice.Variety = InnerCat
- Slice.Product_Variety = Slice1.Label + iif(Slice1.Varieties.Categories[InnerCat.Format("a")].Label = "", "", " - " + Replace(Replace(Slice1.Varieties.Categories[InnerCat.Format("a")].Label, "{Ins1}", ""), "{Ins2}", ""))
- if A3*{_1} then
- Slice.Products.Response.Value = {_901}
- else
- Slice.Products.Response.Value = {_902}
- end if
- ' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
- Slice.Concept.Response.Value = CurrentConcept.Response.Value
- CurrentVariety.Response.Value = InnerCat
- Slice.Variety.Response.Value = InnerCat
- Slice.Inserts.TestedProductText = Replace(Replace(Slice1.Varieties.Categories[InnerCat.Format("a")].Label, "{Ins1}", ""), "{Ins2}", "")
- Slice.Inserts.ProductBrand.Response.Value = CCategorical(Trim(Products_Placement.TestedVarieties.Categories.Item[Slice1.QuestionName].Properties.Item["Brand"]))
- Slice.Inserts.ParentBrand.Response.Value = cCategorical(Trim(Products_Placement.TestedVarieties.Categories.Item[Slice1.QuestionName].Properties.Item["ParentBrand"]))
- ' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
- Slice.Shelf_Segment = Concepts.Categories.item[cCategorical(CurrentConcept.Response.Value)].Properties.Item["Shelf_Product_Type"] 'It is Mandatory to set this value and to keep it actual
- 'Slice.Shelf_Segment_Typical_Use = Slice.Shelf_Segment.Categories.Item[cCategorical(Slice.Shelf_Segment.Response.Value)].Properties.Item["Typical_Use"] 'It is Mandatory to set this value and to keep it actual
- 'Slice.Shelf_Segment_Brands = Slice.Shelf_Segment.Categories.Item[cCategorical(Slice.Shelf_Segment.Response.Value)].Properties.Item["Brands"] 'It is Mandatory to set this value and to keep it actual
- Interest_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()*cCategorical(Concepts.Categories.item[cCategorical(CurrentConcept.Response.Value)].Properties.Item["Product_Types_Of_Interest"])
- Competetive_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()*cCategorical(Concepts.Categories.item[cCategorical(CurrentConcept.Response.Value)].Properties.Item["Competetive_Product_Types"])
- Filler_List = IOM.MDM.Types.Item["ProductTypes_List"].DefinedCategories()-Competetive_List-Interest_List-Slice.Shelf_Segment
- If TargetsDefinition.Response.Value = {STD} Then
- If S40.Response.Value*Slice.Shelf_Segment.Response.Value Then
- Slice.Targets.Response.Value = {TGCBCL}
- Else
- Slice.Targets.Response.Value = {TGNCBCL}
- End If
- End If
- If AnswerCount(Competetive_List) = 0 Then
- TGCBCO = TGCBCL
- TGNCBCO = TGNCBCL
- Else
- If S40.Response.Value*Competetive_List Then
- Slice.Targets.Response.Value = Slice.Targets.Response.Value + {TGCBCO}
- Else
- Slice.Targets.Response.Value = Slice.Targets.Response.Value + {TGNCBCO}
- End If
- End If
- TableChart = "<table cellpadding=""7"" style=""border:1px solid blue""><tr><td align=""left"">"
- If cCategorical(Products_Placement.TestedVarieties.Categories.Item[Slice1.QuestionName].Properties.Item["Filter_Varieties_List"]).AnswerCount() = 1 Then
- TableChart = TableChart + Products_Placement.TestedVarieties.Categories.Item[Slice1.QuestionName].Label + Inserts.Table_Header_Single_Variety.Label
- Slice.Inserts.Product_s.Response.Value = {_1}
- Else
- Slice.Inserts.Product_s.Response.Value = {_2}
- TableChart = TableChart + "Pure Blonde Cider will be available in following variant and size"
- 'TableChart = TableChart + Inserts.Table_Header_Multi_Variety.Label + Products_Placement.TestedVarieties.Categories.Item[Slice1.QuestionName].Label
- End If
- TableChart = TableChart + "</td></tr><tr><td align=""center""><table cellspacing=""2"" Style=""border:0px solid white; align:left""><thead><tr><td Style=""border:1px solid white""/><td align=""center"" Style=""border:1px solid black; " + S_B.TableHeaderStyle + """><b>" + Inserts.Size_Label.Label + "</b></td><td align=""center"" Style=""border:1px solid black; " + S_B.TableHeaderStyle + """><b>" + Inserts.Price_Label.Label + "</b></td></tr></thead><tbody>"
- Flag = False
- For Each Cat1 in cCategorical(Products_Placement.TestedVarieties.Categories.Item[Slice1.QuestionName].Properties.Item["Filter_Varieties_List"])
- If Sign_Position_Front Then
- Str1 = Currency_Sign + " " + cDouble(Trim(IOM.MDM.Types.Item["VarietyPrices_List"].Elements.Item[Cat1.Format("a")].Label)).Format("f2")
- Else
- Str1 = cDouble(Trim(IOM.MDM.Types.Item["VarietyPrices_List"].Elements.Item[Cat1.Format("a")].Label)).Format("f2") + " " + Currency_Sign
- End If
- TableChart = TableChart + "<tr><td Style=""border:1px solid black; " + Iif(Flag, S_B.AltTableHeaderStyle, S_B.TableHeaderStyle) + """>" + RegExProc(Trim(Slice1.Varieties.Categories.Item[Cat1.Format("a")].Label), "Replace", "{[a-zA-Z1-9_]+}", "") + "</td><td align=""right"" Style=""border:1px solid black; " + IIf(Flag, S_B.AltTableRowStyle, S_B.TableRowStyle) + """>" + IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat1.Format("a")].Label + "</td><td align=""right"" Style=""border:1px solid black; " + Iif(Flag, S_B.AltTableRowStyle, S_B.TableRowStyle) + """>" + Str1 + "</td></tr>"
- Flag = Not Flag
- Next
- TableChart = TableChart + "</tbody></table></td></tr></table>"
- Slice.Inserts.Table.Response.Value = TableChart
- Slice.intro01.Ask()
- Slice.intro02.Ask()
- Slice.Intro.Show()
- Slice.P30P35.Ask()
- '--- Products_Grid.P30
- '--- /Products_Grid.P30
- '--- Products_Grid.P35
- '--- /Products_Grid.P35
- '--- Products_Grid.P40
- Slice.P40.Ask()
- '--- /Products_Grid.P40
- '--- Products_Grid.P45
- Slice.P45.Ask()
- '--- /Products_Grid.P45
- If Slice.P45 * {_1,_2} then
- Slice.PEXPECTATIONS.Ask()
- End If
- '--- Products_Grid.P50
- '--- /Products_Grid.P50
- '--- Products_Grid.P55
- '--- /Products_Grid.P55
- '--- Products_Grid.P60_P65
- Slice.P60_P65.Ask()
- '--- /Products_Grid.P60_P65
- '--- Products_Grid.P66
- Slice.P66.Ask()
- '--- /Products_Grid.P66
- Slice.P70.Ask()
- '--- Products_Grid.P75
- Slice.P75.Ask()
- '--- /Products_Grid.P75
- ' Slice.P80.Categories.Item[{_997}].OtherQuestion = S40.Categories.Item[{_997}].OtherQuestion
- Slice.P80.Categories.Filter = S40.Response.Value
- Slice.P80.Ask()
- if Slice.P80*{_996} then
- Slice.Inserts.P80_Other.Response.Value = S40.Response.Other["_996"].Value
- elseif Slice.P80*{_997} then
- Slice.Inserts.P80_Other.Response.Value = Slice.P80.Response.Other["_997"].Value
- else
- Slice.Inserts.P80_Other.Response.Value = Slice.P80.Format("b")
- end if
- if not(Slice.P80*Concepts_Grid[1].C60) and not(Slice.P80*{_998})then
- '--- Products_Grid.P110
- Slice.P110.Ask()
- '--- /Products_Grid.P110
- '--- Products_Grid.P115
- ' Slice.P115.Categories.Filter = Slice.P80 'cCategorical(Trim(Slice.C60.Categories.Item[Slice.C60.Response.Value.Format("a")].Properties.Item["Filter_Products_List"]))' - TestProductsList
- ' if Slice.P80*{_1} then Slice.P115[ccategorical(Slice.P80)].SC.Categories = {_1,_2,_3,_4,_5,_6,_7,_8}
- ' if Slice.P80*{_2} then Slice.P115[ccategorical(Slice.P80)].SC.Categories = {_1,_3,_4,_5,_6,_7,_8}
- ' if Slice.P80*{_6,_7,_8} then Slice.P115[ccategorical(Slice.P80)].SC.Categories = {_9,_10,_11,_12,_13,_14}
- ' if Slice.P80*{_1,_2,_6,_7,_8} then
- ' Slice.P115.Ask()
- ' end if
- '--- /Products_Grid.P115
- Slice.P120.Categories.Filter = Slice.P80
- Slice.P120[Slice.P80].SC.Categories = Slice.P120[Slice.P80].SC.Categories - {_998}
- Slice.P120[Slice.P80].Item[0].Categories.Item[0].Label.Inserts.Item["Ins1"] = ""
- Slice.P120.Ask()
- If Slice.P80*{_996,_997} then
- Slice.P82.Ask()
- Slice.Inserts.P81P82.Response.Value = Slice.P82.Response
- else
- syyList = ccategorical(GetCatList(Slice.P81.Categories, Slice.P81.DefinedCategories()))
- syyListFilter = {}
- for each syyCat in syyList
- if ccategorical(Slice.P81.Categories[ccategorical(syyCat)].Properties.Item["Brand"])*Slice.P80 then
- syyListFilter = syyListFilter + ccategorical(syyCat)
- end if
- next
- syyListFilter = syyListFilter + ccategorical(S85*{_997})
- Slice.P81.Categories = S85*syyListFilter
- if answercount(S85*syyListFilter)=1 then
- Slice.P81 = S85*syyListFilter
- Slice.Inserts.P81P82.Response.Value = Slice.P81.format("b")
- if Slice.P81*{_291,_292,_293,_294,_295,_296,_297,_298,_299,_997} then
- Slice.Inserts.P81P82.Response.Value = S85.Response.Other[Slice.P81.Format("a")].Value
- end if
- elseif answercount(S85*syyListFilter) > 1 then
- Slice.P81.Ask()
- Slice.Inserts.P81P82.Response.Value = Slice.P81.format("b")
- if Slice.P81*{_291,_292,_293,_294,_295,_296,_297,_298,_299,_997} then
- Slice.Inserts.P81P82.Response.Value = S85.Response.Other[Slice.P81.Format("a")].Value
- end if
- end if
- End if
- End If
- if Slice.P80=Concepts_Grid[1].C60 then
- if Concepts_Grid[1].C66 <> null then
- Slice.P82 = Concepts_Grid[1].C66
- Slice.Inserts.P81P82.Response.Value = Slice.P82.Response
- else
- Slice.P81 = Concepts_Grid[1].C65
- Slice.Inserts.P81P82.Response.Value = Slice.P81.format("b")
- if Slice.P81*{_291,_292,_293,_294,_295,_296,_297,_298,_299,_997} then
- Slice.Inserts.P81P82.Response.Value = S85.Response.Other[Slice.P81.Format("a")].Value
- end if
- end if
- end if
- dim syyListP83, syyListFilterP83
- syyListP83 = ccategorical(GetCatList(Slice.P83.Categories, Slice.P83.DefinedCategories()))
- syyListFilterP83 = {}
- for each syyCat in syyListP83
- if ccategorical(Slice.P83.Categories[ccategorical(syyCat)].Properties.Item["Brand"])*Slice.P80 then
- syyListFilterP83 = syyListFilterP83 + ccategorical(syyCat)
- end if
- next
- syyListFilterP83 = syyListFilterP83* S85
- syyListFilterP83 = syyListFilterP83 + ccategorical(S85*{_997})
- Slice.P83.Categories = syyListFilterP83
- Slice.P83.Ask()
- If Not(Slice.P80.Response.Value =* {_997,_998,_999}) Then
- dim syyListP85, syyListFilterP85
- syyListP85 = ccategorical(GetCatList(Slice.P85.Categories, Slice.P85.DefinedCategories()))
- syyListFilterP85 = {}
- for each syyCat in syyListP85
- if ccategorical(Slice.P85.Categories[ccategorical(syyCat)].Properties.Item["Brand"])*Slice.P80 then
- syyListFilterP85 = syyListFilterP85 + ccategorical(syyCat)
- end if
- next
- syyListFilterP85 = syyListFilterP85 * S85
- syyListFilterP85 = syyListFilterP85 + ccategorical(S85*{_997})
- syyListFilterP85 = syyListFilterP85 + {_901}
- Slice.P85.Categories.Filter = syyListFilterP85
- If answercount(syyListFilterP85) = 1 Then
- Slice.P85.Item[0].Item[0].Response.Value = {_10}
- ElseIf answercount(syyListFilterP85) > 1 Then
- If Not(IOM.Info.IsAutoAnswer) Then Slice.P85.Validation.Function = "Cat_Sum_Validation"
- Slice.P85.Ask()
- End If
- End If
- '--- Products_Grid.P88
- '--- /Products_Grid.P88
- '--- Products_Grid.P90
- '--- /Products_Grid.P90
- If Not(Slice.P80.Response.Value =* {_998,_999}) Then
- '--- Products_Grid.P95
- Slice.P95.Ask()
- '--- /Products_Grid.P95
- End If
- '--- Products_Grid.P160
- '--- /Products_Grid.P160
- If Slice.P66 * {_3,_4,_5} then
- '--- Products_Grid.P165
- 'Slice.P165.Ask()
- '--- /Products_Grid.P165
- End If
- '--- Concepts_Grid.P106
- ' ========================================= CHIP GAME ===============================================
- if Slice.P82 <> null then
- Slice.P106PROD.A.Response.Value = {p82}
- else
- Slice.P106PROD.A.Response.Value = Slice.P81
- end if
- syyList = ccategorical(GetCatList(Slice.P81.Categories, Slice.P81.DefinedCategories()))
- syyListFilter = {}
- for each syyCat in syyList
- if ccategorical(Slice.P81.Categories[ccategorical(syyCat)].Properties.Item["Brand"])*Slice.P80 then
- syyListFilter = syyListFilter + ccategorical(syyCat)
- end if
- next
- syyListFilter = syyListFilter*S85
- syyListFilter = syyListFilter + ccategorical(S85*{_997})
- List = cCategorical(syyListFilter - ({_998,_999} + Slice.P106PROD.A.Response.Value + CurrentProduct)).Ran(1) ' S85.Response.Value - ...
- List1 = cCategorical(syyListFilter - ({_998,_999} + Slice.P106PROD.A.Response.Value + List + CurrentProduct)).Ran(1)' S85.Response.Value - ...
- Slice.P106PROD.B.Response.Value = List
- Slice.P106PROD.C.Response.Value = List1
- Slice.P106PROD.T.Response.Value = {_990}
- FlagA = Slice.P106PROD.A.Response.Value.AnswerCount() = 1
- FlagB = Slice.P106PROD.B.Response.Value.AnswerCount() = 1
- FlagC = Slice.P106PROD.C.Response.Value.AnswerCount() = 1
- FlagT = Slice.P106PROD.T.Response.Value.AnswerCount() = 1
- If FlagB Or FlagC Then
- Slice.Inserts.P106_Wording = {_2}
- Else
- Slice.Inserts.P106_Wording = {_1}
- End If
- If FlagA or FlagB or FlagC then Slice.CHIPS_INTRO.Show()
- If FlagT Then
- n=0
- Str1 = ""
- For Each Q1 in Slice.P106_Dummy
- If Eval(Q1.Properties.Item["Condition"]) Then
- k = len(Q1.Categories.Item[0].Label)
- If k > n Then n = k
- k = len(Q1.Categories.Item[1].Label)
- If k > n Then n = k
- Str1 = Str1 + "," + Q1.QuestionName
- End If
- Next
- Slice.P106_Dummy.QuestionFilter = Mid(Str1,1)
- IOM.DefaultStyles.Grids[GridStyleTypes.gsRowHeader].Cell.Width = cText(0.7*(n+1)) + "em"
- If Not(IOM.Info.IsAutoAnswer) Then Slice.P106_Dummy.Validation.Function = "Validate_Chips"
- Slice.P106_Dummy.Ask()
- IOM.DefaultStyles.Grids[GridStyleTypes.gsRowHeader].Cell.Width = ""
- For Each Q1 in Slice.P106_Dummy
- For Each Slice1 in Q1
- Slice.P106[Q1.Categories[Slice1.QuestionName].Properties["ValueSliceName"]].Item[0].Response.Value = Slice1.Item[0].Response.Value
- Next
- Next
- End If
- '--- /Concepts_Grid.P106
- '--- Products_Grid.P100
- Slice.P100[{_2}].SC = Slice.P106_Dummy["_4"].Item[{_1}].SC 'PRoduct from P81/P82
- Slice.P100[{_1}].SC = Slice.P106_Dummy["_4"].Item[{_2}].SC 'TEst product
- if IOM.Info.IsTest or IOM.Info.IsDebug then Slice.P100.Show()
- '--- /Products_Grid.P100
- '--- Products_Grid.P125
- 'Slice.PC64.Ask()
- Slice.P125.Ask()
- '--- /Products_Grid.P125
- If not (Slice.P125*{_8}) then
- Slice.P165.Ask()
- if Slice.P66*{_3,_4,_5} then
- Slice.POccasions.Ask()
- Slice.PMEALS_CUISINES.Ask()
- Slice.POFFPREMSUBSTITUTION.Ask()
- end if
- end if
- '--- Products_Grid.P170
- '--- /Products_Grid.P170
- '--- Products_Grid.P180
- Slice.P180.Ask()
- '--- /Products_Grid.P180
- Slice.part10_intro.Show()
- Slice.P210.Ask()
- Slice.P220P225block.Ask()
- Slice.P230P235block.Ask()
- Slice.P240P245block.Ask()
- Slice.P255.Ask()
- Slice.P265.Ask()
- Slice.P266.Ask()
- Slice.P267.Ask()
- Slice.P290.Ask()
- Slice.P291.Ask()
- Slice.PTANGY.Ask()
- Slice.P300P310block.Ask()
- Slice.P400.Ask()
- Slice.PNAME.Label.Inserts.Item["Ins1"] = "<img src='" + Path + "images/bottle_Carvers.png' />"
- Slice.PNAME.Label.Inserts.Item["Ins2"] = "<img src='" + Path + "images/bottle_GreedyPelican.png' />"
- Slice.PNAME.Ask()
- Slice.PNAME_WHY.Ask()
- Slice.PSIXPACK.Ask()
- Slice.PONPREM.Ask()
- '--- Products_Grid.PD
- '--- /Products_Grid.PD
- SliceIndex = SliceIndex + 1
- Next
- End If
- Next
- '--- /Products_Placement,MailingInfo,Products_Grid
- End Section
- Section Ad_Hoc_Questions
- End Section
- ' ALTERNATIVEINTRO.Show()
- ' ALTERNATIVEINTRO2.Show()
- ' PALTERNATIVE.Categories = PALTERNATIVE.Categories - {_999}
- ' alternativePage.Ask()
- ' P60_P65.Ask()
- ' P66.Ask()
- ' P70.Ask()
- ' P45.Ask()
- '
- ' PBRAND_FIT.Ask()
- Finale.Show()
- Section Complete_Section
- Complete:
- COMP.Response = {Complete}
- Exit
- End Section
- Section OverQuota_Section
- Overquota:
- TNUM.Response = {TNUM21}
- COMP.Response = {OverQuota}
- 'SIGNAL OVERQUOTA
- IOM.Terminate(Signals.sigOverQuota)
- Exit
- End Section
- Section Termination
- Term:
- If IOM.Info.IsDebug Or IOM.Info.IsTest Then TNUM.show()
- COMP.Response = {Terminate}
- 'SIGNAL TERMINATE
- IOM.Terminate(Signals.sigStopped)
- Exit
- End Section
- Function Products_Placement_Validation (Question, IOM, Attempt)
- Dim ProdNumb, Slice
- ProdNumb = 0
- Products_Placement_Validation = True
- If Not(Question.PPAgreement = {_0}) Then
- If Question.ProductsLetSend.Response.Value.AnswerCount() = 0 Then
- Question.ProductsLetSend.Errors.AddNew("Err1", "Please select a correct answer.")
- Products_Placement_Validation = False
- End If
- For Each Slice in Question.TestedVarieties
- If Slice.Varieties.Response.Value.AnswerCount()>IOM.Questions.Item["ProjectDefines"].MaxVarietiesPerProductToTest.Response.Value Then
- Slice.Varieties.Errors.AddNew("MaxVErr1", "The maximum number of tested varieties per product is " + cText(IOM.Questions.Item["ProjectDefines"].MaxVarietiesPerProductToTest.Response) + ".")
- Products_Placement_Validation = False
- End If
- ProdNumb = ProdNumb + Slice.Varieties.Response.Value.AnswerCount()
- Next
- If ProdNumb<IOM.Questions.Item["ProjectDefines"].MinNumbOfProductsToTest Then
- Question.TestedVarieties.Item[0].Varieties.Errors.AddNew("MinPErr1", "The minimum number of tested products is " + cText(IOM.Questions.Item["ProjectDefines"].MinNumbOfProductsToTest.Response) + ".")
- Products_Placement_Validation = False
- ElseIf ProdNumb>IOM.Questions.Item["ProjectDefines"].MaxNumbOfProductsToTest Then
- Question.TestedVarieties.Item[0].Varieties.Errors.AddNew("MaxPErr1", "The maximum number of tested products is " + cText(IOM.Questions.Item["ProjectDefines"].MaxNumbOfProductsToTest.Response) + ".")
- Products_Placement_Validation = False
- End If
- End If
- End Function
- Function C32_C34_Double_Validation(Question, IOM, Attempt)
- Select Case Question.QuestionName
- Case "C32_Double"
- If (Question.Response.Value>Question.ParentQuestion.C31_Double.Response.Value) Then
- C32_C34_Double_Validation = True
- Else
- Question.Errors.AddNew("Err1", Replace(IOM.Questions.Inserts.ERR_MSG_Value_Must_Be_Greater.Label, "_value_", cText(Question.ParentQuestion.C31_Double.Response.Value)) + " " + IOM.Questions.Inserts.ERR_MSG_Enter_a_Correct_Value.Label)
- C32_C34_Double_Validation = False
- End If
- Case "C33_Double"
- If (Question.Response.Value<Question.ParentQuestion.C31_Double.Response.Value) Then
- C32_C34_Double_Validation = True
- Else
- Question.Errors.AddNew("Err1", Replace(IOM.Questions.Inserts.ERR_MSG_Value_Must_Be_Smaller.Label, "_value_", cText(Question.ParentQuestion.C31_Double.Response.Value)) + " " + IOM.Questions.Inserts.ERR_MSG_Enter_a_Correct_Value.Label)
- C32_C34_Double_Validation = False
- End If
- Case "C34_Double"
- If (Question.Response.Value>Question.ParentQuestion.C32_Double.Response.Value) Then
- C32_C34_Double_Validation = True
- Else
- Question.Errors.AddNew("Err1", Replace(IOM.Questions.Inserts.ERR_MSG_Value_Must_Be_Greater.Label, "_value_", cText(Question.ParentQuestion.C32_Double.Response.Value)) + " " + IOM.Questions.Inserts.ERR_MSG_Enter_a_Correct_Value.Label)
- C32_C34_Double_Validation = False
- End If
- End Select
- End Function
- Function C32_C34_Validation(Question, IOM, Attempt)
- dim c31Value
- Question.ParentQuestion.Item[Question.QuestionName + "_Double"].Response.Value = cDouble(Question.Response.Other.Item["WholePart"].Value) + (cDouble(Question.Response.Other.Item["FractialPart"].Value)/cdouble(Trim(IOM.MDM.Types.Item["FractialCurrency"].Elements.Item[IOM.Questions.Country.Response.Value.Format("a")].Properties.Item["CMultiplier"])))
- Select Case Question.QuestionName
- Case "C31"
- c31Value = cdouble(Question.ParentQuestion.C31.Response.Other.Item["WholePart"].Value) + cDouble(Question.ParentQuestion.C31.Response.Other.Item["FractialPart"].Value)/100
- if c31Value < cdouble(1.00) then
- Question.Errors.AddNew("Err1",IOM.Questions.Inserts.ERR_MSG_Value_Must_Be_Greater2.Label)
- C32_C34_Validation = False
- elseif c31Value > cdouble(99.00) then
- Question.Errors.AddNew("Err1",IOM.Questions.Inserts.ERR_MSG_Value_Must_Be_Smaller2.Label)
- C32_C34_Validation = False
- else
- C32_C34_Validation = True
- end if
- Case "C32"
- If (Question.ParentQuestion.C32_Double.Response.Value>Question.ParentQuestion.C31_Double.Response.Value) Then
- C32_C34_Validation = True
- Else
- Question.Errors.AddNew("Err1", Replace(IOM.Questions.Inserts.ERR_MSG_Value_Must_Be_Greater.Label, "_value_", cText(Question.ParentQuestion.C31_Double.Response.Value)) + " " + IOM.Questions.Inserts.ERR_MSG_Enter_a_Correct_Value.Label)
- C32_C34_Validation = False
- End If
- Case "C33"
- If (Question.ParentQuestion.C33_Double.Response.Value<Question.ParentQuestion.C31_Double.Response.Value) Then
- C32_C34_Validation = True
- Else
- Question.Errors.AddNew("Err1", Replace(IOM.Questions.Inserts.ERR_MSG_Value_Must_Be_Smaller.Label, "_value_", cText(Question.ParentQuestion.C31_Double.Response.Value)) + " " + IOM.Questions.Inserts.ERR_MSG_Enter_a_Correct_Value.Label)
- C32_C34_Validation = False
- End If
- Case "C34"
- If (Question.ParentQuestion.C34_Double.Response.Value>Question.ParentQuestion.C32_Double.Response.Value) Then
- C32_C34_Validation = True
- Else
- Question.Errors.AddNew("Err1", Replace(IOM.Questions.Inserts.ERR_MSG_Value_Must_Be_Greater.Label, "_value_", cText(Question.ParentQuestion.C32_Double.Response.Value)) + " " + IOM.Questions.Inserts.ERR_MSG_Enter_a_Correct_Value.Label)
- C32_C34_Validation = False
- End If
- End Select
- End Function
- Function GetExclusiveCatList(CategoryList)
- Dim Cat, ExclusiveList
- ExclusiveList = {}
- For Each Cat In CategoryList
- If Cat.CategoryType = 0 Then
- if Cat.Attributes.IsSet(CategoryAttributes.caExclusive) Then ExclusiveList = ExclusiveList + Cat
- ElseIf Cat.CategoryType = 1 Then
- ExclusiveList = ExclusiveList + GetExclusiveCatList(Cat)
- End If
- Next
- GetExclusiveCatList = ExclusiveList
- End Function
- Sub OnBeforeQuestionAsk(Question, IOM)
- Dim i, Flag, Str1, Str2, ExclusiveList, Cat, foundBanner, itemBanner, Q
- ExclusiveList = {}
- select Case Question.QuestionType
- Case ObjectTypesConstants.mtArray,ObjectTypesConstants.mtGrid
- If Question[0].Count = 1 Then
- if Question[0].Item[0].QuestionType = 0 Then
- If Question[0].Item[0].QuestionDataType = 3 Then
- If Question[0].Item[0].Validation.MaxValue > 1 Then
- ExclusiveList = GetExclusiveCatList(Question[0].Item[0].Categories)
- End If
- End If
- End If
- End If
- Case ObjectTypesConstants.mtVariable
- If Question.QuestionDataType = 3 Then
- If Question.Validation.MaxValue > 1 Then
- ExclusiveList = GetExclusiveCatList(Question.Categories)
- End If
- End If
- End Select
- If ExclusiveList.AnswerCount() > 0 Then
- foundBanner = false
- for each itemBanner in Question.Banners
- if lcase(itemBanner.name) = "ExclusiveCatList" then
- itemBanner.text = ""
- foundBanner=true
- exit for
- end if
- Next
- if not foundBanner then Question.Banners.AddNew("ExclusiveCatList", "")
- Question.Banners["ExclusiveCatList"] = "<mrRef RefType='script' RefPosition='head' id='ExclusiveCatList' class='ExclusiveCatList' type='application/json' language='Javascript'>{""ExclusiveCatList"":""" + ExclusiveList.Format("a").Replace(",","|") + """}</mrRef>"
- End If
- if Question.QuestionType = 4 or Question.QuestionType = 3 Then
- For Each Q in Question
- If Q.Properties.Item["SendPropertiesToBrowser"] is not null Then
- SendCustomPropertiestoBrowser(Q, Q.Properties.Item["SendPropertiesToBrowser"])
- ElseIf Question.Properties.Item["SendPropertiesToBrowser"] is not null Then
- SendCustomPropertiestoBrowser(Q, Question.Properties.Item["SendPropertiesToBrowser"])
- End If
- Next
- Else
- If Question.Properties.Item["SendPropertiesToBrowser"] is not null Then SendCustomPropertiestoBrowser(Question, Question.Properties.Item["SendPropertiesToBrowser"])
- End If
- If isNullObject(Question.ParentQuestion) Then
- Flag = False
- Else
- Flag = ((Question.QuestionDataType = 0) and (Question.ParentQuestion.QuestionDataType = 0) and (Question.ParentQuestion.QuestionType = 1))
- End If
- If Flag Then
- Str1 = Question.ParentQuestion.Categories.Item[Question.QuestionName].Properties.Item["ID"]
- Else
- Str1 = Question.Properties.Item["ID"]
- End If
- if IOM.Questions.Item["STARGET"].Response.Value is not null Then
- Str2 = IOM.Questions.Item["STARGET"].Categories.Item[IOM.Questions.Item["STARGET"].Response.Value].Label
- If IOM.Info.IsTest or IOM.Info.IsDebug Then Str1 = Str1 + "<br/><font size=""1"">Respondent is in target: " + Str2 + "</font>"
- End If
- IOM.Banners.Item["QuestionNameBanner"] = Replace(IOM.Questions.Item["S_B"].QuestionBanner, "{#QuestionID}", Str1)
- If Not(lCase(Question.Properties.Item["Aply_Filter_Expressions"]) = "no")Then
- If Not (IOM.Questions.Item["MissFilterExpression"].Response.Value) Then SetFilterExpression(Question, IOM)
- End If
- If Flag Then
- SetDefaultStyles(Question, Trim(Question.ParentQuestion.Categories.Item[Question.QuestionName].Properties.Item["QuestionFormating"]), IOM, True)
- Else
- SetDefaultStyles(Question, Trim(Question.Properties.Item["QuestionFormating"]), IOM, True)
- End If
- If Not((LCase(IOM.RoutingContext) = "papi") or (lCase(IOM.RoutingContext) = "cati")) Then
- If Flag Then
- Remove_999(Question.ParentQuestion, IOM)
- Else
- Remove_999(Question, IOM)
- End If
- End If
- End Sub
- Sub Remove_999 (Question, IOM)
- Dim Element, Slice
- If Question.QuestionType = ObjectTypesConstants.mtVariable Then
- If Question.QuestionDataType = DataTypeConstants.mtCategorical Then Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())-{_999}
- ElseIf Question.QuestionType = ObjectTypesConstants.mtArray Or Question.QuestionType = ObjectTypesConstants.mtGrid Then
- For Each Slice in Question
- For Each Element In Slice
- Remove_999 (Element, IOM)
- Next
- Next
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())-{_999}
- ElseIf Question.QuestionType = 4 Or Question.QuestionType = ObjectTypesConstants.mtClass Or Question.QuestionType = ObjectTypesConstants.mtCompound Or Question.QuestionType = ObjectTypesConstants.mtPage Then
- For Each Element In Question
- Remove_999 (Element, IOM)
- Next
- End If
- End Sub
- Function GetCatList(CatList, FullList)
- Dim List, Element
- List = CatList * FullList
- For Each Element in CatList - List
- List = List + GetCatList(CatList.Item[Element.Format("a")], FullList)
- Next
- GetCatList = List
- End Function
- Sub SetFilterExpression(Question, IOM)
- Dim Q, Slice, Element, Resp
- Select Case Question.QuestionType
- Case QuestionTypes.qtLoopCategorical, QuestionTypes.qtLoopNumeric
- If Question.QuestionType = QuestionTypes.qtLoopCategorical Then
- If Question.Categories.Count>0 Then
- For Each Element in IOM.MDM.Fields.Item[Question.QuestionFullName].Elements
- If Element.ObjectTypeValue = 5 Then
- If Element.Count > 0 Then
- If Element.Item[0].ObjectTypeValue = 5 Then
- If Element.Item[0].Count > 0 Then
- If Element.Item[0].Item[0].Properties.Item["FilterExpression"]<>"" And Not(lCase(Element.Item[0].Item[0].Properties.Item["Aply_Filter_Expressions"]) = "no") And Not(lCase(Element.Item[0].Properties.Item["Aply_Filter_Expressions"]) = "no") And Not(lCase(Element.Properties.Item["Aply_Filter_Expressions"]) = "no")Then
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())*(cCategorical(Eval(Element.Item[0].Item[0].Properties.Item["FilterExpression"]))+cCategorical(Question.Properties.Item["doNotAutoFilter"]))
- End If
- End If
- End If
- If Element.Item[0].Properties.Item["FilterExpression"]<>"" And Not(lCase(Element.Item[0].Properties.Item["Aply_Filter_Expressions"]) = "no") And Not(lCase(Element.Properties.Item["Aply_Filter_Expressions"]) = "no")Then
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())*(cCategorical(Eval(Element.Item[0].Properties.Item["FilterExpression"]))+cCategorical(Question.Properties.Item["doNotAutoFilter"]))
- End If
- End If
- If Element.Properties.Item["FilterExpression"]<>"" And Not(lCase(Element.Properties.Item["Aply_Filter_Expressions"]) = "no") Then
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())*(cCategorical(Eval(Element.Properties.Item["FilterExpression"]))+cCategorical(Question.Properties.Item["doNotAutoFilter"]))
- End If
- End If
- Next
- End If
- If IOM.MDM.Fields.Item[Question.QuestionFullName].Properties.Item["FilterExpression"]<>"" And Not(lCase(IOM.MDM.Fields.Item[Question.QuestionFullName].Properties.Item["Aply_Filter_Expressions"]) = "no") Then
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())*(cCategorical(Eval(IOM.MDM.Fields.Item[Question.QuestionFullName].Properties.Item["FilterExpression"]))+cCategorical(Question.Properties.Item["doNotAutoFilter"]))
- End If
- End If
- If Not ((Question.Properties.Item["GridFilterVariable"]="") or (lCase(IOM.RoutingContext) = "papi") or (lCase(IOM.RoutingContext) = "cati")) Then
- Resp = IOM.Questions.Item[Question.Properties.Item["GridFilterVariable"]].Response.Value
- For Each Slice in Question
- IOM.Questions.Item[Question.Properties.Item["GridFilterVariable"]].Response.Value = cCategorical(Slice.QuestionName)
- For Each Q in Slice
- SetFilterExpression(Q, IOM)
- Next
- Next
- IOM.Questions.Item[Question.Properties.Item["GridFilterVariable"]].Response.Value = Resp
- End If
- Case QuestionTypes.qtBlock, QuestionTypes.qtPage
- For Each Q in Question
- SetFilterExpression(Q, IOM)
- Next
- Case QuestionTypes.qtCompound, QuestionTypes.qtSimple
- If Question.QuestionType = (QuestionTypes.qtCompound) Or ((Question.QuestionType = QuestionTypes.qtSimple) And (Question.QuestionDataType = DataTypeConstants.mtCategorical)) Then
- If Question.Categories.Count>0 Then
- For Each Element in IOM.MDM.Fields.Item[Question.QuestionFullName].Elements
- If Element.ObjectTypeValue = 5 Then
- If Element.Count > 0 Then
- If Element.Item[0].ObjectTypeValue = 5 Then
- If Element.Item[0].Count > 0 Then
- If (Element.Item[0].Item[0].Properties.Item["FilterExpression"]<>"") And Not(lCase(Element.Item[0].Item[0].Properties.Item["Aply_Filter_Expressions"]) = "no") And Not(lCase(Element.Item[0].Properties.Item["Aply_Filter_Expressions"]) = "no") And Not(lCase(Element.Properties.Item["Aply_Filter_Expressions"]) = "no") Then
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())*(cCategorical(Eval(Element.Item[0].Item[0].Properties.Item["FilterExpression"]))+cCategorical(Question.Properties.Item["doNotAutoFilter"]))
- End If
- End If
- End If
- If (Element.Item[0].Properties.Item["FilterExpression"]<>"") And Not(lCase(Element.Item[0].Properties.Item["Aply_Filter_Expressions"]) = "no") And Not(lCase(Element.Properties.Item["Aply_Filter_Expressions"]) = "no") Then
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())*(cCategorical(Eval(Element.Item[0].Properties.Item["FilterExpression"]))+cCategorical(Question.Properties.Item["doNotAutoFilter"]))
- End If
- End If
- If (Element.Properties.Item["FilterExpression"]<>"") And Not(lCase(Element.Properties.Item["Aply_Filter_Expressions"]) = "no") Then
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())*(cCategorical(Eval(Element.Properties.Item["FilterExpression"]))+cCategorical(Question.Properties.Item["doNotAutoFilter"]))
- End If
- End If
- Next
- End If
- If IOM.MDM.Fields.Item[Question.QuestionFullName].Properties.Item["FilterExpression"]<>"" And Not(lCase(IOM.MDM.Fields.Item[Question.QuestionFullName].Properties.Item["Aply_Filter_Expressions"]) = "no") Then
- Question.Categories = GetCatList(Question.Categories, Question.DefinedCategories())*(cCategorical(Eval(IOM.MDM.Fields.Item[Question.QuestionFullName].Properties.Item["FilterExpression"]))+cCategorical(Question.Properties.Item["doNotAutoFilter"]))
- End If
- End If
- End Select
- End Sub
- Function Cat_Sum_Validation(Question, IOM, Attempt)
- Dim Cat, Sum, TargetSum, Condition, Msg
- Sum = 0
- Condition = Split(Question.Properties.Item["SumCondition"], "|")
- TargetSum = cLong(Condition[1])
- Condition = Condition[0]
- For Each Cat in Question
- If Not (Cat.Item[0].Response.Value=*{_998,_999}) Then
- Sum = Sum + Cat.Item[0].Categories[cCategorical(Cat.Item[0].Response.Value)].Properties.Item["Value"]
- End If
- Next
- Select Case Condition
- Case "="
- Msg = "ERR_MSG_SUM_EQUAL"
- Case ">="
- Msg = "ERR_MSG_SUM_GREATER_OR_EQUAL"
- Case "<="
- Msg = "ERR_MSG_SUM_SMALLER_OR_EQUAL"
- Case ">"
- Msg = "ERR_MSG_SUM_GREATER"
- Case "<"
- Msg = "ERR_MSG_SUM_SMALLER"
- End Select
- If Not (Eval("Sum" + Condition + "TargetSum")) Then
- Question.Item[0].Item[0].Errors.AddNew("Err1", Replace(IOM.Questions.Item["Inserts"].Item[Msg].Label, "_value_", cText(TargetSum)))
- Cat_Sum_Validation = False
- For Each Cat in Question
- If Not (Cat.Item[0].Response.Value=*{_998,_999}) Then
- Cat.Item[0].Response.Value = cCategorical(Cat.Item[0].Categories.Item[0])
- End If
- Next
- Else
- Cat_Sum_Validation = True
- End If
- End Function
- Function Validate_Chips (Q, IOM, Attempt)
- Dim Slice, Sum, TargetSum, Condition, Msg, MyQ, sumCheck
- sumCheck = 0
- For Each MyQ in Q
- Condition = Split(iif(MyQ.Properties.Item["SumCondition"] is null, Q.Properties.Item["SumCondition"], MyQ.Properties.Item["SumCondition"]), "|")
- TargetSum = cLong(Condition[1])
- Condition = Condition[0]
- Sum = 0
- For each Slice in MyQ
- If Not (Slice.Item[0].Response.Value=*{_998,_999}) then
- Sum = Sum + Slice.Item[0].Categories.Item[cCategorical(Slice.Item[0].Response.Value)].Properties.Item["Value"]
- End If
- Next
- Select Case Condition
- Case "="
- Msg = "ERR_MSG_SUM_EQUAL"
- Case ">="
- Msg = "ERR_MSG_SUM_GREATER_OR_EQUAL"
- Case "<="
- Msg = "ERR_MSG_SUM_SMALLER_OR_EQUAL"
- Case ">"
- Msg = "ERR_MSG_SUM_GREATER"
- Case "<"
- Msg = "ERR_MSG_SUM_SMALLER"
- End Select
- If Not (Eval("Sum" + Condition + "TargetSum")) Then
- MyQ.Item[0].Item[0].Errors.AddNew("Err1", Replace(IOM.Questions.Item["Inserts"].Item[Msg].Label, "_value_", cText(TargetSum)))
- Validate_Chips = False
- For each Slice in MyQ
- If Not (Slice.Item[0].Response.Value=*{_998,_999}) Then
- Slice.Item[0].Response.Value = cCategorical(Slice.Item[0].Categories.Item[0])
- End If
- Next
- sumCheck = sumCheck + 1
- End If
- Next
- if sumCheck>0 then
- Validate_Chips = False
- else
- Validate_Chips = True
- end if
- End Function
- Function D20_Validation(Question, IOM, Attempt)
- Dim Cat, Sum, TargetSum
- Sum = 0
- TargetSum = cLong(Question.Label.Inserts.Ins1)
- if TargetSum = 0 Then TargetSum = 10
- For Each Cat in Question.Response.Other
- Sum = Sum + cLong(Mid(Cat.Value.Format("a"), 1))
- Next
- If Sum>TargetSum Then
- Question.Errors.AddNew("Err1", IOM.Questions.Item["Inserts"].Item["ERR_MSG_D20"].Label + " " + cText(TargetSum))
- D20_Validation = False
- Else
- D20_Validation = True
- End If
- End Function
- Function S85_Validation(Question, IOM, Attempt)
- Dim foundError, foundSubbrand, typesList, s40cat, s85cat
- foundError = False
- typesList = ccategorical(Iom.Questions.Item["S40"].Response -{_996,_998,_999} )
- For Each s40cat in typesList
- foundSubbrand = false
- for each s85cat in ccategorical(Question.Response.Value-{_997,_999})
- if s40cat * ccategorical (Question.Categories[ccategorical(s85cat)].Properties["Brand"]) then
- foundSubbrand = True
- exit for
- end if
- next
- if not(foundSubbrand) then
- foundError = True
- exit for
- end if
- Next
- if foundError then
- Question.Errors.AddNew("Err1", IOM.Questions.Item["Inserts"].Item["ERR_MSG_S85"].Label)
- S85_Validation = False
- else
- S85_Validation = True
- end if
- End Function
- Function RegExProc(Str, Mode, Pattern, Repl)
- Dim objRegExp
- Set objRegExp = CreateObject("VBScript.RegExp")
- objRegExp.IgnoreCase = True
- objRegExp.Global = True
- objRegExp.Pattern = Pattern
- Select Case Mode
- Case "Replace"
- RegExProc = objRegExp.Replace(Str, Repl)
- Case "Test"
- RegExProc = objRegExp.Test(Str)
- End Select
- End Function
- Sub SetDefaultStyles(Question, StyleFormat, IOM, ClearDefaults)
- Dim Cat, Cat1, Flag, Q, Slice, List1, List2
- If ClearDefaults Then
- With IOM.DefaultStyles
- .Grids[GridStyleTypes.gsColHeader].Color = "Black"
- .Grids[GridStyleTypes.gsColHeader].Font.Effects = 0
- .Grids[GridStyleTypes.gsColHeader].Cell.BgColor = 0
- .Grids[GridStyleTypes.gsColHeader].BgColor = 0
- .Grids[GridStyleTypes.gsColHeader].Cell.BorderColor = "White"
- .Grids[GridStyleTypes.gsColHeader].Cell.BorderStyle = BorderStyles.bsNone
- .Grids[GridStyleTypes.gsColHeader].Cell.Borderwidth = 0
- .Grids[GridStyleTypes.gsColHeader].Cell.padding = 0
- .Grids[GridStyleTypes.gsRowHeader].Font.Effects = 0
- .Grids[GridStyleTypes.gsRowHeader].Cell.BgColor = 0
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderColor = "White"
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderStyle = BorderStyles.bsNone
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderWidth = 0
- .Grids[GridStyleTypes.gsRowHeader].Cell.Padding = 0
- .Grids[GridStyleTypes.gsAltRowHeader].Cell.BgColor = 0
- .Grids[GridStyleTypes.gsAltRow].Cell.BgColor = 0
- End With
- End If
- If Not((StyleFormat Is Null) Or (StyleFormat = "")) Then
- Select Case StyleFormat
- Case "Style1"
- With IOM.DefaultStyles
- .Grids[GridStyleTypes.gsColHeader].Color = "White"
- .Grids[GridStyleTypes.gsColHeader].Font.Effects = FontEffects.feBold
- .Grids[GridStyleTypes.gsColHeader].Cell.BgColor = IOM.Questions.Item["S_B"].IpsosBlue
- .Grids[GridStyleTypes.gsColHeader].Cell.BorderColor = "White"
- .Grids[GridStyleTypes.gsColHeader].Cell.BorderStyle = BorderStyles.bsSolid
- .Grids[GridStyleTypes.gsColHeader].Cell.Borderwidth = 1
- .Grids[GridStyleTypes.gsColHeader].Cell.padding = 3
- .Grids[GridStyleTypes.gsRowHeader].Font.Effects = FontEffects.feBold
- .Grids[GridStyleTypes.gsRowHeader].Cell.BgColor = "Gainsboro"
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderColor = "Black"
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderStyle = BorderStyles.bsSolid
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderWidth = 1
- .Grids[GridStyleTypes.gsRowHeader].Cell.Padding = 2
- .Grids[GridStyleTypes.gsAltRowHeader].Cell.BgColor = "#D8E6E6"
- .Grids[GridStyleTypes.gsAltRow].Cell.BgColor = "Azure"
- End With
- Case "Style2"
- With IOM.DefaultStyles
- .Grids[GridStyleTypes.gsRowHeader].Font.Effects = FontEffects.feBold
- .Grids[GridStyleTypes.gsRowHeader].Cell.BgColor = "Gainsboro"
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderColor = "Black"
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderStyle = BorderStyles.bsSolid
- .Grids[GridStyleTypes.gsRowHeader].Cell.BorderWidth = 1
- .Grids[GridStyleTypes.gsRowHeader].Cell.Padding = 2
- .Grids[GridStyleTypes.gsAltRowHeader].Cell.BgColor = "#D8E6E6"
- End With
- Case "Style_Categorical1"
- If Question.QuestionDataType = DataTypeConstants.mtCategorical Then
- Flag = True
- List1 = GetCatList(Question.Categories, Question.DefinedCategories())
- For Each Cat In List1 - {_996,_997,_998,_999}
- If Flag Then
- Question.Categories.Item[cCategorical(Cat)].Style.BgColor = "#D8E6E6"
- Question.Categories.Item[cCategorical(Cat)].Label.Style.BgColor = "Azure"
- Question.Categories.Item[cCategorical(Cat)].Label.Style.Cell.BgColor = "Azure"
- Else
- Question.Categories.Item[cCategorical(Cat)].Style.BgColor = "Gainsboro"
- End If
- Flag = Not Flag
- Next
- For Each Cat In List1*{_996,_997}
- Question.Categories.Item[cCategorical(Cat)].Style.BgColor = "#CCCCFF"
- Question.Categories.Item[cCategorical(Cat)].Label.Style.BgColor = "#CCCCFF"
- Question.Categories.Item[cCategorical(Cat)].Label.Style.Cell.BgColor = "#CCCCFF"
- Next
- For Each Cat In List1*{_998}
- Question.Categories.Item[cCategorical(Cat)].Style.BgColor = "Bisque"
- Question.Categories.Item[cCategorical(Cat)].Label.Style.BgColor = "Bisque"
- Question.Categories.Item[cCategorical(Cat)].Label.Style.Cell.BgColor = "Bisque"
- Next
- For Each Cat In List1*{_999}
- Question.Categories.Item[cCategorical(Cat)].Style.BgColor = "#FFFF99"
- Question.Categories.Item[cCategorical(Cat)].Label.Style.BgColor = "#FFFF99"
- Question.Categories.Item[cCategorical(Cat)].Label.Style.Cell.BgColor = "#FFFF99"
- Next
- End If
- Case "Style_Categorical2"
- If Question.QuestionDataType = DataTypeConstants.mtCategorical Then
- SetCategoryStyle2(Question.Categories, True)
- End If
- Case "Style_Categorical21"
- If Question.QuestionDataType = DataTypeConstants.mtCategorical Then
- SetCategoryStyle21(Question.Categories, True)
- End If
- End Select
- End If
- Select Case Question.QuestionType
- Case 1, 2 ' Loops
- For Each Slice in Question
- For Each Q in Slice
- SetDefaultStyles(Q, Q.Properties.Item["QuestionFormating"], IOM, False)
- Next
- Next
- Case 4, 5 ' Block and Page
- For Each Q in Question
- SetDefaultStyles(Q, Q.Properties.Item["QuestionFormating"], IOM, False)
- Next
- End Select
- End Sub
- Function SetCategoryStyle2(MyElements, Flag)
- Dim List1, Cat, Cat1, FixList
- For Each Cat In MyElements
- If Cat.CategoryType = 0 Then
- If IsSet(Cat.Attributes, CategoryFlagConstants.flFixedPosition) Then FixList = FixList + CCategorical(Cat)
- End If
- Next
- List1 = MyElements
- If MyElements.Order = OrderConstants.oReverse Then
- List1 = List1.Rev()
- ElseIf MyElements.Order = OrderConstants.oRandomize Then
- List1 = List1.Ran()
- ElseIf MyElements.Order = OrderConstants.oRotate Then
- List1 = List1.Rot()
- ElseIf MyElements.Order = OrderConstants.oDescending Then
- List1 = List1.SortDesc()
- ElseIf MyElements.Order = OrderConstants.oAscending Then
- List1 = List1.SortAsc()
- End If
- For Each Cat in (List1 - FixList) - {_996,_997,_998,_999}
- Set Cat = MyElements.Item[cCategorical(Cat)]
- If Cat.CategoryType = 1 Then
- Cat.Style.BgColor = "Black"
- Cat.Label.Style.BgColor = "Black"
- Cat.Label.Style.Color = "White"
- Flag = SetCategoryStyle2(Cat, Flag)
- ElseIf Cat.CategoryType = 0 Then
- If Flag Then
- Cat.Style.BgColor = "#D8E6E6"
- Cat.Label.Style.BgColor = "Azure"
- Cat.Label.Style.Cell.BgColor = "Azure"
- Else
- Cat.Style.BgColor = "Gainsboro"
- End If
- Flag = Not Flag
- End If
- Next
- For Each Cat in FixList - {_996,_997,_998,_999}
- Set Cat = MyElements.Item[cCategorical(Cat)]
- If Cat.CategoryType = 1 Then
- Cat.Label.Style.Color = "Gray"
- Flag = SetCategoryStyle2(Cat, Flag)
- ElseIf Cat.CategoryType = 0 Then
- If Flag Then
- Cat.Style.BgColor = "#D8E6E6"
- Cat.Label.Style.BgColor = "Azure"
- Cat.Label.Style.Cell.BgColor = "Azure"
- Else
- Cat.Style.BgColor = "Gainsboro"
- End If
- Flag = Not Flag
- End If
- Next
- For Each Cat1 In List1*{_996,_997}
- MyElements.Item[cCategorical(Cat1)].Style.BgColor = "#CCCCFF"
- MyElements.Item[cCategorical(Cat1)].Label.Style.BgColor = "#CCCCFF"
- MyElements.Item[cCategorical(Cat1)].Label.Style.Cell.BgColor = "#CCCCFF"
- Next
- For Each Cat1 In List1*{_998}
- MyElements.Item[cCategorical(Cat1)].Style.BgColor = "Bisque"
- MyElements.Item[cCategorical(Cat1)].Label.Style.BgColor = "Bisque"
- MyElements.Item[cCategorical(Cat1)].Label.Style.Cell.BgColor = "Bisque"
- Next
- For Each Cat1 In List1*{_999}
- MyElements.Item[cCategorical(Cat1)].Style.BgColor = "#FFFF99"
- MyElements.Item[cCategorical(Cat1)].Label.Style.BgColor = "#FFFF99"
- MyElements.Item[cCategorical(Cat1)].Label.Style.Cell.BgColor = "#FFFF99"
- Next
- SetCategoryStyle2 = Flag
- End Function
- Function SetCategoryStyle21(MyElements, Flag)
- Dim List1, Cat, Cat1, FixList
- FixList = {}
- For Each Cat In MyElements
- If Cat.CategoryType = 0 Then
- If IsSet(Cat.Attributes, CategoryFlagConstants.flFixedPosition) Then FixList = FixList + CCategorical(Cat)
- End If
- Next
- List1 = MyElements
- If MyElements.Order = OrderConstants.oReverse Then
- List1 = List1.Rev()
- ElseIf MyElements.Order = OrderConstants.oRandomize Then
- List1 = List1.Ran()
- ElseIf MyElements.Order = OrderConstants.oRotate Then
- List1 = List1.Rot()
- ElseIf MyElements.Order = OrderConstants.oDescending Then
- List1 = List1.SortDesc()
- ElseIf MyElements.Order = OrderConstants.oAscending Then
- List1 = List1.SortAsc()
- End If
- For Each Cat in (List1 - FixList) - {_996,_997,_998,_999}
- Set Cat = MyElements.Item[cCategorical(Cat)]
- If Cat.CategoryType = 1 Then
- Cat.Label.Style.Color = "Gray"
- Flag = SetCategoryStyle21(Cat, Flag)
- ElseIf Cat.CategoryType = 0 Then
- If Flag Then
- Cat.Style.BgColor = "#D8E6E6"
- Cat.Label.Style.BgColor = "Azure"
- Cat.Label.Style.Cell.BgColor = "Azure"
- Else
- Cat.Style.BgColor = "Gainsboro"
- End If
- Flag = Not Flag
- End If
- Next
- For Each Cat in FixList - {_996,_997,_998,_999}
- Set Cat = MyElements.Item[cCategorical(Cat)]
- If Cat.CategoryType = 1 Then
- Cat.Label.Style.Color = "Gray"
- Flag = SetCategoryStyle21(Cat, Flag)
- ElseIf Cat.CategoryType = 0 Then
- If Flag Then
- Cat.Style.BgColor = "#D8E6E6"
- Cat.Label.Style.BgColor = "Azure"
- Cat.Label.Style.Cell.BgColor = "Azure"
- Else
- Cat.Style.BgColor = "Gainsboro"
- End If
- Flag = Not Flag
- End If
- Next
- For Each Cat1 In List1*{_996,_997,_291,_292,_293,_294,_295,_296,_297,_298,_299}
- MyElements.Item[cCategorical(Cat1)].Style.BgColor = "#CCCCFF"
- MyElements.Item[cCategorical(Cat1)].Label.Style.BgColor = "#CCCCFF"
- MyElements.Item[cCategorical(Cat1)].Label.Style.Cell.BgColor = "#CCCCFF"
- Next
- For Each Cat1 In List1*{_998}
- MyElements.Item[cCategorical(Cat1)].Style.BgColor = "Bisque"
- MyElements.Item[cCategorical(Cat1)].Label.Style.BgColor = "Bisque"
- MyElements.Item[cCategorical(Cat1)].Label.Style.Cell.BgColor = "Bisque"
- Next
- For Each Cat1 In List1*{_999}
- MyElements.Item[cCategorical(Cat1)].Style.BgColor = "#FFFF99"
- MyElements.Item[cCategorical(Cat1)].Label.Style.BgColor = "#FFFF99"
- MyElements.Item[cCategorical(Cat1)].Label.Style.Cell.BgColor = "#FFFF99"
- Next
- SetCategoryStyle21 = Flag
- End Function
- Function validemoti(Question, IOM, Attempt)
- if len(Question.Item[0].Response.value) = 0 then
- Question.Errors.AddNew("Err1", "Please select at least one answer. " )
- validemoti = false
- else
- validemoti = true
- end if
- End Function
- function SendCustomPropertiestoBrowser(theQuestion, theProperties)
- dim nameBanner
- dim foundBanner
- dim curBanner
- dim freqBanner, itemBanner
- freqBanner = theQuestion.Banners.Count
- nameBanner = "CustomProperties"
- theProperties = "<mrRef RefType='script' id='customJSONProperties' class='customJSONProperties' type='application/json' language='Javascript'>{" + theProperties + "}</mrRef>"
- foundBanner = false
- for itemBanner = 0 to freqBanner - 1
- set curBanner = theQuestion.Banners[itemBanner]
- if lcase(curBanner.name) = nameBanner then
- if curBanner.text <> theProperties then
- curBanner.text = theProperties
- end if
- foundBanner=true
- exit function
- end if
- Next
- if (foundBanner = false) then theQuestion.Banners.addNew(nameBanner, "")
- theQuestion.Banners[nameBanner] = theProperties
- Debug.Log(theProperties)
- end function
- Function HTMLTable (Q, Categories, SLHeader, Currency_Sign, Sign_Position_Front, Flag, Flag1, Flag2, C1W, C2W, C3W, IOM)
- Dim Cat1, Str1, Str3, Flags, TopPadding
- For Each Cat1 in Categories
- If Cat1.CategoryType = 1 Then
- Cat1.Label.Style.Hidden = True
- Cat1.Label.Style.Width = 0
- Cat1.Style.Cell.Width = 0
- Flags = HTMLTable (Q, Cat1, IIF(Cat1.Label = "", "", "<table cellspacing=""2"" style=""width:100%""><tr><td align=""center"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto""><b>" + Cat1.Label + "</b></td></tr></table>"), Currency_Sign, Sign_Position_Front, Flag, Flag1, Cat1.Label <> "", C1W, C2W, C3W, IOM)
- Flags = Split(Flags, "|")
- Flag = cBoolean(Flags[0])
- Flag1 = cBoolean(Flags[1])
- ElseIf Cat1.CategoryType = 0 Then
- if Flag Then
- If Flag2 Then
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 48
- Else
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 25
- End If
- Else
- If Flag2 Then
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 25
- End If
- End If
- If cCategorical(Cat1.Name)=*{_998,_999} Then
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IIf(cCategorical(Cat1.Name)=*{_998}, IOM.Questions.S_B._998TableExclusiveHeaderStyle, IOM.Questions.S_B._999TableExclusiveHeaderStyle) + "; width:auto"">"
- Cat1.Label.Inserts.Item["Ins2"] = "</td></tr></table>"
- Else
- Str3 = cDouble(Trim(IOM.MDM.Types.Item["VarietyPrices_List"].Elements.Item[Cat1.Format("a")].Label)).Format("f2")
- If Sign_Position_Front Then
- Str1 = Currency_Sign + " " + Str3
- Else
- Str1 = Str3 + " " + Currency_Sign
- End If
- If Flag Then
- Cat1.Label.Inserts.Item["Ins1"] = "<table cellspacing=""2"" style=""width:100%""><tr><td style=""border:1px solid white; width:auto""/><td align=""center"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:" + cText(C2W) + "em""><b>" + IOM.Questions.Inserts.Size_Label.Label + "</b></td><td align=""center"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:" + cText(C3W) + "em""><b>" + IOM.Questions.Inserts.Price_Label.Label + "</b></td></tr></table>" + iif(Flag2, SLHeader, "") + "<table cellspacing = ""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- Flag = False
- Else
- if Flag1 Then
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.AltTableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- Else
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- End If
- End If
- If Flag1 Then
- Cat1.Label.Inserts.Item["Ins2"] = "</td><td align=""right"" Style=""border:1px solid black; " + IOM.Questions.S_B.AltTableRowStyle + "; width:" + cText(C2W) + "em"">" + Trim(IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat1.Format("a")].Label) + "</td><td align=""right"" class = ""price"" price = """ + Str3 + """ Style=""border:1px solid black; " + IOM.Questions.S_B.AltTableRowStyle + "; width:" + cText(C3W) + "em"">" + Str1 + "</td></tr></table>"
- Else
- Cat1.Label.Inserts.Item["Ins2"] = "</td><td align=""right"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableRowStyle + "; width:" + cText(C2W) + "em"">" + Trim(IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat1.Format("a")].Label) + "</td><td align=""right"" class = ""price"" price = """ + Str3 + """ Style=""border:1px solid black; " + IOM.Questions.S_B.TableRowStyle + "; width:" + cText(C3W) + "em"">" + Str1 + "</td></tr></table>"
- End If
- Flag1 = Not Flag1
- End If
- Flag2 = False
- End If
- Next
- HTMLTable = cText(Flag) + "|" + cText(Flag1)
- End Function
- Function HTMLTable2 (Q, Categories, SLHeader, Currency_Sign, Sign_Position_Front, Flag, Flag1, Flag2, C1W, C2W, C3W, IOM)
- Dim Cat1, Str1, Str3, Flags, TopPadding
- For Each Cat1 in Categories
- If Cat1.CategoryType = 1 Then
- Cat1.Label.Style.Hidden = True
- Cat1.Label.Style.Width = 0
- Cat1.Style.Cell.Width = 0
- Flags = HTMLTable2 (Q, Cat1, IIF(Cat1.Label = "", "", "<table cellspacing=""2"" style=""width:100%""><tr><td align=""center"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto""><b>" + Cat1.Label + "</b></td></tr></table>"), Currency_Sign, Sign_Position_Front, Flag, Flag1, Cat1.Label <> "", C1W, C2W, C3W, IOM)
- Flags = Split(Flags, "|")
- Flag = cBoolean(Flags[0])
- Flag1 = cBoolean(Flags[1])
- ElseIf Cat1.CategoryType = 0 Then
- if Flag Then
- If Flag2 Then
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 48
- Else
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 25
- End If
- Else
- If Flag2 Then
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 25
- End If
- End If
- If cCategorical(Cat1.Name)=*{_998,_999} Then
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IIf(cCategorical(Cat1.Name)=*{_998}, IOM.Questions.S_B._998TableExclusiveHeaderStyle, IOM.Questions.S_B._999TableExclusiveHeaderStyle) + "; width:auto"">"
- Cat1.Label.Inserts.Item["Ins2"] = "</td></tr></table>"
- Else
- Str3 = ""
- If Flag Then
- Cat1.Label.Inserts.Item["Ins1"] = "<table cellspacing=""2"" style=""width:100%""><tr><td style=""border:1px solid white; width:auto""/><td align=""center"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:" + cText(C2W) + "em""><b>" + IOM.Questions.Inserts.Size_Label.Label + "</b></td></tr></table>" + iif(Flag2, SLHeader, "") + "<table cellspacing = ""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- Flag = False
- Else
- if Flag1 Then
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.AltTableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- Else
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- End If
- End If
- If Flag1 Then
- Cat1.Label.Inserts.Item["Ins2"] = "</td><td align=""right"" Style=""border:1px solid black; " + IOM.Questions.S_B.AltTableRowStyle + "; width:" + cText(C2W) + "em"">" + Trim(IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat1.Format("a")].Label) + "</td></tr></table>"
- Else
- Cat1.Label.Inserts.Item["Ins2"] = "</td><td align=""right"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableRowStyle + "; width:" + cText(C2W) + "em"">" + Trim(IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat1.Format("a")].Label) + "</td></tr></table>"
- End If
- Flag1 = Not Flag1
- End If
- Flag2 = False
- End If
- Next
- HTMLTable2 = cText(Flag) + "|" + cText(Flag1)
- End Function
- Function HTMLTable3 (Q, Categories, SLHeader, Currency_Sign, Sign_Position_Front, Flag, Flag1, Flag2, C1W, C2W, C3W, IOM)
- Dim Cat1, Str1, Str3, Flags, TopPadding
- For Each Cat1 in Categories
- If Cat1.CategoryType = 1 Then
- Cat1.Label.Style.Hidden = True
- Cat1.Label.Style.Width = 0
- Cat1.Style.Cell.Width = 0
- Flags = HTMLTable3 (Q, Cat1, IIF(Cat1.Label = "", "", "<table cellspacing=""2"" style=""width:100%""><tr><td align=""center"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto""><b>" + Cat1.Label + "</b></td></tr></table>"), Currency_Sign, Sign_Position_Front, Flag, Flag1, Cat1.Label <> "", C1W, C2W, C3W, IOM)
- Flags = Split(Flags, "|")
- Flag = cBoolean(Flags[0])
- Flag1 = cBoolean(Flags[1])
- ElseIf Cat1.CategoryType = 0 Then
- if Flag Then
- If Flag2 Then
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 48
- Else
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 25
- End If
- Else
- If Flag2 Then
- Q[Cat1.Format("a")].Item[0].Style.Cell.Paddingtop = 25
- End If
- End If
- If cCategorical(Cat1.Name)=*{_998,_999} Then
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IIf(cCategorical(Cat1.Name)=*{_998}, IOM.Questions.S_B._998TableExclusiveHeaderStyle, IOM.Questions.S_B._999TableExclusiveHeaderStyle) + "; width:auto"">"
- Cat1.Label.Inserts.Item["Ins2"] = "</td></tr></table>"
- Else
- Str3 = cDouble(Trim(IOM.MDM.Types.Item["VarietyPrices_List"].Elements.Item[Cat1.Format("a")].Label)).Format("f2")
- If Sign_Position_Front Then
- Str1 = Currency_Sign + " " + Str3
- Else
- Str1 = Str3 + " " + Currency_Sign
- End If
- If Flag Then
- Cat1.Label.Inserts.Item["Ins1"] = "<table cellspacing=""2"" style=""width:100%""><tr><td style=""border:1px solid white; width:auto""/><td align=""center"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:" + cText(C2W) + "em""><b>" + IOM.Questions.Inserts.Size_Label.Label + "</b></td><td align=""center"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:" + cText(C3W) + "em""><b>" + IOM.Questions.Inserts.Price_Label.Label + "</b></td></tr></table>" + iif(Flag2, SLHeader, "") + "<table cellspacing = ""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- Flag = False
- Else
- if Flag1 Then
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.AltTableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- Else
- Cat1.Label.Inserts.Item["Ins1"] = iif(Flag2, SLHeader, "") + "<table cellspacing=""2"" style=""width:100%""><tr><td Style=""border:1px solid black; " + IOM.Questions.S_B.TableHeaderStyle + "; width:auto"">" ' + Cat1.Label.Inserts.Item["Ins1"]
- End If
- End If
- If Flag1 Then
- Cat1.Label.Inserts.Item["Ins2"] = "</td><td align=""right"" Style=""border:1px solid black; " + IOM.Questions.S_B.AltTableRowStyle + "; width:" + cText(C2W) + "em"">" + Trim(IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat1.Format("a")].Label) + "</td><td align=""right"" class = ""price"" price = """ + Str3 + """ Style=""border:1px solid black; " + IOM.Questions.S_B.AltTableRowStyle + "; width:" + cText(C3W) + "em"">" + Str1 + "</td></tr></table>"
- Else
- Cat1.Label.Inserts.Item["Ins2"] = "</td><td align=""right"" Style=""border:1px solid black; " + IOM.Questions.S_B.TableRowStyle + "; width:" + cText(C2W) + "em"">" + Trim(IOM.MDM.Types.Item["FlavorsTypesSizes_List"].Elements.Item[Cat1.Format("a")].Label) + "</td><td align=""right"" class = ""price"" price = """ + Str3 + """ Style=""border:1px solid black; " + IOM.Questions.S_B.TableRowStyle + "; width:" + cText(C3W) + "em"">" + Str1 + "</td></tr></table>"
- End If
- Flag1 = Not Flag1
- End If
- Flag2 = False
- End If
- Next
- HTMLTable3 = cText(Flag) + "|" + cText(Flag1)
- End Function
- End Routing
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement