Имя: Пароль:
1C
1C 7.7
v7: Вычитание в ДБФ.
0 work92
 
10.02.14
13:11
Может кто в курсе как в ДБФ получить Результат путем вычитания Поля ДБФ.
Выводит итог -32
А должен 10
Структура ДБФ
NOM     ОПЛПООКЛ
1               10
2               22





Процедура Выполнить()        
        
   СЧ20=СоздатьОбъект("XBASE");
   Таб=СоздатьОбъект("Таблица");
   СЧ20.ОткрытьФайл("D:\ДБФ Счет\log23.dbf");
   СЧ20.Первая();

   ИТОПЛПООКЛ=0;
   Пока СЧ20.ВКонце()=0 Цикл  
       

   ИТОПЛПООКЛ=ИТОПЛПООКЛ-СЧ20.ОПЛПООКЛ);
  
  
   СЧ20.Следующая();
Конеццикла;

   Сообщить ("Итог"+ИТОПЛПООКЛ);
Конецпроцедуры
1 НастоящееИмя
 
10.02.14
13:14
Попробуй запихать в переменные и привести к типу.
2 work92
 
10.02.14
13:15
ИТОПЛПООКЛ=ИТОПЛПООКЛ-Число(СЧ20.ОПЛПООКЛ);

рез -32
3 Ёпрст
 
10.02.14
13:16
(0) п...ц

0-10-22 = -32

Что не устраивает ????????????????????????
4 work92
 
10.02.14
13:18
Ёпрст
А как получить рез 10 если можно кодом
5 Ёпрст
 
10.02.14
13:19
(4) А откуда 10 должно взяться вообще ?
6 work92
 
10.02.14
13:19
А как получить рез 12 если можно кодом
7 Ёпрст
 
10.02.14
13:21
+5 ты от нуля ( ИТОПЛПООКЛ=0;) за первый проход отнял 10, за второй проход цикла отнял еще 22.. получил на выходе -32.
Что тебе надо от этого кода еще - хз.

Формулируйте правильно ход ваших мыслей.
8 Ёпрст
 
10.02.14
13:22
(6) что есть 12 у тебя ?
:)
9 Wobland
 
10.02.14
13:22
(6) а зачем тебе 12?
10 mehfk
 
10.02.14
13:22
(0) А что до пятницы не дотерпел?
11 work92
 
10.02.14
13:23
Мне нужно
От первого числа отнять второе число  и получить Результат  12 (а не -32)
12 Ёпрст
 
10.02.14
13:25
(11) как то плохо у тебя с арифметикой
10-22 = -12..

Жаль, но вот так просто, ты 12 ну никакак не получишь.
13 Wobland
 
10.02.14
13:26
(11) только две записи в дбфке?
14 work92
 
10.02.14
13:26
Суть чтобы от первого числа отнять второе число
15 Ёпрст
 
10.02.14
13:26
Ну и попутно вопрос еще к вам:

Если в табличке будет не 2 строки, а скажем, три или сто, двести ?
Что из чего должно складываться/вычитаться у вас ?
16 work92
 
10.02.14
13:29
Должен вычесть поле СЧ20.ОПЛПООКЛ(записей будет от 60)
17 catena
 
10.02.14
13:30
(16)Откуда вычесть?
18 work92
 
10.02.14
13:31
Ёпрст может подскажете решение
19 work92
 
10.02.14
13:31
catena

Структура ДБФ

NOM     ОПЛПООКЛ
1               10
2               22
20 Ёпрст
 
10.02.14
13:32
(18) на (17) ответь, девушка вон тоже хочет в викторине поучаствовать: "угадай, что нужно аутору на самом деле!"
21 catena
 
10.02.14
13:32
(19)И? Четные от нечетных отнимать будем?
22 Wobland
 
10.02.14
13:33
(18) Ёпрст может. но только решение, а не вопрос
23 Ёпрст
 
10.02.14
13:33
(19) давай усложним пример:

Структура ДБФ

NOM     ОПЛПООКЛ
1               10
2               22
3               1
4               2
5               3

