Mutlithreading with GUI
hey guys,
I was working on some Socket programming assignment and encountered an intersting problem.
i am using Swing for GUI and Threads to communicate with clients.
My server GUi has a JButton("Start Server") to trigger the Server. or we can say.. it starts accepting connection( SocketObj = ServerSocketObj.accept() )
problem:
as soon as i press the only Button(i.e. StartServer Button) on my Server GUI. whole GUI freezes!
but Server is working... all updates on GUI are missing.. cant repaint components, etc. neither WindowClosing event , setDefaultCloseOperation()) is working.
i did some research.. found that swing components are not thread safe,
also found some close answers,, along the lines of.. Event Dispatch Thread, SwingUtilities.invokeLater(Runnable), SwingWorker class , but neither work or maybe i did not implement them properly..
Attachment contains my code for:
Server.java : Server class conatins main()
ServerGUI.java : gui for server.. called from Server Class
ClientHandler.java : Thread for handling clients.. also called from Serve class
Cleint.java : simple client to connect to server at localhost
Any sort of help would be highly obliged.
thanks in advance.
- Ravi
Server.java
import java.net.*;
import java.io.*;
public class Server {
private ServerSocket ss;
private Socket sc;
public ServerSocket getSs() {
return ss;
public void setSs(ServerSocket ss) {
this.ss = ss;
public Socket getSc() {
return sc;
public void setSc(Socket sc) {
this.sc = sc;
public Server() {
try{
ss = new ServerSocket(4000);
}catch(IOException e){e.printStackTrace();}
startGUI();
public void startGUI()
new ServerGUI(this);
public void getConnection()
int i = 1;
try {
Socket sc = getSc();
while (true) {
sc = getSs().accept();
Thread t = new Thread(new ClientHandler(sc,i));
t.start();
System.out.println("got client " + i);
i++;
} catch (IOException e) {
e.printStackTrace();
public static void main(String[] args) {
new Server();
}ServerGUI.java
import java.net.*;
import java.io.*;
public class ServerGUI extends javax.swing.JFrame {
private javax.swing.JButton jButton1;
Server m;
public ServerGUI(Server m) {
initComponents();
this.m=m;
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
private void initComponents() {
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(178, Short.MAX_VALUE)
.addComponent(jButton1)
.addGap(147, 147, 147))
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(93, 93, 93)
.addComponent(jButton1)
.addContainerGap(184, Short.MAX_VALUE))
pack();
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
m.getConnection();
}ClientHandler.java
import java.net.*;
public class ClientHandler implements Runnable {
Socket sock;
int n;
public ClientHandler(Socket s, int n) {
sock = s;
this.n = n;
public void run() {
while (true) {
System.out.println("Client Thread: " + n);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}Client.java
import java.net.*;
import java.io.*;
public class Client {
Socket sc;
public Client() {
try{
sc=new Socket("127.0.0.1",4000);
System.out.println("got server");
}catch(UnknownHostException e){e.printStackTrace();}
catch(IOException e){e.printStackTrace();}
public static void main(String args[])
new Client();
}
Similar Messages
-
Mutlithreading with GUI problem
hey guys,
I was working on some Socket programming assignment and encountered an intersting problem.
i am using Swing for GUI and Threads to communicate with clients.
My server GUi has a JButton("Start Server") to trigger the Server. or we can say.. it starts accepting connection( SocketObj = ServerSocketObj.accept() )
problem:
as soon as i press the only Button(i.e. StartServer Button) on my Server GUI. whole GUI freezes!
but Server is working... all updates on GUI are missing.. cant repaint components, etc. neither WindowClosing event , setDefaultCloseOperation()) is working.
i did some research.. found that swing components are not thread safe,
also found some close answers,, along the lines of.. Event Dispatch Thread, SwingUtilities.invokeLater(Runnable), SwingWorker class , but neither work or maybe i did not implement them properly..
Attachment contains my code for:
Server.java : Server class conatins main()
ServerGUI.java : gui for server.. called from Server Class
ClientHandler.java : Thread for handling clients.. also called from Serve class
Cleint.java : simple client to connect to server at localhost
Any sort of help would be highly obliged.
thanks in advance.
- Ravihere is the code...
Server.java
import java.net.*;
import java.io.*;
public class Server {
private ServerSocket ss;
private Socket sc;
public ServerSocket getSs() {
return ss;
public void setSs(ServerSocket ss) {
this.ss = ss;
public Socket getSc() {
return sc;
public void setSc(Socket sc) {
this.sc = sc;
public Server() {
try{
ss = new ServerSocket(4000);
}catch(IOException e){e.printStackTrace();}
startGUI();
public void startGUI()
new ServerGUI(this);
public void getConnection()
int i = 1;
try {
Socket sc = getSc();
while (true) {
sc = getSs().accept();
Thread t = new Thread(new ClientHandler(sc,i));
t.start();
System.out.println("got client " + i);
i++;
} catch (IOException e) {
e.printStackTrace();
public static void main(String[] args) {
new Server();
}ServerGUI.java
import java.net.*;
import java.io.*;
public class ServerGUI extends javax.swing.JFrame {
private javax.swing.JButton jButton1;
Server m;
public ServerGUI(Server m) {
initComponents();
this.m=m;
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
private void initComponents() {
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(178, Short.MAX_VALUE)
.addComponent(jButton1)
.addGap(147, 147, 147))
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(93, 93, 93)
.addComponent(jButton1)
.addContainerGap(184, Short.MAX_VALUE))
pack();
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
m.getConnection();
}ClientHandler.java
import java.net.*;
public class ClientHandler implements Runnable {
Socket sock;
int n;
public ClientHandler(Socket s, int n) {
sock = s;
this.n = n;
public void run() {
while (true) {
System.out.println("Client Thread: " + n);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}Client.java
import java.net.*;
import java.io.*;
public class Client {
Socket sc;
public Client() {
try{
sc=new Socket("127.0.0.1",4000);
System.out.println("got server");
}catch(UnknownHostException e){e.printStackTrace();}
catch(IOException e){e.printStackTrace();}
public static void main(String args[])
new Client();
} -
Hai to all,
I am having a problem with GUI in applets
My first class extends a JPanel named A_a
import javax.swing .*;
import java.awt.*;
import java.awt.event.*;
public class A_a extends JPanel
JButton jb;
JTextArea text;
public A_a()
setLayout(new FlowLayout());
jb=new JButton("Click me");
//add(jb);
text=new JTextArea(5,20);
add(text);
public void text_appendText(String aa)
System.out.println("I AM IN A_a");
text.append(aa);
text.revalidate();
revalidate();
/*public static void main(String ags[])
A_a a = new A_a();
JFrame frame=new JFrame();
frame.getContentPane().add(a);
frame.pack();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
frame.setSize(200,200);
frame.show();
and then I am using other class B_b which is an applet carries a exitsing panel (A_a) inside it .
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class B_b extends JApplet
public A_a a;
public void init()
a=new A_a();
getContentPane().add(a);
public void text_appendText(String aa)
final String aaa =aa;
new Thread(new Runnable()
public void run()
a=new A_a();
a.setBackground(new java.awt.Color(255,200,200));
System.out.println("I AM IN B_b");
a.text.append(aaa);
a.text.revalidate();
getContentPane().remove(a);
resize(500,500);
}).start();
and the I am using the second applet C_c in which by performing a button action the old panel A_a should get removed and replace the new panel D_a (which is not here )in the applet B_b with all other components(namely button , text fields etc)
import javax.swing .*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
public class C_c extends JApplet implements ActionListener
JButton jbt;
JTextArea jta;
public void init()
getContentPane().setLayout(new FlowLayout());
jbt=new JButton("Click me");
jbt.addActionListener(this);
getContentPane().add(jbt);
jta=new JTextArea(5,20);
getContentPane().add(jta);
public void actionPerformed(ActionEvent ae)
Enumeration e = getAppletContext().getApplets();
Applet applets = null;
while(e.hasMoreElements())
applets=(Applet)e.nextElement();
if ( applets instanceof B_b)
System.out.println("I AM CLASS C_c");
((B_b)applets).text_appendText(jta.getText());
((B_b)applets).remove());
((B_b)applets).getContentPane().add(D_d);
both the applets C_c and B_b are in same browser page
How can i achive that pls help .Just to make the code readable...
import javax.swing .*;
import java.awt.*;
import java.awt.event.*;
public class A_a extends JPanel
JButton jb;
JTextArea text;
public A_a()
setLayout(new FlowLayout());
jb=new JButton("Click me");
//add(jb);
text=new JTextArea(5,20);
add(text);
public void text_appendText(String aa)
System.out.println("I AM IN A_a");
text.append(aa);
text.revalidate();
revalidate();
/*public static void main(String ags[])
A_a a = new A_a();
JFrame frame=new JFrame();
frame.getContentPane().add(a);
frame.pack();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
frame.setSize(200,200);
frame.show();
}and then I am using other class B_b which is an applet carries a exitsing panel (A_a) inside it .
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class B_b extends JApplet
public A_a a;
public void init()
a=new A_a();
getContentPane().add(a);
public void text_appendText(String aa)
final String aaa =aa;
new Thread(new Runnable()
public void run()
a=new A_a();
a.setBackground(new java.awt.Color(255,200,200));
System.out.println("I AM IN B_b");
a.text.append(aaa);
a.text.revalidate();
getContentPane().remove(a);
resize(500,500);
}).start();
}and the I am using the second applet C_c in which by performing a button action the old panel A_a should get removed and replace the new panel D_a (which is not here )in the applet B_b with all other components(namely button , text fields etc)
import javax.swing .*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
public class C_c extends JApplet implements ActionListener
JButton jbt;
JTextArea jta;
public void init()
getContentPane().setLayout(new FlowLayout());
jbt=new JButton("Click me");
jbt.addActionListener(this);
getContentPane().add(jbt);
jta=new JTextArea(5,20);
getContentPane().add(jta);
public void actionPerformed(ActionEvent ae)
Enumeration e = getAppletContext().getApplets();
Applet applets = null;
while(e.hasMoreElements())
applets=(Applet)e.nextElement();
if ( applets instanceof B_b)
System.out.println("I AM CLASS C_c");
((B_b)applets).text_appendText(jta.getText());
((B_b)applets).remove());
((B_b)applets).getContentPane().add(D_d);
} -
RRMXP does not work with GUI 7.20
Hi Experts,
I have the following problem. RRMXP does not work with GUI 7.20, BEX 7.0 launches and I have to enter proper user and password. (I get SAP Logon screen with listed systems)
It works properly with GUI 7.10 and I have not to log into BEX.
Did anyone encounter such problem? Does anyone know what causes the problem?
Regards&thanks
MarekHi,
RRMXP uses OLE to launch Microsoft Excel together with the SAP BEx add-in. Then it use a macro within BEx to open the workbook. check whether BEx is not installed properly (run SAPBEXC.XLA under C:Program FilesSAPFrontendBW) or the Excel macro security settings prevent execution of the macros.
Also Check the below link it has some note to follow
RRMX and RRMXP does not open the query and workbook
Regards,
Satya -
Can't run java program with GUI
My computer can run java program properly.
However, for those program with GUI (using swing),
my computer is unable to display the GUI.
What's wrong with it? Is there any PATH I need to set before running GUI program?
Thanks
icedgoldCut, copy, paste then compile and run this;-import java.awt.*;
import javax.swing.*;
public class MyJFrame extends JFrame {
public MyJFrame() {
super("My first JFrame");
Container c = getContentPane();
JPanel panel = new JPanel();
panel.setBackground(Color.white);// (new Color(255, 255, 255));
JLabel jl = new JLabel("Yes it works");
panel.add(jl);
c.add(panel);
public static void main(String[] args) {
MyJFrame frame = new MyJFrame();
frame.setSize(180,120);
frame.setLocation(200, 300);
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.setVisible(true);
} -
I am trying to find out where i can download the older verision of SQL PLUS with GUI interface.
My current SQL PLUS that came with oracle 11g release one is just a console.
thanksPl see if MOS Doc 207303.1 (Client / Server / Interoperability Support Between Different Oracle Versions0 can help
HTH
Srini -
How to use annotation with GUI in swing
hi,
i am new to annotation. I know how to use this with classes, methods and java elements. I am developing a tool in applet to post comment on my notepad, but unable to find that how to use this with GUI of swing. I have gone through most of forums and tutorials but got no idea. Anyone could give me little idea.
Thanks>
i need to use the applet mousedown function in swing..>There is no such class as 'applet' in the JRE, Swing has an upper case 1st letter, functions in Java are generally referred to as methods, and there is no 'mousedown' method in the JRE.
OTOH a Swing JApplet inherits the mouseDown method from Component, and it was deprecated in Java 1.1. The documentation (JavaDocs) provides instructions on what to use instead.
>
is there any way to use it or any other alternative is available for this?
if can provide me a sample code.>If can provide me cash. Short of that, you might actually need to do some research/coding of your own.
As an aside. What does any of this have to do with Java 2D? -
How to create database and table with GUI?
How to create database and table with GUI?
for linux can do that?
or have only way to create table by use sql*plus.
everyone please help me.
thanksgo to www.orasoft.org
here is a gui tool.
null -
I am working on programing a program for my department, Meteorology, at school so that I can download images every five minutes. I have a version of this that works in the command line, but I want to add a gui to it now. I am not really sure how to start. I know that I need a drop down box with all of the radar sites and their call numbers, and a radio button so they can select the type of image that the user wants to download. These two parts then make up the URL of the image so I can download it. I tried makeing a gui by making each one of these components a separate class. Basically, I am wondering if I should start off by making the GUI all one class, or if each peice of it should be its own class that then gets tied together in a different part of the program. any help with GUI would be great as I am new to this step of programing having only worked in Java command line and Fortran 77. Thanks
NeilHi,
You can create a GUI from within one class. GUIs can be created for applications or applets. The following code is a simple GUI for an application using Swing components. You may need JDK 1.3.1_6.
To make your GUI functional you would need to add or implement Event Handlers preferably using the delegation model. Each control(buttons, textfield, etc) you need to define the event object(button clicks), the event source(button), and an event handler(understands the event and executes code that processes the event).
import javax.swing.*;
public class Customer
//Variable for frame window
static JFrame frameObj;
static JPanel panelObj;
//Variables of labels
JLabel labelCustName;
JLabel labelCustCellNo;
JLabel labelCustPackage;
JLabel labelCustAge;
//Variables for data entry controls
JTextField textCustName;
JTextField textCustCellNo;
JComboBox comboCustPackage;
JTextField textCustAge;
public static void main(String args[])
//Creating the JFrame object
frameObj = new JFrame("Customer Details Form");
//Setting the close option
frameObj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Making the frame visible
frameObj.setVisible(true);
frameObj.setSize(300,300);
Customer customerObj = new Customer();
public Customer()
//Add appropriate controls to the frame in the constructor
//Create panel
panelObj = new JPanel();
frameObj.getContentPane().add(panelObj);
//Setting close option
frameObj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and add the appropriate controls
//Initializing labels
labelCustName = new JLabel("Customer Name: ");
labelCustCellNo = new JLabel("Cell Number: ");
labelCustPackage = new JLabel("Package: ");
labelCustAge = new JLabel("Age: ");
//Initializing data entry controls
textCustName = new JTextField(30);
textCustCellNo = new JTextField(15);
textCustAge = new JTextField(2);
String packages[] = {"Executive", "Standard"};
comboCustPackage = new JComboBox(packages);
//Adding controls for customer name
panelObj.add(labelCustName);
panelObj.add(textCustName);
//Adding controls for cell number
panelObj.add(labelCustCellNo);
panelObj.add(textCustCellNo);
//Adding controls for Package
panelObj.add(labelCustPackage);
panelObj.add(comboCustPackage);
//Adding controls for customer age
panelObj.add(labelCustAge);
panelObj.add(textCustAge); -
Runniing Application with GUI interface
Before when i have run a application it has been through the DOS terminal , thus without a GUI. My experince with GUI has been with Applets and running them through a browser or the appletviewer.
The question is how do I run an application program with a GUI interface for testing purposes etc.
Any help would be great cheers.You can run your application from the command line just like from you DOS terminal programs. All you need is the main method defined for you application in some class file. For example:
public static void main( String[] args ) {
JFrame frame = new JFrame();
frame.getContentPane().add( new JLabel("Hello world" );
frame.pack();
frame.setVisible( true );
Then run this code by:
java my.test.HelloWorld
charlie -
Hello, I've been working on some Java as part of an engineering project, however my skills with Java aren't great, and my skills with GUI and Networking (which this involves) were only as a user before starting this. A problem that I haven't been able to get around is an exception error when using the actionPerformed method from java.awt.* .
My goal is to be able to, when a button is pushed, send a UDP packet with the command of the button to another PC. My understanding from tutorials is that actionPerformed is the method to use for when buttons are pushed, however creating or using a DatagramSocket inside this method causes an exception error (java.net.SocketException). Normally I would just tell it to throw exceptions, but when trying it says it cannot overwrite the method. I thought I got around this by placing the socket within another method and calling that instead, but that just simply caused a different exception (java.lang.Exception).
Any suggestions on how to make this work, or am I using the wrong method for this sort of thing?
Some code snippets:
Version 1
//when the buttons are pushed, this does the actions required.
public void actionPerformed(ActionEvent evt){
DatagramSocket socket = new DatagramSocket(11111); //Error here
Object source = evt.getSource();
Version 2
//when the buttons are pushed, this does the actions required.
public void actionPerformed(ActionEvent evt){
Object source = evt.getSource();
byte[] comm;
if (source == Identify) {
command = "identify";
comm = command.getBytes();
this.sendIt(command); //Errors here
version = this.getIt(); //and here
Version 3
//when the buttons are pushed, this does the actions required.
public void actionPerformed(ActionEvent evt)throws Exception { //Error Here
Object source = evt.getSource();
Thanks for any help.you can use the try-catch clause ...
like this:
public void actionPerformed(ActionEvent e){
try{
if(e.getSource() == myButton)
// your code here...
catch(Exception err){
err.printStackTrace(); // will print the error... read the first line error msg
} -
How to manage J2EE Container with GUI?
I have used Oracle9i J2EE Container for 6 months. I have managed via command-line (on Win2000). It's not convenient for admin the server. I searched for the documents about manage with GUI, admin tool or Enterprise Manager but I found a few document on Oracle website that didn't help me too much.
Does anybody suggest me about any admin tool or how to use + configure Enterprise Manager or where to find rich documents?
Thank you so muchNarong,
Enterprise Manager is available with Oracle9iAS Release 2 and OC4J is a managed component withiin Oracle9iAS. You have to download Oracle9iAS Release 2 from OTN(may be just J2EE Webcache edition) if you want to use the GUI tool.
You can use the following link to download Oracle9iAS Release2 http://otn.oracle.com/software/htdocs/devlic.html?/software/products/ias/htdocs/winsoft.html
regards
Debu Panda
Oracle -
Running console vim with gui support
I want to run console vim with gui support so that this plugin will be supported. The current vim package is complied without gui support. Gui support is in a seperate "gvim" package.
Is there a elegant way to run console vim with gui support if I have both packages installed?
Two ways I've thought about but ultimately discarded are:
1. Alias "vim" to "gvim -v", which runs gvim in the console. This works under most normal circumstances, but not under others. First, if running vim through sudo, my plugins and vimrc are loaded, but as the shell is different, the alias doesn't apply. Second, as vi is vim, running vi invokes this plugin, but vi calls vim, which doesn't have gui support, so the plugin fails.
2. Fool with the /usr/bin/vim file. Admittedly i haven't tried this, but obvious problems I see are when the vim package is updated. What happens then?
Is there a more elegant way?I want to run vim using a plugin that requires vim to be built with gui support. The way arch's packages are set up, /usr/bin/vim is owned by the "vim" package, which is compiled without gui support.
The "gvim" package is (obviously) built with gui support. Gvim can be run in the console with "gvim -v", which would give me a console vim with gui support. However, I think you'll agree that typing "gvim -v" everytime I mean "vim" is tedious and not a real solution. -
Hello. I am using SSH for my webpage, and its a bit hard to use commands to upload stuff all the time.
Is there any application with GUI?Bebo wrote:Another method would be to use sshfs (available in the Extra repos) and "mount" the web page account. That way you can access your web page files just as you access files locally. Since you seem to know how to use ssh from command line, a sshfs mount shouldn't be too difficult to do
It is the same with nautilus The webpage is now "mounted" and i may access it easy -
BEx Analyzer 3.x language problem with GUI 710
Hi All,
We are having trouble to login to BEx Analyzer 3.x with GUI 710 with English language, even if we set language as EN in the logon pad by default it is logging into Japanese language. But 7.x Analyser is working fine.
We have BI 7.0 and BW 3.5 systems.
SAP GUI 710 installed with latest available Frontend Patch ( bi710sp10_1000-10004472 , gui710_15-10002995 and bw350gui710_7-10004473 ) and we are using Excel 2003 on XP Professional.
Installed .Net Framework 2.0, Microsoft office patch - office2003-KB907417
Your help is very much appreciated.
Regards,
MKRHi,
Are you using different backend systems to connect for 3.x and 7.x? Because the file which prompts the SAP Logon is a common file used by both 3.x and 7.x.It shouldn't behave differently for the same system.
You can uninstall the SAPGui and Front End patch and then reinstall it.
The BW 3.5 patch 8 in SAP GUI 7.10 is released to the SMP now and is available for download.
Rgds,
Murali
Maybe you are looking for
-
Game center won't update my achievements and I don't know why so can anyone tell why?
Game center won't update my achievements why???
-
How to highlight multiple files
i had to replace my old iMac with a new 27' running yosemite OS for some reason I am not able to hi-lite more than one email file in "MAIL" using the typical click and drag over what i want to hi-lite. i can use the command key and click on as ma
-
Can't download Developer Edition CF MX 7 for Windows
I can download any of the other versions... Linux, AIX, even other language versions, just not Windows, English, ColdFusion MX 7... does anyone know why? Thanks in advance for your help, M ;-)
-
Automatic output of purchasing documents
Hi I want to send purchasing documents to vendor automatically when i save the documents.I have maintained all settings ( email in vendor master,communicatio startegy...etc).when i saving the PO document is not automatically ouputing.If go to preview
-
I know the I pad have a function that when you touch the top of the screen, the page will turn to the top automatically. But this function always make trouble. Especially when you are reading some long papers. I would like to turn it off. What can I