powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / обновление
12 сообщений из 12, страница 1 из 1
обновление
    #35894140
Liosha_nove4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите сделать обновление данных с помощью кнопки , очень надо. Есть несколько БД в ДОСе:
- sprav.dbf – БД зарплата(sprav.prof = ‘*’ означает что человек член профсоюза),
- 24 таблицы с названием BD_.dbf (БД ОК3, Отдел Кадров),, BD1.dbf…. BD2.dbf …BD24.dbf – сотруднике (24 = число служб, в предприятии),
- BD0.dbf – сезонники, декретчики (БД ОК3, Отдел Кадров),
- BD99.dbf – сотрудники с кем был преостоновлен трудовой договор (БД ОК3, Отдел Кадров),
- ARH[год] – уволенные (БД ОК3, Отдел Кадров).

И, есть БД уже в вижуале, data1.bd_pr, вот в эту таблицу bd_pr.dbf нужно сделать обновления, из вышеуказанных, т.е. какие либо, изменения и новые записи.

Есть код в ДОСе, но я ни как не могу с ним разобраться, мне надо в вижуал. помогите с этим всем разобраться, я в этом еще не силён, но, на работе была поставлена задача и сроки поджимают, заранее спасибо



procedure OBNOVL
wait wind " Ждите ... " nowait
dimension masv[14,1]
close databases
use &p_dbf3.SPRAV order tag TAG2 in 4
select 2
use &p_dbf.BD-PR order tag TAG1
blank all
select 1
use &p_dbf.STPROF
scan && STPROF
psv = alltrim(Svz)
pbd = Bdp
for ii = 1 to len(psv) step 3
pod = val(substr(psv,ii,2))
wait wind "в "+alltrim(massp[pbd,1])+" передаются данные из "+str(pod,2) nowait
select 3
fal = p_dbf1 + "BD"+alltrim(str(pod,2))
use &fal order tag TAG1 && рабочая база
set relation to Tab_nom into D
scan for D.Prof = "*".or.inlist(Tab_nom,2629,1339,2631,28,2634,4901,1092,3278)
scatter to masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
kkd = 0
for kk = 1 to 4
ppol = "Mem"+str(kk,1)
kkd = kkd + iif(&ppol=space(30),0,1)
endfor
select 2
if seek(0) = .F.
append blank
endif
gather from masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
replace Bdp with pbd, Bd with pod, Kold with kkd
select 3
endscan

use &p_dbf1.BD0 order tag TAG1 && сезонники, декретчики
set relation to Tab_nom into D
scan for !("С" $ Vidn).and.Bd = pod.and.D.Prof = "*"
scatter to masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
kkd = 0
for kk = 1 to 4
ppol = "Mem"+str(kk,1)
kkd = kkd + iif(&ppol=space(30),0,1)
endfor
select 2
if seek(0) = .F.
append blank
endif
gather from masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
replace Bdp with pbd, Bd with pod, Kold with kkd
select 3
endscan

use &p_dbf1.BD99 order tag TAG1 && Приост.ТД
set relation to Tab_nom into D
scan for Bd = pod.and.D.Prof = "*"
scatter to masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
kkd = 0
for kk = 1 to 4
ppol = "Mem"+str(kk,1)
kkd = kkd + iif(&ppol=space(30),0,1)
endfor
select 2
if seek(0) = .F.
append blank
endif
gather from masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
replace Bdp with pbd, Bd with pod, Kold with kkd
select 3
endscan

ffal = p_arh + "ARH"+str(year(ddate),4) + ".dbf"
use &ffal
use &ffal order tag TAG1 && уволенные
set relation to Tab_nom into D
scan for Bd = pod.and.!inlist(Vidn,"С","Т","В")
scatter to masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
pdu = Datu
kkd = 0
for kk = 1 to 4
ppol = "Mem"+str(kk,1)
kkd = kkd + iif(&ppol=space(30),0,1)
endfor
select 2
if seek(0) = .F.
append blank
endif
gather from masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
replace Bdp with pbd, Bd with pod, Kold with kkd, Prim with "*, уволен с "+dtoc(pdu)
select 3
endscan
endfor
select 1
endscan
close databases
use INSTAL
goto 9
replace Way with dtoc(ddate)
p_dat = alltrim(Way)
defi bar 3 of PM1 prom " 2. Членов профсоюза ("+p_dat+")"
use &p_dbf.BD-PR
wait clear
return


