Премини към съдържанието
petar96

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

Препоръчан отговор


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

фдс.JPG

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Това се прави на език....? Тези чекбоксове някакви ID-та нямат ли? Защо не им добавиш?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

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

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Това може да се направи на MS Access.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

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


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Да беше дал и някакъв код, най-вече където са тези checkboxes. Какво стана с ID-то им?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

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

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ако ще продължаваме така няма да стане работата. Казах ти какво и как да направиш, както и да дадеш някакъв код. Ако не - търси си помощ другаде. 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" дали е било чекирвано първоначално.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добавете отговор

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

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Добави ново...

Информация

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