Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. RateOfInterest...

RateOfInterest...

Scheduled Pinned Locked Moved The Weird and The Wonderful
csharpasp-netcomsysadminjson
14 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Sandeep Mewara
    wrote on last edited by
    #1

    Some one wanted to have this: "I have 12 text-boxes for entering Rate-Of-Intrest for different months. If user enters rateOfIntrest for January and August then rateOfInterest for February to July should be same as of January and rest should be as for August. If data for only January is entered then all the months will be same as that of January" Suggestion was: in this case when first text box value can given by the user then bellow method can help u.

        TextBox1.Text ="10";
        if (TextBox2.Text == "")
        {
            TextBox2.Text = TextBox1.Text;
        }
        if (TextBox3.Text == "")
        {
            TextBox3.Text = TextBox2.Text;
        }
        if (TextBox4.Text == "")
        {
            TextBox4.Text = TextBox3.Text;
        }
        if (TextBox5.Text == "")
        {
            TextBox5.Text = TextBox4.Text;
        }
        if (TextBox6.Text == "")
        {
            TextBox6.Text = TextBox5.Text;
        }
        if (TextBox7.Text == "")
        {
            TextBox7.Text = TextBox6.Text;
        }
        if (TextBox8.Text == "")
        {
            TextBox8.Text = TextBox7.Text;
        }
        if (TextBox9.Text == "")
        {
            TextBox9.Text = TextBox8.Text;
        }
        if (TextBox10.Text == "")
        {
            TextBox10.Text = TextBox9.Text;
        }
        if (TextBox11.Text == "")
        {
            TextBox11.Text = TextBox10.Text;
        }
        if (TextBox12.Text == "")
        {
            TextBox12.Text = TextBox11.Text;
        }
    

    if TextBox3 text can change then it now consider TextBox3 values.. Oh! Come on... :doh:

    Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

    P S G 3 Replies Last reply
    0
    • S Sandeep Mewara

      Some one wanted to have this: "I have 12 text-boxes for entering Rate-Of-Intrest for different months. If user enters rateOfIntrest for January and August then rateOfInterest for February to July should be same as of January and rest should be as for August. If data for only January is entered then all the months will be same as that of January" Suggestion was: in this case when first text box value can given by the user then bellow method can help u.

          TextBox1.Text ="10";
          if (TextBox2.Text == "")
          {
              TextBox2.Text = TextBox1.Text;
          }
          if (TextBox3.Text == "")
          {
              TextBox3.Text = TextBox2.Text;
          }
          if (TextBox4.Text == "")
          {
              TextBox4.Text = TextBox3.Text;
          }
          if (TextBox5.Text == "")
          {
              TextBox5.Text = TextBox4.Text;
          }
          if (TextBox6.Text == "")
          {
              TextBox6.Text = TextBox5.Text;
          }
          if (TextBox7.Text == "")
          {
              TextBox7.Text = TextBox6.Text;
          }
          if (TextBox8.Text == "")
          {
              TextBox8.Text = TextBox7.Text;
          }
          if (TextBox9.Text == "")
          {
              TextBox9.Text = TextBox8.Text;
          }
          if (TextBox10.Text == "")
          {
              TextBox10.Text = TextBox9.Text;
          }
          if (TextBox11.Text == "")
          {
              TextBox11.Text = TextBox10.Text;
          }
          if (TextBox12.Text == "")
          {
              TextBox12.Text = TextBox11.Text;
          }
      

      if TextBox3 text can change then it now consider TextBox3 values.. Oh! Come on... :doh:

      Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

      P Online
      P Online
      PIEBALDconsult
      wrote on last edited by
      #2

      Yeah, OK, so what's the problem? How did you fix it?

      S B 4 Replies Last reply
      0
      • S Sandeep Mewara

        Some one wanted to have this: "I have 12 text-boxes for entering Rate-Of-Intrest for different months. If user enters rateOfIntrest for January and August then rateOfInterest for February to July should be same as of January and rest should be as for August. If data for only January is entered then all the months will be same as that of January" Suggestion was: in this case when first text box value can given by the user then bellow method can help u.

            TextBox1.Text ="10";
            if (TextBox2.Text == "")
            {
                TextBox2.Text = TextBox1.Text;
            }
            if (TextBox3.Text == "")
            {
                TextBox3.Text = TextBox2.Text;
            }
            if (TextBox4.Text == "")
            {
                TextBox4.Text = TextBox3.Text;
            }
            if (TextBox5.Text == "")
            {
                TextBox5.Text = TextBox4.Text;
            }
            if (TextBox6.Text == "")
            {
                TextBox6.Text = TextBox5.Text;
            }
            if (TextBox7.Text == "")
            {
                TextBox7.Text = TextBox6.Text;
            }
            if (TextBox8.Text == "")
            {
                TextBox8.Text = TextBox7.Text;
            }
            if (TextBox9.Text == "")
            {
                TextBox9.Text = TextBox8.Text;
            }
            if (TextBox10.Text == "")
            {
                TextBox10.Text = TextBox9.Text;
            }
            if (TextBox11.Text == "")
            {
                TextBox11.Text = TextBox10.Text;
            }
            if (TextBox12.Text == "")
            {
                TextBox12.Text = TextBox11.Text;
            }
        

        if TextBox3 text can change then it now consider TextBox3 values.. Oh! Come on... :doh:

        Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

        S Offline
        S Offline
        S Houghtelin
        wrote on last edited by
        #3

        Sandeep Mewara wrote:

        bellow method can help

        It helps me... bel·low/ˈbelō/ Verb: (of a person or animal) Emit a deep loud roar, typically in pain or anger: "he bellowed in agony";

        It was broke, so I fixed it.

        1 Reply Last reply
        0
        • P PIEBALDconsult

          Yeah, OK, so what's the problem? How did you fix it?

          S Offline
          S Offline
          Sandeep Mewara
          wrote on last edited by
          #4

          Ok, since you asked, there can be ways, to start with, I will have a UI of dropdown and corresponding textbox and a '+' icon (to add another dropdown + textbox) Since user is aware of the fact that month selection will drive rate of interest, all they need to do is select a month(in dropdown) and then set rate of interest from that month(in textbox). If they want to change for any coming month, use the '+' icon to add another dropdown-textbox to add the values. UI is short and clean, so will be the implementation.

          Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

          1 Reply Last reply
          0
          • P PIEBALDconsult

            Yeah, OK, so what's the problem? How did you fix it?

            S Offline
            S Offline
            Sandeep Mewara
            wrote on last edited by
            #5

            Ok, since you asked, there can be ways. To start with, I will have a UI of dropdown and corresponding textbox and a '+' icon (to add another dropdown + textbox) Since user is aware of the fact that month selection will drive rate of interest, all they need to do is select a month(in dropdown) and then set rate of interest from that month(in textbox). If they want to change for any coming month, use the '+' icon to add another dropdown-textbox to add the values. UI is short and clean, so will be the implementation.

            Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

            P 1 Reply Last reply
            0
            • P PIEBALDconsult

              Yeah, OK, so what's the problem? How did you fix it?

              S Offline
              S Offline
              Sandeep Mewara
              wrote on last edited by
              #6

              BTW, your comment suggests that you think the way suggested was correct. Is so? Having a if for all the 12 textboxes with individual conditions, followed by rest of the textbox after the current one?

              Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

              P 1 Reply Last reply
              0
              • S Sandeep Mewara

                Some one wanted to have this: "I have 12 text-boxes for entering Rate-Of-Intrest for different months. If user enters rateOfIntrest for January and August then rateOfInterest for February to July should be same as of January and rest should be as for August. If data for only January is entered then all the months will be same as that of January" Suggestion was: in this case when first text box value can given by the user then bellow method can help u.

                    TextBox1.Text ="10";
                    if (TextBox2.Text == "")
                    {
                        TextBox2.Text = TextBox1.Text;
                    }
                    if (TextBox3.Text == "")
                    {
                        TextBox3.Text = TextBox2.Text;
                    }
                    if (TextBox4.Text == "")
                    {
                        TextBox4.Text = TextBox3.Text;
                    }
                    if (TextBox5.Text == "")
                    {
                        TextBox5.Text = TextBox4.Text;
                    }
                    if (TextBox6.Text == "")
                    {
                        TextBox6.Text = TextBox5.Text;
                    }
                    if (TextBox7.Text == "")
                    {
                        TextBox7.Text = TextBox6.Text;
                    }
                    if (TextBox8.Text == "")
                    {
                        TextBox8.Text = TextBox7.Text;
                    }
                    if (TextBox9.Text == "")
                    {
                        TextBox9.Text = TextBox8.Text;
                    }
                    if (TextBox10.Text == "")
                    {
                        TextBox10.Text = TextBox9.Text;
                    }
                    if (TextBox11.Text == "")
                    {
                        TextBox11.Text = TextBox10.Text;
                    }
                    if (TextBox12.Text == "")
                    {
                        TextBox12.Text = TextBox11.Text;
                    }
                

                if TextBox3 text can change then it now consider TextBox3 values.. Oh! Come on... :doh:

                Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

                G Offline
                G Offline
                greldak
                wrote on last edited by
                #7

                Using a control array might be better here - you could then loop through your checks and would also benefit from using the same event handler for all elements of the array rather than 12 seperate ones.

                1 Reply Last reply
                0
                • P PIEBALDconsult

                  Yeah, OK, so what's the problem? How did you fix it?

                  B Offline
                  B Offline
                  BobJanova
                  wrote on last edited by
                  #8

                  The problem is the obvious repetition of code, and the answer to fulfil the actual request is as simple as

                  // this would probably actually be created when the page was built, or be a list
                  TextBox[] boxes = new TextBox[] { TextBox1, TextBox2, ... };

                  string previousContent = string.Empty;
                  foreach(TextBox box in boxes) {
                  if(string.IsNullOrEmpty(box.Text)) box.Text = previousContent;
                  else previousContent = box.Text;
                  }

                  P 1 Reply Last reply
                  0
                  • S Sandeep Mewara

                    Ok, since you asked, there can be ways. To start with, I will have a UI of dropdown and corresponding textbox and a '+' icon (to add another dropdown + textbox) Since user is aware of the fact that month selection will drive rate of interest, all they need to do is select a month(in dropdown) and then set rate of interest from that month(in textbox). If they want to change for any coming month, use the '+' icon to add another dropdown-textbox to add the values. UI is short and clean, so will be the implementation.

                    Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

                    P Online
                    P Online
                    PIEBALDconsult
                    wrote on last edited by
                    #9

                    Does the user need to add February in order to add March?

                    1 Reply Last reply
                    0
                    • S Sandeep Mewara

                      BTW, your comment suggests that you think the way suggested was correct. Is so? Having a if for all the 12 textboxes with individual conditions, followed by rest of the textbox after the current one?

                      Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

                      P Online
                      P Online
                      PIEBALDconsult
                      wrote on last edited by
                      #10

                      Sandeep Mewara wrote:

                      suggests that you think the way suggested was correct

                      No, but the only issue appears to be a small amount of duplicated code, so I wouldn't bother changing it just for that. Especially if the resulting code is more complex. But the post also doesn't have much context -- if this code is called by the TextChanged events of the TextBoxes I could see performance issues as well.

                      1 Reply Last reply
                      0
                      • B BobJanova

                        The problem is the obvious repetition of code, and the answer to fulfil the actual request is as simple as

                        // this would probably actually be created when the page was built, or be a list
                        TextBox[] boxes = new TextBox[] { TextBox1, TextBox2, ... };

                        string previousContent = string.Empty;
                        foreach(TextBox box in boxes) {
                        if(string.IsNullOrEmpty(box.Text)) box.Text = previousContent;
                        else previousContent = box.Text;
                        }

                        P Online
                        P Online
                        PIEBALDconsult
                        wrote on last edited by
                        #11

                        BobJanova wrote:

                        obvious repetition of code

                        Yeah, so what? There's not much of it and it's clear. I totally agree with using an array. But I'd use a for loop starting at 1.

                        B 1 Reply Last reply
                        0
                        • P PIEBALDconsult

                          BobJanova wrote:

                          obvious repetition of code

                          Yeah, so what? There's not much of it and it's clear. I totally agree with using an array. But I'd use a for loop starting at 1.

                          B Offline
                          B Offline
                          BobJanova
                          wrote on last edited by
                          #12

                          If you don't see why 30 lines where 5 would do is a problem then I'm not sure we have the same opinion on code cleanliness ...

                          S P 2 Replies Last reply
                          0
                          • B BobJanova

                            If you don't see why 30 lines where 5 would do is a problem then I'm not sure we have the same opinion on code cleanliness ...

                            S Offline
                            S Offline
                            Sandeep Mewara
                            wrote on last edited by
                            #13

                            I agree with you. Just to add on, it's first 30 lines and not the end of whole code. It was just based on first textbox value, similar if for other following textbox was suggested. Complete answer says: if TextBox3 text can change then it now consider TextBox3 values.. It's too many code lines!

                            Sandeep Mewara [My last article]: Server side Delimiters in ASP.NET[^]

                            1 Reply Last reply
                            0
                            • B BobJanova

                              If you don't see why 30 lines where 5 would do is a problem then I'm not sure we have the same opinion on code cleanliness ...

                              P Online
                              P Online
                              PIEBALDconsult
                              wrote on last edited by
                              #14

                              BobJanova wrote:

                              30 lines where 5 would do is a problem

                              Well I wouldn't write it that way, but I don't consider it a problem (certainly a smell though) and wouldn't necessarily change it if it works properly -- it ain't broke, there's probably more important things to do than to clean this up. However, the OP says that this is just one small example, so perhaps revisiting all of it is worthwhile in this case.

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups