The RecurrenceWidget gives the user a unified interface for telling the system how often certain events occur. More...
#include <recurrencewidget.h>
Public Types | |
enum | RecurrenceChangePolicy { NoPolicy, IgnoreFuture, ChangeFuture } |
enum | RecurrencePeriod { Never, Minutely, Hourly, Daily, Weekly, Monthly, Yearly, Custom } |
Properties | |
acceptDrops | |
accessibleDescription | |
accessibleName | |
autoFillBackground | |
baseSize | |
childrenRect | |
childrenRegion | |
contextMenuPolicy | |
cursor | |
enabled | |
bool | endDateVisible |
Return whether the end date field is visible. More... | |
bool | endTimeVisible |
Return whether the end time field is visible. More... | |
focus | |
focusPolicy | |
font | |
frameGeometry | |
frameSize | |
fullScreen | |
geometry | |
height | |
inputMethodHints | |
isActiveWindow | |
layoutDirection | |
locale | |
maximized | |
maximumHeight | |
maximumSize | |
maximumWidth | |
bool | maxVisible |
minimized | |
minimumHeight | |
minimumSize | |
minimumSizeHint | |
minimumWidth | |
RecurrencePeriod | minPeriod |
modal | |
mouseTracking | |
normalGeometry | |
objectName | |
palette | |
pos | |
rect | |
size | |
sizeHint | |
sizeIncrement | |
sizePolicy | |
bool | startDateVisible |
bool | startTimeVisible |
statusTip | |
styleSheet | |
toolTip | |
toolTipDuration | |
updatesEnabled | |
visible | |
whatsThis | |
width | |
windowFilePath | |
windowFlags | |
windowIcon | |
windowIconText | |
windowModality | |
windowModified | |
windowOpacity | |
windowTitle | |
x | |
y | |
Public Slots | |
virtual void | clear () |
Set the RecurrenceWidget to its default state. More... | |
virtual bool | save (bool intxn, RecurrenceChangePolicy cp, QString *msg=0) |
virtual void | set (bool recurring=false, int frequency=1, QString period=QString("W"), QDate startDate=QDate::currentDate(), QDate endDate=QDate(), int max=1, QString style="KeepNone") |
virtual void | set (bool recurring, int frequency, QString period, QDateTime startDateTime, QDateTime endDateTime, int max, QString style="KeepNone") |
virtual void | setEndDate (QDate p) |
virtual void | setEndDateTime (QDateTime p) |
virtual void | setEndDateVisible (bool p) |
virtual void | setEndTime (QTime p) |
virtual void | setEndTimeVisible (bool p) |
virtual void | setFrequency (int p) |
virtual void | setMax (int p) |
virtual void | setMaxVisible (bool p) |
virtual void | setMinPeriod (RecurrencePeriod minPeriod) |
virtual bool | setParent (int pid, QString ptype) |
virtual void | setPeriod (RecurrencePeriod p) |
virtual void | setPeriod (QString p) |
virtual void | setRecurring (bool p) |
virtual void | setStartDate (QDate p) |
virtual void | setStartDateTime (QDateTime p) |
virtual void | setStartDateVisible (bool p) |
virtual void | setStartTime (QTime p) |
virtual void | setStartTimeVisible (bool p) |
virtual void | setStyle (QString p) |
Public Member Functions | |
RecurrenceWidget (QWidget *parent=0, const char *name=0) | |
~RecurrenceWidget () | |
bool | acceptDrops () const |
QString | accessibleDescription () const |
QString | accessibleName () const |
QList< QAction * > | actions () const |
void | activateWindow () |
void | addAction (QAction *action) |
void | addActions (const QList< QAction * > &actions) |
void | adjustSize () |
bool | autoFillBackground () const |
QPalette::ColorRole | backgroundRole () const |
QBackingStore * | backingStore () const |
QSize | baseSize () const |
bool | blockSignals (bool block) |
QWidget * | childAt (int x, int y) const |
QWidget * | childAt (const QPoint &p) const |
const QObjectList & | children () const |
QRect | childrenRect () const |
QRegion | childrenRegion () const |
void | clearFocus () |
void | clearMask () |
bool | close () |
int | colorCount () const |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const |
QMargins | contentsMargins () const |
QRect | contentsRect () const |
Qt::ContextMenuPolicy | contextMenuPolicy () const |
QCursor | cursor () const |
void | customContextMenuRequested (const QPoint &pos) |
void | deleteLater () |
int | depth () const |
void | destroyed (QObject *obj) |
int | devicePixelRatio () const |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const |
bool | disconnect (const QObject *receiver, const char *method) const |
void | dumpObjectInfo () |
void | dumpObjectTree () |
QList< QByteArray > | dynamicPropertyNames () const |
WId | effectiveWinId () const |
virtual Q_INVOKABLE QDate | endDate () const |
Return the date the recurrence is set to end. More... | |
virtual Q_INVOKABLE QDateTime | endDateTime () const |
Return the date and time the recurrence is set to end. More... | |
virtual Q_INVOKABLE bool | endDateVisible () const |
virtual Q_INVOKABLE QTime | endTime () const |
Return the time of day the recurrence is set to end. More... | |
virtual Q_INVOKABLE bool | endTimeVisible () const |
void | ensurePolished () const |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name, Qt::FindChildOptions options) const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const |
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const |
Qt::FocusPolicy | focusPolicy () const |
QWidget * | focusProxy () const |
QWidget * | focusWidget () const |
const QFont & | font () const |
QFontInfo | fontInfo () const |
QFontMetrics | fontMetrics () const |
QPalette::ColorRole | foregroundRole () const |
QRect | frameGeometry () const |
QSize | frameSize () const |
virtual Q_INVOKABLE int | frequency () const |
Return the frequency (number of periods) the recurrence is set to run. More... | |
const QRect & | geometry () const |
virtual Q_INVOKABLE RecurrenceChangePolicy | getChangePolicy () |
void | getContentsMargins (int *left, int *top, int *right, int *bottom) const |
QPixmap | grab (const QRect &rectangle) |
void | grabGesture (Qt::GestureType gesture, Qt::GestureFlags flags) |
void | grabKeyboard () |
void | grabMouse () |
void | grabMouse (const QCursor &cursor) |
int | grabShortcut (const QKeySequence &key, Qt::ShortcutContext context) |
QGraphicsEffect * | graphicsEffect () const |
QGraphicsProxyWidget * | graphicsProxyWidget () const |
bool | hasEditFocus () const |
bool | hasFocus () const |
virtual bool | hasHeightForWidth () const |
bool | hasMouseTracking () const |
int | height () const |
virtual int | heightForWidth (int w) const |
int | heightMM () const |
void | hide () |
bool | inherits (const char *className) const |
Qt::InputMethodHints | inputMethodHints () const |
virtual QVariant | inputMethodQuery (Qt::InputMethodQuery query) const |
void | insertAction (QAction *before, QAction *action) |
void | insertActions (QAction *before, QList< QAction * > actions) |
void | installEventFilter (QObject *filterObj) |
bool | isActiveWindow () const |
bool | isAncestorOf (const QWidget *child) const |
bool | isEnabled () const |
bool | isEnabledTo (const QWidget *ancestor) const |
bool | isEnabledToTLW () const |
bool | isFullScreen () const |
bool | isHidden () const |
bool | isMaximized () const |
bool | isMinimized () const |
bool | isModal () const |
virtual Q_INVOKABLE bool | isRecurring () const |
bool | isTopLevel () const |
bool | isVisible () const |
bool | isVisibleTo (const QWidget *ancestor) const |
bool | isWidgetType () const |
bool | isWindow () const |
bool | isWindowModified () const |
bool | isWindowType () const |
void | killTimer (int id) |
QLayout * | layout () const |
Qt::LayoutDirection | layoutDirection () const |
QLocale | locale () const |
int | logicalDpiX () const |
int | logicalDpiY () const |
void | lower () |
QPoint | mapFrom (const QWidget *parent, const QPoint &pos) const |
QPoint | mapFromGlobal (const QPoint &pos) const |
QPoint | mapFromParent (const QPoint &pos) const |
QPoint | mapTo (const QWidget *parent, const QPoint &pos) const |
QPoint | mapToGlobal (const QPoint &pos) const |
QPoint | mapToParent (const QPoint &pos) const |
QRegion | mask () const |
virtual Q_INVOKABLE int | max () const |
int | maximumHeight () const |
QSize | maximumSize () const |
int | maximumWidth () const |
virtual bool | maxVisible () const |
virtual const QMetaObject * | metaObject () const |
int | minimumHeight () const |
QSize | minimumSize () const |
virtual QSize | minimumSizeHint () const |
int | minimumWidth () const |
virtual Q_INVOKABLE RecurrencePeriod | minPeriod () const |
virtual Q_INVOKABLE bool | modified () const |
void | move (int x, int y) |
void | move (const QPoint &) |
void | moveToThread (QThread *targetThread) |
QWidget * | nativeParentWidget () const |
QWidget * | nextInFocusChain () const |
QRect | normalGeometry () const |
QString | objectName () const |
void | objectNameChanged (const QString &objectName) |
void | overrideWindowFlags (Qt::WindowFlags flags) |
virtual QPaintEngine * | paintEngine () const |
bool | paintingActive () const |
const QPalette & | palette () const |
QObject * | parent () const |
virtual Q_INVOKABLE int | parentId () const |
virtual Q_INVOKABLE QString | parentType () const |
QWidget * | parentWidget () const |
virtual Q_INVOKABLE RecurrencePeriod | period () const |
virtual Q_INVOKABLE QString | periodCode () const |
int | physicalDpiX () const |
int | physicalDpiY () const |
QPoint | pos () const |
QWidget * | previousInFocusChain () const |
QVariant | property (const char *name) const |
void | raise () |
QRect | rect () const |
void | releaseKeyboard () |
void | releaseMouse () |
void | releaseShortcut (int id) |
void | removeAction (QAction *action) |
void | removeEventFilter (QObject *obj) |
void | render (QPaintDevice *target, const QPoint &targetOffset, const QRegion &sourceRegion, RenderFlags renderFlags) |
void | render (QPainter *painter, const QPoint &targetOffset, const QRegion &sourceRegion, RenderFlags renderFlags) |
void | repaint () |
void | repaint (int x, int y, int w, int h) |
void | repaint (const QRect &rect) |
void | repaint (const QRegion &rgn) |
void | resize (int w, int h) |
void | resize (const QSize &) |
bool | restoreGeometry (const QByteArray &geometry) |
void | retranslateUi (QWidget *RecurrenceWidget) |
void | retranslateUi (QWidget *RecurrenceWidget) |
QByteArray | saveGeometry () const |
void | scroll (int dx, int dy) |
void | scroll (int dx, int dy, const QRect &r) |
void | setAcceptDrops (bool on) |
void | setAccessibleDescription (const QString &description) |
void | setAccessibleName (const QString &name) |
void | setAttribute (Qt::WidgetAttribute attribute, bool on) |
void | setAutoFillBackground (bool enabled) |
void | setBackgroundRole (QPalette::ColorRole role) |
void | setBaseSize (const QSize &) |
void | setBaseSize (int basew, int baseh) |
void | setContentsMargins (const QMargins &margins) |
void | setContentsMargins (int left, int top, int right, int bottom) |
void | setContextMenuPolicy (Qt::ContextMenuPolicy policy) |
void | setCursor (const QCursor &) |
void | setDisabled (bool disable) |
void | setEditFocus (bool enable) |
void | setEnabled (bool) |
void | setFixedHeight (int h) |
void | setFixedSize (const QSize &s) |
void | setFixedSize (int w, int h) |
void | setFixedWidth (int w) |
void | setFocus () |
void | setFocus (Qt::FocusReason reason) |
void | setFocusPolicy (Qt::FocusPolicy policy) |
void | setFocusProxy (QWidget *w) |
void | setFont (const QFont &) |
void | setForegroundRole (QPalette::ColorRole role) |
void | setGeometry (int x, int y, int w, int h) |
void | setGeometry (const QRect &) |
void | setGraphicsEffect (QGraphicsEffect *effect) |
void | setHidden (bool hidden) |
void | setInputMethodHints (Qt::InputMethodHints hints) |
void | setLayout (QLayout *layout) |
void | setLayoutDirection (Qt::LayoutDirection direction) |
void | setLocale (const QLocale &locale) |
void | setMask (const QBitmap &bitmap) |
void | setMask (const QRegion ®ion) |
void | setMaximumHeight (int maxh) |
void | setMaximumSize (const QSize &) |
void | setMaximumSize (int maxw, int maxh) |
void | setMaximumWidth (int maxw) |
void | setMinimumHeight (int minh) |
void | setMinimumSize (const QSize &) |
void | setMinimumSize (int minw, int minh) |
void | setMinimumWidth (int minw) |
void | setMouseTracking (bool enable) |
void | setObjectName (const QString &name) |
void | setPalette (const QPalette &) |
void | setParent (QWidget *parent, Qt::WindowFlags f) |
void | setParent (QObject *parent) |
void | setParent (QWidget *parent) |
bool | setProperty (const char *name, const QVariant &value) |
void | setShortcutAutoRepeat (int id, bool enable) |
void | setShortcutEnabled (int id, bool enable) |
void | setSizeIncrement (int w, int h) |
void | setSizeIncrement (const QSize &) |
void | setSizePolicy (QSizePolicy) |
void | setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical) |
void | setStatusTip (const QString &) |
void | setStyle (QStyle *style) |
void | setStyleSheet (const QString &styleSheet) |
void | setToolTip (const QString &) |
void | setToolTipDuration (int msec) |
void | setUpdatesEnabled (bool enable) |
void | setupUi (QWidget *widget) |
void | setupUi (QWidget *RecurrenceWidget) |
virtual void | setVisible (bool visible) |
void | setWhatsThis (const QString &) |
void | setWindowFilePath (const QString &filePath) |
void | setWindowFlags (Qt::WindowFlags type) |
void | setWindowIcon (const QIcon &icon) |
void | setWindowIconText (const QString &) |
void | setWindowModality (Qt::WindowModality windowModality) |
void | setWindowModified (bool) |
void | setWindowOpacity (qreal level) |
void | setWindowRole (const QString &role) |
void | setWindowState (Qt::WindowStates windowState) |
void | setWindowTitle (const QString &) |
void | show () |
void | showFullScreen () |
void | showMaximized () |
void | showMinimized () |
void | showNormal () |
bool | signalsBlocked () const |
QSize | size () const |
virtual QSize | sizeHint () const |
QSize | sizeIncrement () const |
QSizePolicy | sizePolicy () const |
void | stackUnder (QWidget *w) |
virtual Q_INVOKABLE QDate | startDate () const |
virtual Q_INVOKABLE QDateTime | startDateTime () const |
virtual bool | startDateVisible () const |
virtual Q_INVOKABLE QTime | startTime () const |
int | startTimer (int interval, Qt::TimerType timerType) |
virtual Q_INVOKABLE bool | startTimeVisible () const |
QString | statusTip () const |
virtual Q_INVOKABLE RecurrencePeriod | stringToPeriod (QString p) const |
Convert a string representation of the period to a RecurrencePeriod. More... | |
virtual Q_INVOKABLE QString | style () const |
QString | styleSheet () const |
bool | testAttribute (Qt::WidgetAttribute attribute) const |
QThread * | thread () const |
QString | toolTip () const |
int | toolTipDuration () const |
QWidget * | topLevelWidget () const |
bool | underMouse () const |
void | ungrabGesture (Qt::GestureType gesture) |
void | unsetCursor () |
void | unsetLayoutDirection () |
void | unsetLocale () |
void | update () |
void | update (int x, int y, int w, int h) |
void | update (const QRect &rect) |
void | update (const QRegion &rgn) |
void | updateGeometry () |
bool | updatesEnabled () const |
QRegion | visibleRegion () const |
QString | whatsThis () const |
int | width () const |
int | widthMM () const |
QWidget * | window () const |
QString | windowFilePath () const |
Qt::WindowFlags | windowFlags () const |
QWindow * | windowHandle () const |
QIcon | windowIcon () const |
void | windowIconChanged (const QIcon &icon) |
QString | windowIconText () const |
void | windowIconTextChanged (const QString &iconText) |
Qt::WindowModality | windowModality () const |
qreal | windowOpacity () const |
QString | windowRole () const |
Qt::WindowStates | windowState () const |
QString | windowTitle () const |
void | windowTitleChanged (const QString &title) |
Qt::WindowType | windowType () const |
WId | winId () const |
int | x () const |
int | y () const |
Static Public Member Functions | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
QWidget * | createWindowContainer (QWindow *window, QWidget *parent, Qt::WindowFlags flags) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
QWidget * | find (WId id) |
QWidget * | keyboardGrabber () |
QWidget * | mouseGrabber () |
void | setTabOrder (QWidget *first, QWidget *second) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
Public Attributes | |
QRadioButton * | _all |
DateCluster * | _dates |
QTimeEdit * | _endTime |
XSpinBox * | _frequency |
QLabel * | _frequencyLit |
QSpacerItem * | _hspacer |
XSpinBox * | _max |
XLabel * | _maxLit |
QRadioButton * | _none |
QRadioButton * | _one |
XComboBox * | _period |
QGroupBox * | _recurring |
QTimeEdit * | _startTime |
QGridLayout * | gridLayout |
QGridLayout * | gridLayout_2 |
typedef | RenderFlags |
QSpacerItem * | verticalSpacer |
Protected Slots | |
virtual void | languageChange () |
Protected Attributes | |
QDateTime | _eot |
int | _id |
int | _parentId |
QString | _parentType |
QDateTime | _prevEndDateTime |
int | _prevFrequency |
int | _prevMax |
int | _prevParentId |
QString | _prevParentType |
RecurrencePeriod | _prevPeriod |
bool | _prevRecurring |
QDateTime | _prevStartDateTime |
QString | _prevStyle |
The RecurrenceWidget gives the user a unified interface for telling the system how often certain events occur.
In general recurrences are stored in the recur table, but this is not required. Two basic values describe a recurrence:
A recurrence with the period set to W (= week) and frequency of 3 will repeat once every three weeks.
In addition, there are three options for how to handle recurrences if a recurrence is missed (this can happen by having the client closed when a scheduled action was supposed to occur, or by having a long-running action fail to finish before another scheduled action is supposed to occur). If a recurrence is missed, upon running the next one will be scheduled for the first time that it would have run that is after the current time (For example, if an event is scheduled to occur every 5 minutes and runs at 4:10 PM, but the application is closed at 4:11 PM and not reopened until 4:53 PM, the next one will be scheduled at 4:55 PM). If there are multiple recurrences scheduled in the series for times that have also past, the three ways to handle them are -Keep None: Delete all of them, and schedule events from using the given interval from the current time -Keep One: Delete all but the most recent, reschedule it for the current time, and schedule the rest from the current time -Keep All: Reschedule all passed events to the current time, and schedule the next one using the interval from the current time
To add a new kind of recurring event or item, you need to change data in the database, stored procedures, triggers, and application code. We'll use Invoice in the examples here, with 'I' as the internal code value, even though invoices already use this mechanism (xTuple ERP 3.5.1 and later).
Add a column to the parent table to track the recurrence parent/child relationship. The column name must follow this pattern: [tablename]_recurring_[tablename]_id , e.g.
invchead_recurring_invchead_id
:
Add a RecurrenceWidget to the .ui for the window that will maintain data of this type (e.g. invoice.ui).
Initialize the widget in the window's constructor:
Update the widget again when the window gets an id for the object. This usually happens in either the set(), save(), or sSave() method for new objects, depending on the class, and in populate() when editing existing objects:
Ask the user how to handle existing recurrences before saving the data and before starting a transaction. getChangePolicy will return RecurrenceWidget::NoPolicy) if the user chooses to cancel. Then when preparing to insert or update the main record, make sure to set the recurrence parentage. Finally, after the insert/update, save the recurrence and check for errors:
To maintain the recurrence relationships, there must be a function that copies an existing record based on its id and gives the copy a different timestamp or date. It must have a function signature like one of these:
The copy function can take additional arguments as well, but they will be ignored by the recurrence maintenance functions. The data type of each argument must be listed in the recurtype table's recurtype_copyargs column (see below) so the appropriate casting can be done for the date or timestamp and an appropriate number of NULL arguments can be passed. The copy function must copy the [tablename]_recurring_[tablename]_id column.
There can be a function to delete records of this type as well. If there is one, it must accept a single integer id of the record to delete.
Add a row to the recurtype table to describe how the recurrence stored procedures interact with the events/items of this type ('I' == Invoice).
If there isn't a delete function, set the recurtype_delfunc to NULL. Existing records will be deleted when necessary with an SQL DELETE statement.
The DELETE trigger on the table should clean up the recurrence information:
|
readwrite |
Return whether the end date field is visible.
|
readwrite |
Return whether the end time field is visible.
|
readwrite |
|
readwrite |
|
readwrite |
|
readwrite |
RecurrenceWidget::RecurrenceWidget | ( | QWidget * | parent = 0 , |
const char * | name = 0 |
||
) |
RecurrenceWidget::~RecurrenceWidget | ( | ) |
|
virtualslot |
Set the RecurrenceWidget to its default state.
|
virtual |
Return the date the recurrence is set to end.
|
virtual |
Return the date and time the recurrence is set to end.
|
virtual |
|
virtual |
Return the time of day the recurrence is set to end.
|
virtual |
|
virtual |
Return the frequency (number of periods) the recurrence is set to run.
|
virtual |
|
virtual |
|
protectedvirtualslot |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
inlineinherited |
|
inlineinherited |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
virtualslot |
|
inlineinherited |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Convert a string representation of the period to a RecurrencePeriod.
This is used to convert between the values stored in the recur table and the enumerated values used internally by the RecurrenceWidget. It also accepts human-readable values, such as "Minutes" and "Hours".
p | The recur_period or human-readable period name to convert. This is case-sensitive. Currently accepted values are m or Minutes, H or Hours, D or Days, W or Weeks, M or Months, Y or Years, C or Custom. If current translation includes the period names, the translations are also accepted. |
|
virtual |
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
protected |
|
inherited |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Generated on Fri Aug 11 2017 | xTuple ERP Programmer Reference, Version 4.11.0 |
![]() |