
BG Development · За реклама · За контакти |
![]() ![]() ![]() ![]() ![]() |
Здравей! ( Включване | Регистриране ) |
![]() ![]() ![]() |
Гъска |
Публикувано на: 17-07-2023, 17:56
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 1 Регистриран на: 17.07.23 ![]() |
Здравейте,
Имам нужда от малко помощ за един сккрип който ме измъчва от няколко часа. Уточнявам, че не съм програмист, а счетоводител, който се опитва да направи бланка в PDF, която да може да се попълва. Идеята е следната: Когато колегите ми носят множество отчетни документи за получен служебен аванс в лв., но самите документи са в различни валути, то те следва да се опишат в една форма, която представлява № на документа, дата на същия, кратко описание, следва графа "сума в лв" , която се формира от още две графи - едната е TextField, който е форматиран така, че да приема само числови стойности, другата е Drodown меню в която са изброени повечето валути които се ползват или евентуално ще се ползват. графата "сума в лв" е fill, настроено така, че да приема числови стойности, закръглени до втория знак след десетичната точка и да изписва накрая лв. (след стойността, без разстояние) За пример: В полето fill_7 в "Calculate"> 'Custom calculation script' съм въвела следния код: var currencyValue = this.getField("Dropdown1.0").value; var textValue = this.getField("Text1.0").value; if (textValue && currencyValue === "BGN") { var calculatedValue = parseFloat(textValue) * 1; this.getField("fill_7").value = calculatedValue.toFixed(2); } var currencyValue = this.getField("Dropdown1.0").value; var textValue = this.getField("Text1.0").value; if (textValue && currencyValue === "EUR") { var calculatedValue = parseFloat(textValue) * 1.95583; this.getField("fill_7").value = calculatedValue.toFixed(2); } var currencyValue = this.getField("Dropdown1.0").value; var textValue = this.getField("Text1.0").value; if (textValue && currencyValue !== "EUR" && currencyValue !== "BGN") { var promptTitle = "Въведете стойност за " + currencyValue; var promptMessage = "Моля, въведете стойност за " + currencyValue + ":"; var userValue = app.response(promptMessage, promptTitle); if (userValue === null) { event.value = ""; } else { var enteredValue = parseFloat(userValue); if (!isNaN(enteredValue)) { var calculatedValue = parseFloat(textValue) * enteredValue; event.value = calculatedValue.toFixed(2); } else { app.alert("Невалидна стойност за " + currencyValue + ". Моля, въведете валидно число."); event.value = ""; } } } Идеята е когато някой въведе в Text1.0 някаква стойност и избере съответната валута (BGN, EUR, USD, RSD и т.н, във fill_7 автоматично да се пресметне стойносттта в лв. като, когато е избрано EUR или BGN автоматично да смята съответно за BGN по стойност 1, а за EUR по фиксинга 1.95583. За всички останали валути трябва да излиза арлет в който потребителя на бланката да нанесе курса за деня, след като провери на сайта на БНБ съответния курс. Скрипта работи, но срещнах следния проблем, при копирането му в следващия fill ( в случая fill_12, който пресмята стойностите съответно от Drodown1.1 и Text1.1 се получава следната какавофия... исзкача арлета от предходния fill_7 и иска препотвърждаване на стойностите ако вече в него е нанесено примерно някаква стойност в USD или нещо. Изгледах си очите в настройките да не би некъде нещо да е отишло за валидация, гледах настройките на самия джава скрипт... и не виждам причина това да се случва - редовете във формата са 12 и ще се побъркам ако при нанасянето непрекъснато ми изскачат тия ужасни арлети... те не са ужасни, по-скоро аз съм проста, но това е положението. Надявам се да не ми се смеете много. И да ме посъветвате защо се случва това. Това мнение е било редактирано от Гъска на 17-07-2023, 18:03 |
![]() |
![]() ![]() ![]() |