|
|
|
Re: Send a report directly to a printer [message #311921 is a reply to message #311660] |
Mon, 07 April 2008 06:38   |
Kaeluan
Messages: 179 Registered: May 2005 Location: Montreal, Quebec
|
Senior Member |
|
|
This is probably why you having problem, when you deploy your application, everything is running on the server and the server don`t have access to the printer that is connected on the client machine.
Try plugin the printer directly on the server to see if it work.
|
|
|
|
Re: Send a report directly to a printer [message #311937 is a reply to message #311660] |
Mon, 07 April 2008 08:12   |
Kaeluan
Messages: 179 Registered: May 2005 Location: Montreal, Quebec
|
Senior Member |
|
|
Report are always running on the report server so it`s not possible to run it locally.
Here is what i can suggest you since I did something similar where i am.
1- You need to put the printer on the client machine on share so the server can access it
2- I don`t know how your server is set, but by default, Oracle Services started as system when installed on the server. This prevent the report server from accessing anything outside the server. The way to solve it is to change the setting of Oracle services to start as a user on your domain. A user that must have admin priv on the server. By doing this the server will be able to access the printer on the client computer. you will only have to pass a network path for it in your report. Something like \\client-machine\printer_name
|
|
|
Re: Send a report directly to a printer [message #311962 is a reply to message #311660] |
Mon, 07 April 2008 09:19   |
jeunot0108
Messages: 21 Registered: April 2008
|
Junior Member |
|
|
Ooooooooh i'm so sad!
The fact is it's not only for one machine client but for several.That's why if i set my network path in my report it'll be solve for one case(if it really work).
If there is another way to look for solving my problem i'll take it.
Thanks again for your help.
|
|
|
Re: Send a report directly to a printer [message #311988 is a reply to message #311660] |
Mon, 07 April 2008 11:21   |
Kaeluan
Messages: 179 Registered: May 2005 Location: Montreal, Quebec
|
Senior Member |
|
|
What you can do is also creating all the printer queue on one machine, it can be the report server or another server that will contain only the printing queue to all your printers. So the path will always be the same, only the printer name will change.
|
|
|
|
|
|
|
|
Re: Send a report directly to a printer [message #315417 is a reply to message #315153] |
Mon, 21 April 2008 07:51   |
pankaj.karule
Messages: 6 Registered: April 2008 Location: doha
|
Junior Member |
|
|
hi dear,
You pass this as report desname
the unc naming convention is : \\machine_name\printer_name
machine_name:- the name of the client machine
printer_name:- the name of the printer which is connected to client.
try this i think this will help you.
|
|
|
|
|
|
Re: Send a report directly to a printer [message #316494 is a reply to message #316337] |
Fri, 25 April 2008 06:37   |
jeunot0108
Messages: 21 Registered: April 2008
|
Junior Member |
|
|
Hi everybody!
At first i show you the code i use for calling the report:
WEB.SHOW_DOCUMENT(call_report('r_csd.rdf',
' v_code=' ||'45050'||
' name=' ||'USER',
'¶mform=no',
'&destype=printer',
'&desname=\\mydevice\MYPRINTER',
'&copies=1',
'&orientation=portrait',
'&desformat=pdf',
'&printjob=no',
get_application_property(username),
get_application_property(password),
get_application_property(connect_string),
'RSERVLET'
)
,'_blank').
The code of the function call_report is the following:
function CALL_REPORT(report_name varchar2,
parametre varchar2,
grille_parameters varchar2,
type_of_device varchar2,
name_of_the_device varchar2,
number_of_copies varchar2,
print_direction varchar2,
format_for_the_report varchar2,
dialog_box varchar2,
user_name varchar2,
user_pasword varchar2,
data_base_connexion varchar2,
loc_serv varchar2)return varchar2 is
Result varchar2(3000);
cursor remp_param is select pname,pval from t_parameter where code=loc_serv;
report_server_name varchar2(30);
report_folder varchar2(255);
user_n varchar2(20):= user_name;
user_pwd varchar2(20):= user_pasword;
user_al varchar2(20):= data_base_connexion;
v_url varchar2(3000);
v_conx varchar2(200);
vc_url_temp varchar2(1200);
v_a varchar2(10);
v_b varchar2(10);
i number(10);
begin
open remp_param;
fetch remp_param into report_server_name,report_folder;
close remp_param;
if report_server_name is not null then
v_conx :='userid='||user_n||'/'||user_pwd||'@'||user_al;
for i in 1..length(v_conx) loop
v_a:=ltrim(to_char(trunc(ascii(substr(v_conx,i,1))/16)));
if v_a = '10' then v_a :='A';
elsif v_a = '11' then v_a :='B';
elsif v_a = '12' then v_a :='C';
elsif v_a = '13' then v_a :='D';
elsif v_a = '14' then v_a :='E';
elsif v_a = '15' then v_a :='F';
end If;
v_b:=ltrim(to_char(mod(ascii(substr(v_conx,i,1)),16)));
if v_b = '10' then v_b :='A';
elsif v_b = '11' then v_b :='B';
elsif v_b = '12' then v_b :='C';
elsif v_b = '13' then v_b :='D';
elsif v_b = '14' then v_b :='E';
elsif v_b = '15' then v_b :='F';
end If;
vc_url_temp := vc_url_temp||'%'||v_a||v_b;
end loop;
v_url :='/reports/rwservlet/?server='||report_server_name||'&'||'report='||report_folder||report_name||type_of_device||name_of_the_devi ce||number_of_copies||print_direction||format_for_the_report||dialog_box||'&'||vc_url_temp||' '||parametre||grille_parameters;
Result:= v_url;
return(Result);
else
return(null);
end if;
end ;
Secondly i want to ask sir Kaeluan to be more explicit because i didn't catch really what he said in his last reply.
Thanks everybody for your Help.
Hope that the solution is not so far
|
|
|
Re: Send a report directly to a printer [message #316500 is a reply to message #311660] |
Fri, 25 April 2008 06:47   |
Kaeluan
Messages: 179 Registered: May 2005 Location: Montreal, Quebec
|
Senior Member |
|
|
Hi,
What i mean is, if you log on the server and go in the control panel, Administrative Tools, Services.
You will see your Oracle services. It should be something like OraclefrASControl and OraclefrProcessManager. By default, those services are running as Local System like many other services.
The problem when it run as Local System is that the Oracle process will not have access to your network since it running as local. You have to change the property of those services in the log on tab to run as domain_name\user_name. And you have to make sure that this domain\user have admin privilege on the server and also have privilege to access your network printer.
Hope it make more sense now.
|
|
|
Re: Send a report directly to a printer [message #316517 is a reply to message #311660] |
Fri, 25 April 2008 08:18   |
jeunot0108
Messages: 21 Registered: April 2008
|
Junior Member |
|
|
Thanks a lot for reply,but i want to know that we are talking about the same thing when we say network printer.
In other words:Do i understand that in the term network printer, we can also include my local printer(that is the printer plug to my client machine)??
Thanks for Help.
|
|
|
|
|
Re: Send a report directly to a printer [message #316553 is a reply to message #311660] |
Fri, 25 April 2008 12:23  |
Kaeluan
Messages: 179 Registered: May 2005 Location: Montreal, Quebec
|
Senior Member |
|
|
Hello,
Quote: |
I just want to set the good paremeters for allowing the report server to see my local printer.
|
Just right click on your local printer in Windows and select Share. Only set the name of the share printer and the privilege you want to restrict access on the printer.
Quote: |
Just to know: Have you already send a report directly to a printer(local printer)???
|
Yes,
actually we have several file server across canada that have their own printer set on it. And our report server is sending job on the printers set on those server.
|
|
|