Ls: Азы

  • Автор темы Автор темы Dimok-163rus
  • Дата начала Дата начала
Код:
Set doc=db.CreateDocument
n=ws.DialogBox("cb",True,True,False,True, True, True, False, False, False, "Название диалога",doc)
Тогда все изменения в диалоге будут записаны в Doc, оттуда можно будет считывать значение, если n = True, то есть нажато Ok
Что за ошибка была при создании дока?
 
Код:
Set doc=db.CreateDocument
n=ws.DialogBox("cb",True,True,False,True, True, True, False, False, False, "Название диалога",doc)
Тогда все изменения в диалоге будут записаны в Doc, оттуда можно будет считывать значение, если n = True, то есть нажато Ok
Что за ошибка была при создании дока?

savl,привет

а в лит-ре по DialogBox, в конце не прописан doc :(

Код:
Dim ws As New NotesUIWorkspace
Dim myflag As Boolean
myflag = ws.DialogBox( "myDialogLR", True, True,,,,, "Диалог выбора страны и города" )
1 вызываем диаловую форму
Messagebox myflag,, "myflag" 'выводим значение возвращенное DialogBox

Скрин ошибки создания док-а...
 

Вложения

  • 1.JPG
    1.JPG
    4,7 КБ · Просмотры: 517
ну дык базуто надо из сессии взять....
Set db=session.CurrentDatabase
в лит-ре по DialogBox, в конце не прописан doc mellow.gif
ой-ли - а синтаксис, кот по ссылке, не читаем :(
 
lmike, точняк...по ссылке прошел всё иссмотрел, а в начале и проглядел )

День непрограммный у меня сегодня ))

он занова ругается на тип...

Код:
n = ws.DialogBox("emission",True,True,False,True, True, True, False, False, False,"Название диалога",Doc)

n объявил как Variant
Код:
	Dim n As Variant
 
ругаецо на что - текст, форма есть в БД, Doc создан (не Nothing)
 
имеется ввиду, что ошибка в каком либо из параметров?
- название формы только, но название взял истинное;
-n - куда должен записаться результат ввода пользователем как я понимаю из DialogBox.

Кнопку создал в представлении, имя представления и формы одно и тоже "emission"
 

Вложения

  • Форма.JPG
    Форма.JPG
    183,5 КБ · Просмотры: 488
  • Представление.JPG
    Представление.JPG
    184,1 КБ · Просмотры: 329
Dim-ok
Сравни параметры:
из хелпа
flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] )

и твое:
n = ws.DialogBox("emission",True,True,False,True, True, True, False, False, False,"Название диалога",Doc)
 
Dim-ok
Сравни параметры:
из хелпа
flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] )

и твое:
n = ws.DialogBox("emission",True,True,False,True, True, True, False, False, False,"Название диалога",Doc)

получилось, открылась моя форма, но поля в ней не все чет отображены и чтобы получить нужное значение n, что надо заполнить то?

Код:
n = Inputbox("Введите количество копий документа", "Создание копий документа")
тут я вводил число копий и n - присваивалось значение, а тут просто форма открывается )
 

Вложения

  • Форма.JPG
    Форма.JPG
    148,3 КБ · Просмотры: 519
Dim-ok

Так вы сделайте дополнительную форму, в которой будут нужные поля. количество копий и т.д.
 
Dim-ok

Так вы сделайте дополнительную форму, в которой будут нужные поля. количество копий и т.д.

Создал, в форме одно поле, тип "число", параметры в DialogBox подредактировал под себя, noNewFields = false, тобишь если я ввожу в том единственном поле формы число, то оно должно передаваться переменной n?

Код:
n = ws.DialogBox("Тест1",True,True,False,False, True, False, "Количество документов потомков",doc, False, False, True)
 
Создал, в форме одно поле, тип "число", параметры в DialogBox подредактировал под себя, noNewFields = false, тобишь если я ввожу в том единственном поле формы число, то оно должно передаваться переменной n?
НЕТ, ну когда вы полностью (и внимательно) прочтете описание ф-ции?
это результат нажатия OK или нет
само значение передается в поле (в соответ. форме) doc, оттудова и нужно забрать (см. то что писал выше)
там ND - это типа ваш doc (не суть в названии переменной)
 
Код:
	'n_copy - поле в форме, имеющее значение числа
Dim n_copy As Single
Dim result As String
Dim n As Integer

result = ws.DialogBox("Эмиссионная программа",True,True,False,False, True, False, "Количество документов потомков",ParentDoc, False, False, True)	

If result Then 'нажали Ok в диалоге
n = ParentDoc.GetItemValue( "n_copy" )(0) 'получаем значение поля n_cop в переменной n
Msgbox n

Несоответствие типов, ругается на
Код:
n = ParentDoc.GetItemValue( "n_copy" )(0) 'получаем значение поля n_cop в переменной n

сделал по книжке вот
 
