diff options
Diffstat (limited to 'examples/sql/overview/subclass4')
| -rw-r--r-- | examples/sql/overview/subclass4/main.cpp | 81 | ||||
| -rw-r--r-- | examples/sql/overview/subclass4/main.h | 25 | ||||
| -rw-r--r-- | examples/sql/overview/subclass4/subclass4.pro | 8 | 
3 files changed, 114 insertions, 0 deletions
diff --git a/examples/sql/overview/subclass4/main.cpp b/examples/sql/overview/subclass4/main.cpp new file mode 100644 index 000000000..a96870e4d --- /dev/null +++ b/examples/sql/overview/subclass4/main.cpp @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA.  All rights reserved. +** +** This file is part of an example program for TQt.  This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "main.h" +#include <qdatatable.h> + +InvoiceItemCursor::InvoiceItemCursor() : +    TQSqlCursor( "invoiceitem" ) +{ +    TQSqlFieldInfo productName( "productname", TQVariant::String ); +    append( productName ); +    setCalculated( productName.name(), TRUE ); + +    TQSqlFieldInfo productPrice( "price", TQVariant::Double ); +    append( productPrice ); +    setCalculated( productPrice.name(), TRUE ); + +    TQSqlFieldInfo productCost( "cost", TQVariant::Double ); +    append( productCost ); +    setCalculated( productCost.name(), TRUE ); +} + + +TQVariant InvoiceItemCursor::calculateField( const TQString & name ) +{ + +    if ( name == "productname" ) { +	TQSqlQuery query( "SELECT name FROM prices WHERE id=" + +		     field( "pricesid" )->value().toString() ); +	if ( query.next() ) +	    return query.value( 0 ); +    } +    else if ( name == "price" ) { +	TQSqlQuery query( "SELECT price FROM prices WHERE id=" + +		     field( "pricesid" )->value().toString() ); +	if ( query.next() ) +	    return query.value( 0 ); +    } +    else if ( name == "cost" ) { +	TQSqlQuery query( "SELECT price FROM prices WHERE id=" + +		     field( "pricesid" )->value().toString() ); +	if ( query.next() ) +	    return TQVariant( query.value( 0 ).toDouble() * +			     value( "quantity").toDouble() ); +    } + +    return TQVariant( TQString::null ); +} + + +int main( int argc, char *argv[] ) +{ +    TQApplication app( argc, argv ); + +    if ( createConnections() ) { +	InvoiceItemCursor invoiceItemCursor; + +	TQDataTable *invoiceItemTable = new TQDataTable( &invoiceItemCursor ); + +	app.setMainWidget( invoiceItemTable ); + +	invoiceItemTable->addColumn( "productname", "Product" ); +	invoiceItemTable->addColumn( "price",	    "Price" ); +	invoiceItemTable->addColumn( "quantity",    "Quantity" ); +	invoiceItemTable->addColumn( "cost",	    "Cost" ); +	invoiceItemTable->addColumn( "paiddate",    "Paid" ); + +	invoiceItemTable->refresh(); +	invoiceItemTable->show(); + +	return app.exec(); +    } + +    return 1; +} diff --git a/examples/sql/overview/subclass4/main.h b/examples/sql/overview/subclass4/main.h new file mode 100644 index 000000000..06b0a1734 --- /dev/null +++ b/examples/sql/overview/subclass4/main.h @@ -0,0 +1,25 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA.  All rights reserved. +** +** This file is part of an example program for TQt.  This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include <qapplication.h> +#include <qsqldatabase.h> +#include <qsqlcursor.h> +#include "../connection.h" + +class TQSqlRecord; + +class InvoiceItemCursor : public TQSqlCursor +{ +    public: +	InvoiceItemCursor(); +    protected: +	TQVariant calculateField( const TQString & name ); +}; + + diff --git a/examples/sql/overview/subclass4/subclass4.pro b/examples/sql/overview/subclass4/subclass4.pro new file mode 100644 index 000000000..a6cd8cb47 --- /dev/null +++ b/examples/sql/overview/subclass4/subclass4.pro @@ -0,0 +1,8 @@ +TEMPLATE = app + +CONFIG  += qt warn_on release + +REQUIRES = full-config + +HEADERS	 = +SOURCES	 = main.cpp ../connection.cpp  | 