чего на выходе должно быть, а ?
24 Ёпрст
 
10.02.14
13:35
(21) думаешь, чёт и нечет уже прошли в школе?
25 work92
 
10.02.14
13:35
10-22-1-2-3 нужно получить  результат вычитания всего поля (ОПЛПООКЛ)
26 catena
 
10.02.14
13:35
(24)Не знаю, смахивает на примерчики по IQ "продолжи ряд" :)
27 Fish
 
10.02.14
13:36
(25) Так сколько должно получиться?
28 work92
 
10.02.14
13:37
Мне нужно получить  результат вычитания всего поля (ОПЛПООКЛ)
29 Wobland
 
10.02.14
13:37
(25) вычитание довольно несимметрично. давай лучше складывать
30 Fish
 
10.02.14
13:38
(28) Так какой должен быть результат? или ты сам посчитать не можешь?
31 catena
 
10.02.14
13:41
(28)Вычитание вроде бинарная операция. Какой второй аргумент?
32 Ёпрст
 
10.02.14
13:41
чума


   СЧ20.Следующая();
   СЧ20.Первая();
   ИТОПЛПООКЛ=СЧ20.ОПЛПООКЛ;
   СЧ20.Следующая();
   Пока СЧ20.ВКонце()=0 Цикл  
         ИТОПЛПООКЛ=ИТОПЛПООКЛ-СЧ20.ОПЛПООКЛ;
         СЧ20.Следующая();
  Конеццикла;
33 work92
 
10.02.14
13:43
СП
34 catena
 
10.02.14
13:43
(32)А могли бы до ста дотянуть
35 Ёпрст
 
10.02.14
13:43
>>>Мне нужно получить  результат вычитания всего поля (ОПЛПООКЛ)

круто, еще бы знать, что вы под эти подразумеваете
36 Ёпрст
 
10.02.14
13:44
(34) погоди, ща скажет, что результат его не устраивает, ибо не подходит под "вычитание всего поля" :)
37 work92
 
10.02.14
13:44
Синтаксических ошибок не обнаружено!
ИТОПЛПООКЛ=ИТОПЛПООКЛ-СЧ20.ОПЛПООКЛ;
{Обработка.новый2.Форма.Модуль(15)}: Операция вычитания не определена для строковых величин
38 catena
 
10.02.14
13:44
(36)Или будет не с тем знаком...
39 Wobland
 
10.02.14
13:45
(37) а вот и ДБФку подменили
40 Ёпрст
 
10.02.14
13:46
(37) :)
41 Fish
 
10.02.14
13:46
(38) Знак - это ещё полбеды. Я так и не понял, как имея 2 числа: 10 и 22, получить 10 вычитанием. Цитата из (0):
"Выводит итог -32
А должен 10 "
42 Ёпрст
 
10.02.14
13:47
СЧ20.Следующая();
   СЧ20.Первая();
   ИТОПЛПООКЛ=0+СЧ20.ОПЛПООКЛ;
43 catena
 
10.02.14
13:47
А 92 год - это уже не школа, это больше на последний курс тянет.
44 Wobland
 
10.02.14
13:48
(43) это зависит от количества лет, проведённых "на втором годе"
45 Wobland
 
10.02.14
13:49
эх, самолично держал в руках диплом о верхнем образовании: поступил в 1984м, закончил в 1996м
46 catena
 
10.02.14
13:49
(44)Разве сейчас оставляют на второй год?
47 trad
 
10.02.14
13:50
(41) как-как 22-10-(22-10-10) :)))
48 Mikeware
 
10.02.14
13:51
(26) ...и IQ топикстартера  вполне закономерно получается отрицательным :-)
49 Wobland
 
10.02.14
13:51
(46) не наю. впрочем, ущербность мышления некоторых товарищей отношу на гуманитарность головного мозга. здесь, похоже, тот же случай
50 Wobland
 
10.02.14
13:53
(48) это значит, в 92м году где-то родился гений, раз природа задолжала ;)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший