Как создать таблицу в Dialogbox-e из запроса с реляционной БД

  • Автор темы Sandro
  • Дата начала
S

Sandro

#1
Встала такая задачка, есть документ, инфа из него должна подтягиваться из реаляционной БД, привязка к данным не жёсткая по имени клиента, то есть должна быть возможность выбирать из нескольких значений.
Вообщем есть желание сделать поле и рядом с ним кнопочку, при нажатии кнопочки делается SELECT ... from ... where name like 'значение поля' и строчки выборки открываются в DialogBox-e выбирается нужная строка и данные заполняют поля формы.

Работать через ODAC я научился, получить массив или ODBCResultSet без проблем, а вот как создать аналог DataGrid и запихнуть в DialogBох не пойму, или надо создавать документы , делать из них лотусовое VIEW ???
 
K

Klido

#2
я делаю примерно так: создаю док под диалог, передаю его агенту, который выполняет запрос и заполняет поле-спиок (комбо, диалог-лист...) вариантов выбора, а отдельно - соответствующий список результатов, затем показываю диалог для выбора варианта и заполняю соотвтествующие поля в основном документе....
оперируй массивами (списками) строк-результатов запроса
 

Omh

Lotus team
04.07.2007
2 210
1
#3
или надо создавать документы , делать из них лотусовое VIEW ???
Похоже на то, можно попробовать обойтись и одним доком и показывать его через pickliststrings + show multiplie as separate values.
Но если надо имеенно аналог таблицы, то надо генерить документ на каждую запись, кмк.
 
S

Sandro

#4
:please: Мда, ладно попробую выкрутиться, спасиб за подсказку

Добавлено: Klido, а почему так сложно? Нельзя , просто сделать заполнение поля с множественным значением при переходе дока в режим редактирования ?
 
K

Klido

#5
Sandro
так и делается, но значения-то надо заполнить? вот они в док и заполняются агентом, а диалог их показывает как надо, но массивов-списков значений столько, сколько полей, а полей может быть много и отображать все смысла не имеет..
например, при поиске клиента достаточно видеть перечень наименований и подсвечивать по нужде код ОКПО какой-нибудь, а остальные ннадцать полей выгребутся из массивов по результату выбора конкретного клиента...
 
S

Sandro

#6
:) Можно тупой вопрос, как заполнить поле со списком , делаю
Код:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument

Set uidoc = ws.CurrentDocument
Dim doc As NotesDocument	
Set doc=uidoc.Document
doc.Name=data


Call uidoc.Refresh(True)
Когда поле просто список заполняется , а поле со списком ничего нет (((
 
K

Klido

#7
item.appendToTextList используй, а показывать мультивэлью поле - это уже как нравится....
 
S

Sandro

#8
Я уже нервничаю )))

Делаю так, поле с множественным значением заполняется, значением массива через запятую, а поле со списком в простонародье ComboBox пустой :)

Код:
				Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument

Set uidoc = ws.CurrentDocument
Dim doc As NotesDocument	
Set doc=uidoc.Document
Dim item As NotesItem
Set item = doc.GetFirstItem( "Name" )
Call item.AppendToTextList(data)	
Call uidoc.Refresh(True)
Call doc.Save( False, True )
 

hosm

* so what *
18.05.2009
2 442
6
#9
Если я правильно поняла Ваш вопрос:
В use formula for Choices - указать мультивалью-поле, содержащее список возможных значений для комбо и установить галку у комбо Refresh Choices on Document Refresh.
 
S

Sandro

#10
Попробовал ничего не получается ((( Поле должно заполняться при нажатии на кнопку, multivalue в ComboBox по умолчанию, обновление стоит ((( На счёт "use formula for Choices - указать мультивалью-поле" не понял это поле и должно же заполняться данными из выборки с реляционной БД
Делаю Allow values not in list (хотя мне это не нужно совсем) - заполняется тока первое значение массива ))) Вообще ничего не понимаю
 

hosm

* so what *
18.05.2009
2 442
6
#11
у тебя не заполняется список для выбора из комбобокса или значение комбобокса?
 

hosm

* so what *
18.05.2009
2 442
6
#13
пример, если не заполняется список для выбора в комбобокс:
в мультизначное поле Fld1 тип Text (с галкой Allow multiple values) вытягиваем значения: 1, 2, 3, 4, 5 (из выборки) - это вроде у тебя получалось?
у комбо Fld2 на 2-й закладке выбрать "use formula for Choices" Fld1.
при открытии формы в комбо Fld2 будет предоставлен выбор из 1, 2, 3, 4, 5.




Добавлено: только после заполнения/изменения Fld1 надо сделать рефреш документу.
 
S

Sandro

#14
Так работает )))) Ничего не понимаю :RTFM: И как мне это промежуточное поле спрятать ?
 

hosm

* so what *
18.05.2009
2 442
6
#15
Помещаешь в отдельный абзац
предпоследняя закладка свойств поля, ставишь галку - hide paragraph from
Notes (можно и от остальных). Поле не отображается на форме при открытии в клиенте Notes.
 
S

Sandro

#16
OKEN спасиб огромное, такая фигня а стока времени убил, а это общепринятый способ , как то хитромудровато это по-моему ? )))
 

hosm

* so what *
18.05.2009
2 442
6
#17
ну, можно проще - прямо в комбо написать @-формулу, выгребающую какие-то значения или фиксированный текстовый список значений, но ведь тебя это в данном случае не устроит? ;)
вот проснутся коллеги-форумчане - пусть подтвердят :RTFM:
 
S

Sandro

#18
:RTFM: Если бы не помощь на форуме, я бы в жизнь лотус не освоил, весьма своеобразная штука. Ещё раз спасиб.