powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Комьюнити против макроподстановк&..Продолжение
18 сообщений из 43, страница 2 из 2
Комьюнити против макроподстановк&..Продолжение
    #35087843
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимо авторта да, но задача показать как не делать мп в таких случаях, т.е. обращение к полям бд.

я для себя всегда знаю имена полей и
пишу без макроподстановок

если это класс унив-й, то наследую,
и меняю четко нужные места, приспосабливая класс
под конкр-ю стр-ру

если что-то должно тянуться,
то придумываю генер-ры с послед-й компиляцией
и хранением и вып-ем скомпил-го байт-кодат.е. в случае с полями дб обойти мп довольно сложно?
а где там в upsize искать то что надо - там наиспользована кучища классов. причем у этих классов есть еще и ParentCode. яфшоке :)
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35087952
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO... т.е. в случае с полями дб обойти мп довольно сложно?
а где там в upsize искать то что надо - там наиспользована кучища классов. причем у этих классов есть еще и ParentCode. яфшоке :)
Похоже ты пытаешься сваять библиотеку на все случаи жизни. Бесполезное занятие. 50% лишнего закодируешь, а того что написал через полгода окажется недостаточно. Тут почитай про создание собственных библиотек.
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35088103
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
а где там в upsize искать то что надо - там наиспользована кучища классов. причем у этих классов есть еще и ParentCode. яфшоке


а вот ты и попался ...,
такое вот оно ООП непонятное

а если станешь джедаем 3-го уровня, то
сразу все понятно станет

я ж те скока раз советовал - смотри в сторону ООП
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35088123
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор ParentCode
это пронаследованные классы

я тебе показывал как раз такой шаблон - заготовку

у которых оставлены пустые методы,
в которые как раз по-потребности и пишем код,
который у наследника отличается

или по опр-му
алг-му что-то делаем и в нужном месте
вып-ем код предка ....

ты-же написал, что букв много ...
учи - поймешь - станешь джедаем с бластером и красным мечем
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35088902
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно, пойду-ко я дальше в манежике своим пластмассавым FPD-рубанком махать да диривянным малатком-FormDisigner-ом стучать

программил-программил, оказалось что нифига-то я не умею и почти ничерта не понимаю...
ну шо остаёццо - на ждыдаеф зырить по телегу :)

ну а так как программа-то нужна, буду ея малевать уж как умею...

а так вижу выходит что в неокторых случаях обход мп означает канкретное усложнение программы.
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35088916
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 CTAC-KO
Ну не надо уж так бурно реагировать-то! :)
Ну Александр в обычной своей манере несколько сгустил краски и пример подобрал явно сложноватый. Ну так и ориентироваться же надо не по одному примеру, посмотри еще что-нибудь. Можно и продолжить оптимизацию твоих кодов. Потихоньку и откроется тебе истина. :)
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35088975
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 CTAC-KO

ну не сдаваться!
джедаем номер 1 хочешь стать???

очень хорошо, что обратил внимание на другой стиль программирования.

что-то меня на апсайз переглючило

вот это смотри
DO dataexplorer.app

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

подцепись
к БД и запусти там построитель запроса
(там самый примитивный)
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35089039
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не-не-не! Здаваццо я как раз и не собиралсо! Наоборот прогресс у мине на лице, так скать :) Вот недавно ишшо ну никаг ни мох врубаццо че это за классы такие, я самого явления не мог как-то понять.
Но ничего, форумчане, как всегда - помогли, за что им спасибо, и сегодня я уже свои малюю! И действительно - куда ж без классов-то?
Щас вот ишшо по ходу пытаюсь расчехлить че такое формсет и как мутят эти пошаговые формы. В частности в том же апсайзе - как они это замутили - нифига не понятно. Ну виден на форме пейждфрейм, на нем еще один из 10 страниц, как и шагоф. Но второй пф прорачный, не видать ни одной страницы, а как туды объекты мантулят? На ходу что-ли? Опять же, вроде как формсет, а че от него реально юзаеццо, еси фсе на пф постоено? Лан, буду расчехлять дальше...

Давайте действительно по теме продолжим дискуссию, в частности относительно МП в последнем конкретном примере. Т.к. у меня сложилось впечатление, что там без МП как в случае с фильтром... хотя немножко на evaluate() переписАл...
У меня еще в запасе только 1 пример осталсо - там построение меню, опять же ш через МП. хотя я его уже пересмотрел и удалось почти все МП заменить на (), но в одном месте - никак.
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35089177
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO...
Давайте действительно по теме продолжим дискуссию, в частности относительно МП в последнем конкретном примере. Т.к. у меня сложилось впечатление, что там без МП как в случае с фильтром... хотя немножко на evaluate() переписАл...
C выполнением программно сгенерированного запроса через макроподстановку согласен.
В остальном пример ущербный какой-то. Если ты довел логику программы до того что NULL на пусто надо заменить - это в первую очередь ошибка проектирования БД. Откуда NULL взялся в исходной таблице если он тебе не нужен?

Не нужен - добавь в запрос Where MyFiled is not NULL

Код: plaintext
SET NULLDISPLAY TO ''
и вместо NULL будет пустота в контролах отображаться.

про SET NULL почитай.

NULL обычно нужен, т.к. или он ожидается его обработка прописывается, или он случайно появляется - тогда ошибка происходит.

CTAC-KO... когда набрано 4 символа срабатывает код ...
Как 4 символа с NULL могут совпасть?

