Есть такой класс объекта...
Раскрывающийся текст
class fpForma : public QDialog
{
Q_OBJECT
public:
fpForma(int id, MainWindow *parent = 0, Qt::WindowFlags f = 0);
~fpForma();
bool initForm(int Cmd = 0);
public slots:
void save();
void submit();
private:
QSqlTableModel *model;
QTableView *view;
QModelIndex curIndex;
QSqlRecord curRecord;
};
И его класс модели, почти стандартный ...
Раскрывающийся текст
class fpTableModel : public QSqlTableModel
{
public:
fpTableModel(QObject * parent = 0, QSqlDatabase db = QSqlDatabase());
~fpTableModel();
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
void setTable ( const QString & tableName );
int columnCount(const QModelIndex &parent = QModelIndex()) const;
void setDefFields(QStringList & df);
private:
int colsInList, colsInForm;
QStringList DefFields;
};
Таблица, обслуживаемая этим объектом имеет примерно такую структуру
Код char(6)
Наименование char(32)
КодШК char(16) <-- Штрих-Код
Остаток int
Цена double
Выглядит это примерно как на картинке в прицепе ...
В скрипте загружаем и инициализируем драйвер сканера ШК
function frm579Create()
{
nstr = kodc = 0;
if (this["bcs0018"] == undefined)
scanerStatus = mw.loadExtension("bcs0018")
if (scanerStatus == 0)
{
scanerStatus = bcs0018.start();
bcs0018.BarCodeReady.connect(this, this.frm579bcs);
}
}
Функцмя скрипта на которую прицеплен сканер ШК
function frm579bcs(skod)
{
// debugger
bcs = skod;
stablo.text = skod;
}
Код со сканера в ф-цию приходит ! Код ШК является невидимой колонкой !
Сам объект fpForma в скрипте виден как frm579 ...
И вотЪ теперь вопрос, - как в объекте fpForma организовать поиск и позиционирование на нужную строку ?
Ведь доступа к модели из скрипта у меня нет ?! :-(
Заранее благодарен за помощь !!!