Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с таблицами / 5 сообщений из 5, страница 1 из 1
02.10.2020, 08:48
    #40004749
ularsoft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицами
Здр-те!

Хочу получить количество строк и сумму в таблице со следующими параметрами:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
***
SELECT * from Tempvo WHERE t1_n5<>0 AND T1_kodv='392' INTO CURSOR 'temp'
IF NOT EOF()
  SCAN
    SEEK temp.T1_kodv IN Cursvl
CALCULATE cnt(), sum(t1_n5) TO cn2,sm2 FOR T1_kodv='392' AND t1_n5<>0
cn22=cn2
sm22=sm2*Cursvl.kv_curs/10
  ENDSCAN 
ENDIF 
***


Получается таблица temp пустая, соответственно программа ругается "Variable 'cn22' is not found". Что можно сделать, чтобы cn22 был 0, если таблица пустая?
...
Рейтинг: 0 / 0
02.10.2020, 09:07
    #40004764
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицами
ularsoft
Здр-те!

Хочу получить количество строк и сумму в таблице со следующими параметрами:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
***
SELECT * from Tempvo WHERE t1_n5<>0 AND T1_kodv='392' INTO CURSOR 'temp'
IF NOT EOF()
  SCAN
    SEEK temp.T1_kodv IN Cursvl
CALCULATE cnt(), sum(t1_n5) TO cn2,sm2 FOR T1_kodv='392' AND t1_n5<>0
cn22=cn2
sm22=sm2*Cursvl.kv_curs/10
  ENDSCAN 
ENDIF 
***


Получается таблица temp пустая, соответственно программа ругается "Variable 'cn22' is not found". Что можно сделать, чтобы cn22 был 0, если таблица пустая?
1. Проинициализировать её нулём до Scan.
2. Мне кажется, что код несколько грузноват и ресурсоёмок, в нем куча не нужных и перестраховочных действий.
Возможно, что его можно заменить чем-нить подобным:
Код: sql
1.
2.
3.
4.
5.
Dimension laTemp[2]
Store 0 to laTemp, cn22
Select Cnt(), Sum(t1_n5) from Tempvo Where t1_n5<>0 And T1_kodv='392' Into array laTemp
cn22 = laTemp[1]
sm22 = laTemp[1]*Cursvl.kv_curs/10
...
Рейтинг: 0 / 0
02.10.2020, 12:43
    #40004845
ularsoft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицами
Sergey Sizov
1. Проинициализировать её нулём до Scan.
2. Мне кажется, что код несколько грузноват и ресурсоёмок, в нем куча не нужных и перестраховочных действий.
Возможно, что его можно заменить чем-нить подобным:
Код: sql
1.
2.
3.
4.
5.
Dimension laTemp[2]
Store 0 to laTemp, cn22
Select Cnt(), Sum(t1_n5) from Tempvo Where t1_n5<>0 And T1_kodv='392' Into array laTemp
cn22 = laTemp[1]
sm22 = laTemp[1]*Cursvl.kv_curs/10

В том то и дело, что в таблице ничего нету. И программа не находит cn22. Что делать?
...
Рейтинг: 0 / 0
02.10.2020, 12:47
    #40004847
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицами
ularsoft
Sergey Sizov
1. Проинициализировать её нулём до Scan.
2. Мне кажется, что код несколько грузноват и ресурсоёмок, в нем куча не нужных и перестраховочных действий.
Возможно, что его можно заменить чем-нить подобным:
Код: sql
1.
2.
3.
4.
5.
Dimension laTemp[2]
Store 0 to laTemp, cn22
Select Cnt(), Sum(t1_n5) from Tempvo Where t1_n5<>0 And T1_kodv='392' Into array laTemp
cn22 = laTemp[1]
sm22 = laTemp[1]*Cursvl.kv_curs/10

В том то и дело, что в таблице ничего нету. И программа не находит cn22. Что делать?
Я написал что делать. И даже в приведенном примере замены сие действие продемонстрировано. Какая буква в моём тексте не понятна?
...
Рейтинг: 0 / 0
02.10.2020, 13:02
    #40004854
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицами
ularsoft
В том то и дело, что в таблице ничего нету. И программа не находит cn22. Что делать?

Ноль присвой
Код: sql
1.
2.
3.
4.
5.
IF NOT EOF()
...
ELSE
  cn22=0
ENDIF 
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с таблицами / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]