O módulo "Customizações do sistema" permite adaptar ou criar novas rotinas módulos no Hipercusto que atendam às necessidades da sua empresa.



  • Devido a complexidade de utilização deste módulo, ele só deverá ser utilizado pela equipe de desenvolvimento da NatSam ou por profissionais com conhecimento em programação orientada a objetos Pascal (padrão Delphi).
  • A criação de módulos de customização podem envolver custos adicionais de desenvolvimento e/ou utilização do Hipercusto.
  • Acessar os bancos de dados do Hipercusto e/ou de outros sistemas sem conhecimento das estruturas das tabelas envolvidas, pode danificar o banco de dados e/ou trazer resultados imprevistos durante a utilização.


Neste módulo é possível utilizar as principais classes e objetos disponíveis na linguagem Pascal (padrão Delphi) como, por exemplo: TLabel, TEdit, TTable, TnxTable, TUniTable, TnxQuery,TUniQuery, TChart, etc., o módulo de customização possui as seguintes funções adicionais:



AddDataSource( <nome>: string; <dados>: TDataSet );

Na geração de relatórios a partir de planilhas, essa função define o <nome> utilizado na planilha modelo para identificar o dataset indicado pelo nome <dados>

Exemplo de uso:

XLS_Report.AddDataSource('DADOS',qrWork);



AddColumn( <coluna>: Integer,  <qtde colunas>: Integer);

Insere uma ou mais colunas na posição da célula indicada pelo parâmetro <coluna>. Se não for informado o <qtde colunas> apenas uma coluna será incluída na posição informada.

Exemplos de uso:

XLS_File.AddColumn(5);

XLS_File.AddColumn(5, 4);



AddRow( <linha>: Integer,  <qtde linhas>: Integer);

Insere uma ou mais linhas na posição da célula indicada pelo parâmetro <linha>. Se não for informado o <qtde linhas> apenas uma linha será incluída na posição informada.

Exemplos de uso:

XLS_File.AddRow(2);

XLS_File.AddRow(3, 8);



Ajusta_Cores( <Objeto tipo FORM> )

Justa as cores e/ou fontes do formulário indicado para o padrão do Hipercusto.

Exemplo de uso:

Ajusta_Cores( Tela_Cadastro);



Ajusta_Custo_Lote( <produto>: String, <qtde>: Float) :Float

Retorna o custo de fabricação do produto informado para a quantidade indicada (lote econômico desejado).

Exemplo de uso:

Novo_Custo := Ajusta_Custo_Lote('001-A', 10);



Ajusta_Custo_Lote_Prep_Ref( <produto>: String, <qtde>: Float, Var: <Vlr_Preparacao>:Float, Var: <Vlr_Refugo>: Float)  :Float

Retorna o custo de fabricação do produto informado para a quantidade indicada (lote econômico desejado) e grava, nas variáveis Vlr_Preparacao e Vlr_Refugo os novos valores de setup de equipamentos e refugo para a quantidade indicada.

Exemplo de uso:

Novo_Custo := Ajusta_Custo_Lote('001-A', 10, Vlr_Setup, Vlr_Refugo);



Altera_Markup( <Taxa>: String, <valor>: Variant)  :Boolean

Alterar uma das taxa do mark-up que foi inicializado através da função Prepara_Markup(). Neste link estão os nomes das taxas disponíveis.

Exemplo de uso:

Altera_Taxa('CMV', 5);



Atutaliza_Label( <Texto>: String)  :String

Troca as macros § do texto informado para as definições dos identificadores efetuadas pelo usuário. Neste link estão os códigos de cada definição e as opções de retorno do identificador.

Exemplo de uso:

Atualiza_Label('Informe o código d§008g §008s');



Backup_DB( <Destino_Backup>: String, <Todos os Bancos>: Boolean ): Boolean

Efetua um backup do banco de dados ativo no momento ou de todos os bancos de dados do sistema. Se o parâmetro <Todos os bancos> for verdadeiro (True), serão copiados todos os bancos de dados cadastrados no Hipercusto. Se for falso (False) ou se não for fornecido, apenas o banco de dados atual será copiado

Exemplos de uso:

If Not Backup_DB('C:\Backups\Back_Banco_1') Then ShowMessage('Erro durante o backup');

If Not Backup_DB('C:\Backups\Back_Completo', True) Then ShowMessage('Erro durante o backup');



BinToHex_Delimitado( <Valor_Binario>: TMemoryStream, <Delimitar>: Boolean, <Tamanho>: Integer): String

Retorna o valor armazenado em um TMemoryStream como um texto em hexadecimal (útil quando houver necessidade de gravar objetos em arquivos textos). O parâmetro <Delimitar> indica se cada linha da string deve ser retornada entre aspas e com o sinal + no final de cada linha (se não for fornecido, será considerado que as linhas devem ser delimitadas). O <tamanho> define o número de caracteres máximo que cada linha deve ter (se não for informado será utilizado o valor 120.

Exemplos de uso:

Texto_1 := BinToHex_Delimitado( wBuffer);

Texto_X := BinToHex_Delimitado( wBuffer, False);

Texto_Z := BinToHex_Delimitado( wBuffer, True, 80);



Calcular_Custo_Produto: Boolean

Calcula o custo de fabricação de todos os produtos cadastrados.

Exemplo de uso:

Calcular_Custo_Produto;



Calcular_Custo_Produto( <produto>: String): Boolean

Calcula o custo de fabricação do produto informado e retorna verdadeiro (True) se o cálculo foi efetuado com sucesso ou falso (False) se não foi possível calcular o custo do produto.

Exemplo de uso:

Calcular_Custo_Produto('001-A');



Calcular_Custo_Produto( <Tabela>: String; <Codigo>: String): Boolean

Calcula o custo de fabricação do todos os produtos gravados no campo código da tabela indicada.

Exemplo de uso:

Calcular_Custo_Produto('TAB_CODIGOS', 'COD_PRODUTO');



Calcular_Custo_Produto( <Tabela>: String; <Codigo>: String; <Apagar>: Boolean): Boolean

Calcula o custo de fabricação do todos os produtos gravados no campo Código da tabela indicada. Se o parâmetro <apagar> for verdadeiro, após o cálculo de cada produto o registro correspondente será eliminado da tabela fornecida.

Exemplo de uso:

Calcular_Custo_Produto('TAB_CODIGOS', 'COD_PRODUTO', True);



Calcular_Custo_Semi: Boolean

Calcula o custo de fabricação de todos os semiacabados cadastrados.

Exemplo de uso:

Calcular_Custo_Semi;



Calcular_Custo_Semi( <produto>: String): Boolean

Calcula o custo de fabricação do semiacabado informado e retorna verdadeiro (True) se o cálculo foi efetuado com sucesso ou falso (False) se não foi possível calcular o custo do semiacabado.

Exemplo de uso:

Calcular_Custo_Semi('001-A');



Calcular_Custo_Semi( <Tabela>: String; <Codigo>: String): Boolean

Calcula o custo de fabricação do todos os semiacabados gravados no campo código da tabela indicada.

Exemplo de uso:

Calcular_Custo_Semi('TAB_CODIGOS', 'COD_PRODUTO');



Calcular_Custo_Semi( <Tabela>: String; <Codigo>: String; <Apagar>: Boolean): Boolean

Calcula o custo de fabricação do todos os semiacabados gravados no campo código da tabela indicada. Se o parâmetro <apagar> for verdadeiro, após o cálculo de cada semiacabado o registro correspondente será eliminado da tabela fornecida.

Exemplo de uso:

Calcular_Custo_Semi('TAB_CODIGOS', 'COD_PRODUTO', True);



Calcular_Preco_Venda( <produto>: String, <Markup>: String, <Cliente>: String, <Vendedor>: String, <Estado>: String, <Prazo>: Integer, <Qtde>: Integer, <Tipo_Cliente>: Char, <Tipo_Preco>: Char, <Custo_Fabricação>: Float): Float

Retorna o preço deve venda para o produto informado, onde:

<Produto>: é o código do produto que deve ter seu preço calculado.

<Markup>: é o código o mark-up que deve ser utilizado no cálculo do preço de venda.

<Cliente>: é o código do cliente para o qual o preço deverá ser calculado. Se não for informado, o sistema calculará o preço praticado para os clientes do tipo "Consumidor".

<Vendedor>: é o código do vendedor que deverá ser utilizado para obter o percentual de comissionamento que deve ser utilizado. Se não for informado, será utilizado o percentual de comissionamento indicado no mark-up.

<Estado>: é a sigla do estado para o qual o preço deverá ser calculado. Se não for informado, será utilizado o estado do cliente fornecido e, se não foi informado nenhum cliente será utilizado o preço de venda para venda dentro do estado.

<Prazo>: é o prazo de pagamento, em dias, que deve ser considerado. Se não informado (ou se for -1) será utilizado o prazo de pagamento definido no mark-up.

<Qtde>: indica a quantidade que será vendida. Se não for fornecida o sistema calculará o preço de venda para uma unidade do produto.

<Tipo_Cliente>: indica para qual tipo de cliente o preço deverá ser calculado. Se foi fornecido o código do cliente será utilizado o tipo do cliente informado. Se não for fornecido (e também não foi indicado o tipo de cliente) será retornado preço de venda que deve ser praticado clientes do tipo "Consumidor".

<Tipo_Preço>: é preço que deve ser retornado, onde "S" indica que deve ser retornado o preço sem os impostos destacados e "F" que deve ser retornado o preço incluindo os impostos destacados (preço Final).

<Custo_Fabricação>: é o custo de fabricação que deverá ser utilizado no cálculo do preço. Se não for informado será utilizado o custo atual de fabricação do produto.


Exemplo de uso:

Vlr_Venda:=Calcular_Preco_Venda('001-A', '0039');



Calcular_Preco_Venda_Ret_MC( <produto>: String, <Markup>: String, <Cliente>: String, <Vendedor>: String, <Estado>: String, <Prazo>: Integer, <Qtde>: Integer, <Tipo_Cliente>: Char, <Tipo_Preco>: Char, <Custo_Fabricação>: Float, <Vlr_Resultado>: Float, <Vlr_Margem>: Float, <Perc_Resultado>: Float, <Perc_Margem>: Float): Float

Retorna o preço deve venda, margem de contribuição e o resultado obtido para o produto informado, onde:


<Produto>: é o código do produto que deve ter seu preço calculado.

<Markup>: é o código o mark-up que deve ser utilizado no cálculo do preço de venda.

<Cliente>: é o código do cliente para o qual o preço deverá ser calculado. Se não desejar especificar o cliente você deverá informar duas aspas simples.

<Vendedor>: é o código do vendedor que deverá ser utilizado para obter o percentual de comissionamento que deve ser utilizado. Se não desejar indicar o vendedor, você deverá informar duas aspas simples.

<Estado>: é a sigla do estado para o qual o preço deverá ser calculado. Se não desejar informar o estado, forneça duas aspas simples.

<Prazo>: é o prazo de pagamento, em dias, que deve ser considerado. Se não desejar informar o prazo e usar o prazo definido no mark-up, esse campo deverá ser preenchido com -1.

<Qtde>: indica a quantidade que será vendida.

<Tipo_Cliente>: indica para qual tipo de cliente o preço deverá ser calculado. Se foi fornecido o código do cliente será utilizado o tipo do cliente informado.

<Tipo_Preço>: é preço que deve ser retornado, onde "S" indica que deve ser retornado o preço sem os impostos destacados e "F" que deve ser retornado o preço incluindo os impostos destacados (preço Final).

<Custo_Fabricação>: é o custo de fabricação que deverá ser utilizado no cálculo do preço. Informe -1 se desejar utilizar o custo de fabricação atual do produto.

<Vlr_Resultado>: é a variável que receberá o valor do resultado obtido para o preço calculado.

<Vlr_Margem>: é a variável que receberá o valor da margem de contribuição obtida para o preço calculado.

<Perc_Resultado>: é a variável que receberá o percentual do resultado obtido para o preço calculado.

<Perc_Margem>: é a variável que receberá o percentual da margem de contribuição obtida para o preço calculado.


Exemplo de uso:

Vlr_Venda:=Calcular_Preco_Venda('001-A', '0039', '', '', 'SP', -1, 1, 'C', 'S', -1, vResul, vMC, pResul, pMC);



Carregar_Dados( <Objeto>: TForm, <verificar>: Boolean ): Boolean

Carrega os dados do formulário salvos anteriormente pela função Salvar_Dados(), onde: <objeto> é o formulário que deve receber os dados previamente salvos. A opção <verificar> é opcional e se for informado como verdadeiro (True) o sistema apenas verificará se existem dados salvos para o formulário indicado. Será retornado verdadeiro (True) se os dados foram carregados corretamente (ou se existem dados para o formulário em questão).

Exemplo de uso:

Carregar_Dados(Tela);

Ler_dados.Enabled:=Carregar_Dados(Tela, True);



Carrega_Imagem( <Objeto>: TSpeedButton/TRzBitBtn/TBitBtn, <imagem>: Integer )

Carrega uma das imagens internas do Hipercusto no botão indicado, onde: <objeto> é o botão que deverá receber a imagem (deve ser um TSpeedButton, TRzBitBtn ou TBitBtn) e a <imagem> é o número da imagem que deverá ser utilizada.

Exemplo de uso:

Carrega_Imagem(BtCancelar, 2);



Clear_a_Bit( <Número>: Integer, <Bit>: Integer ): Integer

Desativa o <bit> do <número> indicado. A contagem dos bits inicia em 0.

Exemplo de uso:

Chave:=Clear_a_Bit(Chave, 0);



Configura_nxTable( <objeto> :TnxTable );

Configura_nxQuery( <objeto> :TnxQuery );

Configura_nxDatabase <objeto> :TnxDatabase );