...
Рейтинг: 0 / 0
обновление
    #35894145
Liosha_nove4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
procedure OBNOVL
wait wind " Ждите ... " nowait
dimension masv[14,1]
close databases
use &p_dbf3.SPRAV order tag TAG2 in 4
select 2
use &p_dbf.BD-PR order tag TAG1
blank all
select 1
use &p_dbf.STPROF
scan && STPROF
psv = alltrim(Svz)
pbd = Bdp
for ii = 1 to len(psv) step 3
pod = val(substr(psv,ii,2))
wait wind "в "+alltrim(massp[pbd,1])+" передаются данные из "+str(pod,2) nowait
select 3
fal = p_dbf1 + "BD"+alltrim(str(pod,2))
use &fal order tag TAG1 && рабочая база
set relation to Tab_nom into D
scan for D.Prof = "*".or.inlist(Tab_nom,2629,1339,2631,28,2634,4901,1092,3278)
scatter to masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
kkd = 0
for kk = 1 to 4
ppol = "Mem"+str(kk,1)
kkd = kkd + iif(&ppol=space(30),0,1)
endfor
select 2
if seek(0) = .F.
append blank
endif
gather from masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
replace Bdp with pbd, Bd with pod, Kold with kkd
select 3
endscan

use &p_dbf1.BD0 order tag TAG1 && сезонники, декретчики
set relation to Tab_nom into D
scan for !("С" $ Vidn).and.Bd = pod.and.D.Prof = "*"
scatter to masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
kkd = 0
for kk = 1 to 4
ppol = "Mem"+str(kk,1)
kkd = kkd + iif(&ppol=space(30),0,1)
endfor
select 2
if seek(0) = .F.
append blank
endif
gather from masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
replace Bdp with pbd, Bd with pod, Kold with kkd
select 3
endscan

use &p_dbf1.BD99 order tag TAG1 && Приост.ТД
set relation to Tab_nom into D
scan for Bd = pod.and.D.Prof = "*"
scatter to masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
kkd = 0
for kk = 1 to 4
ppol = "Mem"+str(kk,1)
kkd = kkd + iif(&ppol=space(30),0,1)
endfor
select 2
if seek(0) = .F.
append blank
endif
gather from masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
replace Bdp with pbd, Bd with pod, Kold with kkd
select 3
endscan

ffal = p_arh + "ARH"+str(year(ddate),4) + ".dbf"
use &ffal
use &ffal order tag TAG1 && уволенные
set relation to Tab_nom into D
scan for Bd = pod.and.!inlist(Vidn,"С","Т","В")
scatter to masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
pdu = Datu
kkd = 0
for kk = 1 to 4
ppol = "Mem"+str(kk,1)
kkd = kkd + iif(&ppol=space(30),0,1)
endfor
select 2
if seek(0) = .F.
append blank
endif
gather from masv field Tab_nom,Podg,Name,Fio,Doljn,Rojd,Dat,Codl,Codf,Adres,Tel,Pas1,Pas2,Pas3
replace Bdp with pbd, Bd with pod, Kold with kkd, Prim with "*, уволен с "+dtoc(pdu)
select 3
endscan
endfor
select 1
endscan
close databases
use INSTAL
goto 9
replace Way with dtoc(ddate)
p_dat = alltrim(Way)
defi bar 3 of PM1 prom " 2. Членов профсоюза ("+p_dat+")"
use &p_dbf.BD-PR
wait clear
return
...
Рейтинг: 0 / 0
обновление
    #35894875
Liosha_nove4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Парни, что нет ни каких идей?
...
Рейтинг: 0 / 0
обновление
    #35894928
Liosha_nove4okПарни, что нет ни каких идей?А откуда они возьмутся, когдв все заляпано макроподстановкой и понять что-то в этом месиве крайне затруднительно.
...
Рейтинг: 0 / 0
обновление
    #35894938
Liosha_nove4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если не смотреть в месево? помогите пжалста...

Liosha_nove4okПомогите сделать обновление данных с помощью кнопки , очень надо. Есть несколько БД в ДОСе:
- sprav.dbf – БД зарплата(sprav.prof = ‘*’ означает что человек член профсоюза),
- 24 таблицы с названием BD_.dbf (БД ОК3, Отдел Кадров),, BD1.dbf…. BD2.dbf …BD24.dbf – сотруднике (24 = число служб, в предприятии),
- BD0.dbf – сезонники, декретчики (БД ОК3, Отдел Кадров),
- BD99.dbf – сотрудники с кем был преостоновлен трудовой договор (БД ОК3, Отдел Кадров),
- ARH[год] – уволенные (БД ОК3, Отдел Кадров).

