![]() |
#21 |
Участник
|
Цитата:
![]() |
|
![]() |
#22 |
Участник
|
Цитата:
Сообщение от Bird
![]() Цитата:
![]() |
|
![]() |
#23 |
Участник
|
Цитата:
![]() Это как один из вариантов решения. Кстати он будет идинственным верным, если эти проставленные галочки должны быть уникальны для каждого пользователя, т.е. чтобы одновременно с этим функционалом могли несколько человек работать. |
|
![]() |
#24 |
Участник
|
Цитата:
|
|
![]() |
#25 |
Участник
|
Цитата:
Сообщение от Bird
![]() ![]() Создаешь временную таблицу, подбери любую, главное чтобы она подходила по твоему первичному ключу (в твоем случае, чтобы у нее в первичный ключ входило поле типа Code нужной длинны) и чтобы в ней было поле типа bool. Дальше, при открытии формы проходишь по всему списку сотрудников и переносишь их коды во временную таблицу. Выводишь в tablebox поле, с переменной временная_таблица.булево_поле Далее по нажатию кнопки (или по закрытию формы) ставишь фильтр во временной таблице по булеву признаку, и на каждую запись находишь нужного сотрудника и делаешь с ним что хочешь ![]() Например к таблице Employee мне нужен CheckBox и поле типа TextBox, checkBox не расчитывается а нажимается/отжимается на форме, текс так же вносится ручками в форме. Создаю Временну таблицу TempEmploee. на Form - OnInit() навешиваю Код: IF Employee.FIND('-') THEN BEGIN REPEAT TempEmployee.INIT; TempEmployee."No." := Employee."No."; TempEmployee.INSERT; UNTIL (Employee.NEXT = 0) END; ввожу какой-нибудь текст в TextBox - перехожу на следующаую запись - он там то же появляется, так же с CheckBox. как сделать что бы для каждой записи сохранялось собсвенное значение, как совместить перемещение по Таблице с перемещением по TempEmployee? |
|
![]() |
#26 |
Участник
|
Надо написать две процедуры SetЗначение и GetЗначение. Когда вы вводите текст руками в TextBox нужно загетить запись во временной таблице (если нет - создать, этим будет заниматься GetЗначение()) и прописать в ваше зарезервированное поле введенное пользователем значение. А при хождении по записям на OnAfterGetCurrRecord() формы вызывать GetЗначение. Которая будет гетить (если нет - создавать запись).
|
|
![]() |
#27 |
Участник
|
Чёт я ниче не понял, но я обычно чтоб не ставить галочки использую Ctrl+F1. И...
Код: MARKEDONLY(TRUE) делаем чекбокс и.. Код: OnPush() MARK(not MARK); Получеаем отмеченные Код: MARKEDONLY(true); TempRec верменная таблица, точно такаяже, как та с которой работаем. в чекбоксе соурс TempRec.GET(REC.no); Код: OnPush() IF TempRec.GET(REC.no) THEN TempRec.DELETE ELSE BEGIN TempRec.COPY(REC); TempRec.Insert; end Если в списке работаем, то можно в Ассист едит код запихнуть P.S. На респект не напрашиваюсь, но если можно то... |
|
![]() |
#28 |
Участник
|
Цитата:
Сообщение от romeo
![]() Надо написать две процедуры SetЗначение и GetЗначение. Когда вы вводите текст руками в TextBox нужно загетить запись во временной таблице (если нет - создать, этим будет заниматься GetЗначение()) и прописать в ваше зарезервированное поле введенное пользователем значение. А при хождении по записям на OnAfterGetCurrRecord() формы вызывать GetЗначение. Которая будет гетить (если нет - создавать запись).
когда я ввожу текст, на какой триггер повесить обработку? и какой код? что-то вроде Код: SetValue() if tempEmployee.GET("No.") Then tempEmloyee.modify; else tempEmployee.insert; |
|
![]() |
#29 |
Участник
|
для TextBoxa вроде бы получилось
Source - TempEmployee.Birthplace onBeforInput () TempEmployee.GET("No.") AfterValidate () TempEmployee.MODIFY; и на AfterGetRecord TempEmployee.GET("No."); а вот для CheckBox что-то не получается |
|
![]() |
#30 |
Участник
|
|
|