:: Visual Foxpro, Foxpro for DOS
Re: Научите работать с Data Environment
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
lulgu
Но на форуме свою точку зрения все-таки надо уметь хоть как-то аргументировать.
Согласна, точка зрения должна быть аргументирована. Я не использую ДЕ поскольку не работаю по сути с фоксовой базой. У меня на поддержке оракловая база, к которой просто формируются динамические запросы и результат в виде курсоров на клиента хватает для реализаций поставленной задачи, поэтому именно для себя в данной ситуации не вижу смысла в ДЕ. В своё время piva по этому поводу и высказывался, что для такой задачи нет необходимости в ДЕ. Но у ТС другая задача, и тут надо думать именно под конкретную задачу как и писали мастодонты в 2002 году. Хотя я сомневаюсь, что ХелРайсер сейчас так же уверенно и четко проголосует за ДЕ. В 2002 году когда была эта тема ему было по 20 с хвостиком.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Божья_коровка
lulgu
Но на форуме свою точку зрения все-таки надо уметь хоть как-то аргументировать.
Согласна, точка зрения должна быть аргументирована. Я не использую ДЕ поскольку не работаю по сути с фоксовой базой. У меня на поддержке оракловая база, к которой просто формируются динамические запросы и результат в виде курсоров на клиента хватает для реализаций поставленной задачи, поэтому именно для себя в данной ситуации не вижу смысла в ДЕ. В своё время piva по этому поводу и высказывался, что для такой задачи нет необходимости в ДЕ. Но у ТС другая задача, и тут надо думать именно под конкретную задачу как и писали мастодонты в 2002 году. Хотя я сомневаюсь, что ХелРайсер сейчас так же уверенно и четко проголосует за ДЕ. В 2002 году когда была эта тема ему было по 20 с хвостиком.

DE ведь не предмет для гадания или голосования.
Судя по теме, здесь с DE имел дело только Криспа.
Но этого мало, DE это все-таки контейнер для объектов.
Ratings: 1 negative/0 positive
Re: Научите работать с Data Environment
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Crispy
Вообще так по мелочам - много чего, если бы немного доработать - могло бы сегодня сделать фокспро едва ли не самым удобным средством разработки. Вот скажем недавно взялся перелопатить один сам-для-себя проектик на лазарусе, и как же оно раздражало со всеми этими паскальными сложностями визуализации объектов, которые на фоксе, как бы оно странно ни прозвучало, были реализованы намного удобнее! Несмотря на всю уже моральную устарелость собственно VFP9. Т.е. как раз по мыслям - в древнем как бы по своей сути фоксе разные задумки были намного более удобные для программиста. Нежели во всех этих "современных" иных средах.
Как и сама структура языка - изначально гениальная. В отличие от всех прочих. Причем, самое удивительное - даже в отношении набрасывания визуального интерфейса!
Еще бы ему добавить чуть больше встроенных возможностей по более углубленной работе с графикой, вообще было бы просто таки супер.
Т.е. фокспро - намного более высокого уровня язык получается. При достаточной все еще компактности. Что для многих нужд - намного более удобно. Нежели закапываться в мелочах, как в сишных и прочих моделях именно с визуальным интерфейсом.

Вернемся от комплексующих художников в VFP.

Простота фокса обманчива, и сыграла с ним злую шутку.
Чуть выше Коровка применила интересное сравнение - мастодонты.
Беда VFP в том, что он изначально был заточен не на мастодонтов, а на удобства программистов среднего пошиба, так и не вылезших из штанишек FPD - на форуме это легко просматривается.
Например, если бы разработчики сразу бы убрали многое типа USE или APEND BLANK то развитие фокса могло бы пойти по пути создания полноценной СУБД.
А визуализация FPD в комплекте с ООП это полностью заслуга MS, внедривших в примитивный древний фокс свои наработки.
С графикой непонятно, чем GDIP не устраивает.
Ratings: 2 negative/0 positive
Re: Научите работать с Data Environment
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
lulgu
Вернемся от комплексующих художников в VFP.
Талантливая способность превращать любой топик в помойку



Исправлено 1 раз(а). Последнее : Аспид, 20.09.20 13:36
Ratings: 0 negative/3 positive
Re: Научите работать с Data Environment
sphinx

Сообщений: 31180
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Коллеги, давайте уважительно относиться друг к другу, даже если не согласны со способами программирования!
В любом случае побеждает программирование, реализаций задач и/или своих идей.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Аспид
lulgu
Вернемся от комплексующих художников в VFP.
Талантливая способность превращать любой топик в помойку