Configura_nxSession( <objeto> :TnxSession );

Configura_nxWinSockTransport( <objeto> :TnxWinSockTransport );

Configura_nxRemoteServerEngine( <objeto> :TnxRemoteServerEngine );

Inicializa o objeto correspondente com os dados de acesso ao servidor/sessão atual do NexusDB ativa no Hipercusto (banco de dados ativo no momento)

Exemplo de uso:

Configura_nxQuery(qrVendas);



Converte_Moeda( <Valor>: Float, <De_Moeda>: Integer, <Para_Moeda>: Integer, Data: TDateTime): Float

Converte o <valor> fornecido da moeda indicada pelo <De_Moeda> para a moeda indicada pelo <Para_Moeda> utilizando a cotação da <data> fornecida. Os códigos das moedas pode variar de 0 até 9 sendo que 0 é a moeda padrão do sistema.

Exemplo de uso:

Valor_Convertido:=Converte_Moeda(121.32, 0, 1, EncodeDate(2015, 12, 09));



Converter( <modo>: Char, <Texto>: String, Var <var_valor>: Variant): Boolean

Transforma o <texto> para a variável  <var_valor> de acordo com o <modo> informado. O <modo> pode ser:

I » indica que o texto deverá ser convertido para um número inteiro.

N » indica que o texto deverá ser convertido para um número com decimais.