И, есть БД уже в вижуале, data1.bd_pr, вот в эту таблицу bd_pr.dbf нужно сделать обновления, из вышеуказанных, т.е. какие либо, изменения и новые записи.

Есть код в ДОСе, но я ни как не могу с ним разобраться, мне надо в вижуал. помогите с этим всем разобраться, я в этом еще не силён, но, на работе была поставлена задача и сроки поджимают, заранее спасибо
...
Рейтинг: 0 / 0
обновление
    #35894959
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вопрос-то в чем? Что вы вкладываете в понятие "с этим всем разобраться"?
...
Рейтинг: 0 / 0
обновление
    #35894974
Liosha_nove4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите сделать обновление данных с помощью кнопки , очень надо. Есть несколько БД в ДОСе:
- sprav.dbf – БД зарплата(sprav.prof = ‘*’ означает что человек член профсоюза),
- 24 таблицы с названием BD_.dbf (БД ОК3, Отдел Кадров),, BD1.dbf…. BD2.dbf …BD24.dbf – сотруднике (24 = число служб, в предприятии),
- BD0.dbf – сезонники, декретчики (БД ОК3, Отдел Кадров),
- BD99.dbf – сотрудники с кем был преостоновлен трудовой договор (БД ОК3, Отдел Кадров),
- ARH[год] – уволенные (БД ОК3, Отдел Кадров).

И, есть БД уже в вижуале, data1.bd_pr, вот в эту таблицу bd_pr.dbf нужно сделать обновления, из вышеуказанных, т.е. какие либо, изменения и новые записи.



я же уже написал не смотреть в сод, прога в досе была сделана до меня, и я с кодом не могу разоюратся что был написан до меня, много макроподстановки и не понимаю что и от куда берётся...
...
Рейтинг: 0 / 0
обновление
    #35895019
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код у тебя есть. Запускай его под VFP, смотри где вылазят ошибки-последовательно с ними разбирайся. Ничего сложного. Нудно только.
...
Рейтинг: 0 / 0
обновление
    #35895081
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ посмотреть на sql команду insert

Код: plaintext
1.
2.
3.
4.
insert into <куда>  (<перечень полей>)
    select <перечень полей>
           from <табличка>
           where <условие ограничения отбора>
...
Рейтинг: 0 / 0
обновление
    #35895202
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я не понял, вы предлагаете нам поработать вместо HELP? Описывать словами что делает каждая команда в отдельности?

Если вы думаете, что существует некий универсальный код по перекачке данных из одного хранилища в другое, то вынужден вас разочаровать. Такого в природе не существует. В силу разных причин.

А это значит, что максимум, что вам могут посоветовать - это обратить внимание на некоторые команды и функции. Тот же Insert-SQL, например. Но это и все.

Чтобы сказать что-то более определенное надо очень глубоко и плотно влезать в конкретную задачу. Изучать структуру исходных данных, конечных данных, правил преобразований одного в другое.

Собственно, по сути, вы спросили как мне переложить бумаги из одной папки в другую. Ну, что на это можно ответить? Руками! А как еще?
...
Рейтинг: 0 / 0
обновление
    #35895222
Liosha_nove4ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ох... как же трудно понять сытого, когда ты голоден.. ладно парни, буду лопатить код и переводить эти грёбаные макропостановки, спасибо...
...
Рейтинг: 0 / 0
обновление
    #35896540
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Liosha_nove4okОх... как же трудно понять сытого, когда ты голоден.. ладно парни, буду лопатить код и переводить эти грёбаные макропостановки, спасибо...

А вы вы как думали ?
Сытый становится сытым, когда он что-то полопатит руками (и головой).
В показанном здесь коде нет ничего необычного для языка VFP. Ну, громоздко, процедурно, но работать должно. Вам надо самостоятельно разобраться, что делает каждая таблица, какова их структура и теги, для чего нужен каждый массив, откуда и куда что надо перекачать. Что означают загадочные &p_dbf.STPROF и массив massp. Только я вас умоляю, не надо здесь все это подробно рассказывать, вы это должны сами через себя пропустить.
И не надо шарахаться от "БД в ДОС". Базы как базы. Не думайте, что перейдя в VFP вы попадете в рай :)

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


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