1

Тема: Регистрация ответного документа

Это код в кнопке "зарегить" в ответном документе, то есть под каким рег. номером регистрировать ответный документ.

1. простой вариант - когда просто берется текущая дата, и берется последний номер, если что то номер можешь ввести любой который нужен.

Dim session As New NotesSession    
    Dim ws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim doc As NotesDocument, docreg As NotesDocument
    Dim view As NotesView
    Dim uidoc As NotesUIDocument
    Dim mes As String, mes2 As String
    Dim user As String
    Dim item As NotesItem
    Dim sdate As Variant
    Dim regString As String
    Dim i As Integer
    i=0
    
    Set uidoc = ws.CurrentDocument
    Set db = ws.CurrentDatabase.Database
    Set view = db.GetView ("reg" )
    Set doc = ws.currentdocument.Document
    
    If doc.isreg(0)="1" Then Messagebox("Документ уже зарегестрирован!") : Exit Sub    
    If doc.docnomen(0)="" Or doc.header(0)="" Or doc.doctype(0)="" Or doc.adresed(0)="" Then Messagebox("Не заполнены необходимые поля!") : Exit Sub 
    
    If doc.doctype(0) = "" Then Msgbox("Выберите корректный тип документа для регистрации !") :  Exit Sub
    
    Set docreg = view.GetFirstDocument
    
    sdate = Evaluate("@Now( [SERVERTIME])")    
    'sdate = Evaluate("@Adjust( @Now( [ServerTime]) ; 0 ; 0 ; 0 ; -1 ; 0 ; 0 )")
    doc.datereg = sdate(0)
    
    If doc.doctype(0)="26/04" Or doc.doctype(0)="26/05" Or  doc.doctype(0)="26/08" Or doc.doctype(0)="26/09" Or  doc.doctype(0)="26/10" Or  doc.doctype(0)="26/11"  Then doc.regnom=docreg.j26(0)
 
    
    var = Cdat(Inputbox$("Введите новую дату регистрации. Внимание! формат даты: число.месяц.год","Ввод даты регистрации",uidoc.Document.datereg(0)))
    
    uidoc.Document.datereg = Cdat(var)
    regString = Inputbox$("Введите регистрационный номер", "Рег. номер", uidoc.Document.regnom(0))
    
    doc.regnom=regString
    
    doc.isreg="1"
    doc.who="На регистрации"
    
' добавляем регистратора в читатели документа    
    user = session.CommonUserName
    Set item = doc.GetFirstItem("addreaders")
    Call item.AppendToTextList( user )    
' добавляем регистратора в авторы документа        
    Set item = doc.GetFirstItem("addauthors")
    Call item.AppendToTextList( user )    
    
    mes=doc.history(0)
    mes2=Date$+"   "+"   документ зарегистрирован"&Chr(13)
    doc.history=mes2+mes    
    
    Call docreg.Save( True, False )
    Call uidoc.Save()

Поделиться

2

Re: Регистрация ответного документа

2. этот  вариант выдает три варианта присвоения рег. номера у ответного документа:
1 номер родительского,
2, номер одного из документов ответов вводишь,
3, номер след согласно номенклатуры,