D » indica que o texto deverá ser convertido para uma data.A data deverá estar no modo Ansi (AAAA/MM/DD).

Essa função retorna verdadeiro se a conversão pode ser efetuada e falsa se não foi possível executar a conversão.

Exemplo de uso:

Converter('I', '10', item);

Converter('D', '1964-12-09', wdata);

Converter('N', '1023.029', saldo);



CreateStringStreamUTF8( <Buffer>: TStringStream, <Texto>: String): Boolean;

Altera um TSTringStream, previamente definido, para o padrão UTF8. Se for informado um <texto> esse TStringStream será inicializado com o texto informado.  Essa função retornará verdadeiro (True) se a função foi executada corretamente ou falso (False) se ocorreu algum erro durante a inicialização.

Exemplos de usos:

CreateStringStreamUTF8(wBuffer);

CreateStringStreamUTF8(wBuffer,'ABCDEFGHIJKLMNOPQRSTUVWXYZ');



DecimalSeparator_Change( <decimal>: Char)

Altera o padrão do separador de casas decimais para o informado.

Exemplo de uso:

DecimalSeparator_Change('.');



DecimalSeparator_Restore

Recupera o separador de casas decimais para o padrão do Hipercusto.

Exemplo de uso:

DecimalSeparator_Restore;



Define_DataReport( <Objeto>: TnxDatabaseMapper)

Prepara o objeto mapeamento do banco de dados para ser utilizado com um relatório.

Exemplo de uso:

DatabaseMapper_Rep:=TnxDatabaseMapper.Create(Tela_Rel);

Define_DataReport(DatabaseMapper_Rep);



Deletar_arquivos( <Pasta>: String , <máscara>: String, <eliminar_pasta> Boolean): Boolean;,

Apaga os arquivos da <pasta> que respeitem a <máscara fornecida>. Se a máscara for todos os arquivos (*.*) o parâmetro <eliminar_pasta> indica se a pasta deve ser eliminada. Essa função retorna verdadeiro se os arquivos foram eliminados ou falso se ocorreu algum problema.

Exemplo de uso:

Deletar_Arquivos('C:\Temp\Job', '*.TXT')

Deletar_Arquivos(vpasta_temporaria, '*.*', true);



Executar_Codigo( <Código>: Base64String, var <Erro>: String ): Boolean

Executa o código em Pascal, no padrão Base64 do Hipercusto. Se o código for executado corretamente, essa função retornará verdadeiro e, no caso de algum erro, retornará falso e na varável <erro> será retornada a descrição do erro.

Exemplo de uso:

If Not Executar_Codigo('UEsDBBQAAAgIAJl....', mErro) Then...



Existe_Arquivo( <nome_arquivo>: String ): Boolean

Retorna verdadeiro se o arquivo informado existir.

Exemplo de uso:

if Existe_Arquivo('C:\Hipercusto\Importar\Planilha.XLS') Then...



Executa_Customizacao( <customização>: String, <Formulario>: String ): Boolean

