Logo

ClearLight
Sistema Integrado para la Administracion

Su IP: 18.97.9.170


La Factoria

La factoría es el componente más esencial del modelo de extensibilidad de ClearLight.

Cada script que es llamado desde ClearLight recibe una referencia global a un objeto de la clase CFactoria, con el identificador Factoria. El hecho de que la referencia sea global significa que sus miembros pueden ser referenciados sin calificacion. Es decir, da lo mismo escribir Factoria.ExecuteSQL que ExecuteSQL (a menos que dentro del script exista un miembro con el mismo nombre).

La factoría ofrece funciones de utilidad general y métodos para acceder a los objetos de la aplicación desde el componente externo. El generador de formatos (DocFormatter) y el generador de reportes (RepGenADO) tambien reciben una referencia a la Factoria, y de eso nos ocuparemos más adelante. De momento, describiremos los métodos de la factoría y explicaremos como usarlos.

Codigo fuente completo de CFactoria.cls para el sistema administrativo. (14/07/2016)
Codigo fuente completo de CFactoria.cls para las aplicaciones de punto de ventas. (06/09/2015)

registrarBeneficiario(Nombre)

Las operaciones de salida de dinero piden el nombre de un beneficiario. Esta función le permite a los componentes de extensión registrar los nombres de los beneficiarios de los egresos registrados en ellos. Es más o menos equivalente a ejecutar "SELECT INTO Beneficiarios (Nombre) VALUES (" & StringDB(Nombre) & ")" despues de asegurarnos de que el nombre no exista.
Public Function ListadoCuentaEntidad(ByVal tipoEntidad As String, ByVal codigoEntidad As String)

Inicia la generacion del reporte de Estado de Cuenta Detallado para la entidad (ISPC) especificada en los argumentos. Es útil para las extensiones complejas, que utilicen sus propias implementaciones de las interfaces ISPC/ISDOC.
Public Function GetSetting(Section, Key, default)

Permite acceder a un valor de registro (dentro de la seccion HKCU\Software\VB And VBA Program Settings\<Key>).
Antes de buscar en el registro, ClearLight trata de ubicar el valor requerido en el archivo ClearLight.ini en la carpeta de datos.
Si no se encuentrea el valor, se devuelve el especificado en default.
Public Function CheckForWildcards(codigo, Tabla, nombreCodigo) As String

Determina si el argumento codigo es una "solicitud de proximo correlativo" para la columna <nombreCodigo> de la tabla <Tabla>.
Las solicitudes de proximo correlativo están formadas por un prefijo opcional seguido de tantos signos de interrogación como dígitos se requieran en el nuevo codigo, e.g.: 00?????. El programa va a buscar en la columna <nombreCodigo> de la tabla <Tabla> el mayor valor cuyos primeros n caracteres sean iguales a los n caracteres del prefijo, que estén seguidos por tantos dígitos como signos de interrogación haya en la solicitud, y devolverá el proximo valor numerico correspondiente.
Si <codigo> no es una solicitud de proximo correlativo válida, se devolverá su valor inicial.
Public Function PuedeUsarAlmacen(codigoUsuario As String, codigoAlmacen As String, Optional ByVal warn As Boolean = False) As Boolean

Determina si el usuario cuyo codigo se pasa como primer argumento (codigoUsuario) tiene permisos para operar sobre el almacen indicado por el segundo argumento (codigoAlmacen).

El parámetro opcional warn specifica si el programa debe dar una advertencia en caso de que el usuario no tenga permisos sobre el almacen.
Public Function usrDLL() As CUsrDLL

Devuelve una nueva instancia de la clase CUsrDLL, uilizada dentro de ClearLight como contenedor de las DLL de extensión.
Public Function ultimaAutorizacionPor() As String:

Devuelve el código del supervisor que suministró su clave para la ultima autorización requerida por la aplicacion.

Public Function connString() As String:

Devuelve la cadena de conexión para la base de datos de la empresa activa.

Ejemplo:

   Dim conexionLocal
   Set conexionLocal = CreateObject("ADODB.Connection")
   conexionLocal.Open Factoria.connString

Crea un objeto Connection en el script, y lo abre usando la cadena de conexión de la base de datos abierta en la aplicacion.

 

Public Function ReadScalar(ByVal selectSentence As String, ParamArray args() As Variant) As Variant:

(selectSentence) es una instrucción SELECT en SQL, donde la posición de los parámetros va indicada por un signo de interrogación (?), y los parámetros (representados en la firma mediante el arreglo de parámetros args) van a continuación de la misma.

Ejemplo:

   Dim codCli
   codCli = OwnerObject.CodigoCliente
   saldoCliente = ReadScalar("SELECT SaldoActual FROM Clientes WHERE Codigo = ?", codigoCliente)

OwnerObject, en este ejemplo, podría ser un objeto de la clase clsFacturas. La función ReadScalar devolverá el saldo actual del cliente a quien se emitió la factura.

Public Function ExecuteSQL(ByVal sqlSentence As String, ParamArray args() As Variant) As Long

Ejecuta una "consulta de acción" (DELETE, UPDATE, INSERT, etc) sobre la base de datos abierta por la aplicación. Devuelve la cantidad de registros afectados por la operación.

Ejemplo
:
   Dim laLinea, qRegistros
   laLinea = InputBox("Codigo de la linea a aumentar:", "Aumento de precios")
   qRegistros = ExecuteSQL("UPDATE itemsVenta SET Precio1 = Precio1 * 1.1 WHERE Linea = ?", laLinea)
   MsgBox "Se actualizó el precio de " & qRegistros & " articulos."

Este trozo de código aumenta en 10% el Precio 1 de todos los productos de la linea cuyo código introduzca el usuario.

Public Function OpenRecordset(selectSentence As String, ParamArray args() As Variant)

Devuelve un objeto ADODB.Recordset (un cursor o conjunto de resultados) con los registros que satisfacen la consulta.

Ejemplo
:
   Dim sb, rs, codigoCliente
   ...
   Set rs = OpenRecordset("SELECT Serie, Correlativo, FechaTransaccion, Saldo FROM Facturas " _
                                        "WHERE CodigoCliente = ? AND Saldo > 0 ORDER BY FechaTransaccion, Numero", codigoCliente)
    If Not rs.EOF Then
      sb = "El cliente tiene las siguientes facturas pendientes:"
      Do While Not rs.EOF
         sb = sb & vbCrLf & rs("Serie") & "-" & Format(rs("Correlativo"), "0000000") & " " & _
               Format(rs("FechaTransaccion"), "dd-mm-yyyy") & " " & FormatNumero(rs("Saldo"), "#,##0.00", 12)
         rs.MoveNext
      Loop
      MsgBox sb, vbInformation, "Hay facturas pendientes"
   End If
   rs.Close

Este ejemplo muestra un cuadro de diálogo con la referencia, fecha y monto de todas las facturas pendientes en la cuenta de uncliente cuyo código se encuentra almacenado en la variable codigoCliente.

 

Public Function ensamblarSegmentoSQL(ByVal segmentTemplate As String, Param Array() args As Varint) As String

<segmentTemplate> contiene texto SQL donde elementos variables cuyos valores actuales vienen contenidos en el arreglo <args> están representados por signos de interrogacion.

El valor devuelto es el resultado de reemplazar cada signo de interrogación en segmentTemplate por el valor en el índice correspondiente de args formateado según lo requiere el proveedor de acceso a datos.

Ejemplo:

Dim dt as Date
  dt = #11-29-2010#
  s = ensamblarSegmenteSQL("WHERE Fecha = ?", dt)

s será igual a "WHERE Fecha = '20101129'", si estamos conectados a una BD de SQL Server, o "WHERE Fecha = #11-29-2010#" si la BD fuera de Access.
Public Function PuedeUsarAlmacen(codigoUsuario As String, codigoAlmacen As String, Optional ByVal warn As Boolean = False) As Boolean

Determina si el usuario identificado por codigoUsuario tiene permiso para registrar operaciones contra el almacén identificado por codigoAlmacen. El parámetro opcional Warn indica si se debe mostrar una advertencia al operador en caso de que el permiso sea denegado.
Public Function usrDLL() As CUsrDLL

Devuelve una instancia de CUsrDLL (v. frmdlls.php) para ser usado desde los formularios de DLLs de extensión.
Public Property Let FechaGlobal(ByVal dt As Date)
Public Property Get FechaGlobal() As Date:


Permite especificar la fecha general de operacion cuando se va a ejecutar una transacción que afecte los saldos de cuentas o entidades. Es requerida por los algoritmos heredados del proceso de reconversión monetaria para determinar el tipo de unidad (bolivares viejos/bolivares fuertes) en el que están expresados los valores monetarios.

