Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / найти по числу / 16 сообщений из 16, страница 1 из 1
23.03.2009, 17:31
    #35886395
Liosha_nove4ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
подскажите как сделать чтобы я смог найти сотрудников по числу, всё работает, по службе, предприятию, итд итп в гриде показывает, а вот по числу не получается. Надо ввести число в текст бокс и чтоб результаты появились в гриде

a='usl_do'
b='bd_pr'
c='sprav'
e='stprof'
f='usl_ol'
ff='usl_mp'

IF thisform.combo2.Value='санатории'
tip=1
IF thisform.combo3.Value='служба'
Serviciu = 'ppp'

IF thisform.combo4.Value = 'число'
var1 = '&a->datr = thisform.text2.Value'
var2 = '&a->datr > { . . }'
ELSE
IF thisform.combo4.Value = 'семестр'
var1 = '&a->datr >= thisform.text2.Value'
var2 = '&a->datr <= thisform.text3.Value'
ELSE
IF thisform.combo4.Value = 'все'
var1 = '&a->datr > { . . }'
var2 = '&a->datr > { . . }'



SELECT 0
USE &a
SELECT 0
USE &b
SELECT 0
USE &c
SELECT 0
USE &e

SELECT &b->name;
, &a->tab_nom;
, &e->cpodl;
, &a->summa;
, &a->datv;
, &a->cena;
, &a->kol;
, &a->summ;
, &a->datr;
, &c->name;
, &c->cod;
FROM data1!&c INNER JOIN data1!&a;
INNER JOIN data1!&b;
INNER JOIN data1!&e;
ON &b->bdp = &e->bdp;
ON &a->tab_nom = &b->tab_nom;
ON &c->nom = &a->cods;
WHERE &c->cod = tip AND &a->bdp = ppp AND &var1 = .T. AND &var2 = .T. ;
ORDER BY &b->name;
INTO CURSOR serv
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF

thisform.grid2.Recordsource='serv'
thisform.grid2.Visible=.t.
thisform.grid2.Refresh
...
Рейтинг: 0 / 0
23.03.2009, 17:34
    #35886401
найти по числу
Liosha_nove4ok,
опять этот ужас с макроподстановкой...
...
Рейтинг: 0 / 0
23.03.2009, 17:36
    #35886411
Liosha_nove4ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
проходящий.,

объясни пожалуйста что за ужас? я с фоксом не давно работаю, но всё же работает... мне щп просто надо сделать чтобы смог искать по числу
...
Рейтинг: 0 / 0
23.03.2009, 17:45
    #35886439
найти по числу
Liosha_nove4okпроходящий.,

объясни пожалуйста что за ужас? я с фоксом не давно работаю, но всё же работает... мне щп просто надо сделать чтобы смог искать по числу
Это сплошные &a, &b, &c, &var. Это даже знающим людям трудно понять, не говоря уже о новичках.
...
Рейтинг: 0 / 0
23.03.2009, 17:49
    #35886454
Liosha_nove4ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
проходящий.,

ладно понел, исправлюсь, только подскажите как этот поиск сделать, а то пишу дату и результат ноль
...
Рейтинг: 0 / 0
23.03.2009, 17:57
    #35886491
найти по числу
Liosha_nove4okподскажите как сделать чтобы я смог найти сотрудников по числу,
По числу - это по дате чтоль? Интересная терминология...
...
Рейтинг: 0 / 0
23.03.2009, 17:58
    #35886494
найти по числу
Liosha_nove4okпроходящий.,

ладно понел, исправлюсь, только подскажите как этот поиск сделать, а то пишу дату и результат нольПишешь куда?
...
Рейтинг: 0 / 0
23.03.2009, 18:01
    #35886504
Liosha_nove4ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
проходящий.,

дата, число. всмысле 21.03.2009

пишу дату в текст бокс а в гриде должны появится сотрудники с такой датой
...
Рейтинг: 0 / 0
23.03.2009, 18:24
    #35886569
найти по числу
Liosha_nove4ok,
вот как примерно это должно выглядеть. Проверить работоспособность не могу за отсутствием исходных данных.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
*a='usl_do'
*b='bd_pr'
*c='sprav'
*e='stprof'
*f='usl_ol'
*ff='usl_mp'

