|
|
|
Помогие пожалуйста!!!
|
|||
|---|---|---|---|
|
#18+
В программе происходит сверка базы данных по определенному полю и выгрузка подходящих данный в реестр через дополнителью базу данных. В исходящем файле число строк множется на 100. Вижу что формируется две базы. одна с уникальным именем другая "дополнительная". В дополнительной УЖЕ данные помноженные на 100. Незнаю в чем проблема :( не могу понять. Помогите пожалуйста! (FOxPro 2.6) Привожу текст программы: m.LookDate = TODAYS-1 m.LookDateEND = TODAYS store .T. to cstru do whil .T. @ 1, 1 SAY "Укажите начальную дату" GET m.LookDate READ @ 2, 1 SAY "Укажите конечную дату " GET m.LookDateEND READ if m.LookDate>m.LookDateEND WAIT WINDOW 'Ошибка!Начальная дата больше конечной 'nowa else exit endif enddo RELEASE WINDOW WhatDate SET CURSOR OFF SELECT 1 USE FILIALS alias filials store alltrim(FILIALS.MAILPATH5) to out GO TOP do while not eof() m.fname = alltrim(FILIALS.PATH)+"KJ.DBF" select 0 IF USED('kj') SELECT kj ENDIF use USE (m.fname) IN 0 SELECT kj store filials.fil to fil WAIT WINDOW 'Идет сортировка данных по '+filials.name nowa select 2 select ALL fdats(kj.dpl,.F.) AS dpl,; fil as fil,; kj.kpl,; kj.fio as fio,; kj.adr as adr ,; fpack(kj.sum,7,2,.f.) AS SUM,; padl(alltri(kj.lc),6,'0') as lc; From kj,vplat; WHERE kop="Q" and fdats(kj.dpl,.F.) >= m.LookDate and fdats(kj.dpl,.F.) <= m.LookDateEND and ; KODPlat=kj.kpl and; not kj.storno; into dbf tempz3 if cstru copy structure to &unikname select 17 use &unikname store .f. to cstru endif select 17 append from tempz3 select filials skip enddo select 17 go top store out + substr(dt,1,2)+substr(dt,4,2)+substr(dt,9,2)+'.txt' to namfilda set textmerge on to &namfilda noshow store 1 to kol do while not eof() \<<kol>>;<<lc>>;<<alltrim(fio)>>;<<alltrim(adr)>>;<<sum>> kol=kol+1 skip enddo set textmerge to wait window "Выгружен файл "+namfilda+chr(10)+chr(13) if file (unikname) pdd ="! del "+unikname &pdd endif return ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2008, 15:11 |
|
||
|
Помогие пожалуйста!!!
|
|||
|---|---|---|---|
|
#18+
NiaraВ программе происходит сверка базы данных по определенному полю и выгрузка подходящих данный в реестр через дополнителью базу данных. В исходящем файле число строк множется на 100. Вижу что формируется две базы. одна с уникальным именем другая "дополнительная". В дополнительной УЖЕ данные помноженные на 100. Незнаю в чем проблема :( не могу понять. Помогите пожалуйста! (FOxPro 2.6) ... Проблема в фрагменте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. В общем, надо быть внимательнее... Всего! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2008, 15:46 |
|
||
|
Помогие пожалуйста!!!
|
|||
|---|---|---|---|
|
#18+
Хм. Интересный кусок: IF USED('kj') SELECT kj ENDIF use USE (m.fname) IN 0 SELECT kj Если я его правильно понял, то в m.fname - таблица с именем "kj" и таблицы с одинаковым именем ("kj") лежат в разных папках, а переменная "m.fname" содержит полный путь до этого файла. В этом случае можно сначала определить может это таже таблица и тратить время на перереоткрытие не требуется: IF !(USED('kj') or dbf('kj')=upper(m.fname)) USE (m.fname) IN select('kj') alias kj ENDIF SELECT kj + раз уж идет цикл по условию !eof() - есть scan ... endscan + рациональнее сначала пройти по одной фирме, потом по другой (опять таки время на переоткрытие файла) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2008, 17:03 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35391555&tid=1587625]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 328ms |

| 0 / 0 |