Ejemplo:
   FechaGlobal = Date()

Asigna la fecha actual a FechaGlobal para forzar la interpretación de los valores monetarios al tipo de unidad corriente (BsF.).

 
Public Function EstaAutorizado(ByVal m As Integer) As Boolean

Devuelve un valor lógico (True/False) indicando si el usuario tiene permiso para ejecutar la operación designada por el argumento (m) Los valores de (m) con su correspondiente descripción pueden consultarse en la tabla "perfilElementos" de la base de datos.

Ejemplo:

Const REGISTRAR_AJUSTES = 31

   If Not EstaAutorizado(REGISTRAR_AJUSTES) Then
      MsgBox "No tiene permisos para ejecutar este script", vbCritical
      Exit Sub
  End If

Si el usuario no tiene permisos para registrar ajustes de inventario se muesta un mensaje de advertencia y termina la ejecución de la función.

 

Public Function Suscriptores() As Collection

Devuelve una colección con los archivos "suscriptores" de las operaciones de exportacion

Ejemplo:

   Dim s
   For Each s In Suscriptores
     Set outDevice = CreateObject("OutDevice.COutDevice")
     outDevice.DeviceName = s
     outDevice.Send datosExportacion()
     outDevice.Cerrar
  Next

(datosExportacion) es una función que genera una cadena con los datos de exportacion de la operación que estamos realizando. El código del ejemplo escribe esa información en cada uno de los suscriptores registrados en ClearLight.

 

Public Sub mAdvertencia(s As String)

Si algun error u otra condición requiere que se de información al usuario, pero la aplicación se encuentra en medio de una transacción de base de datos, los registros modificados están bloqueados, y esperar una rspuesta del usuario puede causar un bloqueo de las operaciones de otros usuarios.

La secuencia de los controladores de ClearLight sigue este esquema:

   On Error GoTo ErrHandler
   SetGlobalLock
   StartTransaction
    {proceso]
   CommitTransaction
ResumePoint:
   FreeGlobalLock
   Exit Sub
ErrHandler:
   ReportarError
   AbortTransaction
   Resume ResumePoint

Todos los mensajes enviados al usuario desde código contenido dentro de un bloque SetGlobalLock/FreeGlobalLock son retenidos por el controlador de la operación y mostrados en una ventana de texto al llamar a FreeGlobalLock.

Como norma general, todos los mensajes de advertencia que se emitan dsde scripts complementarios de un proceso (por ejemplo postFactura.vbs) deben emitirse llamando a mAdvertencia, nunca a MsgBox.

 
Public Function DeterminarFormato(sValueID As String, sOptionsKey As String, sDefVal As String, Optional pOwnerObject As Object = Nothing) As String

Devuelve el nombre del archivo de formato correspondiente al tipo de documento contenido en sValueID.

 

Public Sub ReportarError(isFatal As Boolean, numError As Long, sDescripcion As String, stLocus As String)

Reporta un error al usuario, siguiendo los mismos principios ya descritos para mAdvertencia

 

Public Function SetGlobalLock(Optional s As String = "") As Boolean
Public Sub FreeGlobalLock()
Public Function StartTransaction() As Boolean
Public Function CommitTransaction() As Boolean
Public Function AbortTransaction() As Boolean

Estos procedimientos le permiten al componente externo controlar el "bloqueo global". Se usa para implementar controladores de operación desde un componente externo (lo más probable es que sean usados desde una DLL de extensión).

Ejemplo:

Factoria.SetGlobalLock
Factoria.StartTransaction