Специализация у нее такая. Что-то с психологией сетевого общения видимо связано (точнее с троллингом скорее всего). Вот и проводит эксперименты "на кошечках", может для какой-то своей работы.
А по чисто проф.моментам - кто-то явно консультирует. ;)
Борман в теме в корзине давал ссылки на ее профиль в инстаграм, так тот профиль после этого вдруг был сразу закрыт. Совпадение видимо. ;)


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 1 раз(а). Последнее : Crispy, 21.09.20 10:52
Ratings: 0 negative/1 positive
Re: Научите работать с Data Environment
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Совсем уж мастодонты одичали ...

Цитата:
Траву кушаем, век на щавеле
Скисли душами, опрыщавели.
В. Высоцкий.

ЗЫ. Ну хоть бы один по делу хоть что-нибудь брякнул ...



Исправлено 1 раз(а). Последнее : lulgu, 21.09.20 12:50
Ratings: 1 negative/0 positive
Re: Научите работать с Data Environment
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Crispy
А по чисто проф.моментам - кто-то явно консультирует.
Да и не обязательно. При умелом использовании поиска, в инете. Дилетант, для слабо разбирающихся, может выглядеть вполне ничего.
А кто понимает, видит сплошную чушь.
Ну и вечные попытки вывести из себя собеседников)))
Иногда заюавно)
Ratings: 0 negative/1 positive
Re: Научите работать с Data Environment
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Аспид
Кардинальный совет, отказаться от Dataenvironment.
Насовсем, навсегда. Забыть о его существовании.
1. Сделайте класс доступа к данным.
Возможно сразу не ясно. Сделайте процедуру. Если постараться сделать ее максимально абстрактной, то вот и базовый класс.
Да бог с ним, это можно и позже, а сначала, пищите процедуры. А потом ищите в них общие черты, сигнатуру, заготовка для будущего класса.
И там, мне кажется вам ясно как переключаться между БД.
2. Исходя из первого ответа, второй напрашивается сам.
Вы делаете процедуру получения данных, структура одинаковая, а откуда, можно передать в параметре.

И забудьте про инструмент для домохозяек - Dataenvironment.

Сколько десятков-сотен процедур будет в твоем классе в более-менее серьезном проекте?
С Private-формами в какой сессии будет работать твой класс?
Ratings: 1 negative/0 positive
Re: Научите работать с Data Environment
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Crispy
Еще бы ему (фоксу) добавить чуть больше встроенных возможностей по более углубленной работе с графикой, вообще было бы просто таки супер.

Все-таки, повторно - чем тебе Gdip не угодил?
С классом Клепинина ты знаком, надеюсь?
Или, возможно, даже FoxCharts сумел освоить?



Исправлено 1 раз(а). Последнее : lulgu, 21.09.20 16:18
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Вернемся от мастодонтов (для нервных - выражение от Коровки) в VFP:

Вот еще когда разноголосье начало "хоронить" VFP.
forum.foxclub.ru

Кстати, там есть очень красивое изречение от ИК:
Цитата:
Без нормального каркаса? Постоянно кодировать одни и те-же рутинные операции? Кнопки навигации, сохранение данных, обработчики ошибок, прочие очень полезные классы? Нет уж увольте, я не машинистка чтоб перепечатывать одно и то-же по сути много раз и не VB-"профи" освоивший виртуозное владение Ctrl+C Ctrl+V как основной приём программирования
Странно, почему-то он полтора десятка лет делал прямо противоположное.

Так где-же каркас?



Исправлено 1 раз(а). Последнее : lulgu, 23.09.20 15:12
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
LUCIAN

Сообщений: 343
Откуда: Лида Беларусь
Дата регистрации: 25.03.2008
Божья_коровка
У меня на поддержке оракловая база, к которой просто формируются динамические запросы и результат в виде курсоров на клиента хватает для реализаций поставленной задачи, поэтому именно для себя в данной ситуации не вижу смысла в ДЕ.

Я тоже поддерживаю оракловую БД ,но ДЕ использую для курсорадаптеров.
Все курсорадаптеры в 50кб рисунок не поместились.

[attachment 33848 DE.GIF]

В ДЕ определяется соединение с БД:
[attachment 33849 DE1.GIF]

В курсорадаптерах свойство UseDeDataSource = .T.



Исправлено 1 раз(а). Последнее : LUCIAN, 23.09.20 16:39
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
LUCIAN
Я тоже поддерживаю оракловую БД ,но ДЕ использую для курсорадаптеров.
Все курсорадаптеры в 50кб рисунок не поместились.