Executa a customização com o código indicado pelo campo <customização>. Se for fornecido um nome de formulário, todos os objetos desse formulário estarão disponíveis para serem utilizados pela customização. Essa função retornará verdadeiro (True) se a customização foi executada corretamente ou falso (False) se ocorreu algum erro durante sua execução.

Exemplos de uso:

if Not Executa_Customizacao(10) Then ShowMessage('Erro na execução');

If Executa_Customizacao(8) Then ShowMessage('Executada com sucesso');



Executar_Programa( <programa>: String, <parâmetros>: String, <aguardar>: Boolean, <tempo>: integer ): Boolean

Executa o programa especificado pelo campo <programa> passando para esse programa os parâmetros informados no campo <parâmetros>. O parâmetro <aguardar>, se verdadeiro, indica que o Hipercusto deverá aguardar a finalização do programa, enquanto que o parâmetro <tempo> indica o tempo de verificação da conclusão do aplicativo (em milissegundos). Essa função retornará verdadeiro (True) se o programa foi inicializado corretamente ou falso (False) se ocorreu algum erro.

Exemplos de uso:

Executa_Programa('C:\Hipercusto\Interface', '/AUTO')

Executa_Programa('C:\Hipercusto\Interface', '/AUTO', False)

Executa_Programa('C:\Hipercusto\Interface', '/AUTO', True, 1000)



Formata_Perc( <valor>: Float ): String

Retorna o <valor> indicado com uma string formatada de acordo com a precisão definida no Hipercusto para os percentuais.

Exemplo de uso:

ShowMessage(Formata_Perc(18));



Formata_Qtde( <valor>: Float ): String

Retorna o <valor> indicado com uma string formatada de acordo com a precisão definida no Hipercusto para quantidades.

Exemplo de uso:

ShowMessage(Formata_Qtde(10.50));



Formata_Total( <valor>: Float ): String

Retorna o <valor> indicado com uma string formatada de acordo com a precisão definida no Hipercusto para os valores finais.

Exemplo de uso:

ShowMessage(Formata_Total(3527.23));



Formata_Valor <valor>: Float ): String

Retorna o <valor> indicado com uma string formatada de acordo com a precisão definida no Hipercusto para os valores intermediários.

Exemplo de uso:

ShowMessage(Formata_Valor(754.236));



Get_a_Bit( <Número>: Integer, <Bit>: Integer ): Integer

Retorna verdadeiro se o <bit> do <número> indicado for 1 ou falso se for 0. A contagem de bits inicia em 0.

Exemplo de uso:

If Get_a_Bit(Chave, 4) Then...



Grava_Log( <Resumo>: String, <Texto>: String ): Boolean

Grava o <resumo> e o <texto> informado no arquivo de log do Hipercusto.

Exemplo de uso:

Grava_Log('Emissão relatório','Relatório de fechamento utilizando o período atual');



Hex_DelimitadoToBin( <Texto_Hex>: String, <Delimitado>: Boolean): TMemoryStream

Retorna o <Texto_Hex> fornecido em um valor binário em um MemoryStream. O campo <Delimitado> indica as strings do valor estão entre aspas ou não (se não for indicado, o sistema entenderá que eles não estão delimitados).

Exemplos de uso:

Var_Bin:= HexDelimitado_ToBin( wBuffer);

Var_Bin2= HexDelimitado_ToBin( wBuffer, True);



Int_To_Bin( <Número>: Integer, <Tamanho>: Integer ): String

Converte o <número> indicado para uma string utilizando 0 para os bits inativos e 1 para os bits ativos. O campo <tamanho> indica se o valor retornado deve ter 8, 16 ou 32 dígitos (se não for fornecido será utilizado 16).

Exemplo de uso:

ShowMessage(Int_To_Bin(250));

ShowMessage(Int_To_Bin(4096),32);



ID_Customização: Integer

Retorna o número da customização que está sendo executada.

Exemplo de uso:

Codigo_Custom:=ID_Customizacao;



Junta_Pasta_Arquivo( <pasta>: String, <Arquivo>: String ): String

Retorna uma string que será a união da <pasta> com o <arquivo> inserindo, se necessário, o sinal / entre os dois textos

Exemplo de uso:

wNome_Arquivo:=Junta_Pasta_Arquivo('C:\Windows\Temp','TMP0001.TXT');



Mascara_Perc: String

Retorna a máscara de formatação dos percentuais definida no Hipercusto.

Exemplo de uso:

Campo.DisplayFormat:=Mascara_Perc;



Mascara_Qtde: String

Retorna a máscara de formatação de quantidades definida no Hipercusto.