On Error GoTo ErrHandler

   pHabitacion.Ocupar sHabitacionSeleccionada, sClientePrincipal, txCodigoCliente.Text, dtFechaSalida, vmValorNoche, _
      numLimiteCredito, IIf(numLimiteCredito.Value > 0, 1, 0), cbxTarifa, numPAX, _
      numPrecioHabitacion / (1 + ImpuestosTotales / 100), _
      numPrecioCamaAdicional / (1 + ImpuestosTotales / 100), numCamasAdicionales, Date

   Dim pReserva As New Reserva
   If pReserva.Load(ctlLocalizador.Text) Then _
      pReserva.RegistrarLlegada pHabitacion.TipoHabitacion

   nCuenta = pHabitacion.cuenta

   If numMontoDeposito.Value <> 0 Or optEfectivo.Value = False Then
      Dim pDeposito As CDeposito
      Set pDeposito = New CDeposito
      pDeposito.RegistrarDeposito txCodigoCliente.Text, sHabitacionSeleccionada, pHabitacion.cuenta, _
         numMontoDeposito.Value, TipoValor, cbxEmisor.Text, txCodigoCuentaBanco.Text, txRefDocumento.Text, _
         txClaveConformacion.Text
   End If
   Dim pHuesped As Huesped, OcupHuesped As New OcupacionHuesped
   Set pHuesped = New Huesped
   With flxDetalles
      For i = 1 To .Rows - 1
         If Not pHuesped.Find(.TextMatrix(i, 0)) Then pHuesped.id = 0
         pHuesped.IdPersonal = .TextMatrix(i, 0)
         pHuesped.Nombre = .TextMatrix(i, 1)
         pHuesped.Update pHuesped.id, pHuesped.IdPersonal, pHuesped.Nombre
         OcupHuesped.RegistrarEntrada pHuesped.id, pHabitacion.idHabitacion, Date, pHabitacion.cuenta
      Next
   End With

   usrDLL.usrEvent Me, pHabitacion, "ocupandoHabitacion"
   Factoria.CommitTransaction
   usrDLL.usrEvent Me, pHabitacion, "habitacionOcupada"

   Set pHabitacion = Nothing
   ReinitForm

ResumePoint:
   Factoria.FreeGlobalLock
   Exit Sub

ErrHandler:
   Dim sErrD As String, nErrN As Long
   sErrD = Err.Description: nErrN = Err.Number
   Factoria.AbortTransaction
   Err.Clear
   ReportarError False, nErrN, sErrD, "frmCheckIn::cbAceptar_Click"
   Resume ResumePoint

Este código está tomado del subsistema de gestión de Hoteles (actualmente en desarrollo), e ilustra el uso del control de operaciones y transacciones mediante la factoria.

 

Public Function FechaDB(Fecha) As String
Public Function TimeDateDB(Fecha) As String
Public Function StringDB(starg) As String
Public Function NumeroDB(dblArg) As String

Estas funciones devuelven una cadena que contiene el valor del argumento en el formato requerido para ser usado en una sentencia SQL válida para la BBDD en uso.

Ejemplo:

Dim s, fi, ff
  s = "SELECT * FROM Facturas WHERE FechaTransaccion BETWEEN " & FechaDB(fi) & " AND " & FechaDB(ff)

La necesidad de estas funciones se ha reducido con la incorporación de los metodos ReadScalar, ExecuteSQL y OpenRecordset, y se preservan para mantener la compatibilidad con scripts más antiguos.

 

Public Function AppExeName() As String

Devuelve el nombre del programa en ejecución. Algunos scripts (particularmente posExt.vbs) son usados por el sistema administrativo y por los puntos de venta indistintamente.

Supongamos que estamos automatizando un pequeño mercado que tiene un área de cafetería. Los productos vendidos en esta área tienen un precio un 5% superior al que tienen cuando son presentados en la caja de salida. Para las cajas de salida se usa el punto de ventas extendido (clrCaja11.exe), pero para la cafetería se usa el punto de ventas de restaurantes (clrCaja4).

Como posExt.vbs contiene una gran cantidad de funcionalidad común, no es práctico colocarlo en la carpeta de programas de la caja de la cafetería. Por eso (y porque normalmente es la mejor opción), se decidió mantener un solo posExt.vbs en la carpeta general de datos.

La situación podría manejarse tambien configurando el registro de la cafetería para que trabaje con el precio 2, que será equivalente al precio1 más el 5%. Pero ello requiere que los administradores del negocio actualicen dos precios en vez de uno.

Las aplicaciones de punto de ventas llaman a la funcion CalcularPrecio para que calcule los precios de venta de cada producto que se pasa a la factura.

Entonces podríamos implementar la solcuión siguiente:

Ejemplo:

Public Function CalcularPrecio()
Dim d
   d = Precio
   If AppExeName = "clrCaja4.exe" Then d = d * 1.05
   CalcularPrecio = d
End Function

 

Public Function AppPath() As String

Devuelve la carpeta donde está contenido el programa en ejecución.

 

Public Function DataPath() As String