With Thisform
  If .combo2.Value='санатории'
    tip= 1 
    If .combo3.Value='служба'
      Serviciu = 'ppp'
  
      If .combo4.Value = 'число'
        var1 = 'usl_do->datr = thisform.text2.Value'
        var2 = 'usl_do->datr > {}'
      Else
        If .combo4.Value = 'семестр'
          var1 = 'usl_do->datr >= thisform.text2.Value'
          var2 = 'usl_do->datr <= thisform.text3.Value'
        Else
          If .combo4.Value = 'все'
            var1 = 'usl_do->datr > {}'
            var2 = 'usl_do->datr > {}' 
  
            Use usl_do In  0 
            Use bd_pr In  0 
            Use sprav In  0 
            Use stprof In  0    

            Select bd_pr->Name;
              , usl_do->tab_nom;
              , stprof->cpodl;
              , usl_do->Summa;
              , usl_do->datv;
              , usl_do->cena;
              , usl_do->kol;
              , usl_do->Summ;
              , usl_do->datr;
              , sprav->Name;
              , sprav->cod;
              FROM data1!sprav INNER Join data1!usl_do;
              INNER Join data1!bd_pr;
              INNER Join data1!stprof;
              ON bd_pr->bdp = stprof->bdp;
              ON usl_do->tab_nom = bd_pr->tab_nom;
              ON sprav->nom = usl_do->cods;
              WHERE sprav->cod = tip And usl_do->bdp = ppp And &var1  And &var2 ;
              ORDER By bd_pr->Name;
              INTO Cursor Serv
          Endif
        Endif
      Endif
    Endif
  Endif
 
  .grid2.RecordSource='serv'
  .grid2.Visible=.T.
  .grid2.Refresh
EndWith 
...
Рейтинг: 0 / 0
23.03.2009, 19:42
    #35886686
Liosha_nove4ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
проходящий.,

спасибо большое
...
Рейтинг: 0 / 0
23.03.2009, 21:41
    #35886815
BMJ
BMJ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
проходящий.

Я понимаю что при селектах таблицы открываются автоматом, или я не прав? Вопрос в том- может USE убрать?
...
Рейтинг: 0 / 0
23.03.2009, 22:54
    #35886896
gepard45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
Судя по коду,самый короткий путь из Москвы в Питер, это через Владивосток. Ваш код это полный бред
...
Рейтинг: 0 / 0
23.03.2009, 23:21
    #35886930
Liosha_nove4ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
зачем же вы так, лучше подскажите как дана правильно
...
Рейтинг: 0 / 0
23.03.2009, 23:41
    #35886966
найти по числу
BMJпроходящий.

Я понимаю что при селектах таблицы открываются автоматом, или я не прав?Прав. Вопрос в том- может USE убрать?Зависит от выполняемых задач. Для опубликованного здесь кода можно и убрать.
...
Рейтинг: 0 / 0
24.03.2009, 00:03
    #35886988
&lt;&gt;
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
BMJ
Я понимаю что при селектах таблицы открываются автоматом, или я не прав? Вопрос в том- может USE убрать?

В VFP9, если она уже где-нибудь открыта, будет 'Access denied'.
...
Рейтинг: 0 / 0
24.03.2009, 08:58
    #35887170
Liosha_nove4ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти по числу
проходящий.Liosha_nove4ok,
вот как примерно это должно выглядеть. Проверить работоспособность не могу за отсутствием исходных данных.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
*a='usl_do'
*b='bd_pr'
*c='sprav'
*e='stprof'
*f='usl_ol'
*ff='usl_mp'

With Thisform
  If .combo2.Value='санатории'
    tip= 1 
    If .combo3.Value='служба'
      Serviciu = 'ppp'
  
      If .combo4.Value = 'число'
        var1 = 'usl_do->datr = thisform.text2.Value'
        var2 = 'usl_do->datr > {}'
      Else
        If .combo4.Value = 'семестр'
          var1 = 'usl_do->datr >= thisform.text2.Value'
          var2 = 'usl_do->datr <= thisform.text3.Value'
        Else
          If .combo4.Value = 'все'
            var1 = 'usl_do->datr > {}'
            var2 = 'usl_do->datr > {}' 
  
            Use usl_do In  0 
            Use bd_pr In  0 
            Use sprav In  0 
            Use stprof In  0    

            Select bd_pr->Name;
              , usl_do->tab_nom;
              , stprof->cpodl;
              , usl_do->Summa;
              , usl_do->datv;
              , usl_do->cena;
              , usl_do->kol;
              , usl_do->Summ;
              , usl_do->datr;
              , sprav->Name;
              , sprav->cod;
              FROM data1!sprav INNER Join data1!usl_do;
              INNER Join data1!bd_pr;
              INNER Join data1!stprof;
              ON bd_pr->bdp = stprof->bdp;
              ON usl_do->tab_nom = bd_pr->tab_nom;
              ON sprav->nom = usl_do->cods;
              WHERE sprav->cod = tip And usl_do->bdp = ppp And &var1  And &var2 ;
              ORDER By bd_pr->Name;
              INTO Cursor Serv
          Endif
        Endif
      Endif
    Endif
  Endif
 
  .grid2.RecordSource='serv'
  .grid2.Visible=.T.
  .grid2.Refresh
EndWith 


чтото не пашет
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / найти по числу / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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