Офигеть. И все эти и непоместившиеся CA используются в данной форме?
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
LUCIAN

Сообщений: 343
Откуда: Лида Беларусь
Дата регистрации: 25.03.2008
Taran
Офигеть. И все эти и непоместившиеся CA используются в данной форме?
Эта форма используется для формирования отчёта о приходе и расходе материалов и комплектующих поиздельно в цехах,учитывая план и нормы расхода.
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
А пооперацилнные трудовые нормативы на изделия есть? Или материалы не обрабатываются?
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
LUCIAN
Taran
Офигеть. И все эти и непоместившиеся CA используются в данной форме?
Эта форма используется для формирования отчёта о приходе и расходе материалов и комплектующих поиздельно в цехах,учитывая план и нормы расхода.
И все эти СА только для того чтобы сформировать один отчет? Он настолько страшный этот отчет о приходе и расходе материалов?

PS: Честно признаюсь стараюсь все отчеты по возможности формировать на сервере и на клиента просто в виде итогового результата получать данные. Иногда грешу 3-х этажными запросами, чтобы по меньше на клиента данных тащить для расчетов отчетов. Но у меня отчетность небольшая и не страшная.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 2 раз(а). Последнее : Божья_коровка, 23.09.20 19:03
Ratings: 0 negative/1 positive
Re: Научите работать с Data Environment
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Божья_коровка
PS: Честно признаюсь стараюсь все отчеты по возможности формировать на сервере и на клиента просто в виде итогового результата получать данные. Иногда грешу 3-х этажными запросами, чтобы по меньше на клиента данных тащить для расчетов отчетов. Но у меня отчетность небольшая и не страшная.

Но ведь это формирование отчета не программно, а практически вручную, вашими руками как продвинутого пользователя.
При сложной отчетности штат программистов будет сопоставим с числом пользователей.
Ratings: 2 negative/0 positive
Re: Научите работать с Data Environment
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
lulgu
Божья_коровка
PS: Честно признаюсь стараюсь все отчеты по возможности формировать на сервере и на клиента просто в виде итогового результата получать данные. Иногда грешу 3-х этажными запросами, чтобы по меньше на клиента данных тащить для расчетов отчетов. Но у меня отчетность небольшая и не страшная.

Но ведь это формирование отчета не программно, а практически вручную, вашими руками как продвинутого пользователя.
При сложной отчетности штат программистов будет сопоставим с числом пользователей.
Не поняла, что ты сказал. Какими такими руками продвинутого пользователя?


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: Научите работать с Data Environment
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Программист работает с программами для создания отчетов, в которых работают пользователи.
При необходимости вносит в них изменения и возвращается к своим делам (разумеется, если не аврал).
Вы же сами своими руками динамически сопровождаете отчеты, вручную формируя их на сервере, судя по вашему описанию.
При большой отчетности такое не проходит, отчеты формируют пользователи.
ЗЫ. Средняя система это несколько сот пользователей.



Исправлено 3 раз(а). Последнее : lulgu, 23.09.20 22:38
Ratings: 4 negative/0 positive
Re: Научите работать с Data Environment
LUCIAN

Сообщений: 343
Откуда: Лида Беларусь
Дата регистрации: 25.03.2008
Божья_коровка
Он настолько страшный этот отчет о приходе и расходе материалов?
PS: Честно признаюсь стараюсь все отчеты по возможности формировать на сервере и на клиента просто в виде итогового результата получать данные.:

CAD тоже формирует данные на сервере.Отчёт о котором я говорю не совсем тот о котором думает Божья_коровка.Пользователь (комплектовщик цеха) может получить несколько вариантов отчёта,исходя из того как некоторый материал по некоторой цене на какую продукцию и в каком кол-ве спишет придерживаясь норм расхода.
Для этого ему необходима таблица наличия материалов в цеху и соотв. нормативные спецификации материалов для пр-ва заданного кол-ва изделий.Для этого он нажимает
кнопку с таким кодом:
ThisForm.Gm1.VALID && установка параметров связанных с отчётн.месяцем
*формиование таблицы на сервере для CAD C_OSTC
LnReturn = SQLEXEC(THISFORM.DATAENVIRONMENT.DATASOURCE, [{CALL OTC_COSTDK_VYB}])
* Обновление CADа C_OSTC
THISFORM.DATAENVIRONMENT.C_OSTC.CURSORREFRESH
SELECT C_OSTc
GO TOP
* CAD C_OSTC обновляем в Grid
ThisForm.Pageframe1.Page1.Grdm1.refresh
ThisForm.Pageframe1.Page1.Command6.Visible = .T.
Свойство SelectCmd для CAD C_OSTC
SELECT id_tov, nmat, ed_izm, tmat, iedi, ost, k_per, ostx, id_mat_teh, ordf,
99999 ID_STR FROM otc_temp_costdk
UNION
SELECT 0 id_tov, RPAD (' ', 60) nmat, RPAD (' ', 30) ed_izm,
INITCAP (nmat) tmat, INITCAP (iedi) iedi, 0 ost, 1 k_per,
0 ostx, cmat id_mat_teh,
RPAD (LTRIM (INITCAP (nmat)), 120) ordf,99999 ID_STR
FROM (SELECT DISTINCT cmat, nmat, iedi
FROM otc_temp_limit
WHERE otc_temp_limit.scet = cx_p.get_scet
AND cmat NOT IN (SELECT id_mat_teh
FROM otc_temp_costdk))
ORDER BY 10;