Devuelve la direccion de la carpeta de datos de la empresa activa.

 

Public Function DoIncluirIVA() As Boolean

Indica si los precios de venta deben mostrarse con el IVA incluído. Está determinado por el valor de la variable de registro IVAEdit

 

Public Function Format(ByVal arg As Variant, ByVal Formato As Variant) As Variant

Implementa la funcion Format tal como está definida en Visual Basic para permitir su uso desde los scripts. Consulte la ayuda de VB5/6 para más detalles.

 

Public Function VerificarUsuario(stArgCaption As String) As Integer

Abre una ventana de solicitud de clave de usuario con el contenido de (stArgCaption) en su barra de título. Devuelve el Nivel del usuario cuya clave se suministró, o cero (0) si no se introdujo ninguna clave.

Ejemplo:

   If VerificarUsuario("Ejecutar recalculo general de precios") < 5 Then
      mAdvertencia "Operación cancelada"
      Exit Sub
  End If

El bloque anterior condiciona la ejecución del resto del procedimiento a que el usuario suministre una clave de nivel 5. Es una manera de implementar seguridad adicional a nivel de scripts.

 

Public Function NewForm2(sFormName As String) As Object

Crea un formulario de la clase especificada en (sFormName), lo agrega a la colección de formularios de la aplicación y devuelve una referencia al mismo. Puede usarse para activar formularios estandar de ClearLight desde componentes de extensión.

Ejemplo:

   Const LIMITE_GENERAL = 2500

   If elCliente.SaldoActual > LIMITE_GENERAL Then
      Dim f
      Set f = NewForm2("frmCobroCuenta")
      f.SetCliente CStr(elCliente.Codigo)
      f.Show 1
   End If
   elCliente.Refresh
   If elCliente.SaldoActual > LIMITE_GENERAL Then
      mAdvertencia "No es posible otorgar descuentos al cliente"
      Exit Sub
   End If

(elCliente) es una instanca de clsClientes que fue creado en algún momento anterior. Si su saldo es mayor para el momento de ejecutar este trozo de código, se abrirá automáticamente una forma de cobranzas con los datos del ciente ya cargados. La ejecución de script se detendrá hasta que la forma se cierre (eso es lo que significa el 1 despues de Show). Es probable que durante este intervalo aparezcan algunos mensajes indicando que "el script está tomando demasiado tiempo de ejecución", a los que el usuario deberá responder indicando que desea seguir ejecutando el script. Al cerrarse el formulario, se recarga el regfistro del cliente (Refresh) y se determina si su saldo sigue siendo mayor que el limite general. De ser así, se interrumpe la ejecución del procedimiento.

 

Public Sub SubmitDoc(pDoc As Object, Optional TipoE As String = "")

La impresión de los diferentes documentos generados por cada operacióon no se realiza inmediatamente, sino que se le entrega al controlador de transacciones (al que se hizo referencia en la descripcion de SetGlobalLock, StarTransaction, etc. más arriba) para que la ejecute una vez que todos los bloqueos hayan sido levantados. (pDoc) es una referencia a un objeto que implemente el metodo ViewPrint(autoPrint As Boolean). Si (pDoc) expone la propiedad TipoEntidad, no es necesario pasar un valor en TipoE. De lo contrario se deberá especificar unq cadena de tres caracteres reconocible por la función GetDocumento(tipo) en posExt.vbs, que es la responsable de obtener los documentos agregados por componentes de extensibilidad.

Ejemplo:

Private Sub ProcesarEntrega()
Dim laEntrega As EntregaClientePOS

   On Error GoTo ErrHandler
   laFactoria.SetGlobalLock "EntregasCliente"
   laFactoria.StartTransaction
   Set laEntrega = New EntregaClientePOS
   laEntrega.Save ctlCodigoCliente.Text, laSesion.MachineID, Date, sExtractRightCode(cbxCondiciones.Text), _     
      ctlTotalGeneral.Value, laSesion.SessionID
   Dim elDocumento
   Set elDocumento = laFactoria.CrearObjeto("DocumentoISPC")
   elDocumento.CreateNewDoc elCliente.TipoEntidad, _
      elCliente.Codigo, _
      laEntrega.Numero, _
      laEntrega.TipoEntidad, _
      laEntrega.Fecha, _
      Me.ctlTotalGeneral.Value, _
      "Entrega a credito No. " & laEntrega.Numero & ". Caja " & laSesion.MachineID, _
      Nothing
   elDocumento.AplicarCondicion laEntrega.Condiciones
   Dim lasSesiones
   Set lasSesiones = laFactoria.CrearObjeto("SESIONES")
   lasSesiones.DescargarInventario laSesion
   laSesion.ClearAll
   laFactoria.CommitTransaction
   laFactoria.SubmitDoc laEntrega
   laForma.bIsDirty = True
   laForma.updateDetalles
