wmadruga (owner)

Revisions

gist: 141625 Download_button fork
public
Description:
Gerador de classe apartir de Formulário Lotus Notes
Public Clone URL: git://gist.github.com/141625.git
Embed All Files: show embed
VB.net #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
' gerador de classe.lss
' Código Lotus Script - categorizado como VB.net só pra usar o Syntax Highlight
 
' Exibe a lista de formulários e gera uma classe para o form escolhido
 
Option Public
Option Explicit
 
Use "lsArrayList.class"
Dim s As NotesSession
Dim db As NotesDatabase
Dim form As NotesForm
Dim classe As String
Dim form_name As String
 
'// @Author William Madruga
'// @Created 30/06/2009
 
'/* Source da classe gerado em C:\
' * É necessário importar esse source para script library depois de gerado.
' *
' * TODO:
' * 1 - Retirar o hardcode
' * 2 - Gerar a classe dentro das script libraries, sem a necessidade de importar na mão
' * 3 - Remover as aspas do source gerado
' */
 
Sub Initialize
 
Dim filename As String
Dim filenum As Integer
 
Set s = New NotesSession
Set db = s.CurrentDatabase
 
form_name = get_form
If form_name <> "" Then
Set form = db.GetForm(form_name)
fileNum = Freefile()
fileName = "C:\" + form_name + ".lss"
 
Call create_object_factory
Call create_class
Call create_constructor
Call create_create_method
Call create_save_method
'Call create_attributes
Call create_setters
Call create_getters
classe = classe + Chr(13) + |End Class|
 
' Gravando classe no sistema operacional
Open filename For Output As filenum
Write #filenum, classe
Close filenum
Else
Msgbox "Operação Cancelada"
End If
End Sub
Private Function get_form As String
Dim wk As New NotesUIWorkspace
Dim response As String
Dim forms As Arraylist
 
Set forms = New Arraylist("")
Forall x In db.Forms
Call forms.add(x.name)
End Forall
 
response = wk.Prompt (PROMPT_OKCANCELLIST, _
"Selecione o Formulário", _
"Selecione o formulário para a geração da classe.", _
"", forms.array)
 
If Isempty (response) Then
get_form = ""
Else
get_form = response
End If
End Function
Private Sub create_object_factory
' Fábrica de objetos da classe
classe = |Public Class | + form_name + |Factory|
classe = classe + Chr(13) + |Public Function produce|
classe = classe + Chr(13) + |Set produce = New |+ form_name +|()|
classe = classe + Chr(13) + |End Function|
classe = classe + Chr(13) + |End Class|
End Sub
Private Sub create_class
' Inicio da classe
classe = classe + Chr(13) + |Public Class | + form_name
classe = classe + Chr(13) + |Private m_session As NotesSession|
classe = classe + Chr(13) + |Private m_db As NotesDatabase|
classe = classe + Chr(13) + |Private m_doc As NotesDocument|
Call enter
End Sub
Private Sub create_constructor
classe = classe + Chr(13) + |Sub new()|
classe = classe + Chr(13) + |Set m_session = New NotesSession|
classe = classe + Chr(13) + |Set m_db = m_session.CurrentDatabase|
classe = classe + Chr(13) + |End Sub|
Call enter
End Sub
Private Sub create_attributes
Forall x In form.Fields
classe = classe + Chr(13) + |Private | + x + | as Variant |
End Forall
Call enter
End Sub
Private Sub create_setters
Forall x In form.Fields
classe = classe + Chr(13) + |Public Property Set |+ x +| As Variant|
classe = classe + Chr(13) + |m_doc.| + x + | = | + x
classe = classe + Chr(13) + |End Property|
End Forall
Call enter
End Sub
 
Private Sub create_getters
Forall x In form.Fields
classe = classe + Chr(13) + |Public Property Get |+ x +| As Variant|
classe = classe + Chr(13) + x + | = m_doc.| + x + |(0)|
classe = classe + Chr(13) + |End Property|
End Forall
Call enter
End Sub
Sub create_create_method
classe = classe + Chr(13) + |Public Sub create()|
classe = classe + Chr(13) + |Set m_doc = m_db.CreateDocument|
classe = classe + Chr(13) + |with m_doc|
classe = classe + Chr(13) + |.form = "| + form_name + |"|
classe = classe + Chr(13) + |.docid = m_doc.universalID|
classe = classe + Chr(13) + |End With|
classe = classe + Chr(13) + |End Sub|
Call enter
End Sub
 
 
 
Sub create_save_method
classe = classe + Chr(13) + |Public Sub save()|
classe = classe + Chr(13) + |Call m_doc.save(true,false)|
classe = classe + Chr(13) + |End Sub|
Call enter
End Sub
Private Sub enter
classe = classe + Chr(13)
classe = classe + Chr(13)
End Sub