Vzaimodejstvie Formi I View

Тема в разделе "Lotus - Программирование", создана пользователем Olga23, 12 дек 2005.

Статус темы:
Закрыта.
  1. Olga23

    Olga23 Гость

    Pomogite pogalujsta s resheniem problemi, kotoruju ya nikak ne mogu reshit...U menya est baza, kotoruju sozdavala ne ya i tam est odno koryavoe mesto. Problema svyazana s nim. No vopros budet zvuchat tak:
    U nas f formu mogno vstavit View i v okne programmirovanija na levoj storone mi vidim Objects.
    Dlya vstavlennogo View tam stoit(moget formuliruju nepravilno, kak ug perevela...No smisl dolgen bit ponyatnim):
    sdelannij View: i pod nim:
    sdelannij vibor(gde mi daem imya vstavlennogo View) i
    otdelnuju kategoriju pokazat.
    Vot se tim "otdelnuju kategoriju pokazat u menya i voznikli problemi.
    U menya tam stoit:
    DocID_T + NoteType
    Gde DocID_T-eto pole. Hotela bi sprosit, ne znaete li eto pole, sozdannoe avtomaticheski ili ne? I KOGDA TAK NAPISANO:DocID_T + NoteType, to kogda otkrivaju v Notes, nichego nevigu.

    Kogda ubirayu eto, to vigu vse dokumenti dlya vseh firm, a mne nado videt dokumenti, dlya odnoj firmi, formu/dokument kotoroj ya otkrivayu...
    NoteType-eto DocTabname iz funkzii iz biblioteki skriptov:
    Sub ChangeCompanyForm( DocForm As String, DocTabName As String, DocTabValue, EditMode As Integer, SaveMode As Integer )
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim item As NotesItem

    Set uidoc = ws.CurrentDocument
    Set doc=uidoc.Document
    doc.form = DocForm
    If DocTabName <> "" Then Set item = doc.Replaceitemvalue( DocTabName, DocTabValue )
    If SaveMode Then doc.SaveOptions = "0"
    Call uidoc.close()
    Call ws.editdocument(EditMode, doc)
    End Sub


    Pogalujsta podskagite, kto znaet... ;)
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Olga23
    Это свойство - для показа только одной категории. Как я понял есть документ фирмы. У каждой фирмы есть какие-то свои документы. На форме фирмы есть встроенное представление, которое эти документы должно отображать.
    DocID_T - это поле у этих документов которое содержит, скорее всего, UNID документа фирмы. Что такое NoteType - не знаю и по твоему описанию не понятно.

    Смысл свойства "otdelnuju kategoriju pokazat", как я сказал - это показывать только одну категорию. Т.е. у тебя есть представление (имя которого указано в свойстве выше), которое должно быть категоризировано. Скорее всего это первый столбец. Открой его и посмотри какая формула стоит для этого столбца. Скорее всего там формула типа "@DocumentUniqueID".
     
  3. Olga23

    Olga23 Гость

    Spasibo za otvet.
    Da, vi pravilno vse ponyali. A v pervom stolbze predstavlenija stoit:(CpyDocID_T):(PerDocID_T)
    | |
    eto kak ya ponyala Id a eto id dokumenta firmi
    dokumenta firmi

    Nu vot, a mne nado pokazat odni iz dokumentov, otnosyaschiesya k kagdoj konkretnoj firme. U kagdoj firmi est raznie dokumenti, tak vot vse oni pokazivayutsya v predstavlenii, vstavlennom v formu firmi, a eti net...

    View dlya etogo tipa dokumentov ya sdelala po analogii, kak eto sdelano dlya drugih dokumentov firmi. A vot k sogaleniju ne rabotaet.
    Kstati zabila dobavit:
    esli ya ubirayu DocID_T + NoteType, to vigu dokumenti ne tolko prednaznachenie dlya etoj firmi, no voobsche vse.

    A NoteType eto kak ya ponyala eto imya tablizi dokumenta pri izmenenii View.

    Voobsche prinzip raboti etogo dokumenta firmi takoj:

    est knopochki, dopustim "vse dokumenti", "korrespondenzija" i tak dalle.
    Kod knopki "vse dokumenti":
    Sub Click(Source As Button)
    Call ChangeCompanyForm( "$CustomerNotes", "NoteType", "all", False , True )
    End Sub

    i tak dallee

    Prichem dlya vseh knopok stoit NoteType. Pri nagime menyaetsya forma na druguju. Eto proishodit pri pomoshi koda:
    Sub ChangeCompanyForm( DocForm As String, DocTabName As String, DocTabValue, EditMode As Integer, SaveMode As Integer )
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim item As NotesItem

    Set uidoc = ws.CurrentDocument
    Set doc=uidoc.Document
    doc.form = DocForm
    If DocTabName <> "" Then Set item = doc.Replaceitemvalue( DocTabName, DocTabValue )
    If SaveMode Then doc.SaveOptions = "0"
    Call uidoc.close()
    Call ws.editdocument(EditMode, doc)
    End Sub

    Vot, no k spgaleniju ya ne vigu eti dokumenti, o kotorih napisala. Est idei kak eto ispravit?
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Olga23
    Более-менее понятно. Вроде бы, NoteType - это поле, которое идентифицирует документы каждой фирмы (т.е. для корреспонденции там одно значение, для других - другое значение). Посмотри в документах фирмы поле NoteType.

    <!--QuoteBegin-Olga23+12:12:2005, 16:37 -->
    <span class="vbquote">(Olga23 @ 12:12:2005, 16:37 )</span><!--QuoteEBegin-->esli ya ubirayu DocID_T + NoteType
    [snapback]28290" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Попробуй убери NoteType. Оставь только DocID_T. Что будет ?
     
  5. Olga23

    Olga23 Гость

    kogda ostavlyaju Doc_ID, to nichego net<!--QuoteBegin-Medevic+12:12:2005, 16:04 -->
    <span class="vbquote">(Medevic @ 12:12:2005, 16:04 )</span><!--QuoteEBegin-->Для: Olga23
    Более-менее понятно. Вроде бы, NoteType - это поле, которое идентифицирует документы каждой фирмы (т.е. для корреспонденции там одно значение, для других - другое значение). Посмотри в документах фирмы поле NoteType.

    [snapback]28293" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Posmotrela, no tam net takogo polya. Eshe naschla takuju informaziju:
    V dokumente firma est skritie polya CpyDocID_T, ono ravno DocID_T i ono vichislyaemoe pri sostavlenii. Eshe odno poleDocID_T ravno @Text(DocumentUniqeID), ono toge vichislyaemoe pri sostavlenii.

    V dokumente Cheloveka te ge 2 polya + pole PerDocID_T = DocID_T i ono vichislyaemoe pri sostavlenii, a pole CpyDocID_T zdes uge ravno CpyDocID_T iz dokumenti firmi kak ya ponyala, i ono redaktiruemoe.

    Vot teper ne znayu chto s etim i delat to:-(
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Запиши в формулу выбора категории (где сейчас DocID_T + NoteType) @Text(DocumentUniqeID).
     
  7. Olga23

    Olga23 Гость

    Znaete,eshe vot nashla v svojstvah dokumentov. U vseh dokumentov, otnosyaschihsya k firme polya CpyDocID_T i PerDocID_T zapolneni, a u dokumentov, kotorie mne nugno otobrazit oni pusti. Moget iz-za etogo oshibka, potomu chto vibor idet po nim, a oni pusti..
     
  8. Olga23

    Olga23 Гость

    sdelala, kak Vi mne posovetovali, i eshe v pervom stolbze View postavila DocID_T,tolko vot vse ravno nichego ne otobragaetsya...Moget kak to sdelat,chtobi CpyDocID_T i PerDocID_T bili ne pusimi, i togda poluchitsya?
     
  9. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Olga23+12:12:2005, 17:47 -->
    <span class="vbquote">(Olga23 @ 12:12:2005, 17:47 )</span><!--QuoteEBegin-->Znaete,eshe vot nashla v svojstvah dokumentov. U vseh dokumentov, otnosyaschihsya k firme polya CpyDocID_T i PerDocID_T zapolneni, a u dokumentov, kotorie mne nugno otobrazit oni pusti. Moget iz-za etogo oshibka, potomu chto vibor idet po nim, a oni pusti..
    [snapback]28296" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Конечно в этом. Эти поля надо заполнить. :)
    Посмотри, как в других документах они заполняются. Скорее всего при создании документа.
     
  10. Olga23

    Olga23 Гость

    Oj ne hochu pokazatsya sovsem tupoj, no vot poprobovala zapolnit eti polya, a ih voobsche v svoistve dokumenta net.Delo v tom, chto ya otpravlyaju mnogo e-mail iz odnoj formi(Text i tema odna i ta ge, tolko raznim ljudyam), forma nazivaetsya Serien E-Mail, a otkrivayu eti poslannie E-mail dokumenti v drugoj forme. V oboih forma est tolko DocID_T.
    Ya poprobovala v pervuju formu, iz kotoroj otpravlyayu dobavit eti polya , no nichego ne proishodit.Navernoe ,ya ne pravilno eto delayu...
     
  11. Olga23

    Olga23 Гость

    A seychas vot test e-maili poslala, tak voobsche netu nikakogo polya dage DocID_T v svojstvah:-(
     
  12. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Olga23
    Эти поля сами не заполнятся.
    Если у тебя рассылка идет через скрипт, то, наверное, там они и должны заполняться. Посмотри внимательно код рассылки.
     
  13. Olga23

    Olga23 Гость

    Seychas posmotrela i nashlaeto v nekotorih funkzijah script bibliotek. No vse eto tolko dlya formi, iz kotoroj mi posilaem tolko odin e-mail, vibiraya iz spiska.
    A te e-mail, o kotorih ya govorila vchera, oni otpravlyayutsya iz odnoj formi, a s pomoschju drugoj formi ya pokazivayu kagdoe iz nih.
    Nu vot v etom sluchae nichego ne nachla, gde bi upominalis DocID_T, CpyDocID_T ili PerDoc ID_T.

    To chto nashla dlya formi, iz kotoroj mi posilaem tolko odin e-mail, vibiraya iz spiska.:
    Sub SetContactPerson
    'Const language
    Const PickListHeader = "Auswahl"
    Const PickListText = "Bitte wählen Sie ein Kontakt aus."

    REM Const
    Const ViewName = "$Lookup-Person"

    REM Dim
    Dim ss As New NotesSession
    Dim ws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim coll As NotesDocumentCollection
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim maindoc As NotesDocument

    REM Code
    Set db = ss.CurrentDatabase
    Set view = db.GetView( ViewName )
    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document

    'Person auswählen
    Set coll = ws.PickListCollection( 1, False, db.Server , db.FilePath , ViewName , PickListHeader , PickListText, doc.CpyDocID_T(0))
    If ( coll.Count <> 1 ) Then Exit Sub
    Set maindoc = coll.getFirstDocument
    doc.ContactPerson_T = Trim( Trim( Trim( maindoc.Salutation_T(0) + " " + maindoc.Title_T(0)) + " " + maindoc.FirstName_T(0)) + " " + maindoc.SurName_T(0))
    doc.Phone_T = maindoc.Phone_T(0)
    doc.PerDocID_T = maindoc.PerDocID_T(0)
    Call uidoc.GotoField( "Subject_T" )
    Call ws.ReloadWindow( )
    End Sub


    I eshe:
    Dim ss As New NotesSession
    Dim db As NotesDatabase
    Dim idview As NotesView
    Dim uidoc As NotesUIDocument
    Dim newdoc As NotesDocument
    Dim tmpdoc As NotesDocument
    Dim maindoc As NotesDocument
    Dim doc As NotesDocument
    Dim dbprofile As NotesDocument
    Dim myprofile As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim answerrtitem As NotesRichTextItem
    Dim TextFrom As String

    REM Globals
    Set db = ss.CurrentDatabase
    Set idview = db.Getview( "$Lookup-DocID" )
    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document

    REM Code
    If doc.PerDocID_T(0) = "" Then
    Set maindoc = idview.Getdocumentbykey( doc.CpyDocID_T(0) )
    Else
    Set maindoc = idview.Getdocumentbykey( doc.PerDocID_T(0) )
    If maindoc Is Nothing Then Set maindoc = idview.Getdocumentbykey( doc.CpyDocID_T(0) )
    End If
    If maindoc Is Nothing Then Exit Sub
    Set dbprofile = db.Getprofiledocument( "$DatabaseProfile")
    Set myprofile = db.Getprofiledocument( "$PersonalProfile", ss.Username)
    TextFrom = SenderList( doc.Getitemvalue( "MailSendTo" ))

    If Forward Then Set maindoc = GetMailAdress( "MailSendTo", "$CustomerByMail", True)
    If maindoc Is Nothing Then Exit Sub

    REM damit das RichTextItem "Body" ohne ein "Computewithform" angezeigt wird,
    REM wird dieses in "tmpdoc" erstellt und dann in das eigentliche "newdoc" kopiert
    REM Vorteil: ohne "Computewithform" schnellere Laufzeit
    Set tmpdoc = db.CreateDocument
    Set rtitem = tmpdoc.CreateRichTextItem( "Body")
    With rtitem
    .Appendtext( maindoc.LetterSalutation_T(0) )
    .Addnewline( 3)
    .Appendtext( myprofile.PF_MyGreetingText_T(0) + Chr(13) )
    .Appendtext( dbprofile.PF_MyCompanyName_T(0) + Chr(13) + Chr(13))
    .Appendtext( ss.Commonusername + Chr(13))
    .Appendtext( myprofile.PF_MyUserDepartment_T(0) + Chr(13))
    If myprofile.PF_MyUserAddData_T(0) <> "" Then .Appendtext( myprofile.PF_MyUserAddData_T(0) + Chr(13) + Chr(13))
    If myprofile.PF_MyUserPhone_T(0) <> "" Then .Appendtext( Phone + myprofile.PF_MyUserPhone_T(0) + Chr(13))
    If myprofile.PF_MyUserFax_T(0) <> "" Then .Appendtext( Fax + myprofile.PF_MyUserFax_T(0) + Chr(13))
    If myprofile.PF_MyUserMail_T(0) <> "" Then .Appendtext( EMail + myprofile.PF_MyUserMail_T(0) + Chr(13))
    If dbprofile.PF_MyCompanyInternet_T(0) <> "" Then .Appendtext( Internet + dbprofile.PF_MyCompanyInternet_T(0))
    If WithProtocol Or Forward Then
    .Addnewline(2)
    If Forward Then
    .Appendtext( TextLine + TextForward + ss.Commonusername + TextAt + Cstr( Now) + " " + TextLine + Chr(13))
    Else
    .Appendtext( TextLine + TextAnswer + TextLine + Chr(13))
    End If
    .Appendtext( AnswerMailFrom + SenderList( doc.Getitemvalue( "MailSendFrom_T")) + Chr(13))
    .Appendtext( AnswerMailSendDate + doc.MailSendAt_D(0) + Chr(13))
    .Appendtext( AnswerMailSendTo + TextFrom + Chr(13))
    .Appendtext( AnswerMailCopyTo + SenderList( doc.Getitemvalue( "MailCopyTo" )) + Chr(13))
    .Appendtext( AnswerMailSubject + doc.Subject_T(0) + Chr(13) + Chr(13))
    If doc.Hasitem( "Body" ) Then
    Set answerrtitem = doc.Getfirstitem( "Body" )
    Call .AppendRTItem( answerrtitem )
    End If
    End If
    End With

    Set newdoc = db.CreateDocument
    Call rtitem.CopyItemToDocument( newdoc, "" )
    Call CopyStandardFields ( newdoc, doc )
    With newdoc
    .form = "EMail"
    .FMailSend_N = 1
    .PerDocID_T = maindoc.PerDocID_T(0)
    .ContactPerson_T = Trim( Trim( Trim( maindoc.Salutation_T(0) + " " + maindoc.Title_T(0)) + " " + maindoc.FirstName_T(0)) + " " + maindoc.SurName_T(0))
    .Phone_T = maindoc.Phone_T(0)
    If Forward Then
    .MailSendTo = maindoc.EMail_T
    .HeaderLineVar1_TD = HeaderLineForward
    Else
    .MailSendTo = doc.MailSendFrom_T
    .ReplyToAll = Arrayappend( doc.MailCopyTo, doc.MailSendTo ) ' am 11.3.2003 geändert
    .HeaderLineVar1_TD = HeaderLineAnswer
    End If
    ' if Abfrage ergänzt am 9.6.2004
    If Forward Then
    .Subject_T = doc.Subject_T(0)
    Else
    If Not (Ucase( Left ( doc.Subject_T(0), Len( Re1) )) = Ucase(Re1) Or Ucase(Left ( doc.Subject_T(0), Len( Re2) )) = Ucase(Re2) ) Then
    .Subject_T = Re2 + doc.Subject_T(0)
    Else
    .Subject_T = doc.Subject_T(0)
    End If
    End If
    '-----------
    .type_K = ""
    End With
    Set uidoc = ws.editdocument( True, newdoc, False )
    End Sub

    Vot nu i chto teper delat. V forme iz kotoroj posilaem eti mnogo e-mailov, est tolko pole DocID_T, kotoroe kak mne kagetsya ispolzuem dlya kagdogo dokumenta, sozdannogo na osnove etoj formi(T.e forma, iz kotoroj mi otpravili eti e-maili.)
    Est idei, chto delat?Ved mne eto vse nado eshe vo Voew pokazat dlya kagdoj firmi:-(
     
  14. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Olga23
    Не знаю, что делать. Код мне практически ничего не говорит. Поле DocID_T, как мне кажется, содержит UNID самого документа. PerDocID_T - UNID какого-то главного документа (возможно, документа фирмы). CpyDocID_T - не знаю.

    <!--QuoteBegin-Olga23+13:12:2005, 11:43 -->
    <span class="vbquote">(Olga23 @ 13:12:2005, 11:43 )</span><!--QuoteEBegin-->V forme iz kotoroj posilaem eti mnogo e-mailov
    [snapback]28319" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Второй код создает какие-то документы по форме "EMail". Т.е. у этих созданных документов должно быть поле PerDocID_T, которое содержит UNID главного документа. И оно должно быть не пустое. Проверь.

    В форме, из которой ты посылаешь e-mail'ы, эти самые e-mail'ы уже созданы вышенаписанным кодом ? Или формируются по нажатию на кнопку ?
     
  15. Olga23

    Olga23 Гость

    oni formitujutsya na nagatuju knopku. Kod (eto funkzija v biblioteke scriptov):
    Function SendMailToList ( mdoc As NotesDocument, IsAgent As Integer ) As String
    SendMailToList = Cstr(Now) + pStart
    Set ss = New NotesSession
    Set db = ss.CurrentDatabase
    Set senddb = New NotesDatabase( "", "" )
    Set pdoc = db.Getprofiledocument( "$DatabaseProfile" )
    AdressIDList = SetAdressArray( mdoc, True )
    If Isempty( AdressIDList ) Then
    SendMailToList = SendMailToList + Chr(13) + NoDocuments
    If Not IsAgent Then Messagebox NoDocuments + NoMailSent, 0, MsgHeader
    Else
    SendMailToList = SendMailToList + Chr(13) + Cstr( Ubound( AdressIDList ) + 1) & pReceiver
    If Not IsAgent Then Print Cstr( Ubound( AdressIDList ) + 1) & pReceiver
    If pdoc.PF_SendMailbox_T(0) = "Mailbox" Then
    Call senddb.Open( pdoc.PF_MailServer_T(0), pdoc.PF_Mailbox_T(0) )
    SendDirect = True
    Else
    Set mail = db.createdocument
    Call SetStandardFields( mdoc )
    SendDirect = False
    End If
    'Mail erstellen
    j& = 0
    '+++++ spisok informazii o poluchatele
    Dim firmaenInfo As Variant
    Dim tdoc As NotesDocument


    Forall z In AdressIDList
    Set tdoc=db.createdocument
    Set cdoc = db.Getdocumentbyunid( z )
    If SendDirect Then
    Set mail = New notesdocument(senddb)
    Call SetStandardFields( mdoc )
    firmaeninfo= SetVarFields( cdoc, mdoc)
    mail.Recipients = cdoc.EMail_T
    mail.PostedDate = Now
    Call mail.Save( False, True )
    Else
    firmaenInfo= SetVarFields( cdoc, mdoc )
    Call mail.send( False )
    End If

    Call mail.CopyAllItems(tdoc,False)
    'Form, in der den Dokument geöffnet wird
    tdoc.form="EMailSerien"
    tdoc.Name1_T= firmaenInfo(0)
    tdoc.City_T= firmaenInfo(1)
    tdoc.ContactPerson_T=firmaenInfo(2)
    tdoc.ReplyTo=firmaenInfo(3)
    tdoc.MailSendAt_D=Now
    tdoc.Subject_T=tdoc.Subject
    tdoc.MailSendTo=tdoc.sendto

    Call tdoc.Save(True,False)
    j& = j& + 1
    If Not IsAgent Then Print Cstr( j& ) + pMailsSend
    End Forall
    '++++ sb sohranyaem etot spisok


    SendMailToList = SendMailToList + Chr(13) + Cstr( j& ) + pMailsSend
    If Not IsAgent Then Messagebox Cstr( j& ) + pMailsSend, 0, MsgHeader
    End If
    mdoc.SentAt_D = Now
    SendMailToList = SendMailToList + Chr(13) + Cstr( Now ) + pEnde
    mdoc.SendProtocol_T = mdoc.SendProtocol_T(0) + Chr(13) + Chr(13) + SendMailToList
    mdoc.FPending_K = "2"
    Call mdoc.save( True, False )
    End Function

    Vot, gde:
    Dim ws As NotesUIWorkspace
    Dim senddb As NotesDatabase
    Dim cdoc As NotesDocument
    Dim pdoc As NotesDocument
    Dim mail As NotesDocument

    Dim AdressIDList As Variant
    Dim SendDirect As Integer
    Dim j As Long
    Eta biblioteka skripta ispolzuet eshe odnu, dge sostavlyaetsya AdressIDList:
    Function SetAdressArray( doc As NotesDocument, OnlyEMail As Integer ) As Variant
    Dim ss As New NotesSession
    Dim db As NotesDatabase
    Dim i As Integer
    Set db = ss.CurrentDatabase
    Set cpyview = db.GetView( CompanyView )
    Set perview = db.GetView( PersonView )
    Set cpydoc = cpyview.Getfirstdocument
    Set searchdoc = doc
    TotalRecords& = cpyview.TopLevelEntryCount

    If Not SetSelectionFields Then Exit Function
    SelectedAdress& = -1
    Do Until cpydoc Is Nothing
    cLogSolution = False
    Set item=cpydoc.getfirstitem( "IsCustomer_K" )
    Forall z In searchdoc.IsCustomer_K
    If item.contains( z ) Then cLogSolution = True : Exit Forall
    End Forall
    If cLogSolution Then
    For i% = 0 To maxCount
    If SelectedFields( i%).DocType = cForm Then Call IsCondition( i%, cpydoc )
    Next
    For i% = 0 To maxCount
    If SelectedFields( i% ).IsOpen And SelectedFields( i% ).CpyDocPrior And SelectedFields( i%).DocType = cForm Then cLogSolution = SetLogSolution( cLogSolution, i% )
    Next
    cLogSolution = CheckDate( cpydoc, cLogSolution )
    IsPersonSelect = False
    If cLogSolution Then
    Set percoll = perview.Getalldocumentsbykey( cpydoc.CpyDocID_T(0), True )
    Set perdoc = percoll.Getfirstdocument
    Do Until perdoc Is Nothing
    For i% = 0 To maxCount
    If SelectedFields( i%).DocType = pForm Then Call IsCondition( i%, perdoc )
    Next
    pLogSolution = True
    For i% = 0 To maxCount
    If SelectedFields( i% ).IsOpen And SelectedFields( i%).DocType = pForm Then pLogSolution = SetLogSolution( pLogSolution, i% )
    Next
    pLogSolution = CheckDate( perdoc, pLogSolution )
    If pLogSolution Then IsPersonSelect = True : Call SetNewAdress( perdoc, OnlyEMail )
    Set perdoc = percoll.Getnextdocument( perdoc )
    Loop
    If Not IsPersonSelect And searchdoc.CritSelectCust_K(0) = "1" Then
    For i% = 0 To maxCount
    If SelectedFields( i% ).IsOpen And Not SelectedFields( i% ).CpyDocPrior And SelectedFields( i%).DocType = cForm Then cLogSolution = SetLogSolution( cLogSolution, i% )
    Next
    If cLogSolution Then Call SetNewAdress( cpydoc, OnlyEMail )
    End If
    End If
    End If
    Set cpydoc = cpyview.GetNextDocument( cpydoc )
    Loop
    If SelectedAdress& >= 0 Then SetAdressArray = AdressID
    End Function

    Tut mi mogem uvidet CpyDocID_T.Teper nado kak to zapomnit etot CpyDocID_T, pri otpravlenii etih e-mail, no ne dlya odnogo dokumenta(sdelannogo na osnove formi otpravlenija), a dlya kagdogo otdelnogo e-mail, poslanogo iz etoj formi..
     
  16. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Olga23+13:12:2005, 12:34 -->
    <span class="vbquote">(Olga23 @ 13:12:2005, 12:34 )</span><!--QuoteEBegin-->Function SendMailToList ( mdoc As NotesDocument, IsAgent As Integer ) As String
    [snapback]28322" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Что такое mdoc ?
     
  17. Olga23

    Olga23 Гость

    Sub CheckMailList( mdoc As NotesDocument, OnlyEMail As Integer )
    AdressIDList = SetAdressArray( mdoc, OnlyEMail )
    If Isempty( AdressIDList ) Then
    Messagebox NoDocuments, 0, MsgHeader
    Else
    Messagebox Cstr( Ubound( AdressIDList ) + 1 ) + DocumentsFound, 0, MsgHeader

    End If
    End Sub
     
  18. Olga23

    Olga23 Гость

    Sub SetStandardFields( mdoc As NotesDocument )
    mail.Form = "Memo"
    mail.From = mdoc.ReplyTo_T
    mail.ReplyTo = mdoc.ReplyTo_T
    mail.Subject = mdoc.Subject_T(0)
    End Sub

    kak ya ponyala, mdoc-eto spisok naydennih e-mail ili forma otpravlenija
     
  19. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Olga23
    Откуда вызывается SendMailToList ? В качестве первого параметра ей передается некоторый документ. Что за документ ?
     
  20. Olga23

    Olga23 Гость

    Function SetVarFields( cdoc As NotesDocument, mdoc As NotesDocument ) As Variant
    Dim temp(3) As String
    Dim newrtitem As NotesRichtextItem
    Dim textrtitem As NotesRichtextItem
    mail.SendTo = cdoc.EMail_T
    Call mail.RemoveItem( "Body" )
    Set newrtitem = mail.Createrichtextitem( "Body" )
    Set textrtitem = mdoc.Getfirstitem( "Body" )
    Call newrtitem.Appendtext( cdoc.LetterSalutation_T(0) )
    Call newrtitem.Addnewline(2)
    Call newrtitem.Appendrtitem( textrtitem )

    ' +++ sb daet imja firmi i email adres nazad

    temp(0)=cdoc.Name1_T(0)
    temp(1)=cdoc.City_T(0)
    temp(2)=Trim(cdoc.Salutation_T(0) + " " + cdoc.Title_T (0)+ " " + cdoc.FirstName_T(0) + " " + cdoc.SurName_T(0))
    temp(3)=cdoc.ReplyTo(0)
    SetVarFields=temp

    End Function
     
Статус темы:
Закрыта.

Поделиться этой страницей