' si es clrCaja4
   If laForma.Name = "frmPasarConsumo" Then laForma.SetCerrarFacturar
   Hide
   Unload Me
ResumePoint:
   laFactoria.FreeGlobalLock
   Exit Sub

ErrHandler:
Dim sErrD As String, nErrN As Long
   sErrD = Err.Description: nErrN = Err.Number
   Err.Clear
   laFactoria.AbortTransaction
   laFactoria.ReportarError False, nErrN, sErrD, "frmEntregaCliente::cbAceptar_Click"
   Resume ResumePoint
End Sub

Esta función, extraida de una DLL que permite el registro de entregas a clientes desde las operaciones de punto de ventas, las carga como documentos en la cuenta del cliente y emite la factura al momento en que son canceladas, ilustra el uso del método SubmitDoc.

 

Public Function NewForm(sFormName) As CFormEnvelope

Esta función es similar a NewForm2, con la diferencia de que en lugar de devolver una referencia directa al formulario la devuelve a una instancia de CFormEnvelope, que permite el acceso al formulario original mediante la propiedad Form. En algunos casos sin un patrón claramente discernible, el paso directo de formularios a los componentes externos causa problemas, mientras que pasarlos dentro de un envoltorio funciona correctamente.

 

Public Function Forms()

Devuelve una referencia a la coleccion Forms de VB6, que contiene referencias a cada una de las formas activas en la aplicacion.

Ejemplo:

   Dim f, s
   s = "Estas son las formas activas:"
   For Each f In Factoria.Forms
      s = s & vbCrLf & f.Name
   Next
   MsgBox s, vbInformation, "Formularios activos"

Muestra un cuadro de mensaje con una lista de todos los formularios activos en ClearLight.

 

Public Function FormByName(sFormName) As Form

Devuelve una referencia a una forma activa a partir del tipo. NewForm y NewForm2 crean una nueva forma, mientras que FormByName busca una forma del tipo especificado por (sFormName) entre las formas abiertas.

Si hay más de una forma del mismo tipo, FormByName devolverá una referencia a la más antigua. Si se quiere buscar una forma específica de un tipo, se deberá recorrer la colección Forms hasta ubicar la forma requerida.

Ejemplo:

   esCredito = Factoria.FormByName("frmPOS").cbxCondicion.Text <> "CONTADO"

Este trozo de código (extraido de un FactPosImprimir.vbs) determina si la factura es a credito, examinando el valor del control cbxCondicion de la forma frmPOS.
 

Public Function NumeroProximoDocumento(TipoEntidad, doIncrement) As Long

Llama al objeto Contadores de la aplicación para determinar el número del próximo documento del tipo especificado en (TipoEntidad).  (doIncrement) indica si se debe incrementar el número del próximo documento. Se usa para implementar el proceso de documentos intrinsecos de ClearLight desde contextos de operacion definidos por componentes externos.

 

Public Function UltimaAutorizacionPor() As String

Devuelve el código de usuario cuya clave se suministró para la última autorización otorgada dentro del sistema. Permite a los componentes de extensión registrar o validar el usuario que autorizó una determinada operación.
Public Function CrearObjeto(istrCodigoClase) As Object

Este es el método fundamental de la factoria. Devuelve un objeto de la aplicación en función del valor contenido en istrCodigoClase, según la siguiente tabla (el valor de istrCodigoClase no es sensible a la difrencia entre mayusculas y minúsculas):

