:: Visual Foxpro, Foxpro for DOS
Re: Как можно обойти ограничение в 26 параметров?
sphinx
Автор

Сообщений: 31189
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Igor Korolyov
Но задача не озвучена, что это за "оно" - неизвестно, автор доволен своим решением (скорее всего костылём, но какая разница) и никаких альтернатив не хочет...
Но задача не озвучена, что это за "оно" - неизвестно, автор доволен своим решением (скорее всего костылём, но какая разница) и никаких альтернатив не хочет...

Не очень доволен. А если читать внимательнее, то можно увидеть много слов, с которыми я СОГЛАСИЛСЯ. Но побеждает упрямство - вижу только то, что мне неудобно/противоречит.

Предложенные альтернативы не упрощают передачу.

Думал над тем, что все сложить в таблицу, проставить признаки принадлежности к конкретной форме, а потом забирать селектом и складывать сразу INTO ARRAY.. Кстати, это может и подойдет. Но я всячески стараюсь извне брать по-минимума, поэтому не использую навороченные OCX и другие внешние приблуды. EXE, INI, CFG...


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
sphinx
spinz
Вот тут не понял. Т.е. разные формы не могут напрямую обращаться к коллекции _SCREEN?
Если могут, то зачем им что-то предавать?Вот тут не понял. Т.е. разные формы не могут напрямую обращаться к коллекции _SCREEN?

Если могут, то зачем им что-то предавать?

Все объекты видят коллекцию _SCREEN. Но для формы Form1 нужно передать 3, 7, 11, 19 номер. То есть разработчик сам определяет множество в очередном наборе. Через заполнение массива/коллекции я знаю, но не хочу.

Ну так список передай, "3, 7, 11, 19 ", внутри формы разберешь этот список GETWORDCOUNT + GETWORDNUN ?
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
sphinx
Автор

Сообщений: 31189
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
of63
Ну так список передай, "3, 7, 11, 19 ", внутри формы разберешь этот список GETWORDCOUNT + GETWORDNUN ?Ну так список передай, "3, 7, 11, 19 ", внутри формы разберешь этот список GETWORDCOUNT + GETWORDNUN ?

Так про это я и писал в ПЕРВОМ сообщении. Думал, может как-то можно похитрее сделать. Да и ИК говорит, что это г-код.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Не говнокод. Это и есть "метаданные", (в форму A передавать список параметров "3, 7, 11, 19", а в форму B - "1, 2, 3"). Возможно что так некрасиво сморится, но бывают и некрасивые исходные алгоритмы, списочные (ну, или сам не понял бизнес-систему). Мало ли кто что сказал. Делаешь рабочее приложение, а там история рассудит, и ИК
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
sphinx
Автор

Сообщений: 31189
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
of63
Делаешь рабочее приложение, а там история рассудит, и ИК Делаешь рабочее приложение, а там история рассудит, и ИК

Игорь не рассудил, но диагноз мне поставил. Надо признать приятно, не всем дано. Вернее дано не только лишь всем, мало кто может это сделать.. ;)


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Да ладно, ИК все верно говорит, только с соленым словцом иногда. Тоже че-то припекает в жизни, видимо
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
sphinx
Автор

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


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
of63
Непонятно, что детали задачи (своего решения) так и остались непонятны на протяжении 5-ти страниц, и не мне одному. Тебе понятны?
Мне, честно говоря, совершенно не интересны "детали (своего) решения" - мне интересно что же это была за задача - какие это такие данные в свойствах SCREEN-а хранятся, что нужно в мета-функцию их передавать "скопом", да при том разными "наборами". И при том изначально указано было что они (данные эти) по сути одно и то же, т.к. потом в цикле будут в ОДНУ "рабочую" функцию передаваться (по очереди, видимо - не понятно ещё важен ли их порядок, т.е. сначала вызвать с param3 а потом с param7, а не наоборот).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Проблема прапорщика M/N решается с помощью ключей.

* Упрощенная схема (ключ/значение) ini-файла на примере:
FormMame1_Name_C 'name1'
FormMame1_Top_N '100'
FormMame1_Left_N '100'
****
FormMame2_Name_C 'name2'
FormMame2_Top_N '200'
FormMame2_Left_N '200'
****
ИмяОтчета1_Имя_C 'имя'
ИмяОтчета1_Дата_D 'дата'
****
* И немного упрощенная схема процедуры переноса:
FOR i = 1 TO MEMLINES(lcString)
lcStr = MLINE(lcString,i)
* удаление всего ненужного в строках
goCollection.ADD(GETWORDNUM(lcStr,2,' '),GETWORDNUM(lcStr,1,' '))
ENDFOR
* Получение элемента коллекции:
LPARAMETERS tcKey
RETURN goCollection.ITEM(tcKey)
Ratings: 2 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
завязывайте уже
тут же кругом дети


