|
|
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
Принципиальная идея не моя. К сожалению, источники указать не могу, просто не помню, могу только сказать - сайты по Access. Вариант частный хотя можно развить для каждого случая. Создаем таблицу pic (у меня одна, В принцепе можно таких сделать несколько кому что подойдет) с полями Ind int Pic image в режиме просмотра таблицы вставляем: в поле ind целые числа соответствующие чему-либо ( например, номеру склада 1 - розовый 2 - голубой 3 - коричневый 201 наличие товара>заказано - зеленый 201 наличие товара = заказано - желтый 203 наличие товара<заказано – красный) в поле pic добавляем объект типа точечный рисунок (необходимо чтобы соответствующие прибамбасы были установлены в виндоусе (к примеру PAINT). Параметры рисунка 1х1 пиксел, цвет соответственно вышеуказанному (хотя говорят, что меньше 6х6 не стоит, но у меня проходит) в рабочей таб. необходимо (для нашего случая ) 2 роля -pic1(склад) и pic(заказ) – int создаём ХП связывающую раб. таб. и 2 табл. pic. SELECT tt.ind, tt.наименование, tt.наличие, tt.количество, tt.цена, tt.сумма, tt.склад, tt.pic, tt.pic1, pic_1.pic AS p, pic_2.pic AS p1 FROM tt INNER JOIN pic pic_2 ON tt.pic1 = pic_2.коде LEFT OUTER JOIN pic pic_1 ON tt.pic = pic_1.коде (только как пример связи таблиц) В форме делаем ХП источником данных, из показанного selecта создаем команду синхронизации с «…..WHERE ind=?», однозначная таблица пишем tt (у меня). далее свойство «Перехват нажатия клавиш» - «ДА» событие «Клавиша вниз» процедуру обработки события Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) On Error Resume Next Select Case KeyCode Case vbKeyUp Call MoveMe(True) Case vbKeyDown Call MoveMe(False) End Select End Sub Sub MoveMe(varUp As Boolean) On Error Resume Next If varUp Then DoCmd.GoToRecord , , acPrevious Else DoCmd.GoToRecord , , acNext End If End Sub дает возможность перемещения по записям с помощью стрелок для двух полей «количество» и «цена» делаем «Доступ» - «ДА», «Блокировка» - «НЕТ» для всех остальных полей «Доступ» - «НЕТ», «Блокировка» - «ДА» для двух полей в событие «потеря фокуса» - процедуру обработки события: Private Sub количество_LostFocus() lostFocus End Sub для двух полей в событие «получение фокуса» - процедуру обработки события: Private Sub количество_GotFocus() gotFocus End Sub где Public Sub lostFocus() Dim s As Long If Nz(Me!количество, 0) > Nz(Me!наличие, 0) Then s = 200 If Nz(Me!количество, 0) = Nz(Me!наличие, 0) Then s = 202 If Nz(Me!количество, 0) < Nz(Me!наличие, 0) Then s = Me!склад If IsNull(Me!количество) Then s = 0 Me!pic = s DoCmd.RunCommand acCmdSaveRecord End Sub Public Sub gotFocus() On Error Resume Next Me!pic = Me!склад DoCmd.RunCommand acCmdSaveRecord End Sub для поля «количество» событие «после обновления» в конце, после требуемой обработки вызываем lostFocus, чтобы изменить цвет строки (записи) не выходя из записи. В форме необходимо два поля типа «присоединенная рамка объекта» с параметрами «установка размера» - «вписать в рамку» «тип фона» – «прозрачный» «доступ» - «нет» «блокировка» – «да» у всех других полей тип фона – «прозрачный». одно из полей (отображающее цвет склада) помещаем под поле «склад» (размеры этих полей равные) второе делаем по ширине перекрывающим все остальные поля и помещаем под ними. что имеем: при выводе формы поле склад будет иметь разные цвета – легко зрительно выделить, что на каком складе. при перемещении по записям: если «количество» «пусто» то - текущая запись выделяется цветом склада после ввода в поле «количество» числа запись будет выделяться цветом в зависимость от соотношения полей «количество» и «наличие» PS Описание сделано с опробованной формы путем исключения конкретных кодов приемлемых конкретно для моего проекта, поэтому могут быть неточности, за которые заранее прошу прощения, если что – поясню отдельно. Быстродействие определяется объёмом картинки из таблицы pic. если бы чем заменить DoCmd.RunCommand acCmdSaveRecord на что-нибудь более быстродействующее (фантазии??), а то при переходе по записям стрелками стрелка мыши успевает преобразовываться в часики – происходит замедление движения, мелочь, но лучше бы от этого избавиться для mdb рисунки могут иметь любой размер (в смысле объём) у меня были сделанные в Corel с переходом цвета от одного края до другого. Удобно: разные поля в строке разным цветом. Необходимо только чтобы таблица с картинками была на клиенте, а не в базе на другом компе. Но для ADP картинки хранятся на сервере, поэтому пришлось ограничить размер картинки в 1 пиксел. Слишком много гонялось по сети (2Senin Victor – пока отлаживал все на одном компе, все было нормально). Как перевел базу на сервер - стало тормозить, пока не посмотрел, какой объём передается в сети. При проходе по форме в сто строк по сетке в одном направлении – несколько МБ, а оператор делает это постоянно. Был бы какой-нибудь эмулятор сети было бы проще. Если бы можно сделать что-нибудь подобное mdb в ADP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2003, 18:59:42 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
Так. мысль для размышления, для ADP проекта: А если создать форму, не связную с никакими объектами базы данных, разместить на ней картинки, а потом просто обращаться к картинкам на этой форме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2003, 09:25:37 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
Да тут бы свой ActiveX соорудить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2003, 11:03:18 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
Принимаются все предложения 2pv как использовать в этом случае источник данных? 2V. Motchulsky буду рад применить. если кто имеет способность сделать ActiveX прошу поучавствовать. надеюсь предложения будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2003, 11:55:12 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
2 вадя А зачем использовать тогда источник данных, можно же и код видоизменить, неужели все только из-за этого остановится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2003, 11:57:55 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
если в данные для поля присоединенная рамка объекта вставить функию, которая бы возвращая катринку. а прараметром функции № требуемой картинки из какой-нибудь таблици (единожды загруженной на клиента), а этот № - данные из результатов работты ХП (источника данных формы). может быть. но при использовании такой функции происходит , по моему постоянный обсчет всех полей где встречается данная функция на клиенте. и если ленточная форма на экан выиодит 20 записей то функция будет вызываться 20 раз - все теряет смысл поправте меня, гуру, если что не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2003, 12:20:12 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
2 вадя Вот для чего тебе был нужен сохраненый рекодсет - для хранения картинок? Это был бы выход. Скачал себе все справочные редко изменяемые таблицы, сохранил их на локале и далее юзать, но уже не посети. Только я не никогда не проверял сохраняются ли OLE-объекты. З.Ы. Кстати сохраненые рекодсеты можно редактировать/добавлять/удалять, а потом синхронизировать с сервером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2003, 12:53:34 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
проблема в том, что mdb позволяет в одном запросе связать две таблицы одну с клиента другую с "сервера". а в adp как этого добиться ведь связывание таблиц происходит на сервере и результат гонится на клиента. вариант (на пальцах) есть сохраненный рекордсет (1) есть результат работы ХП на клиенте в виде рекордсета (2) делаем рекордсет (2) "inner join" (1) as (3) подсовываем (3) в источник данных формы вопрс что пишем в команде синхронизации, однозначной таблице на сколько это будет редактируемо кстати я приобрел ГЕТЦа "настольные приложения". ищу далее второй том... действительно КНИГА-БИБЛИЯ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2003, 13:17:46 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
кто может улучшить ????????? гуру! давайте доведем до совершенства! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2003, 11:44:15 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
В принцепе рисунок из 1 пикселя много места не занимает (58 байт Paint 24-bit bitmap) и, как бы, можно гонять по сети. Но мне не понравилась сама идея путать данные з сервера с информацией которая, в принципе, должна храниться на клиентской стороне. Тем более, что это усложняет структуру запроса к серверу (добавляется join). Как всегда стороник решения всех задач при применении стандартных средств. Не уверен, что будет работать контрол «присоединенная рамка объекта» с функцией в качестве источника, да и функция будет немного сложноватой. Решил поискать более простой способ и нашел. Любые цвета, практически в любом количестве и без рисунков! Все стандартными средствами , но немного с нестандартным подходом. Тест уже прошел. Красиво оформлю, опубликую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 02:51:47 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
2V. Motchulsky жду с нетерпение у меня еще есть возможность внести коррекции в проект. один пиксель это не много но сумме это 4-5 килобайт на одну запись туда сюда просто пустого переноса. зачем гонять. апри бытром переходе просмотре поток "мусора". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 07:31:53 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
только что проверил рисунок - 1 пиксел число строк ~130 проход с начала в конец по сети передано 490 Кб в одну сторону это не есть хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 08:20:02 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
2 V. Motchulsky Ну где ж решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 12:29:07 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
/topic/31793 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 13:11:53 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
Для adp, что касаемо картинок, рекомендуют в бд хранить ссылки на картинки, а не сами картинки. Я себе представляю это примерно так: На клиенте создается папочка с путем ..\pic, к примеру. А на сервере таблица с записями '..\pic\pic1.jpg' и т.п... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 09:40:11 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 09:55:30 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
доработайте пример для табличных форм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 10:15:02 |
|
||
|
Выделение записи цветом - работающий вариант
|
|||
|---|---|---|---|
|
#18+
табличные формы... упс... кажется я не туда зашел в самом деле на сегодняшний день вопрос совершенно не актуальный аксесс 97 и все что было до - умер в последних версиях спасает условное форматирование в том числе в таблицах если не хватает условий для условного форматирования - можно задавать их динамически , из кода в крайнем случае красить разные поля - одни от одних условий другие от других... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 10:36:07 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32156717&tid=1670687]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
94ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 445ms |

| 0 / 0 |