istrCodigoClase Tipo (clase) del objeto devuelto Observaciones
Almacen clsAlmacen instancias globales
Almacenes clsAlmacenes
AlmacenBancos clsAlmacenBancos
AlmacenItemsVenta clsAlmacenItemsVenta
AlmacenItemsInventario clsAlmacenItemsInventario
AlmacenClientes clsAlmacenClientes
AlmacenProveedores clsAlmacenProveedores
AlmacenCuentas clsAlmacenCuentas
AlmacenVendedores clsAlmacenVendedores
AlmacenDetallesItemVenta clsAlmacenDetallesItemVenta
Alternos clsAlmacenAlternos
App Application variable global App de VB6
Atributos clsAtributoEntidad  
Banco clsBancos
BComprobante clsBufferComprobante
CierreFactPOS CCierreFactPos
Cliente clsClientes
ClientePOS clsClientes
Coleccion Collection Un objeto del tipo Collection de VB6
Combo clsComboWith Extensión para el diseño de GUI
Comprobante clsComprobante  
ComprobanteAlmacen clsComprobanteAlmacen
Condiciones clsCondiciones instancia global
Contacto clsContactos  
Cuenta clsCuentas
CuentaPOS clsCuentaPOS
Database ADODB.Connection instancia global.
OJO: No se debe ejecutar el metodo Close de este objeto, nunca.
DetalleCE clsDetalleCuentaEntidad  
DetalleFactura clsDetallesFactura
DetalleCaja CDetalleIngreso
DevolucionVenta clsDevolucionVenta
DocumentoISPC clsDocumentoISPC
Empresa clsParametrosEmpresa instancia global
Factura clsFacturas  
FacturaPOS clsFacturasPOS
Instanciador clsInstanciadorEntidad
ItemInventario clsItemInventario
ItemVenta clsItemVenta
LinePrinter CLinePrinter (obsoleta)
MovimientoBanco clsMovimientoBanco  
;ovimientoCaja CMovimientoCaja
NotaEntrega clsNNEE
SuplementoNotaEntrega clsNNEESuplemento
NotaDCPP / NotaDCCP clsNotasDCCP
Printer Printer Object el objeto Printer de VB activo dentro de la aplicacion
Printers Collection la colección Printers de VB6
ProcesadorFactuiras CProcesadorFacturas  
ProcesadorCompras CProcesadorCompras
Proveedor clsProveedor
Sesion clsSesionPOS SesionActiva: instancia global
NuevaSesion clsSesionPOS  
TiposImpuesto clsTiposImpuesto instancia global
Usuario clsUsuario instancia global
VSLIB VSLIB.VSLRTLIB (obsoleta)
Vendedor clsVendedor  
   
Las entidades siguientes no estan disponibles para las aplicaciones de punto de ventas
Ajuste clsAjuste  
tempAjuste CAjusteTemporal
Cotizacion clsCotizacion
DevolucionCompra clsDevolucionCompra
OrdenCompra clsOrdenesCompra
ProcesadorOrden clsProcesadorOrden
ProcesarConteo CProcesarConteo
SerialesDetalle CSerialesRenglon
posExt / Script Microsoft Scripting Control Una instancia de MS Script Control cargada con el script posExt.vbs y condicionada al contexto definido por la aplicación.
SerialesDocumento CSerialesDocumento  
ServDocFis CServDocFis
ServiciosCaja CServiciosCaja instancia global
IngresoCaja CIngresoCaja  
DetalleIngreso CDetalleIngreso
DocFis CDocumentoFiscal
ProcesadorCobranza CProcesadorCobranza
ReciboMercancia clsReciboMercancia
Series clsSeries instancia global
Transferencia clsTransferencia  
CotsPP clsAlmacenCotsPP
RenglonSesion clsRenglonSesion

Para obtener información acerca de cada una de las clases a las que se puede acceder mediante la factoria, consulte el programa Documentador. Los nombres de los métodos y propiedades de cada clase son bastante descriptivos.

Las valores calificados con la observación "instancia global" son objetos implementados en variables globales de la aplicación cuyo "ciclo de vida" debe estar determinado por la aplicación. No se debe intentar su destrucción ni llamar a ninguno de los métodos de limpieza que puedan contener. Tampoco se deben asignar valores a ninguna de sus propiedades públicas, a menos que exista una razón válida para ello y que se sepa lo que se está haciendo.

 

La factoría es revisada y ampliada continuamente. Cada vez que una nueva extensión requiere acceso a un objeto no publicado se agrega; cada vez que echamos de menos algun servicio durante el desarrollo de un script o DLL se implementa.

El Documentador puede descargarse aquí (Documentador.zip), y la versión más reciente de la base de datos (que debe estar en la misma carpeta que el programa) puede descargarse aquí (vbPrjDoc.zip).