Подскажите что сделать, стопорится всё из-за этих диалогов (
 
Сделай форму, дай ей название "DlgQuery", не используй уже существующую, только хуже потом будет.
Сделай на форме поля: Одно для количества новых документов, вроде n_copy. Второе для чего там тебе нужно было.
Лучше сделать таблицу на форме, скажем 2х2. Первая строка первая колонка, просто пишешь "Количество копий".
Первая строка вторая колонка - создаем в ячейке поле, даем имя n_copy.
Вторую строку пока не заполняй, оставь на будущее.
Попробуй потом вот этот тестовый код, должен показать число которое ты ввел.
Код:
dim ses as new notessession
dim ws as new notesuiworkspace
dim n as variant
set db = ses.CurrentDatabase
Set doc = db.createDocument
if not ws.DialogBox( "DlgQuery", true , true , false , false , false ,false , "Название окна" , doc, true ) then
n = doc.getitemvalue("n_copy")(0)
end if
msgbox "" & n
P.S. Это не курсы по обучению, здесь могут помочь, но не будут учить. Читай Help, смотри Example. В них достаточно хорошо показано что и как.
 
savl а точно not - в хэлпе-то написано True - OK?!
а в реале я не помню
 
savl а точно not - в хэлпе-то написано True - OK?!
а в реале я не помню
Ну да.

Как то так:
dim ses as new notessession
dim ws as new notesuiworkspace
dim n as variant
set db = ses.CurrentDatabase
Set doc = db.createDocument
if not ws.DialogBox( "DlgQuery", true , true , false , false , false ,false , "Название окна" , doc, true ) then
Exit Sub 'нажали Cancel
end if
n = doc.getitemvalue("n_copy")(0)
. . . . . .
 
savl, создавал новую форму и вбивал такой скрипт, у меня она выводила msgbox "" & n - пустое место, вместо того чтобы отобразить цифру :)
Если более подробно...
Код:
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace

Dim db As NotesDatabase
Dim doc As NotesDocument
Dim n As Variant
Dim result As Variant

Set db=session.CurrentDatabase

Set doc=db.CreateDocument

result = ws.DialogBox("Test_1",True,True,False,False, False, False, "Количество документов потомков",Doc, True)	
If result Then 'нажали Ok в диалоге
n = Doc.GetItemValue( "n_copy" )(0) 'получаем значение поля n_cop
Msgbox n
Else
Exit Sub
End If
 

Вложения

  • Безымянный.JPG
    Безымянный.JPG
    95,9 КБ · Просмотры: 601
:)
странно...
попробуй перед строкой result = ws.DialogBox, прописать форму в документ: Call doc.ReplaceItemValue("Form","Test_1")
 
Код:
Sub Initialize
Dim ses As New NotesSession
Dim wks As New NotesUIWorkspace
Dim db As NotesDatabase
Dim ND As NotesDocument

Set db=ses.Currentdatabase
Set ND=db.Createdocument()

Dim result
'	Call ND.Replaceitemvalue({Form}, {tst})
'	Call ND.Computewithform(false, false)
result=wks.Dialogbox({tst}, true, true, false, false, false, false, {Test Input}, ND, true, false, true)
If result Then
MsgBox CStr(ND.Getitemvalue({dtField})(0))
End If
End Sub
выдает выбраную дату

Добавлено: вот если 5-ый параметр true - тогда нужны закоменченные строки

Добавлено: <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"форма"</div></div><div class="sp-body"><div class="sp-content">
HTML:
<body><richtext>
<pardef id='1'/>
<par def='1'/>
<table cellbordercolor='silver' widthtype='fixedleft' refwidth='5.1479in'><tablecolumn
width='2.5063in'/><tablecolumn width='0.1354in'/><tablecolumn width='2.5063in'/>
<tablerow>
<tablecell borderwidth='0px 0px 1px'>
<pardef id='2' align='right' rightmargin='2.4444in' keepwithnext='true' keeptogether='true'/>
<par def='2'>Number</par></tablecell>
<tablecell borderwidth='0px 0px 1px'>
<pardef id='3' keepwithnext='true' keeptogether='true'/>
<par def='3'/></tablecell>
<tablecell borderwidth='0px 0px 1px'>
<pardef id='4' keepwithnext='true' keeptogether='true'/>
<par def='4'><field type='number' kind='editable' name='numField'><numberformat
format='general' digits='2' punctuated='false' parens='false' percent='false'
bytes='false'/></field></par></tablecell></tablerow>
<tablerow>
<tablecell borderwidth='1px 0px'>
<par def='2'>Date</par></tablecell>
<tablecell borderwidth='1px 0px'>
<par def='3'/></tablecell>
<tablecell borderwidth='1px 0px'>
<par def='4'><field usenotesstyle='false' height='0.2500in' width='1in' multiline='true'
borderstyle='single' type='datetime' kind='editable' name='dtField'><datetimeformat
show='date' date='yearmonthday' fourdigityearfor21stcentury='true' zone='never'
dateformat='weekdaydaymonthyear' dayformat='twodigitday' monthformat='twodigitmonth'
yearformat='fourdigityear' weekdayformat='shortname' dateseparator1=' ' dateseparator2='.'
dateseparator3='.' timeseparator=':' timeformat24='true' preference='usersetting'/></field></par></tablecell></tablerow>
<tablerow>
<tablecell borderwidth='1px 0px'>
<par def='2'>Text</par></tablecell>
<tablecell borderwidth='1px 0px'>
<par def='3'/></tablecell>
<tablecell borderwidth='1px 0px'>
<par def='4'><field type='text' kind='editable' name='txtField'/><compositedata
type='98' prevtype='65418' nexttype='222' afterparcount='6' containertype='65418'
aftercontainercount='1' afterbegincount='3'>
Yg4BAIQAAAAAAAAAAAA=
</compositedata></par></tablecell></tablerow></table>
<par def='1'/></richtext></body>
 
"всосать" DXL очень просто (в 9-ой нотусне, др. не знаю) - создать форму (пустую), затем Tools->Edit with DXL
заменить ноду (с подчиненными) <body>...</body>
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!