simple_view 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. data/Rakefile +2 -0
  2. data/lib/CVS/Entries +3 -0
  3. data/lib/CVS/Repository +1 -0
  4. data/lib/CVS/Root +1 -0
  5. data/lib/core-ext/CVS/Entries +5 -0
  6. data/lib/core-ext/CVS/Repository +1 -0
  7. data/lib/core-ext/CVS/Root +1 -0
  8. data/lib/core-ext/array.rb +14 -0
  9. data/lib/core-ext/jopen.rb +43 -0
  10. data/lib/core-ext/nilclass.rb +31 -0
  11. data/lib/core-ext/string.rb +51 -0
  12. data/lib/simple_view/CVS/Entries +11 -0
  13. data/lib/simple_view/CVS/Repository +1 -0
  14. data/lib/simple_view/CVS/RevisionCache/builder_view.rb#1.1.1.1 +42 -0
  15. data/lib/simple_view/CVS/RevisionCache/erb_view.rb#1.1.1.1 +44 -0
  16. data/lib/simple_view/CVS/RevisionCache/file_content.rb#1.1.1.1 +50 -0
  17. data/lib/simple_view/CVS/RevisionCache/io_view.rb#1.1.1.1 +37 -0
  18. data/lib/simple_view/CVS/RevisionCache/poi_view.rb#1.1.1.1 +116 -0
  19. data/lib/simple_view/CVS/RevisionCache/renderable.rb#1.1.1.1 +114 -0
  20. data/lib/simple_view/CVS/RevisionCache/simple_view.rb#1.1.1.1 +214 -0
  21. data/lib/simple_view/CVS/Root +1 -0
  22. data/lib/simple_view/builder_view.rb +42 -0
  23. data/lib/simple_view/erb_view.rb +44 -0
  24. data/lib/simple_view/file_content.rb +50 -0
  25. data/lib/simple_view/haml_view.rb +36 -0
  26. data/lib/simple_view/io_view.rb +37 -0
  27. data/lib/simple_view/java/CVS/Entries +1 -0
  28. data/lib/simple_view/java/CVS/Repository +1 -0
  29. data/lib/simple_view/java/CVS/Root +1 -0
  30. data/lib/simple_view/java/poi/CVS/Entries +6 -0
  31. data/lib/simple_view/java/poi/CVS/Repository +1 -0
  32. data/lib/simple_view/java/poi/CVS/Root +1 -0
  33. data/lib/simple_view/java/poi/poi-3.6-20091214.jar +0 -0
  34. data/lib/simple_view/java/poi/poi-contrib-3.6-20091214.jar +0 -0
  35. data/lib/simple_view/java/poi/poi-ooxml-3.6-20091214.jar +0 -0
  36. data/lib/simple_view/java/poi/poi-ooxml-schemas-3.6-20091214.jar +0 -0
  37. data/lib/simple_view/java/poi/poi-scratchpad-3.6-20091214.jar +0 -0
  38. data/lib/simple_view/poi_view.rb +116 -0
  39. data/lib/simple_view/renderable.rb +114 -0
  40. data/lib/simple_view/simple_view.rb +214 -0
  41. data/lib/simple_view/smartxls.rb +38 -0
  42. data/lib/simple_view/version.rb +3 -0
  43. data/lib/simple_view.rb +5 -0
  44. data/test/CVS/Entries +6 -0
  45. data/test/CVS/Repository +1 -0
  46. data/test/CVS/RevisionCache/test_view.rb#1.1.1.1 +25 -0
  47. data/test/CVS/RevisionCache/test_view_reuse_erb.rb#1.1.1.1 +21 -0
  48. data/test/CVS/Root +1 -0
  49. data/test/helpers/CVS/Entries +3 -0
  50. data/test/helpers/CVS/Repository +1 -0
  51. data/test/helpers/CVS/RevisionCache/test_helper.rb#1.1.1.1 +7 -0
  52. data/test/helpers/CVS/Root +1 -0
  53. data/test/helpers/etat_corbeilles_prc_helper.rb +13 -0
  54. data/test/helpers/test_helper.rb +7 -0
  55. data/test/jtest_view.rb +17 -0
  56. data/test/test_view.rb +25 -0
  57. data/test/test_view_reuse_erb.rb +21 -0
  58. data/test/test_view_sv_debug.rb +16 -0
  59. data/test/views/CVS/Entries +17 -0
  60. data/test/views/CVS/Repository +1 -0
  61. data/test/views/CVS/RevisionCache/test.erb#1.1.1.1 +2 -0
  62. data/test/views/CVS/Root +1 -0
  63. data/test/views/etat_corbeilles_prc-csv.io.rb +40 -0
  64. data/test/views/etat_corbeilles_prc-xls.poi.rb +97 -0
  65. data/test/views/etat_corbeilles_prc-xls2.smartxl.rb +128 -0
  66. data/test/views/etat_corbeilles_prc.html.erb +108 -0
  67. data/test/views/test-builder.builder.rb +1 -0
  68. data/test/views/test-erb.erb +1 -0
  69. data/test/views/test-model.xls +0 -0
  70. data/test/views/test-model.xlsx +0 -0
  71. data/test/views/test-xls.poi.rb +34 -0
  72. data/test/views/test-xls.smartxl.rb +80 -0
  73. data/test/views/test.builder.rb +1 -0
  74. data/test/views/test.erb +2 -0
  75. data/test/views/test.haml +1 -0
  76. data/test/views/test.io.rb +1 -0
  77. data/test/views/test.poi.rb +7 -0
  78. data/test/views/test_error.erb +1 -0
  79. metadata +177 -0
