15 Replies Latest reply on Dec 29, 2011 12:44 PM by cclay53

    Checkbox will not uncheck

    cclay53

      I have the following checkbox code:

       

      if  (this.rawValue == 0)

      {

           hc1.value.integer.value=0;

           hc2.value.integer.value=0;

           hc3.value.integer.value=0;

           hcgray.presence = "hidden";

           sfrhc1,value.integer.value=1;

           sfrhc2.value.integer.value=1;

           sfrhc3.value.integer.value=1;

           sfrhcgray.presence = "visible";

      }

      else

      {

           hc1.value.integer.value=1; 

           hc2.value.integer.value=1;

           hc3.value.integer.value=1;

           hcgray.presence = "visible";

           sfrhc1,value.integer.value=0;

           sfrhc2.value.integer.value=0;

           sfrhc3.value.integer.value=0;

           sfrhcgray.presence = "hidden"

      }

       

       

      The problem I'm having is (1) For the hcgray to be hidden I have to select hidden in the object pallet and (2) I can only check the box I cannot uncheck it.

        • 1. Re: Checkbox will not uncheck
          Kevin Cavallo Level 4

          For starters, there is a comma instead of a period on the two marked lines:

           

          if  (this.rawValue == 0)

          {

               hc1.value.integer.value=0;

               hc2.value.integer.value=0;

               hc3.value.integer.value=0;

               hcgray.presence = "hidden";

               sfrhc1,value.integer.value=1;

               sfrhc2.value.integer.value=1;

               sfrhc3.value.integer.value=1;

               sfrhcgray.presence = "visible";

          }

          else

          {

               hc1.value.integer.value=1; 

               hc2.value.integer.value=1;

               hc3.value.integer.value=1;

               hcgray.presence = "visible";

               sfrhc1,value.integer.value=0;

               sfrhc2.value.integer.value=0;

               sfrhc3.value.integer.value=0;

               sfrhcgray.presence = "hidden"

          }

           

           

          • 2. Re: Checkbox will not uncheck
            cclay53 Level 1

            Sorry. I retyped my code on this page because I could not get it to copy. Just a typo on this page.

            • 3. Re: Checkbox will not uncheck
              Kevin Cavallo Level 4

              Oh well, thought it might be an easy one...

               

              Are the other objects (hc1, etc) checkboxes?  I'm not familiar with the "value.integer.value" syntax; I usually set them with "hc1.rawValue = 1" and reset with "hc1.rawValue = 0".

              • 4. Re: Checkbox will not uncheck
                cclay53 Level 1

                Yes. The hc and sfrhc 1,2,3 are checkboxes and the hc sfrhc gray are rectangles. This actually worked before I added the hc items.

                • 5. Re: Checkbox will not uncheck
                  cclay53 Level 1

                  I reset my code to rawValue. It works fine except the same problem - once I check the box (this.rawValue == 0) it will not allow me to uncheck it.

                  • 6. Re: Checkbox will not uncheck
                    Kevin Cavallo Level 4

                    Which checkbox is your code in?  Normally you don't have to explicitly set/clear the checkbox that you're clicking, it will automatically toggle. 

                    • 7. Re: Checkbox will not uncheck
                      cclay53 Level 1

                      I am using this on an equipment audut form. I have a checkbox that is labeled installed. Normally the box is unchecked and the sfrhc lines are grayed out (sfrhcgray) and the Does Not Apply checkboxes (sfrhc1,2,3) are checked. If you click that box it grays out the hc part and sets the Does Not Apply check boxes and ungrays(?) and unsets the checkboxes for sfrhc.

                      • 8. Re: Checkbox will not uncheck
                        cclay53 Level 1

                        Forgot to add this last post. The issue is, if I check the installed checkbox everything works properly. However if I decide to uncheck that box it will not uncheck.

                         

                        Also, I have this code on several other items on this same form, not as long, usually only a couple of lines, and some of them work (check/uncheck) and some only allow you to check and not uncheck.

                        • 9. Re: Checkbox will not uncheck
                          Kevin Cavallo Level 4

                          Hate to do this, but can you post the form, or a screenshot of the designer window with the form layout and heirarchy, as well as the current checkbox script?

                          • 10. Re: Checkbox will not uncheck
                            cclay53 Level 1

                            Ok. Go to http://www.cclinksonline.com/form.html andthe entire form is available. The checkbox in question is on page 6. It is the first install checkbox.

                            • 11. Re: Checkbox will not uncheck
                              Kevin Cavallo Level 4

                              So, I know what is going on, but I'm not sure why.  The issue is with the grey rectangles: if you comment out the presence toggling of the rectangles in both the if and else sections the checkbox actions work fine.  I think the problem is with the order of event firing and layout actions on the form; the rectangle presence gets changed but it is not reflected on the screen layout.  What I don't understand is why this affects the checkbox operation.  I would expect the checkboxes to still toggle; the only issue I would think you would see is that the rectangles don't change properly.

                               

                              One of the pros of using a dynamic form is that the presence can change based on events without the need to relayout the entire form.  Maybe rectangles don't fit into this scheme.

                               

                              Fortunately I have a better way to do this: instead of changing the presence of the rectangles, change the fill color.  This does work well on a dynamic form.  You're using a linear fill with a start color of gray and end color of white.  To make the rectangle invisible, change the start color to white (color value of "255,255,255") and it will be entirely white.  To make it visible change the start color back to gray (value "192, 192, 192" using the colors that you selected).  To do this you use the following statement:

                               

                                 hcgray.value.rectangle.fill.color.value = color

                               

                               

                              The script for the "Chambers" installed checkbox should now look like this:

                               

                              if  (this.rawValue == 0)

                              {

                              hc1.rawValue=0;

                              hc2.rawValue=0;

                              hc3.rawValue=0;

                              hcgray.value.rectangle.fill.color.value = "255,255,255"; // Set to white start color

                              sfrhc1.rawValue=1;

                              sfrhc2.rawValue=1;

                              sfrhc3.rawValue=1;

                              sfrhcgray.value.rectangle.fill.color.value = "192,192,192"; // Set to gray start color

                              }

                              else

                              {

                              hc1.rawValue=1;

                              hc2.rawValue=1;

                              hc3.rawValue=1;

                              hcgray.value.rectangle.fill.color.value = "192,192,192";  // Set to gray start color

                              sfrhc1.rawValue=0;

                              sfrhc2.rawValue=0;

                              sfrhc3.rawValue=0;

                              sfrhcgray.value.rectangle.fill.color.value = "255,255,255" // Set to white start color

                              }

                              You will need to do the same to the "Diverter" section.

                              Also, you are probably aware of this but you need to deal with the enabled state of the checkboxes within each section when the section is "Does Not Apply".  If you gray out the Chambers section, the user can still check/uncheck the Yes/No/Corrected checkboxes.

                              HTH,

                              Kevin

                               

                              • 12. Re: Checkbox will not uncheck
                                Kevin Cavallo Level 4

                                Actually I do know what's going on, and I apologize for not noticing this earlier.  Your pages are set up as Positioned content.  In order to have object presence change dynamically the objects need to be contained in subforms with Flowed content.

                                 

                                Based on the layout of your form I would go with the color change scheme.  At this point it would be a lot of work to change your form to flowed layout and have everything line up properly.

                                 

                                Kevin

                                • 13. Re: Checkbox will not uncheck
                                  cclay53 Level 1

                                  I changed the code as you suggested and it works as predicted, however the text never shows because the screen is either gray or white.

                                   

                                  Considering your input on changing presence and doing a color change, would there be a way to go from the color fill to no fill?

                                   

                                  I am very new at this so have to ask alot of questions.

                                  • 14. Re: Checkbox will not uncheck
                                    Kevin Cavallo Level 4

                                    Yes!  This is even better, but I didn't know until now that there is a presence property on the fill.  Try this:

                                     

                                    if (this.rawValue == 0)

                                    {  

                                        hc1.rawValue=0;

                                        hc2.rawValue=0;

                                        hc3.rawValue=0;

                                        hcgray.resolveNode("value.rectangle.#fill").presence = "hidden";

                                        sfrhc1.rawValue=1;

                                        sfrhc2.rawValue=1;

                                        sfrhc3.rawValue=1; 

                                        sfrhcgray.resolveNode("value.rectangle.#fill").presence = "visible";   

                                    }  

                                    else

                                    {  

                                        hc1.rawValue=1;

                                        hc2.rawValue=1;

                                        hc3.rawValue=1;

                                        hcgray.resolveNode("value.rectangle.#fill").presence = "visible";

                                        sfrhc1.rawValue=0;

                                        sfrhc2.rawValue=0;

                                        sfrhc3.rawValue=0;

                                        sfrhcgray.resolveNode("value.rectangle.#fill").presence = "hidden";

                                    }

                                     

                                    • 15. Re: Checkbox will not uncheck
                                      cclay53 Level 1

                                      Perfect!!!!!! This works great! I also remembered what you said earlier about the check boxes. I removed the Does Not Apply Boxes since they are not needed and then changed the code to make sure the other boxes are unchecked under the rectangle.

                                       

                                      Thank you so much for your help.

                                       

                                       

                                      I also had to go to docReady and add   hcgray.resolveNode("value.rectangle.#fill").presence = "hidden";

                                      so that the page opened with the rectangle hidden. If not you had to cycle the check box 1 time to uncover.

                                       

                                       

                                       

                                       

                                      Message was edited by: cclay53