Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
Каратаев Сообщений: 3914 Откуда: Алматы Дата регистрации: 04.12.2001 |
В методе BeforeOpenTables DE прописано так:
------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
Артём Сообщений: 55 Дата регистрации: 23.04.2001 |
Можно запихать все открытия таблиц в Load формы, а DataEnvironment очистить
![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
Но читать сие невозможно. Не пробовали посчитать сколько раз в этом куске использовано .&lc_Cursor.? Хрен с вами если не умеете работать с объектами без макро, но зачем сие еще и плодить в невообразимых количествах? Один раз ведь намного сложнее вычислить? ------------------ Лень - это неосознанная мудрость. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
Для замены сего безобразия еще со времен FP2.0 придуманы Name expression:
------------------ Лень - это неосознанная мудрость. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
Каратаев Сообщений: 3914 Откуда: Алматы Дата регистрации: 04.12.2001 |
Там же не одна таблица, их может быть несколько... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
М-да, ни за что бы не догадался... Вариант преобразования на коленке, возможны очепятки:
И еще я бы использовал for each вместо Amembers. Пример в теме про Targrid. И кода меньше, в том числе без Evaluate(). И работает быстрее... Да и читать приятнее. ------------------ Лень - это неосознанная мудрость. Исправлено 1 раз(а). Последнее : ssa, 10.03.23 11:34 ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
Еще один вариант переработки продемонстрированной нетленки.
Проверить не на чем, потому на коленке с возможными очепятками:
------------------ Лень - это неосознанная мудрость. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
Каратаев Сообщений: 3914 Откуда: Алматы Дата регистрации: 04.12.2001 |
Сергей, спасибо. Второй вариант лично мне нравится больше. Всё более оптимально. Чуть изменил первую строку цикла на
Спасибо! ![]() ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
Мне тоже ![]() Цитата:Ну так я же предупредил, что делал на коленке. ![]() ------------------ Лень - это неосознанная мудрость. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
Каратаев Сообщений: 3914 Откуда: Алматы Дата регистрации: 04.12.2001 |
Ну вот и рабочий вариант:
Вот что значит пинок в нужную сторону! ![]() ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. Исправлено 1 раз(а). Последнее : Каратаев, 13.03.23 08:00 ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
Рабочий то он рабочий, но есть еще потенциал для совершенствования! ![]() Цитата:Только должно быть
![]() ------------------ Лень - это неосознанная мудрость. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
Каратаев Сообщений: 3914 Откуда: Алматы Дата регистрации: 04.12.2001 |
Для порядку учёл ![]() ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:А что за порядок (или с какой целью?) использовать для переменной название типа String, если сам Фокс называет такой тип Character? ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
Для Intellisence. ------------------ Лень - это неосознанная мудрость. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:А Intellisence для кого? Зачем где-то надо "вдруг" начать отличать Char от String, если Фокс называет этот тип Char? Но даже если именно эту переменную почему-то надо видеть где-то как String, то почему бы тогда не обозвать её тип как Путь_к_чему_то_там? От такого типа толку наверняка будет больше, чем от String, который не добавляет ничего нового по сравнению с Char. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
Для писателей кода на фоксе. ------------------ Лень - это неосознанная мудрость. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
Там несколько переменных, и, судя по их именам, они тоже локальные и символьные.
Почему именно эту переменную надо описать с типом, и именно как String? У писателя кода она была описана как Character, теперь будет описана как String. Интеллисенсу всё равно, а цель исправления по-прежнему неясна. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
Каратаев Сообщений: 3914 Откуда: Алматы Дата регистрации: 04.12.2001 |
Intellisence предлагает и тот, и тот вариант. Принципиальной разницы нет. Можно вообще убрать этот AS...
Да, это действительно так. По-хорошему - либо все надо объявлять как local, либо ничего не объявлять... Почему именно эту объявил? Ну перекочевало откуда-то вместе с моим изначальным кодом, уже не помню... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:А хоть какая-то есть? ![]() Что для вас изменилось после исправления? Вы отличаете Character от String? Цитата:Локальные переменные не могут не быть объявлены как LOCAL. Так что если их не описать как LOCAL, они будут считаться PRIVATE (если не были ранее описаны как PUBLIC) несмотря на префикс имени. ![]() У вас сейчас только одна локальная переменная, остальные "псевдолокальные" - PRIVATE. И если их не описать хоть как-то (как LOCAL или PRIVATE), то всегда есть шанс, что вы, используя здесь это имя, портите какую-то одноименную (PRIVATE или PUBLIC) уже существующую переменную. Исправлено 5 раз(а). Последнее : akvvohinc, 14.03.23 12:44 ![]() |
Re: Проблема с открытием таблиц в DE по заданному пути | |
---|---|
Каратаев Сообщений: 3914 Откуда: Алматы Дата регистрации: 04.12.2001 |
Вопрос чисто риторический? Ведь понятно-же, что ничего ровным счётом. Ну... это же азы... Не надо полагать, что я настолько безалаберно отношусь к переменным. Но в данном конкретном случае, даже PRIVATE-переменные за рамки метода BeforeOpenTables не вылезут. Хотя, конечно, с точки зрения общей, так сказать, концепции правильно будет объявить их все как локальные. В рабочем приложении так и сделано, а здесь-же просто показана идея переопределения путей к таблицам в DE. Идея, не более того. ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
© 2000-2023 Fox Club  |