Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Как да вземам стойности само на определени checkbox

Featured Replies

Здравейте, искам да попитам как да вземам стойности само на определени checkbox. Смисъл правя един софтуер за коли под наем и искам да има допълнителни екстри само, който са изправи. Ако избера да има gps и детски стой да ми изчисли сумата в някой label. Ако искам да има допълнителен багажник и gps пак да ми го изчисли в този label. 

фдс.JPG

  • Автор

Да извинявай забравих да кажя правя го на C#, GPS e струва 10 лв и се казва gps,  детското столче е 5 лв child_seats, ключа е 20 лв key и багажника е 5 лв rack. Искам примерно съм избрал gps и детското столче и в лабел22 да изпише 15 лв, ако избера 3 неща тяхната сума.

  • Автор

За да изчислявам тези стойности трябва ли да напиша всички възможни комбинации или има друг начин. 

 

Ако ще продължаваме така няма да стане работата. Казах ти какво и как да направиш, както и да дадеш някакъв код. Ако не - търси си помощ другаде. Google, youtube, stackoverflow и така нататък. Но и там само по картинка и като пишеш каквото си искаш, никой няма да ти помогне.

 

преди 25 минути, petar96 написа:

Как ще се направи в Access

И сяташ, че това може да бъде описано с 2 реда?
Това става с бази данни. От едната страна база с входящи данни, от другата - база със заявките, т.е. данни за отдадените машини.
 

 

преди 1 час, petar96 написа:

правя един софтуер за коли под наем

Нещо не ми звучите като пишещ. По-скоро като човек, който ще ползва тоя софтуер.

Редактирано от DarkEdge (преглед на промените)

  • Автор

Добре аз не знам какво искаш да ти кажя като казах всичко. В случея клипа който е да кажем, че java има стойност 1, С++ има стойност 2, С има стойност 3, Phyton има стойност 4. Когато изберем Java да ни изведе в един label стойноста 1, после примерно ако изберем Java и С да ни изведе в този label стойност 4, защото java e 1, a С е 3 и като се съберат става 4. Така искам за всички възможни случей.

 

Ами направи си го. Казах ти, за пореден път, като имаш въпроси, даваш и код, не само картинки, тука боб нямаме за хвърляне да гадаем какво си сътворил. Аз повече няма да пиша, докато не дадеш код, ако има някой гадател, той да ти помага.

  • Автор

Добре извинявайте, че се опитах да помоля за помощ, но както викаги вместо да ти помогнат, започват да те нападат. Просто исках да попитам дали има възможност да се напише с по малко код, защото аз го направих така 

int gps = 5;

int child = 10;

int rack = 5;

int key=5;

int extra;

if(GPS.Chechked == true)

{

extra = gps * days(това броят дните от една дата до друга)

extralb.Text = extra.ToString();

}

else if(chiel_seat.Chechked == true)

{

extra = child * days(това броят дните от една дата до друга)

extralb.Text = child .ToString();

}

else if (rack_cars.Chechked == true)

{

extra = rack * days(това броят дните от една дата до друга)

extralb.Text = rack .ToString();

}

else if (lost_key.Chechked == true)

{

extra = key * days(това броят дните от една дата до друга)

extralb.Text = key .ToString();

}

 

Ето това е, но то работи когато един от тях е маркиран, когато са два маркирани не става

Нормално. В случая правиш само 1 проверка и ако тя е изпълнена, другите не се изпълняват. Махни "else" преди всяка проверка и пробвай пак, трябва да стане. И не те знам защо мислиш, че като искам нещо, те нападам?? Ти имаш проблем, не аз, и ако искаш да се реши съдействаш, ако не - и да искам, няма как да ти помогна!

А ако кликнеш на самия checkbox и си дбавиш кода?

Направи екстрите например на интерфейс, направи клас за всяка екстра, като наслагаш на всеки различната цена. Натрупай избраните екстри от формата в един масив, обиколи масива и събери цените.

Той като гледам го е оправил вече, както му казах, но няма да отговори. Само знае да мрънка, но с тези задачи така и не разбраха, че без да дадат какво са сътворили, само по обяснения и картинки, няма как да стане.

  • Автор
преди 11 часа, Raze написа:

Нормално. В случая правиш само 1 проверка и ако тя е изпълнена, другите не се изпълняват. Махни "else" преди всяка проверка и пробвай пак, трябва да стане. И не те знам защо мислиш, че като искам нещо, те нападам?? Ти имаш проблем, не аз, и ако искаш да се реши съдействаш, ако не - и да искам, няма как да ти помогна!

Не става когато махна else и ги чекна нещата става, но когато ги uncheck-на стойноста не се маха

Ами няма как да стане, трябва да добавиш нещо, което да следи за всяка промяна и да обновява текста. Казва се listener:

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.checkbox.checkedchanged?view=netframework-4.8

Всъщност пробвай след това:

 if(GPS.Chechked == true)

{

extra = gps * days(това броят дните от една дата до друга)

extralb.Text = extra.ToString();

} else {

}

като след "else" в скобите слагаш това, което искаш да стане обратното. Това го добави за всяка кутия - т.е. трябва ти проверка и съответно действие когато е чекирана и действие когато не е.

  • Автор
private void GPS_CheckedChanged(object sender, EventArgs e)
        {
            int extra;
            int gps = 5;
            int days = int.Parse(sum_of_day.Text);

            if (GPS.Checked == true)
            {

                extra = gps * days;
                extralb.Text = extra.ToString();
            }
            else
            {
                extra = gps - int.Parse(extralb.Text);
                extralb.Text = extra.ToString();
            }
            
        }

        private void child_seats_CheckedChanged(object sender, EventArgs e)
        {

            int extra;
            int child = 10;
            int days = int.Parse(sum_of_day.Text);

            if (child_seats.Checked == true)
            {
                
                    extra = child * days;
                    extralb.Text = extra.ToString();
                
            }
            else
            {
                extra = child - int.Parse(extralb.Text);
                extralb.Text = extra.ToString();
            }
            
        }


Така когато ГПС е чекнато изкарва 5 и когато е ънчекнато ми го маха, същото е и за стола, но не ми ги събира когато са и двете чекнати

  • Автор

Направих го така 

if (GPS.Checked == true)
            {

                extra += 10;
                extralb.Text = extra.ToString();

            }
            else
            {
                extra -= 10;
                extralb.Text = extra.ToString();
            }

 

Така е в случай че е чекирано, а ако изобщо не е било чекирвано защо пак вадиш? Направи и проверка в "else" дали е било чекирвано първоначално.

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.