Exemplo de uso:

Campo.DisplayFormat:=Mascara_Qtde;



Mascara_Total: String

Retorna a máscara de formatação dos valores totais definida no Hipercusto.

Exemplo de uso:

Campo.DisplayFormat:=Mascara_Total;



Mascara_Valor: String

Retorna a máscara de formatação dos valores intermediárias definida no Hipercusto.

Exemplo de uso:

Campo.DisplayFormat:=Mascara_Valor;



Modo_Oculto: Boolean

Retorna verdadeiro se o Hipercusto estiver sendo executado no modo oculto, isto é, o Hipercusto foi carregado utilizando parâmetro /EXEC=, permitindo que a customização decida se a tela deverá ou não ser exibida.

Exemplo de uso:

If Modo_Oculto Then ....



OpenFromStream( <planilha>: TMemortStream);

Inicializar um objeto planilha utilizando os dados armazenados em um stream binário.

Exemplo de uso:

ReportXLS.OpenFromStream( Modelo_XLS);



Parametro_Licenca(<opção>: Char): String

Retorna o parâmetro da licença ou de configuração do sistema indicada pela <opção>. As opções disponíveis são:

L - retorna o número da licença de uso do Hipercusto.

R - retorna o nome da empresa para a qual o Hipercusto foi licenciado.

F - retorna o nome fantasia da empresa ativa no momento.

C - retorna o CNPJ da empresa

U - retorna o nome do usuário que está executando o Hipercusto.

I - retorna a identificação do usuário que está executando o Hipercusto.

V - retorna a versão do Hipercusto.

O - retorna "S" se o sistema estiver sendo executado no modo "off-line" ou retorna "N" se estive operando no modo "on-line".

X - retorna o código único de identificação do usuário.

K - retorna uma identificação única para a empresa ativa no momento.

B - retorna o nome do banco de dados que está selecionado.

M - retorna "S" se o Hipercusto estiver funcionando no modo multiusuário ou "N" se estiver no modo monousuário.

DXXXY - retorna "S" se a função Y do módulo XXX estiver habilitada para o usuário. Se não estiver ou se o código do módulo estiver incorreto, retorna "N"..


Exemplo de uso:

Nome_Empresa:=Parametro_Licenca('F');



Pasta_Aplicacao: String

Retorna o nome da pasta onde o Hipercusto está instalado.

Exemplo de uso:

ShowMessage('O Hipercusto está instalado na pasta '+Pasta_Aplicacao;



Pasta_Temporaria: String

Retorna o nome da pasta padrão para os arquivos temporários.

Exemplo de uso:

wArquivo_Temp:=Pasta_Temporaria+'\ARQUIVO.TMP');



Pasta_Usuário: String

Retorna o nome da pasta padrão para gravação dos documentos do usuário.

Exemplo de uso:

wArquivo:=Pasta_Usuario+'\RELATORIO.XLS');



Preco_Venda(<produto>> String, <mark-up>: String, <tipo_preço>: Char): Float;

Retorna o preço de venda do <produto> indicado utilizando o <markup> com o código informado. O <tipo_preço> indica se o preço deve ser sem os impostos destacados (S) ou se deve ser o preço final com todos os impostos destacados (F).

Exemplo de uso:

wPreco:=Preco_Venda_Vista('001-A','01','S');



Preco_Venda_Vista(<produto>> String, <mark-up>: String, <tipo_preço>: Char): Float;

Retorna o preço de venda à vista do <produto> indicado obedecendo o prazo de pagamento informado no <markup>. O <tipo_preço> indica se o preço deve ser sem os impostos destacados (S) ou se deve ser o preço final com todos os impostos destacados (F).

Exemplo de uso:

wPreco:=Preco_Venda_Vista('001-A','01','S');



Preco_Venda_Prazo(<produto>> String, <mark-up>: String, <tipo_preço>: Char): Float;

Retorna o preço de venda a prazo do <produto> indicado obedecendo o prazo de pagamento informado no <markup>. O <tipo_preço> indica se o preço deve ser sem os impostos destacados (S) ou se deve ser o preço final com todos os impostos destacados (F).

Exemplo de uso:

wPreco:=Preco_Venda_Vista('001-A','01','S');



ProcessMessages

Executa quaisquer eventos que estejam pendentes.

Exemplo de uso:

ProcessMessages;



Pesquisa_Dialog( <Objeto>: TwwLookUpDialog): Logical

Abre a tela de pesquisa para o <objeto> e retorna verdadeiro se o usuário selecionou um registro ou falso se ele abortou a pesquisa.

Exemplo de uso:

