Controles ERP / Negocios NUEVO
La pestania ERP / Negocios proporciona componentes de nivel empresarial para construir aplicaciones de contabilidad, facturacion, informes y automatizacion de negocios. Estos componentes no visuales manejan generacion de documentos, procesamiento de datos, auditoria y programacion.
TPreprocessor CT_PREPROCESSOR = 90
Motor preprocesador de codigo fuente. Procesa directivas #define, #include, #ifdef y reglas de traduccion personalizadas antes de la compilacion.
| Propiedad | Tipo | Valor predet. | Descripcion |
cSource | String | "" | Codigo fuente a preprocesar |
cOutput | String | "" | Salida preprocesada (solo lectura) |
aDefines | Array | {} | Simbolos #define activos |
aIncludePaths | Array | {} | Rutas de busqueda para archivos #include |
lStrictMode | Logico | .F. | Error en simbolos no definidos |
| Evento | Categoria | Descripcion |
OnProcess | Accion | Preprocesamiento completado |
OnError | Error | Error de preprocesamiento encontrado |
OnInclude | Accion | Archivo include resuelto |
TScriptEngine CT_SCRIPTENGINE = 91
Interprete de scripts en tiempo de ejecucion. Ejecuta codigo Harbour/xBase en tiempo de ejecucion para reglas de negocio dinamicas, formulas y calculos definidos por el usuario.
| Propiedad | Tipo | Valor predet. | Descripcion |
cScript | String | "" | Codigo fuente del script |
xResult | Any | NIL | Ultimo resultado de ejecucion |
lSandboxed | Logico | .T. | Restringir acceso a archivos/red |
nTimeout | Numerico | 5000 | Tiempo maximo de ejecucion (ms) |
hVariables | Hash | {=>} | Variables disponibles para el script |
| Evento | Categoria | Descripcion |
OnExecute | Accion | Ejecucion del script completada |
OnError | Error | Error en tiempo de ejecucion del script |
OnOutput | Accion | Salida producida por el script (ej. comando ?) |
TReportDesigner CT_REPORTDESIGNER = 92
Motor de diseno de informes visual. Define bandas (encabezado, detalle, pie, grupo), campos, etiquetas e imagenes para informes imprimibles.
| Propiedad | Tipo | Valor predet. | Descripcion |
cReportFile | String | "" | Ruta al archivo de definicion de informe (.hbr) |
cTitle | String | "" | Titulo del informe |
nPageWidth | Numerico | 210 | Ancho de pagina en mm (predeterminado A4) |
nPageHeight | Numerico | 297 | Alto de pagina en mm |
nOrientation | Numerico | 0 | 0=Vertical, 1=Horizontal |
oDataSource | Object | NIL | Fuente de datos (tabla, consulta, arreglo) |
| Evento | Categoria | Descripcion |
OnBeforePrint | Accion | Antes de que comience la generacion del informe |
OnAfterPrint | Accion | Despues de que se completa la generacion del informe |
OnNewPage | Accion | Nueva pagina iniciada |
OnGroupChange | Accion | Ruptura de grupo ocurrida |
TBarcode CT_BARCODE = 93
Generador de codigos de barras que soporta formatos 1D y 2D. Renderiza codigos de barras como imagenes para visualizacion, impresion o exportacion.
| Propiedad | Tipo | Valor predet. | Descripcion |
cData | String | "" | Datos a codificar |
nFormat | Numerico | 0 | 0=Code128, 1=Code39, 2=EAN13, 3=QRCode, 4=DataMatrix, 5=PDF417 |
nWidth | Numerico | 200 | Ancho de salida en pixeles |
nHeight | Numerico | 80 | Alto de salida en pixeles |
lShowText | Logico | .T. | Mostrar texto legible debajo del codigo de barras |
nErrorLevel | Numerico | 2 | Nivel de correccion de errores QR (0=L, 1=M, 2=Q, 3=H) |
| Evento | Categoria | Descripcion |
OnGenerate | Accion | Imagen de codigo de barras generada |
OnError | Error | Datos invalidos para el formato elegido |
TPDFGenerator CT_PDFGENERATOR = 94
Generador de documentos PDF. Crea archivos PDF de multiples paginas con texto, imagenes, tablas, codigos de barras y graficos vectoriales.
| Propiedad | Tipo | Valor predet. | Descripcion |
cFileName | String | "" | Ruta del archivo PDF de salida |
cTitle | String | "" | Titulo del documento (metadatos) |
cAuthor | String | "" | Autor del documento (metadatos) |
nPageWidth | Numerico | 595 | Ancho de pagina en puntos (A4) |
nPageHeight | Numerico | 842 | Alto de pagina en puntos (A4) |
nMargin | Numerico | 36 | Margenes de pagina en puntos |
lCompressed | Logico | .T. | Habilitar compresion de flujos |
| Evento | Categoria | Descripcion |
OnNewPage | Accion | Nueva pagina creada |
OnComplete | Accion | Generacion de PDF completada |
OnError | Error | Error durante la generacion de PDF |
TExcelExport CT_EXCELEXPORT = 95
Exportador de hojas de calculo Excel. Genera archivos .xlsx con formato, formulas y multiples hojas.
| Propiedad | Tipo | Valor predet. | Descripcion |
cFileName | String | "" | Ruta del archivo .xlsx de salida |
cSheetName | String | "Hoja1" | Nombre de la hoja activa |
nSheetCount | Numerico | 1 | Numero de hojas (solo lectura) |
lAutoFit | Logico | .T. | Ajuste automatico del ancho de columnas |
lHeaderBold | Logico | .T. | Formato de encabezado en negrita |
| Evento | Categoria | Descripcion |
OnExport | Accion | Exportacion completada |
OnProgress | Accion | Actualizacion de progreso de exportacion (nRow, nTotal) |
OnError | Error | Error durante la exportacion |
TAuditLog CT_AUDITLOG = 96
Componente de pista de auditoria. Registra automaticamente acciones de usuario, cambios de datos y eventos del sistema con marcas de tiempo.
| Propiedad | Tipo | Valor predet. | Descripcion |
cLogTable | String | "audit_log" | Tabla de base de datos para almacenar registros |
cUserField | String | "user_id" | Nombre del campo para el usuario actual |
lLogReads | Logico | .F. | Registrar operaciones de lectura (no solo escrituras) |
lLogTimestamp | Logico | .T. | Incluir marca de tiempo en las entradas de registro |
aTrackedTables | Array | {} | Tablas a monitorear para cambios |
| Evento | Categoria | Descripcion |
OnLogEntry | Accion | Nueva entrada de auditoria registrada |
OnAlert | Accion | Actividad sospechosa detectada |
TPermissions CT_PERMISSIONS = 97
Gestor de control de acceso basado en roles. Define usuarios, roles y permisos para funciones y datos de la aplicacion.
| Propiedad | Tipo | Valor predet. | Descripcion |
cCurrentUser | String | "" | Usuario autenticado actualmente |
cCurrentRole | String | "" | Rol del usuario actual |
aRoles | Array | {} | Roles definidos |
hPermissions | Hash | {=>} | Mapeo de rol a permisos |
cPermTable | String | "permissions" | Tabla de base de datos de permisos |
| Evento | Categoria | Descripcion |
OnLogin | Accion | Usuario autenticado |
OnDenied | Accion | Permiso denegado para accion |
OnRoleChange | Accion | Rol del usuario cambiado |
TCurrency CT_CURRENCY = 98
Gestor de multiples monedas. Administra tipos de cambio, conversion de monedas y formateo consciente de la configuracion regional.
| Propiedad | Tipo | Valor predet. | Descripcion |
cBaseCurrency | String | "USD" | Codigo de moneda base (ISO 4217) |
nAmount | Numerico | 0.00 | Monto actual en moneda base |
hRates | Hash | {=>} | Hash de tipos de cambio (codigo => tasa) |
nDecimals | Numerico | 2 | Precision decimal |
lAutoUpdate | Logico | .F. | Obtener tasas automaticamente desde API en linea |
| Evento | Categoria | Descripcion |
OnConvert | Accion | Conversion de moneda realizada |
OnRatesUpdated | Accion | Tipos de cambio actualizados |
TTaxEngine CT_TAXENGINE = 99
Motor de calculo de impuestos. Maneja IVA, impuesto sobre ventas, retenciones y reglas fiscales de multiples jurisdicciones.
| Propiedad | Tipo | Valor predet. | Descripcion |
nBaseAmount | Numerico | 0.00 | Monto antes de impuestos |
nTaxRate | Numerico | 0.00 | Tasa impositiva (porcentaje) |
nTaxAmount | Numerico | 0.00 | Impuesto calculado (solo lectura) |
nTotalAmount | Numerico | 0.00 | Monto + impuesto (solo lectura) |
cJurisdiction | String | "" | Codigo de jurisdiccion fiscal |
lInclusive | Logico | .F. | Precios con impuestos incluidos |
aTaxRules | Array | {} | Reglas fiscales personalizadas por categoria |
| Evento | Categoria | Descripcion |
OnCalculate | Accion | Calculo de impuestos completado |
OnRuleApplied | Accion | Regla fiscal especifica aplicada |
TDashboard CT_DASHBOARD = 100
Contenedor de panel de control empresarial. Aloja widgets (graficos, KPIs, indicadores, tablas) en un diseno de cuadricula configurable para vistas ejecutivas.
| Propiedad | Tipo | Valor predet. | Descripcion |
nColumns | Numerico | 3 | Cantidad de columnas de la cuadricula |
nRows | Numerico | 2 | Cantidad de filas de la cuadricula |
nRefreshInterval | Numerico | 60000 | Intervalo de actualizacion automatica (ms) |
lAutoRefresh | Logico | .T. | Habilitar actualizacion automatica de datos |
cTheme | String | "dark" | Tema visual (oscuro, claro, corporativo) |
aWidgets | Array | {} | Definiciones de widgets del panel |
| Evento | Categoria | Descripcion |
OnRefresh | Accion | Datos del panel actualizados |
OnWidgetClick | Accion | Usuario hizo clic en un widget del panel |
OnDrillDown | Accion | Usuario profundizo en el detalle del widget |
TScheduler CT_SCHEDULER = 101
Programador de tareas para gestion de trabajos en segundo plano. Soporta programacion tipo cron, tareas unicas y trabajos recurrentes.
| Propiedad | Tipo | Valor predet. | Descripcion |
aJobs | Array | {} | Trabajos programados registrados |
lRunning | Logico | .F. | El programador esta activo (solo lectura) |
nMaxConcurrent | Numerico | 4 | Maximo de trabajos concurrentes |
cLogFile | String | "" | Archivo de registro de ejecucion de trabajos |
lPersistent | Logico | .T. | Persistir programacion entre reinicios |
| Evento | Categoria | Descripcion |
OnJobStart | Accion | Trabajo programado iniciado |
OnJobComplete | Accion | Trabajo completado exitosamente |
OnJobError | Error | Trabajo fallo con error |
OnScheduleChange | Accion | Programacion modificada |
Ejemplo de Codigo: Codigo de Barras + Exportacion PDF
Este ejemplo demuestra la generacion de codigos de barras de productos y su exportacion a un catalogo PDF.
// Generar codigos de barras y exportar a PDF
FUNCTION ExportProductCatalog()
LOCAL oBarcode, oPdf, cFile, nRow
// Crear generador de codigos de barras
oBarcode := TBarcode():New()
oBarcode:nFormat := 0 // Code128
oBarcode:nWidth := 250
oBarcode:nHeight := 60
oBarcode:lShowText := .T.
// Crear documento PDF
oPdf := TPDFGenerator():New()
oPdf:cFileName := "catalogo.pdf"
oPdf:cTitle := "Catalogo de Productos"
oPdf:cAuthor := "HarbourBuilder ERP"
oPdf:NewPage()
// Encabezado
oPdf:SetFont( "Helvetica", 18, .T. )
oPdf:DrawText( 36, 780, "Catalogo de Codigos de Barras" )
oPdf:DrawLine( 36, 775, 559, 775 )
// Generar codigos de barras para cada producto
nRow := 720
Products->GoTop()
DO WHILE ! Products->Eof()
// Generar imagen de codigo de barras
oBarcode:cData := Products->SKU
cFile := oBarcode:Generate()
// Dibujar info del producto + codigo de barras en PDF
oPdf:SetFont( "Helvetica", 12, .F. )
oPdf:DrawText( 36, nRow, Products->Name )
oPdf:DrawText( 36, nRow - 15, "SKU: " + Products->SKU )
oPdf:DrawImage( 300, nRow - 50, 250, 60, cFile )
nRow -= 90
IF nRow < 100
oPdf:NewPage()
nRow := 780
ENDIF
Products->Skip()
ENDDO
oPdf:Save()
MsgInfo( "Catalogo exportado a catalogo.pdf" )
RETURN NIL
12 Controles ERP / Negocios
Estos componentes empresariales aceleran el desarrollo de aplicaciones de negocios. Desde generacion de codigos de barras y exportacion PDF hasta registro de auditoria y permisos basados en roles, proporcionan los bloques de construccion para sistemas ERP, contabilidad y gestion empresarial completos.