Всем привет.

Не могу найти нигде как строку конвертировать в число. 

Есть поле Кол.дн., формат - целое число, значение 10

Есть кнопка, в меню действий, Добавить дни. По нажатию этой кнопки появляется окошко, где юзер вносит кол.дней, например, 5. 

И нужно что бы в поле Кол.дн произошел расчет, 10+5 = 15, и, соответственно, значение 10 изменилось на 15. 

Ниже пример реализации:

ExtendDeadLineButtonClick: function(caption, buttonCaption, maxCommentSize, callback, scope) {
					var controls = {
						comment: {
							dataValueType: Terrasoft.DataValueType.INTEGER,
							"Caption": {"bindTo": "Resources.Numbers.Comments"},
							customConfig: {
								className: "Terrasoft.MemoEdit",
								height: "25px",
								width: "50px"
///								maxlength: maxCommentSize
							}
						}
					};
 
					var config = {
						defaultButton: 0,
						style: {
							borderStyle: "ts-messagebox-border-style-blue visa-action",
							buttonStyle: "blue"
						}
					};
 
					Terrasoft.utils.inputBox(caption, function(result, arg) {
						if (result === "ok") {
							var comment = arg.comment.value;
							if (comment != 0) {
								var days = this.get("UsrGSApplDeadline");
								var calc = days + comment;
								this.set("UsrGSApplDeadline", calc);
							}
						}
					}, ["ok", "cancel"], this, controls, config);
			}

 

В результате, в поле Кол.дн я получаю следующее:

10+5 = 105

Тоесть, происходит конкатенация, а не сложение. 

 

Нравится

2 комментария
Лучший ответ

Здравствуйте, Павел!

В переменную comment записывается значение типа string, в результате сложения str(comment)+num(days) получаете конкатенацию. Вы можете изменить тип на числовой, модернизировав код одним из способов ниже:

1) var comment = parseInt(arg.comment.value);

2) var calc = + comment + days;

Первый вариант изменит тип переменной для всей функции в зоне видимости. Второй вариант заменит значение comment только в рамках данной строки.

С уважением, Ангелина!

Здравствуйте, Павел!

В переменную comment записывается значение типа string, в результате сложения str(comment)+num(days) получаете конкатенацию. Вы можете изменить тип на числовой, модернизировав код одним из способов ниже:

1) var comment = parseInt(arg.comment.value);

2) var calc = + comment + days;

Первый вариант изменит тип переменной для всей функции в зоне видимости. Второй вариант заменит значение comment только в рамках данной строки.

С уважением, Ангелина!

Добрый день.

 

Огромное спасибо. 

parseInt - именно то что нужно. 

Теперь работает корректно.

Показать все комментарии

Коллеги, посоветуйте, пожалуйста, какой формат даты и времени выбрать, чтобы иметь возможность вводить её в общепринятом виде dd.MM.yyyy?

Перепробовали очень многие, но на такой так и не нарвались (версии 7.8 и 7.11)

Изображение удалено.

Нравится

1 комментарий

Здравствуйте, Владимир!

Можете выбрать формат Russian (Russia). 

 

Показать все комментарии
В bpm'online 7.5 можно поменять в карточке формат поля на Title, но меняется только формат label'а. Было бы хорошо менять и формат отображения самих данных (например, больший размер и выделение bold'ом)
1 комментарий

Спасибо, что помогаете нам развивать и улучшать наши продукты. Ваша идея принята для анализа и будет рассмотрена возможность ее реализации в одной из последующих версий программного продукта.

Показать все комментарии

Добрый день!
Подскажите, почему не работает форматирование вычисляемых полей в наборах данных? Это баг, или фича? (с)
Нужно, чтобы в вычисляемом поле типа "Дробное число" работало отсечение до двух знаков после запятой, а также разделитель тысяч. На данный момент отсечение происходит до четырёх знаков после запятой, разделитель тысяч не работает.
Могу и руками, но хотелось бы, чтобы всё же централизованно дело шло.

Нравится

4 комментария

Егор, Ваш вопрос передан в Департамент разработки продуктов для анализа, поскольку для его решения необходимо вносить изменения в ядро. Уточните, пожалуйста, Вашу версию программы Terrasoft.

Будем сообщать всю дополнительную информацию по Вашему вопросу.

Егор, добрый день.

Сообщаю, что работы по Вашему запросу запланированы на первую половину июня.

Будем сообщать всю дополнительную информацию по Вашему вопросу.

Егор, добрый день.

Работы по Вашему запросу завершены. Данная проблема решена, начиная с версии Terrasoft 3.3.2.94. Для получения бинарных файлов этой версии сделайте, пожалуйста, письменный запрос в Службу поддержки Terrasoft по адресу: support@tscrm.com

Спасибо!

Показать все комментарии

Как-то, захотел я построить график реализации товара по месяцам. Ничего сложного:
1. Создал запрос
2. Выбрал "Формат отображения даты" - "Месяц и год"
3. Построил график

Все бы хорошо, но одно плохо - некорректно (да и не красиво) отображалась группировка количества по дате: 1.2009, 11.2007, 12.2007, 5.2008, 8.2008

А хотелось бы видеть: 2007.11, 2007.12, 2008.05, 2008.08, 2009.01
Соответственно, решил я создать запрос с CustomSQL кодом для корректного (хронологически правильного) отображения даты на графике!

Вот, что получилось:

SELECT TOP 5
   (CAST(DATEPART(YEAR, [tbl_Invoice].[InvoiceDate]) AS VARCHAR(4)) + '.' +
     CASE
       WHEN CAST(DATEPART(MONTH, [tbl_Invoice].[InvoiceDate]) AS VARCHAR(2)) 10 THEN '0'
       ELSE ''
     END
   + CAST(DATEPART(MONTH, [tbl_Invoice].[InvoiceDate]) AS VARCHAR(2)) )
   AS [InvoiceDate]
FROM [tbl_Invoice]
ORDER BY 1 ASC

InvoiceDate
-----------
2006.08
2006.09
2006.10
2006.11
2008.07

Как видно из тестовой выборки - дата именно в том формате, что и нужно!

Успехов Вам!

Нравится

Поделиться

0 комментариев
Показать все комментарии