CTAC-KO... У меня еще в запасе только 1 пример осталсо - там построение меню, опять же ш через МП ...
Показывай
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35089366
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу .NULL.
у меня клиент-сервер, а сервер mysql. Поскольку mysql принципиально не поддерживает, например, пустых дат (вместо этого у него там какая-то дата появления юникса 70 года), а таковые мне необходимы, то у меня вместо этого приходит .NULL. (собственно так бд там и настроена) и такая же тема с другими полями. Я не хочу в каждом запросе исключать .NULL.(не говоря даже о том, что это весьма и весьма менингитно), я просто в попдпрограмме отработки запроса на mysql написал такое и доволен. Возможно, да и скорее всего, такая политика неверна, но она меня ОЧЕНЬ устраивает. Кроме того это в принципе приведено мною как пример работы с бд когда необходима МП, от которой пытаемся в этой теме избавиццо.
Предупредительный выстрел - про курсорадаптер я слышал и знаю что его неиспользование по-любэ приводит к тем менингитам, которые я имею, поскольку сам его работу пытаюсь обеспечить, (как сказал прошелмимо "ты скоро весь фокс перепишешь на фоксе же"), но не об этом здесь и сейчас речь. Про КА я спрошу отдельно еси не разберусь сам :)

про SET NULL почитаю, возможно поможет, но скорее нет, так как мне не только отображение нулоф мешает, но и потом их редактирование на формах - что будет если на форме текстбокс с датой, а с бд туда будет нулл мантулиццо? А так туда пойдет пустая дата (к примеру дата увольнения работающего не может не быть изначально пустой).
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35089369
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
CTAC-KO... когда набрано 4 символа срабатывает код ...
Как 4 символа с NULL могут совпасть? вот именно, а благодаря постобработке полученного с sql курсора в результате не будет тсрок с нуллами
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35091001
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это типа последний пример о котором я говорил. еду сканом по курсору. lcParentName - имя попапа
Код: plaintext
1.
2.
3.
4.
   lnBarId = CNTBAR(lcParentName) + 1 
   lcAction = RTRIM(curMenuBars.Command)
   DEFINE BAR lnBarId OF (lcParentName) PROMPT RTRIM(curMenuBars.Prompt) PICTURE RTRIM(curMenuBars.Icon) MESSAGE RTRIM(curMenuBars.Message)
   ON SELECTION BAR lnBarId OF (lcParentName) &lcAction
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35091470
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO Dima T
CTAC-KO... когда набрано 4 символа срабатывает код ...
Как 4 символа с NULL могут совпасть? вот именно, а благодаря постобработке полученного с sql курсора в результате не будет тсрок с нуллами Тогда по другому вопрос поставлю: Как 4 символа окажутся в пустой строке?

CTAC-KOэто типа последний пример о котором я говорил. еду сканом по курсору. lcParentName - имя попапа
Код: plaintext
1.
2.
3.
4.
   lnBarId = CNTBAR(lcParentName) + 1 
   lcAction = RTRIM(curMenuBars.Command)
   DEFINE BAR lnBarId OF (lcParentName) PROMPT RTRIM(curMenuBars.Prompt) PICTURE RTRIM(curMenuBars.Icon) MESSAGE RTRIM(curMenuBars.Message)
   ON SELECTION BAR lnBarId OF (lcParentName) &lcAction
Похоже научился макроподстановками пользоваться.

Никто не утверждает что макроподстановками совсем не надо пользоваться, они иногда полезны, когда выбор - или написать кучу кода или пару строк с макроподстановкой.
Основной недостаток - сложно ошибки искать и код плохо читаемый становится
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35092898
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну если и будет пустая строка то она отфильтруеццо тем самым фильтром на 4 этих символа, хотя реально именно в этой бд нуллоф быть не должно, т.к. в нее вставляюццо только непустые значения
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35102716
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вот тут юзаю какбы быбли0тегу libooo (на просторах инета надыбал) для работы с овпенофисом. дык вот. нашел я там пару юзаний мп, вот таких:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
FUNCTION OOoIsInstalled()
	LOCAL oServiceManager
	oServiceManager = .NULL.
	LOCAL cOldErrHandler
	cOldErrHandler = ON( "ERROR" )
	ON ERROR = DoNothing__ErrorHandler( ERROR(), MESSAGE(), LINENO(), SYS( 16 ), PROGRAM(), SYS( 2018 ) )
		oServiceManager = OOoGetServiceManager()
	ON ERROR &cOldErrHandler
	* If we could create a Service Manager,
	*  then OpenOffice.org must be installed.
	
	RETURN NOT ISNULL(oServiceManager)
ENDFUNC
по ходу там от нее никак не избавиццо?
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35102816
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO по ходу там от нее никак не избавиццо?
А TRY ... CATCH для чего придумали?
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35103670
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T CTAC-KO по ходу там от нее никак не избавиццо?
А TRY ... CATCH для чего придумали?блин, про такой ход конем я даже не подумал - код-то не мой...
ну это хорошо, а как вообще быть с другими ON-ами? возвращать мона тока через мп?
...
Рейтинг: 0 / 0
Комьюнити против макроподстановк&..Продолжение
    #35104519
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOну это хорошо, а как вообще быть с другими ON-ами? возвращать мона тока через мп? Один раз установить и больше не менять. В 99% случаев есть простые способы обхода. В 1% макроподстановка.

Менять ON`ы и SET`ы в процессе выполнения далеко не лучшее решение, также как и с мп из-за этого могут вылезать "паранормальные" явления на ровном месте.
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Комьюнити против макроподстановк&..Продолжение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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