08.04.2003, 13:16 | #1 |
Участник
|
String->Decimal
Подскажите пожалуйста, как в Attain сделать сабжевое преобразование?
Есть вещественное число, записанное строкой. Его необходимо переделать в децимал. Evaluate с decimal не работает. Альтернативы найти не могу. И еще один вопрос. Можно ли на одной форме отображать две таблицы? Если да, то как? Одна из них прописывается в SourceTable формы, а как подключить вторую? |
|
08.04.2003, 13:38 | #2 |
Участник
|
По второму вопросу
Смотри SubForms.
На форме можешь видеть сколь угодно таблиц, через SubForm-ы. |
|
08.04.2003, 14:48 | #3 |
NavAx
|
насчет EVALUATE :
попробуй так: 1) Находим с помощью STRPOS, где стоит в строке разделитель 2) Берем две сабстроки (целую часть и дробную часть) 3) Берем длину второй строки, в которую записана дробная часть (обозначим N) 4) <искомое число> = EVALUATE(<сабстрока1>) + EVALUATE(<сабстрока2>)/(<10 в степени N> |
|
08.04.2003, 15:34 | #4 |
Участник
|
Мож я чего не понял?
у меня ( attain 3.10 ) вот такая строка нормально работает:
EVALUATE(dec_value,excel_bufer."Cell Value as Text"); первая переменная - decimal вторая - text (обычно что-то вроде '57.45' ) |
|
08.04.2003, 16:16 | #5 |
NavAx
|
Действительно, хелп, оказывается, полезно читать (Аттейн 3.01)
EVALUATE Use this function to evaluate a string representation of a value into its normal representation. The system assigns the result to a variable. [Ok :=] EVALUATE(Variable, String) Ok Data type: boolean A return code which reflects whether an error occurred during the evaluation of the string. If Ok is... It means... TRUE No errors occurred during the evaluation of the string. The system assigned the value to Variable. FALSE Errors occurred during the evaluation of the string. The system did not modify the original value of Variable. If you omit this optional return value and an error occurs during the evaluation of the string, a run-time error occurs. If you include it, the system assumes you will handle any errors. Variable Data type: boolean, integer, option, date, time, text constant or code Any type of variable. The value of the string is assigned to the variable. String Data type: text constant or code A string containing a value of any simple C/AL data type. |
|
08.04.2003, 16:29 | #6 |
Участник
|
Variable
Data type: boolean, integer, option, date, time, text constant or code Кусок из этой же страницы хелпа. Ы |
|
08.04.2003, 16:51 | #7 |
NavAx
|
Ну хз.
У меня такой кусок кода работает вполне: (переменная dec : decimal) EVALUATE(dec, '1,63'); MESSAGE(FORMAT(dec+1)); выдает честные 2,63 Если не работает - попробуйте то, что я выше написал. |
|
10.04.2003, 17:35 | #8 |
Участник
|
TextToDecimal
Есть такая штука:
попробуй. Function TextToDecimal(VarText : Text[250]) : Decimal Parameters: Var Name DataType Subtype Length VarText Text 250 Return Value: Decimal Variables: Name DataType Subtype Length VarDecimal Decimal BaseVarDecimal Decimal DecimalSymbol Text 1 Function TextToDecimal(VarText : Text[250]) : Decimal BaseVarDecimal := 1.2; DecimalSymbol := COPYSTR(FORMAT(BaseVarDecimal),2,1); EVALUATE(VarDecimal,CONVERTSTR(VarText,'.',DecimalSymbol)); EXIT(VarDecimal); Если не сработает напиши. |
|
14.04.2003, 11:08 | #9 |
Участник
|
А нельзя ли просто настроить Винды клиентов БД, чтобы они использовали одинаковые настройки для разделителей целой и дробной части (точку или запятую) и в таком виде и писать свое EVALUATE(Dec, '11,22') или EVALUATE(Dec, '11.22')? ;(
|
|