mirror of
				https://github.com/python-LimeReport/LimeReport.git
				synced 2025-11-03 23:21:23 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef LRDATASOURCEINTF_H
 | 
						|
#define LRDATASOURCEINTF_H
 | 
						|
#include <QSharedPointer>
 | 
						|
#include <QAbstractItemModel>
 | 
						|
namespace LimeReport {
 | 
						|
 | 
						|
class IDataSource {
 | 
						|
public:
 | 
						|
    enum DatasourceMode{DESIGN_MODE,RENDER_MODE};
 | 
						|
    typedef QSharedPointer<IDataSource> Ptr;
 | 
						|
    virtual ~IDataSource() {}
 | 
						|
    virtual bool next() = 0;
 | 
						|
    virtual bool hasNext() = 0;
 | 
						|
    virtual bool prior() = 0;
 | 
						|
    virtual void first() = 0;
 | 
						|
    virtual void last() = 0;
 | 
						|
    virtual bool bof() = 0;
 | 
						|
    virtual bool eof() = 0;
 | 
						|
    virtual QVariant data(const QString& columnName) = 0;
 | 
						|
    virtual QVariant dataByKeyField(const QString& columnName, const QString& keyColumnName, QVariant keyData) = 0;
 | 
						|
    virtual int columnCount() = 0;
 | 
						|
    virtual QString columnNameByIndex(int columnIndex) = 0;
 | 
						|
    virtual int columnIndexByName(QString name) = 0;
 | 
						|
    virtual bool isInvalid() const = 0;
 | 
						|
    virtual QString lastError() = 0;
 | 
						|
    virtual QAbstractItemModel* model() = 0;
 | 
						|
};
 | 
						|
 | 
						|
class IDataSourceHolder {
 | 
						|
public:
 | 
						|
    virtual ~IDataSourceHolder(){}
 | 
						|
    virtual IDataSource* dataSource(IDataSource::DatasourceMode mode = IDataSource::RENDER_MODE) = 0;
 | 
						|
    virtual QString lastError() const = 0;
 | 
						|
    virtual bool isInvalid() const = 0;
 | 
						|
    virtual bool isOwned() const = 0;
 | 
						|
    virtual bool isEditable() const = 0;
 | 
						|
    virtual bool isRemovable() const = 0;
 | 
						|
    virtual void invalidate(IDataSource::DatasourceMode mode, bool dbWillBeClosed = false) = 0;
 | 
						|
    virtual void update() = 0;
 | 
						|
    virtual void clearErrors() = 0;
 | 
						|
};
 | 
						|
 | 
						|
} // namespace LimeReport
 | 
						|
 | 
						|
#endif // LRDATASOURCEINTF_H
 | 
						|
 | 
						|
 |