📄 datamodule1.java
字号:
/**
* Copyright (c) 1996-2004 Borland Software Corporation. All Rights Reserved.
*
* This SOURCE CODE FILE, which has been provided by Borland Software as part
* of a Borland Software product for use ONLY by licensed users of the product,
* includes CONFIDENTIAL and PROPRIETARY information of Borland Software.
*
* USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS
* OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
* THE PRODUCT.
*
* IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND SOFTWARE, ITS
* RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY
* CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR
* DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES
* ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR
* DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR
* DERIVED FROM THIS SOURCE CODE FILE.
*/
//------------------------------------------------------------------------------
// Copyright (c) 1996-2004 Borland Software Corporation. All Rights Reserved.
//------------------------------------------------------------------------------
package com.borland.samples.orderentry;
import java.io.*;
import java.util.*;
import java.net.*;
import javax.swing.*;
import com.borland.dx.dataset.*;
import com.borland.dx.sql.dataset.*;
import com.borland.jb.util.*;
/**
* DataModule1 is an implementation of the DataModule interface.
* The DataModule is a non visual container for components, especially
* DataExpress components (i.e. Database and DataSet components). This
* centralizes related database components into one module, allowing a
* separation of business rule logic and application logic. A big advantage
* DataModules allow for easier reuse or sharing of components between
* multiple Frames in an application, or between multiple applets.
*
* <P>
* This class employs the Singleton pattern to ensure that the class has only
* one instance. You can access the singleton instance by calling the
* static method getDataModule. This method instantiates the DataModule for
* the first caller and returns this same instance to any successive callers:
*
* <P>
* <CODE><PRE>
* DataModule1 dm = DataModule1.getDataModule();
* <PRE></CODE>
*
* <P>
* The DataSets that are used throughout the Cliffhanger application are
* contained and initialized here in this DataModule. Any master-detail
* relationships between datasets are defined here too. All persistent
* columns for the various datasets are defined and initialized here also.
* Client-side business logic is implemented in the data module to centralize
* a common response by datasets to validation checks and database exceptions.
* To access a dataset contained in the data module, use the getter methods
* for the various DataSets in the data module. These methods instantiate the
* DataSets for the first caller and returns the same instances to any
* successive callers, allowing mulitple frames to share the same dataset
* cursor:
*
* <P>
* <CODE><PRE>
* DataModule1 dm = DataModule1.getDataModule();
* QueryDataSet customerDataSet = dm.getCustomerDataSet();
* </PRE></CODE>
*
*/
public class DataModule1 implements DataModule{
private static DataModule1 myDM;
static final double TAXPERCENT = 0.09086;
static final double SHIPPERCENT = 0.04;
Database database1 = new Database();
QueryDataSet productDataSet = new QueryDataSet();
QueryDataSet categoryDataSet = new QueryDataSet();
// customerDataSet and custOrderDataSet are linked
// in a master-detail relationship
QueryDataSet customerDataSet = new QueryDataSet();
QueryDataSet custOrderDataSet = new QueryDataSet();
// orderDataSet and orderItemDataSet are linked
// in a master-detail relationship
QueryDataSet orderDataSet = new QueryDataSet();
QueryDataSet orderItemDataSet = new QueryDataSet();
// Lookup datasets
QueryDataSet payMethodDataSet = new QueryDataSet();
QueryDataSet shipMethodDataSet = new QueryDataSet();
QueryDataSet statusDataSet = new QueryDataSet();
// Other datasets
QueryDataSet nextOrderIDDataSet = new QueryDataSet();
QueryDataSet nextCustomerIDDataSet = new QueryDataSet();
QueryDataSet accountDataSet = new QueryDataSet();
// Query Resolvers
QueryResolver resOrder = new QueryResolver();
QueryResolver resOrderItem = new QueryResolver();
QueryResolver resCustomer = new QueryResolver();
QueryResolver resProduct = new QueryResolver();
// Persistent columns
// Orders
Column colOrdersID = new Column();
Column colOrdersCustomerID = new Column();
Column colOrdersOrderDate = new Column();
Column colOrdersStatus = new Column();
Column colOrdersShipDate = new Column();
Column colOrdersOrderTrackNum = new Column();
Column colOrdersCustomerPONum = new Column();
Column colOrdersPayMethod = new Column();
Column colOrdersCreditCardNum = new Column();
Column colOrdersWirePaymentInstr = new Column();
Column colOrdersShipMethod = new Column();
Column colOrdersAmtPaid = new Column();
Column colOrdersShipName = new Column();
Column colOrdersShipAddr1 = new Column();
Column colOrdersShipAddr2 = new Column();
Column colOrdersShipCity = new Column();
Column colOrdersShipState = new Column();
Column colOrdersShipPostalCode = new Column();
Column colOrdersShipCountry = new Column();
Column colOrdersBillAddr1 = new Column();
Column colOrdersBillAddr2 = new Column();
Column colOrdersBillCity = new Column();
Column colOrdersBillState = new Column();
Column colOrdersBillPostalCode = new Column();
Column colOrdersBillCountry = new Column();
Column colOrdersCustomerName = new Column();
// OrderItem
Column colOrderItemQty = new Column();
Column colOrderItemProductID = new Column();
Column colOrderItemProductName = new Column();
Column colOrderItemSalePrice = new Column();
Column colOrderItemExtendedPrice = new Column();
Column colOrderItemSubtotal = new Column();
Column colOrderItemOrderID = new Column();
Column colOrderItemTax = new Column();
Column colOrderItemShipping = new Column();
Column colOrderItemAmtDue = new Column();
// Customer
Column colCustomerID = new Column();
Column colCustomerFirstName = new Column();
Column colCustomerMI = new Column();
Column colCustomerLastName = new Column();
Column colCustomerPhone = new Column();
Column colCustomerFax = new Column();
Column colCustomerEmail = new Column();
Column colCustomerAddr1 = new Column();
Column colCustomerAddr2 = new Column();
Column colCustomerCity = new Column();
Column colCustomerState = new Column();
Column colCustomerPostalCode = new Column();
Column colCustomerCountry = new Column();
Column colCustomerShipName = new Column();
Column colCustomerShipAddr1 = new Column();
Column colCustomerShipAddr2 = new Column();
Column colCustomerShipCity = new Column();
Column colCustomerShipState = new Column();
Column colCustomerShipPostalCode = new Column();
Column colCustomerShipCountry = new Column();
// Customer Order
Column colCustOrderID = new Column();
Column colCustOrderCustomerID = new Column();
Column colCustOrderOrderDate = new Column();
Column colCustOrderStatus = new Column();
Column colCustOrderShipDate = new Column();
// Product
Column colProductID = new Column();
Column colProductIsActive = new Column();
Column colProductName = new Column();
Column colProductCategory = new Column();
Column colProductBasePrice = new Column();
Column colProductDiscountPct = new Column();
Column colProductStockQty = new Column();
Column colProductMinReorderQty = new Column();
ResourceBundle res = Res.getBundle("com.borland.samples.orderentry.Res");
Column categoryColumn = new Column();
public DataModule1() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
// Initialize database connection
database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor(DataModule1.getInterBaseURL("OnlineStore", "cliffhanger.gdb"), "SYSDBA", "masterkey", false, "interbase.interclient.Driver"));
database1.setTransactionIsolation(java.sql.Connection.TRANSACTION_READ_COMMITTED);
productDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM Product", null, true, Load.ALL));
categoryDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM L_ProductCategory", null, true, Load.ALL));
categoryDataSet.addEditListener(new DataModule1_categoryDataSet_editAdapter(this));
customerDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM Customer", null, true, Load.ALL));
custOrderDataSet.setMasterLink(new com.borland.dx.dataset.MasterLinkDescriptor(customerDataSet, new String[] {"ID"}, new String[] {"CUSTOMERID"}, true));
custOrderDataSet.setReadOnly(true);
custOrderDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT ID, CUSTOMERID, ORDERDATE, STATUS, SHIPDATE FROM ORDERS WHERE CUSTOMERID = :ID", null, true, Load.ALL));
orderDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM ORDERS", null, true, Load.ALL));
orderDataSet.addCalcFieldsListener(new DataModule1_orderDataSet_calcFieldsAdapter(this));
orderItemDataSet.setMasterLink(new com.borland.dx.dataset.MasterLinkDescriptor(orderDataSet, new String[] {"ID"}, new String[] {"ORDERID"}, true));
orderItemDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT ORDERID, PRODUCTID, QTY, SALEPRICE FROM ORDERITEM WHERE ORDERID = :ID", null, true, Load.ALL));
orderItemDataSet.addCalcFieldsListener(new DataModule1_orderItemDataSet_calcFieldsAdapter(this));
orderItemDataSet.addCalcAggFieldsListener(new DataModule1_orderItemDataSet_calcAggFieldsAdapter(this));
payMethodDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM L_PAYMETHOD", null, true, Load.ALL));
shipMethodDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM L_SHIPMETHOD", null, true, Load.ALL));
statusDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM L_STATUS", null, true, Load.ALL));
nextOrderIDDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT NEXTID FROM spNextOrderID", null, true, Load.ALL));
nextCustomerIDDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT NEXTID FROM spNextCustomerID", null, true, Load.ALL));
accountDataSet.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT ID, CREDITCARDNUMBER FROM ACCOUNT", null, true, Load.ALL));
// Initialize QueryResolvers
orderDataSet.setResolver(resOrder);
orderDataSet.addEditListener(new DataModule1_orderDataSet_editAdapter(this));
orderItemDataSet.setResolver(resOrderItem);
orderItemDataSet.addEditListener(new DataModule1_orderItemDataSet_editAdapter(this));
customerDataSet.setResolver(resCustomer);
customerDataSet.addEditListener(new DataModule1_customerDataSet_editAdapter(this));
productDataSet.setResolver(resProduct);
productDataSet.addEditListener(new DataModule1_productDataSet_editAdapter(this));
resOrder.setDatabase(database1);
resOrder.setUpdateMode(com.borland.dx.dataset.UpdateMode.CHANGED_COLUMNS);
resOrderItem.setDatabase(database1);
resOrderItem.setUpdateMode(com.borland.dx.dataset.UpdateMode.CHANGED_COLUMNS);
resCustomer.setDatabase(database1);
resCustomer.setUpdateMode(com.borland.dx.dataset.UpdateMode.CHANGED_COLUMNS);
resProduct.setDatabase(database1);
resProduct.setUpdateMode(com.borland.dx.dataset.UpdateMode.CHANGED_COLUMNS);
resProduct.addResolverListener(new DataModule1_resProduct_resolverAdapter(this));
// Initialize Persistent Columns
// Orders
colOrdersID.setCaption(res.getString("DM_OrderDS_ID"));
colOrdersID.setColumnName("ID");
colOrdersID.setDataType(com.borland.dx.dataset.Variant.INT);
colOrdersCustomerID.setCaption(res.getString("DM_OrderDS_CUSTOMERID"));
colOrdersCustomerID.setColumnName("CUSTOMERID");
colOrdersCustomerID.setDataType(com.borland.dx.dataset.Variant.INT);
colOrdersCustomerID.addColumnChangeListener(new DataModule1_colOrdersCustomerID_columnChangeAdapter(this));
colOrdersOrderDate.setCaption(res.getString("DM_OrderDS_ORDERDATE"));
colOrdersOrderDate.setColumnName("ORDERDATE");
colOrdersOrderDate.setDisplayMask(res.getString("DM_DateDisplayMask"));
colOrdersOrderDate.setDataType(com.borland.dx.dataset.Variant.TIMESTAMP);
colOrdersOrderDate.setEditMask(res.getString("DM_DateEditMask"));
colOrdersOrderDate.setDefault("NOW");
colOrdersStatus.setCaption(res.getString("DM_OrderDS_STATUS"));
colOrdersStatus.setColumnName("STATUS");
colOrdersStatus.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersStatus.setDefault(res.getString("DM_Open"));
colOrdersStatus.setPickList(new com.borland.dx.dataset.PickListDescriptor(statusDataSet, new String [] { "STATUS" }, new String [] { "STATUS" }, new String [] { "STATUS" }, null, false));
colOrdersStatus.addColumnChangeListener(new DataModule1_colOrdersStatus_columnChangeAdapter(this));
colOrdersShipDate.setCaption(res.getString("DM_OrderDS_SHIPDATE"));
colOrdersShipDate.setColumnName("SHIPDATE");
colOrdersShipDate.setDisplayMask(res.getString("DM_DateDisplayMask"));
colOrdersShipDate.setDataType(com.borland.dx.dataset.Variant.TIMESTAMP);
colOrdersShipDate.setEditMask(res.getString("DM_DateEditMask"));
colOrdersOrderTrackNum.setCaption(res.getString("DM_OrderDS_ORDERTRACKNUM"));
colOrdersOrderTrackNum.setColumnName("ORDERTRACKNUM");
colOrdersOrderTrackNum.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersCustomerPONum.setCaption(res.getString("DM_OrderDS_CUSTOMERPONUM"));
colOrdersCustomerPONum.setColumnName("CUSTOMERPONUM");
colOrdersCustomerPONum.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersPayMethod.setColumnName("PAYMETHOD");
colOrdersPayMethod.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersPayMethod.setDefault(res.getString("DM_VISA"));
colOrdersPayMethod.setPickList(new com.borland.dx.dataset.PickListDescriptor(payMethodDataSet, new String [] { "PAYMETHOD" }, new String [] { "PAYMETHOD" }, new String [] { "PAYMETHOD" }, null, false));
colOrdersPayMethod.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersPayMethod.addColumnChangeListener(new DataModule1_colOrdersPayMethod_columnChangeAdapter(this));
colOrdersCreditCardNum.setColumnName("CREDITCARDNUM");
colOrdersCreditCardNum.setDisplayMask("####\\-####\\-####\\-####;0; ; ");
colOrdersCreditCardNum.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersCreditCardNum.setEditMask("####\\-####\\-####\\-####;0; ; ");
colOrdersCreditCardNum.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersWirePaymentInstr.setColumnName("WIREPAYMENTINSTR");
colOrdersWirePaymentInstr.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersWirePaymentInstr.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersShipMethod.setColumnName("SHIPMETHOD");
colOrdersShipMethod.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersShipMethod.setDefault(res.getString("DM_UPS"));
colOrdersShipMethod.setPickList(new com.borland.dx.dataset.PickListDescriptor(shipMethodDataSet, new String [] { "SHIPMETHOD" }, new String [] { "SHIPMETHOD" }, new String [] { "SHIPMETHOD" }, null, false));
colOrdersShipMethod.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersAmtPaid.setCurrency(true);
colOrdersAmtPaid.setColumnName("AMTPAID");
colOrdersAmtPaid.setDataType(com.borland.dx.dataset.Variant.DOUBLE);
colOrdersAmtPaid.setLocale(new java.util.Locale("en", "US", ""));
colOrdersAmtPaid.setDefault("0");
colOrdersAmtPaid.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersAmtPaid.addColumnChangeListener(new DataModule1_colOrdersAmtPaid_columnChangeAdapter(this));
colOrdersShipName.setColumnName("SHIPNAME");
colOrdersShipName.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersShipName.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersShipAddr1.setColumnName("SHIPADDR1");
colOrdersShipAddr1.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersShipAddr1.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersShipAddr2.setColumnName("SHIPADDR2");
colOrdersShipAddr2.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersShipAddr2.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersShipCity.setColumnName("SHIPCITY");
colOrdersShipCity.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersShipCity.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersShipState.setColumnName("SHIPSTATE");
colOrdersShipState.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersShipState.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
colOrdersShipPostalCode.setColumnName("SHIPPOSTALCODE");
colOrdersShipPostalCode.setDataType(com.borland.dx.dataset.Variant.STRING);
colOrdersShipPostalCode.setVisible(com.borland.jb.util.TriStateProperty.FALSE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -