powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с таблицами
5 сообщений из 5, страница 1 из 1
Работа с таблицами
    #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
Работа с таблицами
    #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
Работа с таблицами
    #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
Работа с таблицами
    #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
Работа с таблицами
    #40004854
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft
В том то и дело, что в таблице ничего нету. И программа не находит cn22. Что делать?

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


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