powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Карточка редактирования записи
12 сообщений из 12, страница 1 из 1
Карточка редактирования записи
    #35997783
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста, помогите советом!
На работе чуть не подрались в споре о реализации карточного редактирования записи в таблице..Надо срочно сделать, а я так и не пришла к выводу, как это правильно делают.
На форме есть таблица, построенная на sqlselect, по кнопке для текущей записи вызывается форма создания/редактирования.
Шефы говорят - делай ее просто полями и вписывай туда значения текущей строки/считывай из полей в таблицу соответственно.
А если dropdown-ы? Я же замучаюсь создавать эти списки для простых полей.
Как нужно создавать карточку добавления/редактирования, что она собой должна по-правильному представлять?
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35997797
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на всякий случай (у нас из-за этого один вариант отвалился) - у некоторых таблиц, для которых делается интерфейс, нет и не будет первичных ключей.
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35997805
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочкана всякий случай (у нас из-за этого один вариант отвалился) - у некоторых таблиц, для которых делается интерфейс, нет и не будет первичных ключей.
При записи карточки обязателен должен быть уникальный набор полей для каждой записи (список уникальных ключей, полей в Update Propertis) в DW карточки.
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35997863
alexis glinski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лампочкау некоторых таблиц, для которых делается интерфейс, нет и не будет первичных ключей.
что за бред? какая у вас БД?
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35997964
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛампочкаШефы говорят - делай ее просто полями и вписывай туда значения текущей строки/считывай из полей в таблицу соответственно.
А если dropdown-ы? Я же замучаюсь создавать эти списки для простых полей.
Как нужно создавать карточку добавления/редактирования, что она собой должна по-правильному представлять?
Если правильно понял, шефы предлагают не использовать DW типа Free Form, а реализовать форму с помощью отдельных контролов типа singlelineedit и прочее.
Этого делать нельзя ни в коем случае. Только DW. А уже с ним организовать либо сохранение в БД, либо копирование обратно в грид при сохранении записи.

Если в таблице нет первичного ключа или иных полей выполняющих роль уникального идентификатора записи, то в DW, в update properties нужно указать все поля как ключевые и флаг Key Modification поставить "Update"
Если же возможно дублирование всех полей то PowerBuilder не предназначен для работы с такими таблицами. Хотя для некоторых БД есть возможность использования столбца ROWID (физический адрес строки в БД).
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35998080
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,
спасибо за ответ, можно вас еще поспрашивать?:)
Да, про то, что все поля придется внести в уникальный ключ, я утром уже вспомнила)
Я не знаю, как организовать эту карточку. Ведь если делать просто DW, основанное на SQLSelect, туда выпадут все записи таблицы, а это не гут плюс синхронизация с текущей записью при вызове карточки.
Я в чем-то не права? Туда нужно вытягивать одну запись?
Или вызов карточки на создание..тот же вопрос.
Заранее спасибо!
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35998111
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛампочкаAnatoly Moskovsky,
спасибо за ответ, можно вас еще поспрашивать?:)
Да, про то, что все поля придется внести в уникальный ключ, я утром уже вспомнила)
Я не знаю, как организовать эту карточку. Ведь если делать просто DW, основанное на SQLSelect, туда выпадут все записи таблицы, а это не гут плюс синхронизация с текущей записью при вызове карточки.
Я в чем-то не права? Туда нужно вытягивать одну запись?
Или вызов карточки на создание..тот же вопрос.
Заранее спасибо!
В вашем случае я бы делал так.
Сделать форму для записи на том же запросе что и грид

Сама форма с БД не работает (т.е. не вызывается retrieve()/update() для нее)

При открытии формы в нее через RowsCopy() или другим способом копируется текущая строка грида или при вставке новой записи просто InsertRow()

Если в форме есть DDDW, то их необходимо подгрузить из БД, для чего для каждого поля DDDW делается GetChild(), child.SetTransObject(...), child.Retrieve()

При сохранении формы - строка копируется/вставляется обратно в грид (можно копировать только измененные поля - проверка через GetItemStatus()).

Сохранение в БД делается только для грида
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35998146
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,
Вы не представляете, как Вы меня выручили!
У меня есть еще вопросик..правда, я пока по нему информацию даже не успела поискать.
Есть требование: когда кликаешь мышью по заголовку столбца, нужно, чтобы столбец сортировался.
В ИС, в которой я работала раньше, было так - один клик - сортируется asc, следующий - desc, следующий - снова asc и т.д.
Я не знаю, как узнавать/запоминать, как отсортирован столбец, чтобы следующий клик менял сортировку.
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35998173
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛампочкаAnatoly Moskovsky,
Вы не представляете, как Вы меня выручили!
У меня есть еще вопросик..правда, я пока по нему информацию даже не успела поискать.
Есть требование: когда кликаешь мышью по заголовку столбца, нужно, чтобы столбец сортировался.
В ИС, в которой я работала раньше, было так - один клик - сортируется asc, следующий - desc, следующий - снова asc и т.д.
Я не знаю, как узнавать/запоминать, как отсортирован столбец, чтобы следующий клик менял сортировку.
Анализировать выражение
Код: plaintext
dw_1.Describe("DataWindow.Table.Filter")
и смотреть стоит ли у данного столбца desc.
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35998185
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк описался
На самом деле
Код: plaintext
<DW Control Name>.Describe("DataWindow.Table.Sort")
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35998189
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кусок кода как пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
String Col,SortOrder
Col=Upper(Trim(dwo.Name))
if Upper(right(Col, 2 ))='_T'then
	if SCol=Col then
		if SOrder=' A' then 
			SortOrder=' D'
		else
			SortOrder=' A'
		end if
	else
		SortOrder=' A'
	end if
	Modify(dwo.Name+".Border='5'")
	
	if Upper(right(Col, 2 ))='_T'then
		this.SetSort(left(Col,len(col)- 2 )+SortOrder)
	end if
	this.Sort()
	Modify(dwo.name+".Border='6'")
	SOrder=SortOrder
	SCol=Col
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Карточка редактирования записи
    #35998204
Лампочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПАСИБО!!!!!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Карточка редактирования записи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]