lkWork:=TwwLookUpDialog.Create(Nil);

With lkWork do Begin

     LookUpTable:=qrWork;

     Caption:='Pesquisar produto';

     Name:='lkWork';

End;

if Pesquisa_Dialog(lkWork) then Begin

     Descricao_Final.Text:=qrWork.FieldByName('NOME').AsString;

End;



Prepara_Markup( <Produto>: String, <Markup> String, <Cliente>: String, <Vendedor>: String, <Estado>: String, <Tipo>: String, <Prazo>: Inteiro, <Qtde>: Float): Boolean

Inicializa a memória com os dados necessários para cálculo do preço de venda, onde:


<Produto>: é o código do produto que desejado.

<Markup>: é o código o mark-up que deve ser utilizado.

<Cliente>: é o código do cliente desejado. Se não desejar especificar o cliente você deverá informar duas aspas simples.

<Vendedor>: é o código do vendedor que deverá ser utilizado para obter o percentual de comissionamento que deve ser utilizado. Se não desejar indicar o vendedor, você deverá informar duas aspas simples.

<Estado>: é a sigla do estado para o qual o as taxas devem ser obtidas. Se não desejar informar o estado, forneça duas aspas simples.

<Prazo>: é o prazo de pagamento, em dias, que deve ser considerado. Se não desejar informar o prazo e usar o prazo definido no mark-up, esse campo deverá ser preenchido com -1.

<Qtde>: indica a quantidade que será vendida.


Essa função retorna verdadeiro (True) se a área de memória foi inicializada corretamente.


Exemplos de uso:

Prepara_Markup('001-A', '0039');

Prepara_Markup('001-A', '', '', '', 'SP');



Print_Report( <Origem>:Char, <Relatório>: String, <Destino>: Char, <Exibir_Erros>: Boolean)

Emite um relatório previamente criado utilizando o Gerador de Relatórios do Hipercusto. Os parâmetros para utilização dessa função são:

<Origem> indica de onde o modelo do relatório deve ser obtido, podendo ser: "N" para obter o relatório pelo seu nome, "I" para selecionar o modelo de relatório pelo seu código ou "A" se desejar obter o modelo do relatório a partir de um arquivo em disco.

<Relatório> é o nome, identificação ou arquivo do relatório desejado.

<Destino> indica o local onde o relatório deve ser emitido podendo ser: V para visualizar o relatório no vídeo, I para enviar o relatório para a impressora ou P para emitir o relatório em PDF. Esse parâmetro é opcional e se não for fornecido o relatório será visualizado.

<Exibir_Erros> indica se quaisquer erros durante o processamento do relatório devem ser exibidos para o usuário, podendo ser True (para exibir) ou False (para não exibir). Se esse parâmetro não for fornecido os erros, se ocorrem, serão exibidos para o usuário.


Exemplo de uso:

Print_Report('N','Cadastro produtos');

Print_Report('I','10','P',False);

Print_Report('A','C:\Hipercusto\Relats\Rel_Clientes.rtm');



Recalcular_Taxas_Markup( <preço>: Float): Boolean;

Atualiza os valores da área de memória com os dados do mark-up após ter ajustado suas taxas pela função Atualiza_Markup() e utilizando o <preço> informado. Essa função retorna verdadeiro (True) se as taxas foram calculadas corretamente.

Exemplo de uso:

Recalcular_Taxas( 120.30);



Recupera( <Objeto>: TppReport, <Modelo>: String): Boolean;

Recupera um modelo de relatório a partir de um modelo compactado no padrão ZIP e armazenado em hexadecimal indicado pelo <Modelo> e armazena o mesmo no <Objeto>.

Exemplo de uso:

Relatorio:=TppReport.Create(Tela);

Recupera_Rel(Relatorio,Rel_Analitico);



Recupera_Texto( <Arquivo>: String): String;

Lê o conteúdo do <Arquivo> informado e retorna seu conteúdo.

Exemplo de uso:

Memo1.Lines.Text:=Recupera_Texto('C:\Hipercusto\Modelos\Carta_1.TXT');



Retorna_Markup( <Taxa>: String): Variant

Retorna uma determinada taxa do mark-up inicializado previamente pela através da função Prepara_Markup() ou alterado pela função Altera_Markup(). Neste link estão os nomes das taxas disponíveis.

Exemplo de uso:

Retorna_Taxa('CMV', 5);



RunFromFile( <XLS_Modelo>: String, <XLS_Destino>: String ):

Processa o arquivo de modelo indicado pelo <XLS_Modelo> e gera a saída no arquivo: <XLS_Destino>.