Код процедуры OTC_COSTDK_VYB, красным выделено то, чтобы доказать что этот запрос делает определённый выбор согласно заранее заданным параметрам.

CREATE OR REPLACE PROCEDURE LIDA.OTC_COSTDK_VYB as
-- ВЫБОРКА ЛИМИТА СОГЛАСНО ПЛАНА
BEGIN
delete from otc_TEMP_COSTDK ;
commit ;
INSERT INTO otc_TEMP_COSTDK SELECT ostdk.id_tov, INITCAP (sp_tov.nmat) nmat,
sp_tov.ed_izm, INITCAP (tmat) tmat,
INITCAP (iedi) iedi, ostdk.ost,
DECODE (SIGN (NVL (sp_tov.k_per, 0)),
0, 1,
1, sp_tov.k_per
) k_per,
ostdk.ost
* DECODE (SIGN (NVL (sp_tov.k_per, 0)),
0, 1,
1, sp_tov.k_per
) ostx,
NVL (sp_tov.id_mat_teh, 0000) id_mat_teh,
RPAD (LTRIM (INITCAP (tmat) || INITCAP (sp_tov.nmat)),
120
) ordf
FROM (SELECT doks.id_tov, SUM (ostp.ost) ost
FROM (SELECT doks.id_str, SUM (ostp.ost) ost
FROM otc_ostd ostd INNER JOIN otc_ostp ostp
ON ostp.id_pri = ostd.id_pri
AND id_ost = cx_p.get_ost_id
INNER JOIN otc_doks doks
ON doks.id_str = ostd.id_pri
INNER JOIN otc_sp_tov sp_tov
ON sp_tov.id_tov = doks.id_tov
AND sp_tov.scet = cx_p.get_scet
GROUP BY doks.id_str
-- HAVING SUM (ostp.ost) > 0
UNION ALL
SELECT doks.id_str, SUM (ostp.ost) ost
FROM otc_doks doks INNER JOIN otc_dok dok
ON dok.id_dok = doks.id_dok
AND d_dok >= cx_p.get_otc_mes
AND d_dok < cx_p.get_otc_mesl
AND pol = cx_p.get_otp
INNER JOIN otc_sp_tov sp_tov
ON sp_tov.id_tov = doks.id_tov
AND sp_tov.scet = cx_p.get_scet
INNER JOIN otc_ostp ostp
ON ostp.id_pri = doks.id_str
GROUP BY doks.id_str ) OSTP
-- HAVING SUM (ostp.ost) > 0) ostp
INNER JOIN
otc_doks doks ON doks.id_str = ostp.id_str
GROUP BY doks.id_tov) ostdk
INNER JOIN
(SELECT sp.*, NVL (tex.nmat, RPAD (' ', 60)) tmat
FROM (SELECT id_tov, nmat, ed_izm, k_per,
id_mat_teh,nsi_sei.iedi
FROM otc_sp_tov INNER JOIN nsi_sei
ON nsi_sei.kedi = otc_sp_tov.kedip
WHERE scet = cx_p.get_scet) sp
LEFT JOIN
(SELECT nsi_mat_tex.*
FROM nsi_mat_tex
where ( nsi_mat_tex.sch * 100
+ nsi_mat_tex.ssch
) = cx_p.get_scet
) tex ON tex.cmat = sp.id_mat_teh
) sp_tov ON sp_tov.id_tov = ostdk.id_tov ;
COMMIT;
UPDATE otc_TEMP_COSTDK SET ordf = ' '||LTRIM(RTRIM(ordf)) WHERE id_mat_teh =999999901;
commit;
END;
/[color=Red][/color]
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 17 (Гостей: 17)

© 2000-2024 Fox Club 
Яндекс.Метрика