|
|
|
Почему округляются значения полей ?
|
|||
|---|---|---|---|
|
#18+
Для копирования полей из одной таблицы в другую, я использую REPLACE, но конечные значения округляются. При том формат полей у обоих таблиц совпадает. Подскажите пожалуйста, как это можно исправить. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 22:34 |
|
||
|
Почему округляются значения полей ?
|
|||
|---|---|---|---|
|
#18+
Для начала смотреть какой SET DECIMAL А ваще информации явно не хватает - какой формат полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 22:39 |
|
||
|
Почему округляются значения полей ?
|
|||
|---|---|---|---|
|
#18+
BurnДля начала смотреть какой SET DECIMAL А ваще информации явно не хватает - какой формат полей? Не формат а тип, ...запарился :-) Все поля в таблицах Numeric ( 12, 2 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 23:23 |
|
||
|
Почему округляются значения полей ?
|
|||
|---|---|---|---|
|
#18+
Давай пример кода копирования. При таком формате полей по умолчанию ничего округляться не должно. На всякий случай, что возвращают настройки Код: plaintext 1. 2. Как была заполнена исходная таблица? В ней точно данные БЕЗ округления? Причем не в окне BROWSE, а при прямом чтении значения полей командой вроде Код: plaintext Или если в окне BROWSE встать на соответсвующую ячейку? При определенных способах формирования и заполнения таблицы, могут быть глюки: отображается одно, но читается другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 23:32 |
|
||
|
Почему округляются значения полей ?
|
|||
|---|---|---|---|
|
#18+
// === пример кода ==== PROCEDURE face_user LOCAL NameStreet LOCAL NumHouse LOCAL NumApartament NameStreet = ALLTRIM( улица ) NumHouse = дом NumApartament = квартира LOCAL ARRAY lsl[12] as Integer && массив содержит входящие сальдо на нач. && следующего месяца CLOSE TABLES && закрыть все таблицы IF !FILE( ALLTRIM( STR ( BaseName - 1 ) ) + "\декабрь.dbf" ) lsl[1] = 0.0 ELSE USE DataDir + ALLTRIM( STR( BaseName - 1 ) ) + "\декабрь.dbf" AbonentSeek( NameStreet, NumHouse, NumApartament ) lsl[1] = ЛастСальдо CLOSE TABLES ENDIF FOR i = 1 TO MONTH( DATE() ) USE DataDir + ALLTRIM( STR( BaseName ) )+ "\" + m( i ) + ".dbf" AbonentSeek( NameStreet, NumHouse, NumApartament ) lsl[i + 1] = ЛастСальдо ENDFOR CLOSE TABLES CREATE TABLE "data\faseuser.dbf" ; ( in_saldo N ( 12, 2 ), ; nach N ( 12, 2 ), ; k_oplate N ( 12, 2 ), ; korr N ( 12, 2 ), ; schet_441 N ( 12, 2 ), ; schet_451 N ( 12, 2 ), ; schet_334 N ( 12, 2 ), ; schet_681 N ( 12, 2 ), ; saldo N ( 12, 2 )) * ----- отладка массива ----- *FOR i = 1 TO 12 * MESSAGEBOX( lsl ) *ENDFOR *MESSAGEBOX( ALIAS() ) FOR i = 1 TO MONTH( DATE() ) USE DataDir + ALLTRIM( STR( BaseName ) ) + "\" + m( i ) + ".dbf" ALIAS alias_t IN 2 SELECT FASEUSER APPEND BLANK REPLACE in_saldo WITH lsl( i ) REPLACE nach WITH alias_t.начислено REPLACE k_oplate WITH alias_t.к_оплате REPLACE korr WITH alias_t.коррекция ENDFOR CLOSE TABLES ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 23:42 |
|
||
|
Почему округляются значения полей ?
|
|||
|---|---|---|---|
|
#18+
Проверь исходные данные. Не таблицу faseuser.dbf, а те таблицы ИЗ которых копируешь. Сам процесс копирования никакого "криминала" не содержит. А вот вопрос заполнения исходных таблиц - непонятен. Может, у исходных таблиц друга размерность. Может, в процессе расчета сальдо происходит округление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 23:52 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=224&tid=1590339]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 326ms |

| 0 / 0 |