Exemplo de uso:

ReportXLS.RunFromStream( 'C:\Modelos\Vendas.XLSx', 'C:\Rels\Venda_Dezembro.XLSx');



RunFromStream( <XLS_Modelo>: TMemortStream, <XLS_Destino>: TMemortStream );

Processa o modelo de planilha fornecido pelo stream <XLS_Modelo> gerando uma nova planilha no stream de destino: <XLS_Destino>.

Exemplo de uso:

ReportXLS.RunFromStream( Modelo_XLS, Relatorio_XLS);



Salvar_Dados( <Objeto>: TForm): Boolean

Salva os dados do formulário indicado para que possam ser recuperados futuramente pela função Salvar_Dados(), onde: <objeto> é o formulário onde estão os dados que devem ser salvos. Será retornado verdadeiro (True) se os dados foram salvos corretamente ou falso (False) se ocorreu algum erro durante a execução dessa função.

Exemplo de uso:

Salvar_Dados(Tela);



Salva_Texto( <Texto>: String; <Arquivo>: String): Boolean;

Salva o <Texto> em um <arquivo> em disco com o nome indicado. Retorna verdadeiro (True) se o arquivo foi criado corretamente ou falso (False) se ocorreu algum erro.

Exemplo de uso:

If Salva_Texto(Memo1.Lines.Text,'C:\Hipercusto\Modelos\Carta_1.TXT') Then ShowMessage('Arquivo salvo com sucesso');



Send_Email(<Servidor SMTP>: String, <Porta>: String; <From>: String, <To>: String, <CC>: String, <CCo>: String, <Assunto>: String, <Senha>: String, <Anexo>: String, <Mensagem>: String, <Configuracoes>: String, <Correio Padrão>: Boolean, <Autenticar>: Boolean): Boolean;

Envia um e-mail utilizando as configurações fornecidas e retorna verdadeiro se o e-mail foi enviado com sucesso.

Exemplo de uso:

Send_Email('smtp.gmail.com','587','suporte@natsam.com.br', 'suporte@hipercusto.com.br>', '', '', 'Email de teste', 'H1p3rcu5t0', 'C:\Temp\Lista.pdf', '<B>Mensagem de teste</B>', '[V2] [TLS]', False, True);


SetVarValue( <variável>: String, <valor>: String);

Para um relatório em XLS, essa função determina o <valor> para a <variável> indicada.

Exemplo de uso:

SetVarValue( 'Titulo', 'Período: '+ Periodo);



SetwwDBGrid( <Grade>: TwwDBGrid, <Enter>: Boolean, <Inserir>: Boolean, <Deletar>: Boolean);

Define algumas opções de funcionamento para a <Grade> informada onde: <Enter> define se a tecla ENTER deve funcionar como a TAB, <Inserir> define se deve ser permitido incluir novos registros e <Deletar> define se deve ser permitido eliminar registros da grade.

Exemplo de uso:

SetwwDBGrid( grProdutos, True, False, True);



Set_Bit( <Número>: Integer, <Bit>: Integer ): Integer

Ativa o <bit> do <número>. A contagem de bits inicia em 0.

Exemplo de uso:

Set_a_Bit(Chave, 6);



Tempo_Centesimal( <Tempo>: String ): Float

Converte o <Tempo> do formato sexagesimal (hora, minuto, segundo, centésimo de segundo) para o seu equivalente no formato centesimal.

Exemplo de uso:

Tempo_Gasto :=Tempo_Centesimal('000:01:45.000');



Tempo_Sexagesimal( <Tempo>: Float ): String

Converte o <tempo> do formato centesimal para o seu equivalente no formado sexagesimal (hora, minuto, segundo, centésimo de segundo).

Exemplo de uso:

ShowMessage('Tempo total: '+Tempo_Sexagesimal(Tempo_Gasto));



UnZip( <Variável_Bin>: TMemortStream, <Modelo_Hex>: String ): Boolean

Descompacta o texto em hexadecimal fornecido usando o <Modelo_Hex> na área <Variável_Bin>. Será retornado verdadeiro (True) se a operação foi realizada corretamente ou falso (False) se ocorrer algum erro.

Exemplo de uso:

If Not UnZip( Texto_Work, Texto_Zip) Then ShowMessage('Não foi possível descompactar o arquivo');





  • A NatSam Consultoria Ltda poderá incluir novas funções, alterar as existentes ou então excluir qualquer função sem aviso prévio.
  • Suporte na utilização das funções, desenvolvimentos de customizações, treinamento ou explicações sobre esse módulo pode envolver custos adicionais de treinamento e/ou suporte técnico.