Sub Click(Source As Button)
    Dim session As New NotesSession    
    Dim ws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim doc As NotesDocument, docreg As NotesDocument
    Dim view As NotesView
    Dim uidoc As NotesUIDocument
    Dim mes As String, mes2 As String
    Dim user As String
    Dim item As NotesItem
    Dim sdate As Variant
    Dim Arr(0) As String    
    Dim Arr1(0)As String
    Dim i As Integer
    
    Set uidoc = ws.CurrentDocument
    Set db = ws.CurrentDatabase.Database
    Set view = db.GetView ("reg" )
    Set doc = ws.currentdocument.Document
    
    If doc.datereg(0)="1" Then Messagebox("Документ уже зарегестрирован!") : Exit Sub    
    
    If doc.responce(0)="1" Then  ' Если ответ, заполнить в пременные дату и номер вх. дока
        Set pdoc = db.GetDocumentByUNID(doc.parent(0))
        If pdoc.doctype(0) ="" Then Messagebox ("Проверьте корректность типа документа, или рег. номера, и рег. дату входящего документа"): Exit Sub
        doctypep$=pdoc.doctype(0)
        regnomp$=pdoc.regnom(0)
        regdate$=pdoc.datereg(0)
    End If
    
    
    If doc.docnomen(0)=""  Then        '    -      --------------------------     ПРОВЕРКИ
        Msgbox "Необходимо выбрать номеклатуру!"
        continue=False
        Exit Sub
    End If
    If doc.header(0)="" Then
        Msgbox "Необходимо вввести заголовок!"
        continue=False
        Exit Sub
    End If
    If doc.adresed(0)="" Then
        Msgbox "Выберите адресата!"
        continue=False
        Exit Sub
    End If
    If doc.isp(0)="" Then
        Msgbox "Выберите исполнителя!"
        continue=False
        Exit Sub
    End If
    If doc.finish(0)="" Then
        Msgbox "Необходимо выбрать промежуточный или окончательный ответ!"
        continue=False
        Exit Sub
    End If
    If doc.doctype(0) = "" Then Msgbox("Выберите корректный тип документа для регистрации !") :  Exit Sub
    
      '    -      --------------------------     ПРОВЕРКИ  ЕНД
    
    
    Set docreg = view.GetFirstDocument
    sdate = Evaluate("@Now( [SERVERTIME])")    
    
    'If doc.doctype(0)<>"0116" Then
    
    ListTipReg1=Fulltrim(Arrayappend(Arr1,"Присвоить следующий номер согласно номенклатуре"))
    ListTipReg1=Fulltrim(Arrayappend(ListTipReg1,"Присвоить номер Родительского документа"))
    ListTipReg1=Fulltrim(Arrayappend(ListTipReg1,"Присвоить свой номер"))
    
    TipReg1 = ws.Prompt( Prompt_OkCancelList, "Вид регистрации...", " ",ListTipReg1(0),ListTipReg1)
    If Isempty(TipReg1) Then
        Exit Sub
    End If    
    
    If TipReg1 = "Присвоить номер Родительского документа" Then    
        If doctypep$<> doc.doctype(0) Then Msgbox "Номенклатурная позиция ответного документа не совпадает с главным!": Exit Sub
        doc.datereg=sdate(0)
        doc.regnom= regnomp$
    End If
    
    If TipReg1 = "Присвоить свой номер" Then    
        doc.datereg=sdate(0)
        regnompp$= Inputbox$("Введите регистрационный номер", "Рег. номер", uidoc.Document.regnom(0))
        doc.regnom= regnompp$
    End If
    
    If TipReg1 = "Присвоить следующий номер согласно номенклатуре" Then
        doc.datereg=sdate(0)
        i=0
        If doc.doctype(0)="01-12.1" Then doc.regnom=docreg.j12(0) : docreg.j12=docreg.j12(0)+1 :   i=1
        If doc.doctype(0)="01-12.2" Then doc.regnom=docreg.j15(0) : docreg.j15=docreg.j15(0)+1 :   i=1
        If doc.doctype(0)="01-15" Then doc.regnom=docreg.j15(0) : docreg.j15=docreg.j15(0)+1 :   i=1
        If i=0 Then  '  все остальные исх
            doc.regnom=docreg.outcount(0)
            docreg.outcount=docreg.outcount(0)+1    
        End If
    End If
    
    'End If 
    
    doc.isreg="1"
' добавляем регистратора в читатели документа    
    user = session.CommonUserName
    Set item = doc.GetFirstItem("addreaders")
    Call item.AppendToTextList( user )    
' добавляем регистратора в авторы документа        
    Set item = doc.GetFirstItem("addauthors")
    Call item.AppendToTextList( user )    
    
    mes=doc.history(0)
    mes3 = sdate(0)    
    mes2=mes3 +"   "+"  зарегистрирован ответный документ "+ " "&Chr(13)+" "&Chr(13)    
    doc.history=mes2+mes
    
    Call docreg.Save( True, False )
    Call uidoc.Save()    
End Sub

Поделиться