[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;