On-line: SergKis, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 420
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи (продолжение)


TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений
К примеру

 цитата:

DEFINE TBROWSE oBrw2 ;
AT 60,450 ;
ALIAS cAlias ;
OF Form1 ;
WIDTH 330 ;
HEIGHT 340 ;
FONT "Verdana" ;
SIZE 9 ;
ON DBLCLICK CopyRec();
ON GOTFOCUS fModelo_Hab(2) ;
AUTOFILTER ;
CELLED EDIT;
VALUE nRec;
GRID


Здесь я собрал параметры из разных tBrows
Можно или нет и какие парметры заменить
выражением ( и каким) ?
oBrw2:....
oBrw2:....

























<a href=http://www.bestmarket.com.ua >ноутбуки</a>























<a href=http://www.bestmarket.com.ua >ноутбуки</a>
Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 279 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]





Пост N: 2003
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 08:54. Заголовок: Andrey пишет 2) Как ..


Andrey пишет
 цитата:
2) Как сделать заново полное считывание базы для этой программы ?
можно обойтись без удаления объекта, а просто заново считать базу в готовый объект ?


Сие есть тайна для меня, т.к. не понимаю о чем речь.
В тсб просмотре только 1 - :nRowCount() строк

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6032
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.18 09:21. Заголовок: SergKis пишет: Сие ..


SergKis пишет:

 цитата:
Сие есть тайна для меня, т.к. не понимаю о чем речь.


