Logo Search packages:      
Sourcecode: facturalux version File versions  Download package

void FLSqlCursor::openFormInMode ( int  m,
bool  cont = true 
)

Abre el formulario asociado a la tabla origen en el modo indicado.

Parameters:
m Modo de apertura (FLSqlCursor::Mode)
cont Indica que se abra el formulario de edición de registros con el botón de aceptar y continuar

Definition at line 696 of file FLSqlCursor.cpp.

References FLManager::action(), action_, buffer_, commitBuffer(), DEL, FLInterface::getReceiver(), INSERT, metadata(), metadata_, modeAccess_, FLTableMetaData::name(), FLTableMetaData::pathFormRecord(), FLAction::process(), refreshBuffer(), and updateBufferCopy().

Referenced by browseRecord(), deleteRecord(), editRecord(), and insertRecord().

{
  if (!metadata_)
      return;

  if ((!isValid () || size () <= 0) && m != INSERT)
      {
        QMessageBox::warning (qApp->mainWidget (), tr ("Aviso"), tr ("No hay ningún registro seleccionado"), QMessageBox::Ok, 0, 0);

        return;
      }

  if (m == DEL)
      {
        int res = QMessageBox::information (qApp->mainWidget (),
                                                              tr ("Borrar registro"),
                                                              tr ("El registro activo será borrado. ¿ Está seguro ?"),
                                                              QMessageBox::Yes,
                                                              QMessageBox::No | QMessageBox::Default | QMessageBox::Escape);

        if (res == QMessageBox::No)
            return;

        modeAccess_ = DEL;
        refreshBuffer ();
        commitBuffer ();

        return;
      }

  QApplication::setOverrideCursor (Qt::WaitCursor);
  QString pathFormRecord = metadata ()->pathFormRecord ();

  if (pathFormRecord.isEmpty ())
      {
        QMessageBox::warning (qApp->mainWidget (), tr ("Aviso"),
                                          tr ("No hay definido ningún formulario para manejar ") + tr ("registros de esta tabla"), QMessageBox::Ok, 0, 0);
        QApplication::restoreOverrideCursor ();

        return;
      }

  modeAccess_ = m;
  if (buffer_)
      buffer_->clearValues (true);

  QWidget *w;
  FLReceiver *r = 0;
  if (!action_)
      action_ = FLManager::action (metadata_->name ());

  r = FLInterface::getReceiver (action_->process ());
  FLFormRecordDB *f = new FLFormRecordDB (this, qApp->mainWidget (), r,cont);

  if (r)
      w = QWidgetFactory::create (pathFormRecord, r, f);
  else
      w = QWidgetFactory::create (pathFormRecord, f, f);

  if (!w)
      {
        qWarning (tr ("FLSqlCursor : Ruta del formulario de edición '") +
                        pathFormRecord + tr ("' errónea. Ejecute 'make install' despues de compilar la aplicación."));
        QApplication::restoreOverrideCursor ();
        return;
      }
  
  f->setMainWidget (w);
  f->setFocus ();
  refreshBuffer ();
  f->show ();
  QApplication::restoreOverrideCursor ();
  updateBufferCopy();
}


Generated by  Doxygen 1.6.0   Back to index