------------------
Мойте ноги, моя ноги вы моете и руки
Ratings: 0 negative/1 positive
Re: Как можно обойти ограничение в 26 параметров?
sphinx
Автор

Сообщений: 31189
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Да я ALINES() как-то больше люблю. Строку-то разобрать сложностей нет.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
sphinx
Автор

Сообщений: 31189
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
2Игорь

Да не парься.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
wow1970

Сообщений: 29
Дата регистрации: 06.12.2017
Добрый вечер!

Может не в тему выскажусь.
Лично я пришел к следующему БАНАЛЬНОМУ пониманию:

Работу с ДАННЫМИ надо СТАРАТЬСЯ решать исключительно при помощи 4 волшебных команд СКЛ (Селект, упдейт, делейт, инсерт).
Если их начинает не хватать и надо городить процедуры с параметрами по их обработке, то это МОЖЕТ свидетельствовать о том, что не хватает спец полей. В основном в справочниках.
Часто наблюдаю, как внутри кода программы начинают обрабатывать данные из таблицы в стиле:
If Inlist(code,1,5,10,100500) тото....
Бывает достаточно добавить логическое поле которое инкапсулирует в себе Inlist(code,1,5,10,100500). Это ж явно ОБЩЕЕ свойство.

А то справочник выглядит так: id, Name, а в коде по ID потом устраивают разборки.

Выносите логику в поля справочников или спец таблицы в которых может быть понятно как обрабатывать что-то по значениям нескольких справочников! Тогда это уже будет решаться на уровне WHERE, join.

Дополнительным бонусом является то, что управлять такими полями сможет пользователь.
И не надо будет дописывать, разыскивать, добавлять If/case в коде в случае если чего-то поменяется.
Снял/добавил пользователь птичку САМ и данные обрабатываются уже по другому сценарию.

Т.е. - интерфейс (на ООП!) отдельно, данные отдельно.



Исправлено 1 раз(а). Последнее : wow1970, 12.12.17 23:58
Ratings: 1 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Круто! Сам дошел?
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
wow1970

Сообщений: 29
Дата регистрации: 06.12.2017
А что так банально и общеизвестно получилось?
Это все в теории прописано.

И кстати вот не понимаю зачем нужны отдельные датасессии.



Исправлено 2 раз(а). Последнее : wow1970, 13.12.17 00:07
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
wow1970
на ООП!

А что, в VFP реально есть ООП?
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ООП? Это обычные рыбы старых разрабов, положенные в каноны? Вроде это просто куски прог, и подпрог, положенные на музыку

Доб. А пардон. ООП на фоксе позволило писать "прерывания" (события). (и это самое главное свойство VFP)



Исправлено 1 раз(а). Последнее : of63, 13.12.17 00:29
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
wow1970

Сообщений: 29
Дата регистрации: 06.12.2017
Есть ООП, его возможностей мне хватает. А что не устраивает Вас?

У меня ВСЕ контролы, контейнеры переделаны.

Начальный уровень - общевизуальный. Например все элементы управления ОДНООБРАЗНО реагируют когда над ними вязюкают мышей или они получают фокус. Пользователь это ценит и одобряет. Да и выглядит программа представительней.

Есть 2 способа эту подсветку реализовать.
1) контрол сам себя красит по событиях.
2) существует глобально видимый спец класс (колекция, форма, эмпту ....), в который активный контрол передает себя (ссылка обжект) и тогда уже этот класс издевается над подчиненным.

ООП прекрасно можно асоциировать например с отношениями/взаимодействиями в организации/армии.
Где рядовые - контролы, капитаны - контейнеры, есть самый главный генерал.
Генерал как правило стартовый класс от емпти. Он паблик и потому все его знают и "бояться".
Ratings: 0 negative/1 positive
Re: Как можно обойти ограничение в 26 параметров?
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
Что там с полиморфизмом?
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
wow1970
рядовые - контролы, капитаны - контейнеры, есть самый главный генерал.
Генерал как правило стартовый класс от емпти. Он паблик и потому все его знают и "бояться".

это в мемориз
Ratings: 0 negative/0 positive


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

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

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