find out the list of users who have access to all t-codes
starts with 'SU'? thanks in advance all.


No Answer is Posted For this Question
Be the First to Post Answer

Post New Answer

More Programming Code AllOther Interview Questions

Write a Program to find the sum of digits of a given number until the sum becomes a single digit. (e.g. 12345=>1+2+3+4+5=15=>1+5=6)

0 Answers   InterGraph,


How to get the version(major,minor,revision ) of VB6.0 delphi code .I am able to fetch dll file of vb6.0 but not vba file .Can u send me the code snippet in delphi to get the value for vb6.0.

0 Answers  


Write code to make an object work like a 2-d array?

0 Answers  


import java.awt.*; import java.awt.event.*; public class Agency extends Frame implements ActionListener { Label l1,l2,l3,l4; Button b1; TextField t1,t2; String s1,s2,s3,s4; public static void main(String args[]) { new Agency().setVisible(true); } public Agency() { super("Gas Agency Package"); setSize(1280,800); setBackground(Color.lightGray); setLayout(null); // setLayout(new BorderLayout()); t1=new TextField(20); t1.setBounds(440,150,200,30); t1.setBackground(Color.white); t2=new TextField(20); t2.setBounds(440,180,200,30); t2.setBackground(Color.white); t2.setEchoChar('*'); l1=new Label("Gas Agency Package"); l1.setBounds(400,30,300,50); l1.setFont(new Font("TimesRoman",Font.BOLD,25)); l1.setAlignment(Label.CENTER); l2=new Label("Enter your ID and Passoword"); l2.setFont(new Font("TimesRoman",Font.BOLD,20)); l2.setBounds(270,80,300,50); l3=new Label("Enter ID"); l2.setFont(new Font ("TimesRoman",Font.BOLD,20)); l3.setBounds(270,150,120,50); l4=new Label("Enter Passoword"); l2.setFont(new Font ("TimesRoman",Font.BOLD,20)); l4.setBounds(270,180,140,50); add(l1); add(l2); add(l3); add(t1); add(l4); add(t2); b1=new Button("Login"); b1.setBackground(Color.white); b1.setBounds(400,280,100,70); b1.addActionListener(this); add(b1); } public void actionPerformed(ActionEvent e) { if(e.getSource()==b1) { s3="svce"; s4="svce"; s1=t1.getText(); s2=t2.getText(); if(s1.equals(s3) && s2.equals(s4)) { //System.out.println("password is correct"); MenuForm m= new MenuForm(); m.setVisible(true); //this.dispose(); } else { System.out.println("password not correct"); } this.dispose(); } } } plzzzzzzz xplain me this java code like why i m including this packages n the whole code plzzzzzz

0 Answers  


plzzzzzzzzz xplain this code import java.awt.*; import java.util.Date; import java.awt.event.*; import java.awt.MenuItem.*; import java.sql.*; import sun.jdbc.odbc.*; import java.io.*; public class NewConnection extends Frame implements ActionListener { Label l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13; Button exit,save,bnext,top,prev,botm,ad,edit; TextField txtSvNo,txtConsNo,txtSvDt,txtConsName,txtAddr1,txtPhNo,txtCy lQty,txtCylDep,txtRegDep,txtRegQty,adr2,adr3,tot,stnry,rmrk; Date date=new Date(); String ConsName; String Addr1; public static void main(String sr[]) { new NewConnection().setVisible(true); } public NewConnection() { super("New Connection"); Statement stmt; ResultSet rs; //PreparedStatement pst; Connection con; try { Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:Agency"); if (con!=null); System.out.println ("connected"); stmt =con.createStatement (); } catch(Exception e1) { System.out.println (e1); } setSize(1280,800); setBackground(Color.lightGray); setLayout(null); l1=new Label("SV NO"); l1.setBounds(260,60,90,30); l1.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l1.setAlignment(Label.CENTER); add(l1); l2=new Label("CONSMR NO"); l2.setBounds(30,60,90,30); l2.setFont(new Font("TimesRoman",Font.PLAIN,15)); l2.setAlignment(Label.CENTER); add(l2); l3=new Label("SV DATE"); l3.setBounds(520,60,90,30); l3.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l3.setAlignment(Label.CENTER); add(l3); l4=new Label("NAME"); l4.setBounds(30,150,45,30); l4.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l4.setAlignment(Label.CENTER); add(l4); l5=new Label("ADRS"); l5.setBounds(30,220,45,30); l5.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l5.setAlignment(Label.CENTER); add(l5); l6=new Label("PH NO"); l6.setBounds(500,150,45,30); l6.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l6.setAlignment(Label.CENTER); add(l6); l7=new Label("CYLDR"); l7.setBounds(30,390,55,30); l7.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l7.setAlignment(Label.CENTER); add(l7); l8=new Label("DEPOSIT"); l8.setBounds(320,390,65,30); l8.setFont(new Font("TimesRoman",Font.PLAIN,15)); l8.setAlignment(Label.CENTER); add(l8); l9=new Label("DEPOSIT"); l9.setBounds(320,440,65,30); l9.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l9.setAlignment(Label.CENTER); add(l9); l10=new Label("RGLTR"); l10.setBounds(30,440,55,30); l10.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l10.setAlignment(Label.CENTER); add(l10); l11=new Label("TOTAL"); l11.setBounds(320,480,55,30); l11.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l11.setAlignment(Label.CENTER); add(l11); l12=new Label("Cur.Statn.NO."); l12.setBounds(290,550,85,30); l12.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l12.setAlignment(Label.CENTER); add(l12); l13=new Label("REMARKS"); l13.setBounds (30,630,85,30); l13.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l13.setAlignment (Label.CENTER); add(l13); txtSvNo=new TextField(); txtSvNo.setBounds(375,60,80,30); txtSvNo.setBackground(Color.white); add(txtSvNo); txtConsNo=new TextField(); txtConsNo.setBounds(130,60,80,30); txtConsNo.setBackground(Color.white); add(txtConsNo); txtSvDt=new TextField(); txtSvDt.setBounds(635,60,80,30); txtSvDt.setBackground(Color.white); add(txtSvDt); txtConsName=new TextField(); txtConsName.setBounds(100,150,200,30); txtConsName.setBackground(Color.white); add(txtConsName); txtAddr1=new TextField(); txtAddr1.setBounds(100,220,350,30); txtAddr1.setBackground(Color.white); add(txtAddr1); adr2=new TextField(); adr2.setBounds(100,250,350,30); adr2.setBackground(Color.white); add(adr2); adr3=new TextField(); adr3.setBounds(100,280,350,30); adr3.setBackground(Color.white); add(adr3); txtPhNo=new TextField(); txtPhNo.setBounds(570,150,150,30); txtPhNo.setBackground(Color.white); add(txtPhNo); txtCylQty=new TextField(); txtCylQty.setBounds(100,390,60,30); txtCylQty.setBackground(Color.white); add(txtCylQty); txtCylDep=new TextField(); txtCylDep.setBounds(410,390,60,30); txtCylDep.setBackground(Color.white); add(txtCylDep); txtRegDep=new TextField(); txtRegDep.setBounds(410,440,60,30); txtRegDep.setBackground(Color.white); add(txtRegDep); txtRegQty=new TextField(); txtRegQty.setBounds(100,440,60,30); txtRegQty.setBackground(Color.white); add(txtRegQty); tot=new TextField(); tot.setBounds(410,490,60,30); tot.setBackground(Color.white); add(tot); stnry=new TextField(); stnry.setBounds(410,550,60,30); stnry.setBackground(Color.white); add(stnry); rmrk=new TextField(); rmrk.setBounds(140,630,600,30); rmrk.setBackground(Color.white); add(rmrk); exit=new Button("EXIT"); exit.setBackground(Color.orange); exit.setBounds(760,700,40,40); exit.addActionListener(this); add(exit); save=new Button("SAVE"); save.setBackground(Color.orange); save.setBounds(715,700,40,40); save.addActionListener(this); add(save); bnext=new Button("NEXT"); bnext.setBackground(Color.orange); bnext.setBounds(90,700,40,40); bnext.addActionListener(this); add(bnext); top=new Button("TOP"); top.setBackground(Color.orange); top.setBounds(0,700,40,40); top.addActionListener(this); add(top); prev=new Button("PREV"); prev.setBackground(Color.orange); prev.setBounds(45,700,40,40); prev.addActionListener(this); add(prev); botm=new Button("BOTM"); botm.setBackground (Color.orange); botm.setBounds (135,700,40,40); botm.addActionListener (this); add(botm); ad=new Button("ADD"); ad.setBackground (Color.orange); ad.setBounds (300,700,40,40); ad.addActionListener (this); add(ad); edit=new Button("EDIT"); edit.setBackground (Color.orange); edit.setBounds (345,700,40,40); edit.addActionListener (this); add(edit); } public void actionPerformed(ActionEvent e) { if(e.getSource()==exit) { this.dispose(); System.exit(0); } if(e.getSource()==save) { try { Connection con=DriverManager.getConnection("jdbc:odbc:Agency"); PreparedStatement pst=con.prepareStatement("INSERT INTO NewCon values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); pst.setInt (1,Integer.parseInt(txtConsNo.getText())); pst.setInt (2,Integer.parseInt(txtSvNo.getText())); pst.setString (3,txtSvDt.getText()); pst.setString (4,txtConsName.getText()); pst.setInt(5,Integer.parseInt (txtPhNo.getText())); pst.setString(6,txtAddr1.getText()); pst.setString(7,adr2.getText()); pst.setString(8,adr3.getText()); pst.setInt(9,Integer.parseInt (txtCylQty.getText())); pst.setInt(10,Integer.parseInt (txtCylDep.getText())); pst.setInt(11,Integer.parseInt (txtRegQty.getText())); pst.setInt(12,Integer.parseInt (txtRegDep.getText())); pst.setInt(13,Integer.parseInt (tot.getText())); pst.setInt(14,Integer.parseInt (stnry.getText())); pst.setString(15,rmrk.getText()); pst.executeUpdate (); con.close(); } catch(Exception e2) {System.out.println(e2);} } if(e.getSource()==ad) { int newcono=60000,newsvno=10000; System.out.println("entered if body"); try { System.out.println("entered the try:"); Connection con1=DriverManager.getConnection("jdbc:odbc:Agency"); Statement stmt1=con1.createStatement(); ResultSet rs1=stmt1.executeQuery("SELECT Cons_No,Sv_No FROM NewCon "); while(rs1.next()) { //System.out.println(rs1.getInt("Cons_No")); txtConsNo.setText(""+rs1.getInt(1)); txtSvNo.setText(""+rs1.getInt(2)); //newcono=rs1.getInt("Cons_No"); } //rs1.last(); newcono=Integer.parseInt(txtConsNo.getText ()); newsvno=Integer.parseInt(txtSvNo.getText ()); //newcono=rs1.getInt("Cons_No"); System.out.println(newcono); newcono=newcono+1; newsvno=newsvno+1; txtConsNo.setText (""+newcono); txtSvNo.setText(""+newsvno); txtSvDt.setText(""+ date); txtConsName.setText(""); txtAddr1.setText(""); txtPhNo.setText(""); txtCylQty.setText(""); txtCylDep.setText(""); txtRegDep.setText(""); txtRegQty.setText(""); adr2.setText(""); adr3.setText(""); tot.setText(""); stnry.setText(""); rmrk.setText(""); con1.close(); } catch(Exception e4){System.out.println (e4);} } if(e.getSource()==bnext) { try{ Connection con2=DriverManager.getConnection ("jdbc:odbc:Agency"); Statement stmt2=con2.createStatement (); ResultSet rs2=stmt2.executeQuery("SELECT * FROM NewCon "); rs2.next(); { txtConsNo.setText(rs2.getInt(1)+""); txtSvNo.setText (rs2.getInt(2)+""); txtSvDt.setText (rs2.getString(3)+""); txtConsName.setText (rs2.getString(4)+""); txtPhNo.setText (rs2.getInt(5)+""); txtAddr1.setText(rs2.getString(6)+""); adr2.setText (rs2.getString("Address2")+""); adr3.setText (rs2.getString("Address3")+""); txtCylQty.setText (rs2.getInt(9)+""); txtCylDep.setText (rs2.getInt(10)+""); txtRegDep.setText (rs2.getInt(11)+""); txtRegQty.setText (rs2.getInt(12)+""); tot.setText(rs2.getInt (13)+""); stnry.setText(rs2.getInt(14) +""); rmrk.setText(rs2.getString (15)+""); } } catch(Exception e5){} } } }

0 Answers  






Design a timer circuit using VHDL which has the following: input : start_timer(ST) output: long_time(LT) short_time(ST) when the timer is triggered by the ST(either 0 or 1) signal the timer should generate two timing signals accordingly.While the long time is going ON the other should be OFF and vice versa.

0 Answers  


plzzzzzzzzz xplain this code import java.awt.*; import java.awt.event.*; public class Agency extends Frame implements ActionListener { Label l1,l2,l3,l4; Button b1; TextField t1,t2; String s1,s2,s3,s4; public static void main(String args[]) { new Agency().setVisible(true); } public Agency() { super("Gas Agency Package"); setSize(1280,800); setBackground(Color.lightGray); setLayout(null); // setLayout(new BorderLayout()); t1=new TextField(20); t1.setBounds(440,150,200,30); t1.setBackground(Color.white); t2=new TextField(20); t2.setBounds(440,180,200,30); t2.setBackground(Color.white); t2.setEchoChar('*'); l1=new Label("Gas Agency Package"); l1.setBounds(400,30,300,50); l1.setFont(new Font("TimesRoman",Font.BOLD,25)); l1.setAlignment(Label.CENTER); l2=new Label("Enter your ID and Passoword"); l2.setFont(new Font("TimesRoman",Font.BOLD,20)); l2.setBounds(270,80,300,50); l3=new Label("Enter ID"); l2.setFont(new Font ("TimesRoman",Font.BOLD,20)); l3.setBounds(270,150,120,50); l4=new Label("Enter Passoword"); l2.setFont(new Font ("TimesRoman",Font.BOLD,20)); l4.setBounds(270,180,140,50); add(l1); add(l2); add(l3); add(t1); add(l4); add(t2); b1=new Button("Login"); b1.setBackground(Color.white); b1.setBounds(400,280,100,70); b1.addActionListener(this); add(b1); } public void actionPerformed(ActionEvent e) { if(e.getSource()==b1) { s3="svce"; s4="svce"; s1=t1.getText(); s2=t2.getText(); if(s1.equals(s3) && s2.equals(s4)) { //System.out.println("password is correct"); MenuForm m= new MenuForm(); m.setVisible(true); //this.dispose(); } else { System.out.println("password not correct"); } this.dispose(); } } } plzzzzzzzzz xplain this code

0 Answers  


Could u please tell me any UNIX scripts that 'll lead to find the network latency of the servers.?or else any unix command to find the network latency of a server?Thnx in advance...

0 Answers   Cap Gemini,


Write a Program to truncate a given floating point value (e.g.16.25=16).

0 Answers   InterGraph,


how to test the orientation of the layout in android.to note any changes in the ui design when change orientation

0 Answers  


In LSMW , what does the following error mean and how to rectify it : Incorrect interface data for set 78 in method C . This error is occuring in idoc processing step of LSMW.

0 Answers   Wipro,


plzzzzzzzzz xplain this code import java.awt.*; import java.awt.event.*; import java.awt.MenuItem.*; import java.sql.*; import sun.jdbc.odbc.*; import java.io.*; public class ShopDelivery extends Frame implements ActionListener { Label l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13; Button exit,save,next,top,prev,botm,ad,show; TextField txtCMemoNo,txtConsNo,txtCMemoDt,txtConsName,txtAddr1,txtPhNo ,txtBookDtold,txtPrintDt,txtOldCMemNo,txtOldDlryDt,adr2,adr3 ,tot,stnry,rmrk; String ConsName; String Addr1; public static void main(String sr[]) { new ShopDelivery().setVisible(true); } public ShopDelivery() { super("Shop Delivery"); Statement stmt; ResultSet rs; //PreparedStatement pst; Connection con; try { Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:Agency"); if (con!=null); System.out.println ("connected"); stmt =con.createStatement (); } catch(Exception e1) { System.out.println (e1); } setSize(1280,800); setBackground(Color.CYAN); setLayout(null); l1=new Label("Cashmemo No"); l1.setBounds(260,60,90,30); l1.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l1.setAlignment(Label.CENTER); add(l1); l2=new Label("CONSMR NO"); l2.setBounds(30,60,90,30); l2.setFont(new Font("TimesRoman",Font.PLAIN,15)); l2.setAlignment(Label.CENTER); add(l2); l3=new Label("Book DATE"); l3.setBounds(520,60,90,30); l3.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l3.setAlignment(Label.CENTER); add(l3); l4=new Label("NAME"); l4.setBounds(30,150,45,30); l4.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l4.setAlignment(Label.CENTER); add(l4); l5=new Label("ADRS"); l5.setBounds(30,220,45,30); l5.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l5.setAlignment(Label.CENTER); add(l5); l6=new Label("PH NO"); l6.setBounds(500,150,45,30); l6.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l6.setAlignment(Label.CENTER); add(l6); l7=new Label("OldBkDt"); l7.setBounds(30,390,55,30); l7.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l7.setAlignment(Label.CENTER); add(l7); l8=new Label("Print Date"); l8.setBounds(320,390,65,30); l8.setFont(new Font("TimesRoman",Font.PLAIN,15)); l8.setAlignment(Label.CENTER); add(l8); l9=new Label("CMemo No"); l9.setBounds(700,390,65,30); l9.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l9.setAlignment(Label.CENTER); add(l9); l10=new Label("Del Date"); l10.setBounds(550,390,55,30); l10.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l10.setAlignment(Label.CENTER); add(l10); l13=new Label("REMARKS"); l13.setBounds (30,630,85,30); l13.setFont(new Font ("TimesRoman",Font.PLAIN,15)); l13.setAlignment (Label.CENTER); add(l13); txtCMemoNo=new TextField(); txtCMemoNo.setBounds(375,60,80,30); txtCMemoNo.setBackground(Color.white); add(txtCMemoNo); txtConsNo=new TextField(); txtConsNo.setBounds(130,60,80,30); txtConsNo.setBackground(Color.white); add(txtConsNo); txtCMemoDt=new TextField(); txtCMemoDt.setBounds(635,60,80,30); txtCMemoDt.setBackground(Color.white); add(txtCMemoDt); txtConsName=new TextField(); txtConsName.setBounds(100,150,200,30); txtConsName.setBackground(Color.white); add(txtConsName); txtAddr1=new TextField(); txtAddr1.setBounds(100,220,350,30); txtAddr1.setBackground(Color.white); add(txtAddr1); adr2=new TextField(); adr2.setBounds(100,250,350,30); adr2.setBackground(Color.white); add(adr2); adr3=new TextField(); adr3.setBounds(100,280,350,30); adr3.setBackground(Color.white); add(adr3); txtPhNo=new TextField(); txtPhNo.setBounds(570,150,150,30); txtPhNo.setBackground(Color.white); add(txtPhNo); txtBookDtold=new TextField(); txtBookDtold.setBounds(30,440,60,30); txtBookDtold.setBackground(Color.white); add(txtBookDtold); txtPrintDt=new TextField(); txtPrintDt.setBounds(320,440,60,30); txtPrintDt.setBackground(Color.white); add(txtPrintDt); txtOldCMemNo=new TextField(); txtOldCMemNo.setBounds(700,440,60,30); txtOldCMemNo.setBackground(Color.white); add(txtOldCMemNo); txtOldDlryDt=new TextField(); txtOldDlryDt.setBounds(550,440,60,30); txtOldDlryDt.setBackground(Color.white); add(txtOldDlryDt); rmrk=new TextField(); rmrk.setBounds(140,630,600,30); rmrk.setBackground(Color.white); add(rmrk); exit=new Button("EXIT"); exit.setBackground(Color.orange); exit.setBounds(760,700,40,40); exit.addActionListener(this); add(exit); save=new Button("SAVE"); save.setBackground(Color.orange); save.setBounds(715,700,40,40); save.addActionListener(this); add(save); next=new Button("NEXT"); next.setBackground(Color.orange); next.setBounds(90,700,40,40); next.addActionListener(this); add(next); top=new Button("TOP"); top.setBackground(Color.orange); top.setBounds(0,700,40,40); top.addActionListener(this); add(top); prev=new Button("PREV"); prev.setBackground(Color.orange); prev.setBounds(45,700,40,40); prev.addActionListener(this); add(prev); botm=new Button("BOTM"); botm.setBackground (Color.orange); botm.setBounds (135,700,40,40); botm.addActionListener (this); add(botm); ad=new Button("ADD"); ad.setBackground (Color.orange); ad.setBounds (300,700,40,40); ad.addActionListener (this); add(ad); show=new Button("SHOW"); show.setBackground (Color.orange); show.setBounds (345,700,40,40); show.addActionListener (this); add(show); } public void actionPerformed(ActionEvent e) { if(e.getSource()==exit) { this.dispose(); System.exit(0); } /*if(e.getSource()==save) { try { Connection con=DriverManager.getConnection("jdbc:odbc:Agency"); PreparedStatement pst=con.prepareStatement("INSERT INTO NewCon values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); pst.setInt (1,Integer.parseInt(txtConsNo.getText())); pst.setInt (2,Integer.parseInt(txtCMemoNo.getText())); pst.setString (3,txtCMemoDt.getText()); pst.setString (4,txtConsName.getText()); pst.setInt(5,Integer.parseInt (txtPhNo.getText())); pst.setString(6,txtAddr1.getText()); pst.setString(7,adr2.getText()); pst.setString(8,adr3.getText()); pst.setInt(9,Integer.parseInt (txtBookDtold.getText())); pst.setInt(10,Integer.parseInt (txtPrintDt.getText())); pst.setInt(11,Integer.parseInt (txtOldDlryDt.getText())); pst.setInt(12,Integer.parseInt (txtCMemoNo.getText())); pst.setInt(13,Integer.parseInt (tot.getText())); pst.setInt(14,Integer.parseInt (stnry.getText())); pst.setString(15,rmrk.getText()); pst.executeUpdate (); con.close(); } catch(Exception e2) {System.out.println(e2);} //cs(txtConsName.getText (),txtAddr1.getText()); }*/ if(e.getSource()==ad) { try { txtCMemoNo.setText(""); txtCMemoDt.setText(""); txtConsName.setText(""); txtAddr1.setText(""); txtPhNo.setText(""); txtBookDtold.setText(""); txtPrintDt.setText(""); //txtCMemoNo.setText(""); txtOldDlryDt.setText(""); adr2.setText(""); adr3.setText(""); tot.setText(""); //stnry.setText(""); //rmrk.setText(""); Connection con1=DriverManager.getConnection("jdbc:odbc:Agency"); Statement stmt1=con1.createStatement(); ResultSet rs1=stmt1.executeQuery("SELECT Max(Cons_No) FROM NewCon"); int nextcono = rs1.getInt ("Cons_No"); System.out.println (nextcono); nextcono=nextcono+1; txtConsNo.setText ("nextcono"); con1.close(); } catch(Exception e4){} } } }

0 Answers  


Categories