Controles ERP / Negocios NOVO
A aba ERP / Negocios fornece componentes de nivel empresarial para criar aplicacoes de contabilidade, faturamento, relatorios e automacao de negocios. Estes componentes nao visuais lidam com geracao de documentos, processamento de dados, auditoria e agendamento.
TPreprocessor CT_PREPROCESSOR = 90
Motor de pre-processamento de codigo fonte. Processa diretrizes #define, #include, #ifdef e regras de traducao personalizadas antes da compilacao.
| Propriedade | Tipo | Padrao | Descricao |
cSource | String | "" | Codigo fonte para pre-processar |
cOutput | String | "" | Saida pre-processada (somente leitura) |
aDefines | Array | {} | Simbolos #define ativos |
aIncludePaths | Array | {} | Caminhos de busca para arquivos #include |
lStrictMode | Logico | .F. | Erro em simbolos nao definidos |
| Evento | Categoria | Descricao |
OnProcess | Acao | Pre-processamento concluido |
OnError | Erro | Erro de pre-processamento encontrado |
OnInclude | Acao | Arquivo include resolvido |
TScriptEngine CT_SCRIPTENGINE = 91
Interpretador de scripts em tempo de execucao. Executa codigo Harbour/xBase em tempo de execucao para regras de negocios dinamicas, formulas e calculos definidos pelo usuario.
| Propriedade | Tipo | Padrao | Descricao |
cScript | String | "" | Codigo fonte do script |
xResult | Qualquer | NIL | Ultimo resultado de execucao |
lSandboxed | Logico | .T. | Restringir acesso a arquivos/rede |
nTimeout | Numerico | 5000 | Tempo maximo de execucao (ms) |
hVariables | Hash | {=>} | Variaveis disponiveis para o script |
| Evento | Categoria | Descricao |
OnExecute | Acao | Execucao do script concluida |
OnError | Erro | Erro em tempo de execucao no script |
OnOutput | Acao | Saida do script (ex. comando ?) |
TReportDesigner CT_REPORTDESIGNER = 92
Motor de layout de relatorios visuais. Define bandas (cabecalho, detalhe, rodape, grupo), campos, rotulos e imagens para relatorios imprimiveis.
| Propriedade | Tipo | Padrao | Descricao |
cReportFile | String | "" | Caminho para arquivo de definicao de relatorio (.hbr) |
cTitle | String | "" | Titulo do relatorio |
nPageWidth | Numerico | 210 | Largura da pagina em mm (padrao A4) |
nPageHeight | Numerico | 297 | Altura da pagina em mm |
nOrientation | Numerico | 0 | 0=Retrato, 1=Paisagem |
oDataSource | Objeto | NIL | Fonte de dados (tabela, consulta, array) |
| Evento | Categoria | Descricao |
OnBeforePrint | Acao | Antes do inicio da geracao do relatorio |
OnAfterPrint | Acao | Apos a conclusao da geracao do relatorio |
OnNewPage | Acao | Nova pagina iniciada |
OnGroupChange | Acao | Quebra de grupo ocorreu |
TBarcode CT_BARCODE = 93
Gerador de codigos de barras suportando formatos 1D e 2D. Renderiza codigos de barras como imagens para exibicao, impressao ou exportacao.
| Propriedade | Tipo | Padrao | Descricao |
cData | String | "" | Dados para codificar |
nFormat | Numerico | 0 | 0=Code128, 1=Code39, 2=EAN13, 3=QRCode, 4=DataMatrix, 5=PDF417 |
nWidth | Numerico | 200 | Largura de saida em pixels |
nHeight | Numerico | 80 | Altura de saida em pixels |
lShowText | Logico | .T. | Exibir texto legivel abaixo do codigo de barras |
nErrorLevel | Numerico | 2 | Nivel de correcao de erro QR (0=L, 1=M, 2=Q, 3=H) |
| Evento | Categoria | Descricao |
OnGenerate | Acao | Imagem do codigo de barras gerada |
OnError | Erro | Dados invalidos para o formato escolhido |
TPDFGenerator CT_PDFGENERATOR = 94
Gerador de documentos PDF. Cria arquivos PDF multipagina com texto, imagens, tabelas, codigos de barras e graficos vetoriais.
| Propriedade | Tipo | Padrao | Descricao |
cFileName | String | "" | Caminho do arquivo PDF de saida |
cTitle | String | "" | Titulo do documento (metadados) |
cAuthor | String | "" | Autor do documento (metadados) |
nPageWidth | Numerico | 595 | Largura da pagina em pontos (A4) |
nPageHeight | Numerico | 842 | Altura da pagina em pontos (A4) |
nMargin | Numerico | 36 | Margens da pagina em pontos |
lCompressed | Logico | .T. | Habilitar compressao de stream |
| Evento | Categoria | Descricao |
OnNewPage | Acao | Nova pagina criada |
OnComplete | Acao | Geracao do PDF concluida |
OnError | Erro | Erro durante a geracao do PDF |
TExcelExport CT_EXCELEXPORT = 95
Exportador de planilhas Excel. Gera arquivos .xlsx com formatacao, formulas e multiplas planilhas.
| Propriedade | Tipo | Padrao | Descricao |
cFileName | String | "" | Caminho do arquivo .xlsx de saida |
cSheetName | String | "Sheet1" | Nome da planilha ativa |
nSheetCount | Numerico | 1 | Numero de planilhas (somente leitura) |
lAutoFit | Logico | .T. | Ajuste automatico da largura das colunas |
lHeaderBold | Logico | .T. | Formatacao em negrito para o cabecalho |
| Evento | Categoria | Descricao |
OnExport | Acao | Exportacao concluida |
OnProgress | Acao | Atualizacao de progresso da exportacao (nRow, nTotal) |
OnError | Erro | Erro durante a exportacao |
TAuditLog CT_AUDITLOG = 96
Componente de trilha de auditoria. Registra automaticamente acoes do usuario, alteracoes de dados e eventos do sistema com carimbos de data/hora.
| Propriedade | Tipo | Padrao | Descricao |
cLogTable | String | "audit_log" | Tabela do banco de dados para armazenar logs |
cUserField | String | "user_id" | Nome do campo para o usuario atual |
lLogReads | Logico | .F. | Registrar operacoes de leitura (nao apenas escrita) |
lLogTimestamp | Logico | .T. | Incluir carimbo de data/hora nas entradas de log |
aTrackedTables | Array | {} | Tabelas para monitorar alteracoes |
| Evento | Categoria | Descricao |
OnLogEntry | Acao | Nova entrada de auditoria registrada |
OnAlert | Acao | Atividade suspeita detectada |
TPermissions CT_PERMISSIONS = 97
Gerenciador de controle de acesso baseado em funcoes. Define usuarios, funcoes e permissoes para recursos e dados da aplicacao.
| Propriedade | Tipo | Padrao | Descricao |
cCurrentUser | String | "" | Usuario autenticado atualmente |
cCurrentRole | String | "" | Funcao do usuario atual |
aRoles | Array | {} | Funcoes definidas |
hPermissions | Hash | {=>} | Mapeamento de funcao para permissoes |
cPermTable | String | "permissions" | Tabela do banco de dados de permissoes |
| Evento | Categoria | Descricao |
OnLogin | Acao | Usuario autenticado |
OnDenied | Acao | Permissao negada para acao |
OnRoleChange | Acao | Funcao do usuario alterada |
TCurrency CT_CURRENCY = 98
Gerenciador de multiplas moedas. Gerencia taxas de cambio, conversao de moedas e formatacao local.
| Propriedade | Tipo | Padrao | Descricao |
cBaseCurrency | String | "USD" | Codigo da moeda base (ISO 4217) |
nAmount | Numerico | 0.00 | Valor atual na moeda base |
hRates | Hash | {=>} | Taxas de cambio hash (codigo => taxa) |
nDecimals | Numerico | 2 | Precisao decimal |
lAutoUpdate | Logico | .F. | Buscar taxas automaticamente via API online |
| Evento | Categoria | Descricao |
OnConvert | Acao | Conversao de moeda realizada |
OnRatesUpdated | Acao | Taxas de cambio atualizadas |
TTaxEngine CT_TAXENGINE = 99
Motor de calculo de impostos. Lida com IVA, imposto sobre vendas, retencao e regras fiscais de multiplas jurisdicoes.
| Propriedade | Tipo | Padrao | Descricao |
nBaseAmount | Numerico | 0.00 | Valor antes do imposto |
nTaxRate | Numerico | 0.00 | Aliquota do imposto (percentual) |
nTaxAmount | Numerico | 0.00 | Imposto calculado (somente leitura) |
nTotalAmount | Numerico | 0.00 | Valor + imposto (somente leitura) |
cJurisdiction | String | "" | Codigo da jurisdicao fiscal |
lInclusive | Logico | .F. | Preco com imposto incluso |
aTaxRules | Array | {} | Regras fiscais personalizadas por categoria |
| Evento | Categoria | Descricao |
OnCalculate | Acao | Calculo de imposto concluido |
OnRuleApplied | Acao | Regra fiscal especifica correspondida e aplicada |
TDashboard CT_DASHBOARD = 100
Container de painel empresarial. Hospeda widgets (graficos, KPIs, medidores, tabelas) em um layout de grade configuravel para visoes executivas.
| Propriedade | Tipo | Padrao | Descricao |
nColumns | Numerico | 3 | Numero de colunas da grade |
nRows | Numerico | 2 | Numero de linhas da grade |
nRefreshInterval | Numerico | 60000 | Intervalo de atualizacao automatica (ms) |
lAutoRefresh | Logico | .T. | Habilitar atualizacao automatica de dados |
cTheme | String | "dark" | Tema visual (dark, light, corporate) |
aWidgets | Array | {} | Definicoes de widgets do painel |
| Evento | Categoria | Descricao |
OnRefresh | Acao | Dados do painel atualizados |
OnWidgetClick | Acao | Usuario clicou em um widget do painel |
OnDrillDown | Acao | Usuario detalhou um widget |
TScheduler CT_SCHEDULER = 101
Agendador de tarefas para gerenciamento de trabalhos em segundo plano. Suporta agendamento tipo cron, tarefas unicas e trabalhos recorrentes.
| Propriedade | Tipo | Padrao | Descricao |
aJobs | Array | {} | Trabalhos agendados registrados |
lRunning | Logico | .F. | Agendador esta ativo (somente leitura) |
nMaxConcurrent | Numerico | 4 | Numero maximo de trabalhos simultaneos |
cLogFile | String | "" | Arquivo de log de execucao de trabalhos |
lPersistent | Logico | .T. | Persistir agendamento entre reinicios |
| Evento | Categoria | Descricao |
OnJobStart | Acao | Trabalho agendado iniciado |
OnJobComplete | Acao | Trabalho concluido com sucesso |
OnJobError | Erro | Trabalho falhou com erro |
OnScheduleChange | Acao | Agendamento modificado |
Exemplo de Codigo: Codigo de Barras + Exportacao PDF
Este exemplo demonstra a geracao de codigos de barras de produtos e exportacao para um catalogo PDF.
// Gerar codigo de barras e exportar para PDF
FUNCTION ExportarCatalogoProdutos()
LOCAL oBarcode, oPdf, cFile, nRow
// Criar gerador de codigo de barras
oBarcode := TBarcode():New()
oBarcode:nFormat := 0 // Code128
oBarcode:nWidth := 250
oBarcode:nHeight := 60
oBarcode:lShowText := .T.
// Criar documento PDF
oPdf := TPDFGenerator():New()
oPdf:cFileName := "catalogo.pdf"
oPdf:cTitle := "Catalogo de Produtos"
oPdf:cAuthor := "HarbourBuilder ERP"
oPdf:NewPage()
// Cabecalho
oPdf:SetFont( "Helvetica", 18, .T. )
oPdf:DrawText( 36, 780, "Catalogo de Codigos de Barras" )
oPdf:DrawLine( 36, 775, 559, 775 )
// Gerar codigos de barras para cada produto
nRow := 720
Products->GoTop()
DO WHILE ! Products->Eof()
// Gerar imagem do codigo de barras
oBarcode:cData := Products->SKU
cFile := oBarcode:Generate()
// Desenhar info do produto + codigo de barras no 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 para catalogo.pdf" )
RETURN NIL
12 Controles ERP / Negocios
Estes componentes empresariais aceleram o desenvolvimento de aplicacoes de negocios. Da geracao de codigos de barras
e exportacao PDF a registro de auditoria e permissoes baseadas em funcoes, eles fornecem os blocos de construcao para
sistemas ERP, contabeis e de gestao de negocios completos.