DBA Data[Home] [Help]

PACKAGE BODY: APPS.WMS_CLABEL

Source


1 PACKAGE BODY WMS_CLABEL AS
2 /* $Header: WMSCLBLB.pls 115.0 2000/07/07 15:47:06 pkm ship        $ */
3 
4 XML_HEADER1   CONSTANT VARCHAR2(100) := '<?xml version="1.0" standalone="no"?>';
5 XML_HEADER2   CONSTANT VARCHAR2(100) := '<!DOCTYPE labels SYSTEM "label.dtd">';
6 separator     CONSTANT VARCHAR2(2) := '::';
7 
8 defaultLabelName VARCHAR2(50);
9 defaultPrinterName VARCHAR2(40);
10 defaultNoCopies  NUMBER;
11 
12 labelName    VARCHAR2(50);
13 printerName  VARCHAR2(40);
14 noCopies     NUMBER;
15 
16 xmlfh  UTL_FILE.FILE_TYPE := NULL;
17 
18 header VARIABLES_TYPE;
19 line   VARIABLES_TYPE;
20 
21 PROCEDURE clearHeader
22 IS
23 BEGIN
24   header.delete;
25 END clearHeader;
26 
27 PROCEDURE setHeader(p_header IN VARIABLES_TYPE)
28 IS
29 BEGIN
30   header := p_header;
31 END setHeader;
32 
33 PROCEDURE clearLine
34 IS
35 BEGIN
36   line.delete;
37 END clearLine;
38 
39 PROCEDURE setLine(p_line IN VARIABLES_TYPE)
40 IS
41 BEGIN
42   line := p_line;
43 END setLine;
44 
45 PROCEDURE setDefaultLabelInfo(p_defaultLabelName IN VARCHAR2,
46                               p_defaultPrinterName IN VARCHAR2,
47                               p_defaultNoCopies IN NUMBER)
48 IS
49 BEGIN
50   defaultLabelName := p_defaultLabelName;
51   defaultPrinterName := p_defaultPrinterName;
52   defaultNoCopies := p_defaultNoCopies;
53 END setDefaultLabelInfo;
54 
55 PROCEDURE setLabelInfo(p_labelName IN VARCHAR2,
56                        p_printerName IN VARCHAR2,
57                        p_noCopies  IN NUMBER)
58 IS
59 BEGIN
60   labelName := p_labelName;
61   printerName := p_printerName;
62   noCopies := p_noCopies;
63 END setLabelInfo;
64 
65 PROCEDURE setHeaderVariable(p_var_name IN VARCHAR2,
66                             p_var_value IN VARCHAR2)
67 IS
68  l_var_val_pair       VARCHAR2(4000);
69 BEGIN
70  l_var_val_pair := p_var_name||separator||p_var_value;
71  header(header.count+1) := l_var_val_pair;
72 END setHeaderVariable;
73 
74 PROCEDURE setLineVariable(p_var_name IN VARCHAR2,
75                             p_var_value IN VARCHAR2)
76 IS
77  l_var_val_pair       VARCHAR2(4000);
78 BEGIN
79  l_var_val_pair := p_var_name||separator||p_var_value;
80  line(line.count+1) := l_var_val_pair;
81 END setLineVariable;
82 
83 PROCEDURE openLabelFile(p_dir IN VARCHAR2,p_file IN VARCHAR2)
84 IS
85  l_labels      VARCHAR2(200) := '<labels';
86 BEGIN
87   xmlfh := utl_file.fopen(p_dir,p_file,'w');
88   utl_file.put_line(xmlfh,XML_HEADER1);
89   utl_file.put_line(xmlfh,XML_HEADER2);
90 
91   if defaultLabelName IS NOT NULL then
92     l_labels := l_labels||' defaultLabelName="'||defaultLabelName||'"';
93   end if;
94   if defaultPrinterName IS NOT NULL then
95     l_labels := l_labels||' defaultPrinterName="'||defaultPrinterName||'"';
96   end if;
97   if defaultNoCopies IS NOT NULL then
98     l_labels := l_labels||' defaultNoCopies="'||defaultNoCopies||'"';
99   end if;
100 
101   l_labels := l_labels||'>';
102   utl_file.put_line(xmlfh,l_labels);
103 EXCEPTION
104   WHEN UTL_FILE.INVALID_PATH THEN
105     null;
106   WHEN OTHERS THEN
107     null;
108 END openLabelFile;
109 
110 PROCEDURE writeVariables(variables IN VARIABLES_TYPE)
111 IS
112   l_var_value_pair VARCHAR2(4000);
113   l_var_name       VARCHAR2(50);
114   l_var_value      VARCHAR2(4000);
115 BEGIN
116   for i in 1..variables.last loop
117     l_var_value_pair := variables(i);
118     l_var_name := substr(l_var_value_pair,1,
119                          instr(l_var_value_pair,separator)-1);
120     l_var_value := substr(l_var_value_pair,
121                           instr(l_var_value_pair,separator)+length(separator));
122     utl_file.put_line(xmlfh,'<variable name="'||l_var_name||'">'||
123                        l_var_value||'</variable>');
124   end loop;
125 END writeVariables;
126 
127 PROCEDURE writeLabel(p_print_header IN NUMBER DEFAULT PRINT_WITH_HEADER)
128 IS
129   l_label     VARCHAR2(200) := '<label';
130 BEGIN
131   if labelName IS NOT NULL then
132     l_label := l_label||' labelName="'||labelName||'"';
133   end if;
134   if printerName IS NOT NULL then
135     l_label := l_label||' printerName="'||printerName||'"';
136   end if;
137   if noCopies IS NOT NULL then
138     l_label := l_label||' noCopies="'||noCopies||'"';
139   end if;
140   l_label := l_label||'>';
141   utl_file.put_line(xmlfh,l_label);
142 
143   if(p_print_header = PRINT_WITH_HEADER) then
144     writeVariables(header);
145   end if;
146   writeVariables(line);
147 
148   utl_file.put_line(xmlfh,'</label>');
149 END writeLabel;
150 
151 PROCEDURE closeLabelFile
152 IS
153 BEGIN
154   utl_file.put_line(xmlfh,'</labels>');
155   utl_file.fclose(xmlfh);
156 EXCEPTION
157   WHEN OTHERS THEN
158     null;
159 END closeLabelFile;
160 
161 END WMS_CLABEL;