//转载加注:datawindow经过我三年的使用,是如此方便快捷。虽然powerj不在使用,但现在pb11和datawindow.net再显风光。datawindow以控件的面目出现在.net里,可以说真是无处不在。如此简单好用的东西很多人不用,上次我一个朋友居然试图给一个同学提供delphi版的report tool for PB,让我"痛斥"了一番。归结其原因,还是sybase没宣传好。可以说任何程序,特别是java这样的不长于UI编写的语言,在jBuilder和datawindow的作用下,还是很容易写一个界面和数据操作的。

*/
 *
 *  This is a basic Java datawindow example.
 *  I want explaine you how to use a datawindow control for java development.
 *  (its so basic...)
 *
 * Autor:
 *  David Arcia 09-09-2002 (david.arcia@softhome.net)
 *
 //*/

 import javax.Swing.JOptionPane;
 import javax.swing.JFrame;
 import powersoft.datawindow.JDataWindowControl;
 import powersoft.datawindow.Blob;
 import powersoft.powerj.db.java_sql.Transaction;


 public class JDataWindow extends JFrame{

 //The datawindow
 private JDataWindowControl dwcActual;
 //The powerbuilder library path (where dataobjects are stored)
 private final String LIBRERIA = new String("C:/PB7/java.pbl");
 //Transaction objetc for database connection
 private Transaction trans; 

  
   //Contructor
   public JDataWindow() { 
   //New datawindow control
 dwcActual = getDataWindow("dw_products",true,true,true);
 //Not null ?
 if(dwcActual == null) return;
   }//ends method


 /********************************************************************************
 * CONNECTION USING POWERSOFT TRANSACTION OBJECT (as SQLCA in PowerBuilder)
 ********************************************************************************/
 //This method connect with database (by example, a Oracle database)
 public boolean setConnect(){
         trans = new Transaction();
             trans.reGISterDriver( "oracle.JDBC.driver.OracleDriver" );
             trans.setDataSource("jdbc:oracle:thin:@192.168.22.10:1521:FALCON");
             trans.setUserID( "rjimenez" );
             trans.setPassword( "defalcon" );                      
             //Error ?
             if(!trans.connect()){
                 System.err.println("Connection failed.");
                 return false;
             }                     
             return true;                                     
 }//ends method



 /********************************************************************************
 * JAVA DATAWINDOW'S CREATION
 ********************************************************************************/
     //Create a datawindow
     public JDataWindowControl getDataWindow(String dataobject){
           JDataWindowControl dwc = new JDataWindowControl(); 
   //Assign a datawindow library
           dwc.setSourceFileName(LIBRERIA);
           //Assign a datawindow object to the dw control
           dwc.setDataWindowObjectName(dataobject);
           //Some properties...
           dwc.setVScroll( true );
           dwc.insertRow(0);   
       //Assign the transaction object to dw
       dwc.setTransaction(trans); 
           //return object created
           return dwc;
     }//ends method


   //Optional...Method for row selection
   public void selectRow(int row){
   if(row > 0){
 dwcActual.selectRow(0,false);
 dwcActual.selectRow(row,true);
 dwcActual.scrollToRow(row);
 dwcActual.setRow(row);
 }
   }//ends method

  
   //Optional... for to make a datawindow editable or not
   public void setEditable(JDataWindowControl dwc, boolean editar){ 
   //Accept text
   dwcActual.acceptText();
   //get column number
   int cols = Integer.parseInt(dwc.describe("Datawindow.column.count"));  
 //  
   String indicador = (editar) ? "1" : "0";
 //
   editable = indicador == "1";
   //Change the editable porperty
   for(int cont=1; cont <= cols; cont++){
   dwc.modify("#" + cont + ".TabSequence = " + indicador) ; 
   } 
   }//ends method



   //Optional... Insert new row to dataWindows end.
   public void getNewRow(){
   int row=dwcActual.insertRow(0);  
   selectRow(row);
   }//final de metodo


   //Optional... Delete a datawindow row
   public void deleteRow(){
 int boton=JOptionPane.showConfirmDialog(null,"Delete actual row ?", "Deleting",
 JOptionPane.YES_NO_OPTION);
 if(boton == 0) dwcActual.deleteRow(dwcActual.getRow()); 
   }//Fin de metodo

          
 /********************************************************************************
 * THIS ARE THE DATAWINDOW'S EVENT MANAGERS
 *
 * The events that support datawindow are clasificated in differents interfaces
 * according it function.
 *
 ********************************************************************************

 Interfaces:
 MouseListener,FocusListener,DatabaseListener,EditChangedListener,
 ItemListener,PrintListener,RowChangeListener, etc...

 Datawindow events:
 public void leftButtonDoubleClick (MouseEvent event){}
 public void leftButtonClick (MouseEvent event){}
 public void leftButtonDown ( MouseEvent event){}
 public void leftButtonUp ( MouseEvent event){}
 public void middleButtonClick ( MouseEvent event){}
 public void middleButtonDoubleClick ( MouseEvent event){}
 public void mouseMove ( MouseEvent event){}
 public void rightButtonClick ( MouseEvent event){}
 public void rightButtonDoubleClick ( MouseEvent event){}
 public void rightButtonDown ( MouseEvent event){}
 public void rightButtonUp ( MouseEvent event){}
 public void getFocus ( FocusEvent event){}
 public void loseFocus ( FocusEvent event){}
 public void DBError ( DatabaseEvent event){}
 public void SQLPreview ( DatabaseEvent event){}
 public void editChanged ( EditChangedEvent event){}
 public void itemChanged ( ItemEvent event){}
 public void itemChangeAccepted ( ItemEvent event){}
 public void itemError ( ItemEvent event){}
 public void itemFocusChanged ( ItemEvent event){}    
 public void printEnding ( PrintEvent event){}
 public void printMarginChanging ( PrintEvent event){}
 public void printPageStarting ( PrintEvent event){}
 public void printStarting ( PrintEvent event){}
 public void retrieveEnd ( RetrieveEvent event){}
 public void retrieveRow ( RetrieveEvent event){}
 public void retrieveStart ( RetrieveEvent event){} 
 public void rowChanged ( RowChangeEvent event){}
 public void rowChanging ( RowChangeEvent event){}
 etc...


 ********************************************************************************/

 }//ends classe


 

我的产品

反编译逆向工具:PB反编译大师 PowerBuilder反编译大师

加密工具:PB混淆加密大师 PowerBuilder混淆加密大师

互联网数据组件:DataWindowHTTP

ESC/POS打印组件:ESC/POS ImagePrint(LPT,column format)

以及正在测试即将释出的 SQLCloudODBC组件,等等等。

请关注和收藏我的博客或访问:PB反编译, PB反编译大师, PB加密, PB混淆加密大师,DatawindowHTTP,PB DeCompiler,PB Obfuscatorhttp://www.powerbuilder.ltd/indexcn.html