@@ -0,0 +1,214 @@
1
+ require 'monitor'
2
+ require 'delegate'
3
+ require 'core-ext/string'
4
+ require 'core-ext/nilclass'
5
+
6
+
7
+ module SimpleView
8
+
9
+ autoload :FileContent, File.join(File.dirname(__FILE__), 'file_content')
10
+ autoload :Renderable, File.join(File.dirname(__FILE__), 'renderable')
11
+
12
+ autoload :SimpleViewERB, File.join(File.dirname(__FILE__), 'erb_view')
13
+ autoload :SimpleViewIO, File.join(File.dirname(__FILE__), 'io_view')
14
+ autoload :SimpleViewBuilder, File.join(File.dirname(__FILE__), 'builder_view')
15
+ autoload :SimpleViewPOI, File.join(File.dirname(__FILE__), 'poi_view')
16
+
17
+ $SV_DEBUG = ENV['SV_DEBUG']
18
+
19
+ class Base
20
+
21
+
22
+ class << self
23
+ attr_accessor :directory_views, :directory_helpers
24
+ end
25
+
26
+ def directory_views
27
+ Base.directory_views
28
+ end
29
+
30
+ def directory_helpers
31
+ Base.directory_helpers
32
+ end
33
+
34
+ end
35
+
36
+ class TemplateViewNotFound < Exception; end
37
+
38
+ class SimpleViewBase < Base
39
+
40
+ attr_accessor :template, :file_template
41
+
42
+ def initialize(template, file_template = nil)
43
+ self.template = template
44
+ self.file_template = file_template
45
+ end
46
+
47
+ def template_name(ext = self.template_extension)
48
+ "#{template}#{ext}"
49
+ end
50
+
51
+ def lookup_file_template(ext = self.template_extension)
52
+ unless @file_template
53
+ tpl = self.template_name(ext)
54
+ list = Dir.glob(File.join(self.directory_views, tpl))
55
+ raise TemplateViewNotFound.new("Impossible de trouver le template #{tpl} dans le repertoire #{self.directory_views}") unless list.size == 1
56
+ @file_template = list.first
57
+ end
58
+ @file_template
59
+ end
60
+
61
+ def clean_template_name_for_helper
62
+ template[/(\w+)(\W*)/,1]
63
+ end
64
+
65
+ def lookup_file_helper
66
+ if !self.instance_variable_defined?(:@file_helper) && self.directory_helpers
67
+ helper_file_name = "#{self.clean_template_name_for_helper}_helper.rb"
68
+ puts "SimpleViewBase > helper_file_name= #{helper_file_name}" if $DEBUG
69
+ fhlpr = File.join(self.directory_helpers, helper_file_name)
70
+ puts "SimpleViewBase > fhlpr= #{fhlpr}" if $DEBUG
71
+ if File.exist?(fhlpr)
72
+ @file_helper = FileContent.file(fhlpr)
73
+ end
74
+ end
75
+ @file_helper
76
+ end
77
+
78
+ def template_content
79
+ FileContent.file(self.lookup_file_template).content
80
+ end
81
+
82
+ def has_helper?
83
+ hf = self.lookup_file_helper
84
+ return nil unless hf
85
+ true
86
+ end
87
+
88
+ def helper_module_name
89
+ hname = self.clean_template_name_for_helper # exemple: template = 'etat_corbeilles_prc.html' => hname = 'etat_corbeilles_prc'
90
+ "#{hname}_helper".camelcase(true).to_sym
91
+ end
92
+
93
+ def template_extension
94
+ if self.class.respond_to?(:extension)
95
+ return self.class.extension
96
+ end
97
+ ".rb"
98
+ end
99
+
100
+
101
+ def set_helper(rendable_object)
102
+ if has_helper?
103
+ helper = nil
104
+ helper_name = self.helper_module_name
105
+ begin
106
+ if @file_helper.changed? || !Object::const_defined?(helper_name)
107
+ load @file_helper.file(true)
108
+ else
109
+
110
+ end
111
+ helper = Object::const_get(helper_name)
112
+ rescue NameError => ex
113
+ # puts "set_helper: #{ex.message}", ex.backtrace
114
+ require(@file_helper.file)
115
+ retry
116
+ end
117
+ puts "set_helper #{helper} for: #{rendable_object}" if $DEBUG
118
+ rendable_object.extend helper
119
+ end
120
+ end
121
+
122
+
123
+ def render(rendable_object, options = {})
124
+ target = options[:target]
125
+ if String === target && (options[:type] != :string)
126
+ FileUtils.mkdir_p(File.dirname(target)) if options[:mkdirs]
127
+ open(target, options[:open]||'w') do |o|
128
+ options[:target] = o
129
+ begin
130
+ return do_rendering(rendable_object, options)
131
+ ensure
132
+ options[:target] = target
133
+ end
134
+ end
135
+ else
136
+ return do_rendering(rendable_object, options)
137
+ end
138
+ rescue => ex
139
+ puts ex.message, ex.backtrace.collect{|st| "\t#{st}"}
140
+ if $SV_DEBUG
141
+ puts "[SV_DEBUG = #$SV_DEBUG]: Retry ? [y|n]"
142
+ response = $stdin.gets.strip
143
+ retry if response =~ /Y|y/
144
+ end
145
+ raise ex
146
+ end
147
+
148
+ def render_with_helper(rendable_object)
149
+ set_helper(rendable_object)
150
+ yield if block_given?
151
+ end
152
+
153
+
154
+ class << self
155
+
156
+ def template_extensions
157
+ @template_extensions ||= {}
158
+ end
159
+
160
+ def register(subclass)
161
+ ext = subclass.extension
162
+ SimpleViewBase.template_extensions[ext] = subclass
163
+ end
164
+
165
+ def lookup_file_template(template)
166
+ tpl = "#{template}#{self.extension}"
167
+ file = File.join(Base.directory_views, tpl)
168
+ puts "lookup_file_template : #{tpl} => #{file}" if $DEBUG
169
+ raise TemplateViewNotFound.new("Impossible de trouver le template #{tpl} dans le repertoire #{Base.directory_views} (#{file})") unless File.exist?(file)
170
+ file
171
+ end
172
+
173
+ def views
174
+ @views ||= {}
175
+ end
176
+
177
+ def view(template)
178
+ self.views[template] ||= self.basic_view(template)
179
+ end
180
+
181
+ def find_view(template)
182
+ SimpleViewBase.template_extensions.each do |ext, renderer|
183
+ begin
184
+ return renderer.view(template)
185
+ rescue TemplateViewNotFound
186
+ end
187
+ end
188
+ raise TemplateViewNotFound.new("Impossible de trouver le template #{template} dans le repertoire #{Base.directory_views}")
189
+ end
190
+
191
+ protected
192
+ def basic_view(template)
193
+ file = lookup_file_template(template)
194
+ self.new(template, file)
195
+ end
196
+
197
+ end
198
+
199
+ end
200
+
201
+
202
+ class SimpleLayout < SimpleViewBase
203
+
204
+ def do_rendering(rendable_object, options)
205
+
206
+ end
207
+
208
+ end
209
+
210
+ # Loading default
211
+ SimpleViewERB.name
212
+ SimpleViewIO.name
213
+
214
+ end
@@ -0,0 +1,38 @@
1
+ module SimpleView
2
+
3
+ class SimpleViewSmartXLS < SimpleViewBase
4
+ require 'java'
5
+
6
+ import com.smartxls.ChartFormat;
7
+ import com.smartxls.ChartShape;
8
+ import com.smartxls.WorkBook;
9
+ import java.awt.Color;
10
+
11
+ EXTENTION = ".smartxl.rb".freeze unless defined?(EXTENTION)
12
+
13
+ def self.extension
14
+ EXTENTION
15
+ end
16
+
17
+ SimpleViewBase.register(self)
18
+
19
+ def render(rendable_object, options = {})
20
+ do_rendering(rendable_object, options)
21
+ end
22
+
23
+ def do_rendering(rendable_object, options)
24
+ filename = options.delete(:filename) || '<XLS>'
25
+ line = options.delete(:line) || 1
26
+ xls = WorkBook.new
27
+ rendable_object.put_locals_objects((options.delete(:builder_name) || :xls).to_sym => xls)
28
+ render_with_helper(rendable_object) do
29
+ eval self.template_content, rendable_object.get_binding, filename, line
30
+ end
31
+ if options.key?(:target)
32
+ xls.write(options[:target])
33
+ end
34
+ end
35
+
36
+ end
37
+
38
+ end
@@ -0,0 +1,3 @@
1
+ module SimpleView
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,5 @@
1
+ require 'simple_view/simple_view'
2
+
3
+ module SimpleView
4
+
5
+ end
data/test/CVS/Entries ADDED
@@ -0,0 +1,6 @@
1
+ /jtest_view.rb/1.1.1.1/Tue Dec 07 12:02:42 2010//
2
+ /test_view.rb/1.1.1.1/Tue Dec 07 12:02:42 2010//
3
+ /test_view_reuse_erb.rb/1.1.1.1/Tue Dec 07 12:02:42 2010//
4
+ /test_view_sv_debug.rb/1.1.1.1/Tue Dec 07 12:02:42 2010//
5
+ D/helpers////
6
+ D/views////
@@ -0,0 +1 @@
1
+ simple_view/test
@@ -0,0 +1,25 @@
1
+ require 'bundler/setup'
2
+
3
+ require 'simple_view'
4
+ require 'simple_view/builder_view'
5
+
6
+ include SimpleView
7
+ include SimpleView::Renderable
8
+
9
+ Base.directory_views = File.join(File.dirname(__FILE__), 'views')
10
+ Base.directory_helpers = File.join(File.dirname(__FILE__), 'views')
11
+
12
+ # render 'test-erb', :locals => {:who => 'You'}, :target => $stdout
13
+ puts "ERB"
14
+ render_erb 'test', :locals => {:who => 'You'}, :target => $stdout
15
+ puts "\nBUILDER"
16
+ render_builder 'test', :locals => {:who => 'You'}, :target => $stdout
17
+ puts "\nIO"
18
+ render_io 'test', :locals => {:who => 'You'}, :target => $stdout
19
+
20
+ puts "\nHAML"
21
+ require 'simple_view/haml_view'
22
+ render_haml 'test', :locals => {:who => 'You'}, :target => $stdout
23
+
24
+ require 'simple_view/poi_view'
25
+ render_poi 'test', :model => "#{Base.directory_views}/test-model.xlsx", :target => 'c:/aag/test.xlsx'
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'simple_view'
5
+ require 'simple_view/builder_view'
6
+
7
+ include SimpleView
8
+ include SimpleView::Renderable
9
+
10
+ Base.directory_views = File.join(File.dirname(__FILE__), 'views')
11
+ Base.directory_helpers = File.join(File.dirname(__FILE__), 'helpers')
12
+
13
+ # render 'test-erb', :locals => {:who => 'You'}, :target => $stdout
14
+ puts "BUILDER", render_builder('test', :locals => {:who => 'tata'})
15
+ render_builder('test', :locals => {:who => 'tata'})
16
+
17
+ puts "ERB 0", render('test', :locals => {:who => 'tata'})
18
+
19
+ puts "ERB 1", render_erb('test', :locals => {:who => 'toto'})
20
+
21
+ puts "ERB 2", render_erb('test', :locals => {:who => 'titi'})
data/test/CVS/Root ADDED
@@ -0,0 +1 @@
1
+ :pserver:gie\barukh@esvwas51.si.fr:/repositories/aag
@@ -0,0 +1,3 @@
1
+ D
2
+ /etat_corbeilles_prc_helper.rb/1.1.1.1/Tue Dec 07 12:02:42 2010//
3
+ /test_helper.rb/1.1.1.1/Tue Dec 07 12:02:42 2010//
@@ -0,0 +1 @@
1
+ simple_view/test/helpers
@@ -0,0 +1,7 @@
1
+ module TestHelper
2
+
3
+ def help(str)
4
+ "Help #{str}!"
5
+ end
6
+
7
+ end
@@ -0,0 +1 @@
1
+ :pserver:gie\barukh@esvwas51.si.fr:/repositories/aag
@@ -0,0 +1,13 @@
1
+ module EtatCorbeillesPrcHelper
2
+
3
+ def sort_utilisateurs(resumes_utilisateurs)
4
+ resumes_utilisateurs.to_a.sort{|a, b| [a.site, a.signature] <=> [b.site, b.signature] }
5
+ end
6
+
7
+ def lisse_poids(poids)
8
+ return "Infini" if poids.infinite?
9
+ return 0 if poids.nan?
10
+ poids
11
+ end
12
+
13
+ end
@@ -0,0 +1,7 @@
1
+ module TestHelper
2
+
3
+ def help(str)
4
+ "Help #{str}!"
5
+ end
6
+
7
+ end
@@ -0,0 +1,17 @@
1
+ require 'simple_view'
2
+
3
+ include SimpleView
4
+ include SimpleView::Renderable
5
+
6
+ Base.directory_views = File.join(File.dirname(__FILE__), 'views')
7
+ Base.directory_helpers = File.join(File.dirname(__FILE__), 'views')
8
+
9
+ # render 'test-erb', :locals => {:who => 'You'}, :target => $stdout
10
+ puts "ERB"
11
+ render_erb 'test', :locals => {:who => 'You'}, :target => $stdout
12
+ puts "\nIO"
13
+ render_io 'test', :locals => {:who => 'You'}, :target => $stdout
14
+
15
+ require 'simple_view/poi_view'
16
+ render_poi 'test', :target => 'c:/aag/test.xls'
17
+ # render_poi 'test', :model => "#{Base.directory_views}/test-model.xls", :target => 'c:/aag/test.xls'
data/test/test_view.rb ADDED
@@ -0,0 +1,25 @@
1
+ require 'bundler/setup'
2
+
3
+ require 'simple_view'
4
+ require 'simple_view/builder_view'
5
+
6
+ include SimpleView
7
+ include SimpleView::Renderable
8
+
9
+ Base.directory_views = File.join(File.dirname(__FILE__), 'views')
10
+ Base.directory_helpers = File.join(File.dirname(__FILE__), 'views')
11
+
12
+ # render 'test-erb', :locals => {:who => 'You'}, :target => $stdout
13
+ puts "ERB"
14
+ render_erb 'test', :locals => {:who => 'You'}, :target => $stdout
15
+ puts "\nBUILDER"
16
+ render_builder 'test', :locals => {:who => 'You'}, :target => $stdout
17
+ puts "\nIO"
18
+ render_io 'test', :locals => {:who => 'You'}, :target => $stdout
19
+
20
+ puts "\nHAML"
21
+ require 'simple_view/haml_view'
22
+ render_haml 'test', :locals => {:who => 'You'}, :target => $stdout
23
+
24
+ require 'simple_view/poi_view'
25
+ render_poi 'test', :model => "#{Base.directory_views}/test-model.xlsx", :target => 'c:/aag/test.xlsx'
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'simple_view'
5
+ require 'simple_view/builder_view'
6
+
7
+ include SimpleView
8
+ include SimpleView::Renderable
9
+
10
+ Base.directory_views = File.join(File.dirname(__FILE__), 'views')
11
+ Base.directory_helpers = File.join(File.dirname(__FILE__), 'helpers')
12
+
13
+ # render 'test-erb', :locals => {:who => 'You'}, :target => $stdout
14
+ puts "BUILDER", render_builder('test', :locals => {:who => 'tata'})
15
+ render_builder('test', :locals => {:who => 'tata'})
16
+
17
+ puts "ERB 0", render('test', :locals => {:who => 'tata'})
18
+
19
+ puts "ERB 1", render_erb('test', :locals => {:who => 'toto'})
20
+
21
+ puts "ERB 2", render_erb('test', :locals => {:who => 'titi'})
@@ -0,0 +1,16 @@
1
+ require 'bundler/setup'
2
+
3
+ require 'simple_view'
4
+ require 'simple_view/builder_view'
5
+
6
+ include SimpleView
7
+ include SimpleView::Renderable
8
+
9
+ ENV['SV_DEBUG'] = 'true'
10
+
11
+ Base.directory_views = File.join(File.dirname(__FILE__), 'views')
12
+ Base.directory_helpers = File.join(File.dirname(__FILE__), 'views')
13
+
14
+ # render 'test-erb', :locals => {:who => 'You'}, :target => $stdout
15
+ puts "ERB"
16
+ render_erb 'test_error', :locals => {:who => 'You'}, :target => $stdout
@@ -0,0 +1,17 @@
1
+ D
2
+ /etat_corbeilles_prc-csv.io.rb/1.1.1.1/Tue Dec 07 12:02:42 2010//
3
+ /etat_corbeilles_prc-xls.poi.rb/1.1.1.1/Tue Dec 07 12:02:42 2010//
4
+ /etat_corbeilles_prc-xls2.smartxl.rb/1.1.1.1/Tue Dec 07 12:02:43 2010//
5
+ /etat_corbeilles_prc.html.erb/1.1.1.1/Tue Dec 07 12:02:43 2010//
6
+ /test-builder.builder.rb/1.1.1.1/Tue Dec 07 12:02:43 2010//
7
+ /test-erb.erb/1.1.1.1/Tue Dec 07 12:02:43 2010//
8
+ /test-model.xls/1.1.1.1/Tue Dec 07 12:02:43 2010/-kb/
9
+ /test-model.xlsx/1.1.1.1/Tue Dec 07 12:02:43 2010//
10
+ /test-xls.poi.rb/1.1.1.1/Tue Dec 07 12:02:43 2010//
11
+ /test-xls.smartxl.rb/1.1.1.1/Tue Dec 07 12:02:43 2010//
12
+ /test.builder.rb/1.1.1.1/Tue Dec 07 12:02:43 2010//
13
+ /test.erb/1.1.1.1/Tue Dec 07 12:02:43 2010//
14
+ /test.haml/1.1.1.1/Tue Dec 07 12:02:43 2010//
15
+ /test.io.rb/1.1.1.1/Tue Dec 07 12:02:43 2010//
16
+ /test.poi.rb/1.1.1.1/Tue Dec 07 12:02:43 2010//
17
+ /test_error.erb/1.1.1.1/Tue Dec 07 12:02:43 2010//
@@ -0,0 +1 @@
1
+ simple_view/test/views
@@ -0,0 +1,2 @@
1
+ Hello <%= help who %>!
2
+ En XML : <%= render_builder 'test', :locals => {:who => who} %>
@@ -0,0 +1 @@
1
+ :pserver:gie\barukh@esvwas51.si.fr:/repositories/aag
@@ -0,0 +1,40 @@
1
+ io << "Site\tSignature\tNom\tPr�nom\tProfil\tStructure\tCellule\tActif\tTaux activit�\tNombre dossiers\tPoids dossiers (100%)\t#{JDataStorePRC::COD_NIV_DOS.join("\t")}\t#{JDataStorePRC::EVENS_SIGN.join("\t")}\r\n"
2
+
3
+ # Les utilisateurs et leurs dossiers
4
+ resumes_utilisateurs.each do |utl|
5
+ if utl.a_dossiers?
6
+ io << "#{utl.site}\t#{utl.signature}\t#{utl.nom}\t#{utl.prenom}\t#{utl.profil}\t"
7
+ io << "#{utl.structure}\t#{utl.cellule}\t#{utl.actif}\t#{utl.tx_activite}\t"
8
+ io << "#{utl.nombre_dossiers}\t"
9
+ io << "#{utl.poids_dossiers}\t"
10
+
11
+ JDataStorePRC::COD_NIV_DOS.each do |co_niv|
12
+ dossier = utl.nombreDossiersPRC.find{|dossier| dossier.COD_NIV_DOS == co_niv}
13
+ io << "#{dossier ? dossier.NB_DOSSIERS : 0}\t"
14
+ end
15
+
16
+ JDataStorePRC::EVENS_SIGN.each do |co_evt|
17
+ dossier = utl.nombreDernierEvenDossiersPRC.find{|dossier| dossier.COD_EVEN == co_evt}
18
+ io << "#{dossier ? dossier.NB_DOSSIERS : 0}\t"
19
+ end
20
+
21
+ io << "\r\n"
22
+ end
23
+ end
24
+
25
+ # Dossiers possesseur inconnu
26
+ dossiers_possesseur_inconnu.each do |dossier|
27
+ io << "INCONNU\t#{dossier.COD_ID_INS}\tINCONNU\tINCONNU\tINCONNU\t"
28
+ io << "INCONNU\tINCONNU\tINCONNU\tINCONNU\t"
29
+ io << "#{dossier.NB_DOSSIERS}\t?"
30
+
31
+ JDataStorePRC::COD_NIV_DOS.each do |co_niv|
32
+ io << "#{dossier.COD_NIV_DOS == co_niv ? dossier.NB_DOSSIERS : 0}\t"
33
+ end
34
+
35
+ JDataStorePRC::EVENS_SIGN.each do |co_evt|
36
+ io << "?\t"
37
+ end
38
+
39
+ io << "\r\n"
40
+ end
@@ -0,0 +1,97 @@
1
+ sheet = xls.get_sheet 'data'
2
+
3
+ ##
4
+ ## HEADER
5
+ ##
6
+ header = row_at(sheet, 0)
7
+ ['Site', 'Signature', 'Nom', 'Pr�nom', 'Profil', 'Structure', 'Cellule', 'Actif', 'Taux activit�', 'Nombre dossiers', 'Poids dossiers (100%)'].each_with_index do |title, index|
8
+ cell = cell_at(header, index)
9
+ cell.set_cell_value title
10
+ end
11
+ col=11
12
+ # Code niveau dossier
13
+ JDataStorePRC::COD_NIV_DOS.each do |co_niv|
14
+ cell = cell_at(header, col)
15
+ cell.set_cell_value "NB dossiers #{co_niv}"
16
+ col += 1
17
+ end
18
+
19
+ # Code niveau dossier
20
+ JDataStorePRC::EVENS_SIGN.each do |co_evt|
21
+ cell = cell_at(header, col)
22
+ cell.set_cell_value "NB dossiers #{co_evt}"
23
+ col += 1
24
+ end
25
+
26
+ ##
27
+ ## BODY
28
+ ##
29
+
30
+ ligne = 1
31
+ # ResumeUtilisateur
32
+ resumes_utilisateurs.each do |utl|
33
+ next unless utl.a_dossiers?
34
+ row = sheet.create_row(ligne)
35
+ col = 0
36
+ set_cell_value row, col, utl.site; col +=1
37
+
38
+ set_cell_value row, col, utl.signature; col +=1
39
+
40
+ set_cell_value row, col, utl.nom; col +=1
41
+ set_cell_value row, col, utl.prenom; col +=1
42
+ set_cell_value row, col, utl.profil; col +=1
43
+ set_cell_value row, col, utl.structure; col +=1
44
+ set_cell_value row, col, utl.cellule; col +=1
45
+ set_cell_value row, col, utl.actif; col +=1
46
+ set_cell_value row, col, utl.tx_activite; col +=1
47
+ set_cell_value row, col, utl.nombre_dossiers; col +=1
48
+ set_cell_value row, col, lisse_poids(utl.poids_dossiers) ; col +=1
49
+
50
+ JDataStorePRC::COD_NIV_DOS.each do |co_niv|
51
+ dossier = utl.nombreDossiersPRC.find{|dossier| dossier.COD_NIV_DOS == co_niv}
52
+ set_cell_value row, col, (dossier ? dossier.NB_DOSSIERS : 0); col +=1
53
+ end
54
+
55
+ JDataStorePRC::EVENS_SIGN.each do |co_evt|
56
+ dossier = utl.nombreDernierEvenDossiersPRC.find{|dossier| dossier.COD_EVEN == co_evt}
57
+ set_cell_value row, col, (dossier ? dossier.NB_DOSSIERS : 0); col +=1
58
+ end
59
+
60
+ ligne += 1
61
+ end
62
+
63
+
64
+ # Dossier possesseur inconnu
65
+ dossiers_possesseur_inconnu.each do |dossier|
66
+ col = 0
67
+ row = sheet.create_row(ligne)
68
+
69
+ set_cell_value row, col, 'INCONNU'; col +=1
70
+
71
+ set_cell_value row, col, dossier.COD_ID_INS; col +=1
72
+
73
+ set_cell_value row, col, 'INCONNU'; col +=1
74
+ set_cell_value row, col, 'INCONNU'; col +=1
75
+ set_cell_value row, col, 'INCONNU'; col +=1
76
+ set_cell_value row, col, 'INCONNU'; col +=1
77
+ set_cell_value row, col, 'INCONNU'; col +=1
78
+ set_cell_value row, col, 'INCONNU'; col +=1
79
+ set_cell_value row, col, 'INCONNU'; col +=1
80
+ set_cell_value row, col, dossier.NB_DOSSIERS; col +=1
81
+ set_cell_value row, col, 0; col +=1
82
+
83
+
84
+ JDataStorePRC::COD_NIV_DOS.each do |co_niv|
85
+ if dossier.COD_NIV_DOS == co_niv
86
+ set_cell_value row, col, dossier.NB_DOSSIERS; col +=1
87
+ else
88
+ set_cell_value row, col, 0; col +=1
89
+ end
90
+ end
91
+
92
+ JDataStorePRC::EVENS_SIGN.each do |co_evt|
93
+ set_cell_value row, col, '?'; col +=1
94
+ end
95
+
96
+ ligne +=1
97
+ end