Базу открывать по сети SHARED. Открываем БЕЗ индексов.
Первый юзер открыл базу - допустим 10 записей в ней.
Другой добавил ещё пару записей и что-то откорректировал.
Вот по кнопке Refresh хочу перечитать заново базу и получить все записи для 1-го юзера.
У себя в задаче у меня есть такая кнопка, но там у меня условный индекс, рисуется всё автоматом.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2004
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 09:31. Заголовок: Andrey :DrawLine(....


Andrey
:DrawLine(...), :DrawSelect(...) рисуют строку из буфера записи, так что, если 2-ая прога делает commit, то твоя при перемещении по базе должна показать изменения или по кнопке :Refresh(.T.)\Display(). Пробуй

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6033
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.18 09:39. Заголовок: SergKis пишет: или ..


SergKis пишет:

 цитата:
или по кнопке :Refresh(.T.)\Display(). Пробуй


Блин, так просто... Не догадался сразу.
Заработало !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6034
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.18 10:04. Заголовок: Базу открывать по се..


Базу открывать по сети SHARED. Открываем БЕЗ индексов.
А как сделать пересчёт в 1-ом столбце, который я создаю сам ?
 
ADD COLUMN TO TBROWSE oBrw DATA {|| 0 } ; //oBrw:nAt } ;
HEADER CRLF + "NN" SIZE 40 ;
COLORS {CLR_BLACK, WHITE} ALIGN DT_CENTER ;
NAME NN

Так как индексов нет, то перестройку нумерации нежно только при вставки/удалении записи.
Добавил в эти функции - пересчёт ItogoNN( oBrw )
Вот сама функция:
Скрытый текст

Но нет вообще пересчёта. Почему ?
Проект положил на fpt и - https://cloud.mail.ru/public/KRRJ/2WvDwnz2a

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1305
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.09.18 11:47. Заголовок: Andrey пишет: Но не..


Andrey пишет:

 цитата:
Но нет вообще пересчёта. Почему ?



А чего ты ожидаешь от этого ?
Andrey пишет:

 цитата:
DATA {|| 0 }



PS и не надо портить хороший пример

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2005
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 11:54. Заголовок: Andrey А что ты счи..


Andrey
А что ты считаешь таким "хитрым" способом ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6035
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.18 12:00. Заголовок: SergKis пишет: А чт..


SergKis пишет:

 цитата:
А что ты считаешь таким "хитрым" способ


Ставил
ADD COLUMN TO TBROWSE oBrw DATA {|| oBrw:nAt } ;

Первый раз показывает правильно. После удаления/вставки или колёсиком покрутить нумерация слетает....
Может и неправильно так делать, тогда подскажите как ?
База открывается без индексов !
Можно было бы через массив, там вроде проще, но нужна база.

Haz пишет:

 цитата:
PS и не надо портить хороший пример


Я его до рабочей таблицы довожу. Как в жизни юзера требуют.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2006
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 12:12. Заголовок: Andrey Тебе что пиш..


Andrey
Тебе что пишешь, что не пишешь - результат один ....

 цитата:
Если ON и без индекса, то сам управляй переменной :nLen, т.е. уст. блок :bLogicLen для "правильного" счета записей в просмотре.


плюс свой skipper нужен, может еще что понадобится. А для NN колонки пиши
ADD COLUMN TO TBROWSE oBrw DATA {|| (oBrw:cAlias)->( OrdKeyNo() ) } ;
но без индекса с SET DELETED ON хз что будет

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2007
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 12:14. Заголовок: в работе тсб. не ту ..


в работе тсб.
не ту кнопку нажал, сори.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2008
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 12:52. Заголовок: Andrey пишет Я его д..


Andrey пишет
 цитата:
Я его до рабочей таблицы довожу. Как в жизни юзера требуют.


Делай команду выборки в др. таблицу ( COPY TO ..., APPEND FROM ... FOR ! deleted )
Поля бери только ключ для связки или recno + поля по которым построить рабочие индексы для тек. просмотра, если надо.
Таблица будет "узкая" и быстрая.
Связываешь с основной базой и работаешь SET DELETED OFF, отображая удаленные цветом (вдруг передумают удалять).
Все модификации переносишь на основную базу. По refresh можешь сделать ZAP и снова APPEND FROM ... или новый COPY TO ... с переоткрытием.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6036
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.18 13:35. Заголовок: SergKis пишет: ADD ..


SergKis пишет:

 цитата:
ADD COLUMN TO TBROWSE oBrw DATA {|| (oBrw:cAlias)->( OrdKeyNo() ) } ;
но без индекса с SET DELETED ON хз что будет


Ставил и так, только индекса нет и высвечивается RECNO()
Из-за этого и подумал, что можно первую колонку сделать "виртуальной" и нумерацию туда самому переписывать
при вставке/добавлении записи.
Удалённые записи не нужны, юзер просит только рабочие записи.

SergKis пишет:

 цитата:
По refresh можешь сделать ZAP и снова APPEND FROM ... или новый COPY TO ... с переоткрытием.


Нужно тогда закрывать базу, открывать её монопольно и т.д.
Более сложный вариант получается....

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1306
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.09.18 13:38. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может и неправильно так делать, тогда подскажите как


Правильно по индексу. Для таблицы которая целиком на экране , сойдет и ADD COLUMN TO TBROWSE oBrw DATA {|| oBrw:nPaintRow }

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1307
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.09.18 14:10. Заголовок: в др. таблицу ( COP..


в SHARED и по сети оптимально только индекс. Неоптимально - написать что то типа
 
ADD COLUMN TO TBROWSE oBrw DATA {|| GetNum( oBrw ) }


где GetNum()


 
Func GetNum( oBrw )
local cAlias := oBrw:cAlias
local nRec := (cAlias)->(RecNo())
LOcal n := 0


(cAlias)->(dbEval({|| ++n }, {|| !Deleted() .and. RecNo() <= nRec } ))
(cAlias)->( dbGoTo(nRec))

Return n


НО это костыль по сравнению с индексом

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2009
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 14:24. Заголовок: Andrey пишет Нужно т..


Andrey пишет
 цитата:
Нужно тогда закрывать базу, открывать её монопольно и т.д.
Более сложный вариант получается....


Это таблица отобранная, может состоять из одного поля (ключ или RecNo для связи с базой), находится в mem:,
открыта сразу монопольно - твой тсб единственный пользователь, многое упрощается.
Это общий случай для всех отборов (типа команда select) ведения, отчетов, ....

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2010
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 14:30. Заголовок: PS Можешь иметь на н..


PS
Можешь иметь на нее тэг с FOR ! deleted(), тогда удаленные будут исчезать при set deleted on, OrdKeyNo(), OrdKeyCount() будут ok

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1309
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.09.18 14:45. Заголовок: SergKis пишет: Дела..


SergKis пишет:

 цитата:
Делай команду выборки в др. таблицу ( COPY TO ..., APPEND FROM ... FOR ! deleted )


Сергей, привет!
В сети будет сюрприз.
Если коллега удалит или вставит запись , то RDD это отработает при скроле по таблице и запись либо появится, либо исчезнет, а вот нумерация слетит т.к. Refresh() не вызывался и временная таблица не пересчитана

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2011
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 15:04. Заголовок: Игорь, привет ! Сюрп..


Игорь, привет !
Сюрприза не будет, т.к. работаем (тсб) совсем с др. таблицей с конкретным числом записей.
Под командами copy to ..., append from ... понимаю условное обозначение выборки с уст. scope, filter (это скорее do while ...)
На время работы их, если это под тсб, блокируем тсб :lEnable := .T., потом :Reset(), :Display() ...
Таблица для тсб может иметь поля для индексов, тогда делаем сначала reindex.
То что в базе запись удалена, а у нас нет - будет пустая запись на экране
новой не будет совсем, но это временно до след. нажатия refresh, допустимое время появления данных на сервере оно субъективно, но существует

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1310
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.09.18 15:10. Заголовок: SergKis пишет: Сюрп..


SergKis пишет:

 цитата:
Сюрприза не будет


проще индекс держать с !Deleterd() и дергать номер ключа. Но легкий путь , не наш метод

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2012
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 17.09.18 15:14. Заголовок: PS Для тсб (человека..


PS
Для тсб (человека) вполне может не важны те добавления\удаления в данный момент он свое крыжит
для важных выборок делаем locktable на время выборки и "чудес" не будет

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 279 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет