As Includes
Para a construção de um programa, utilizando as templates, é necessário a instância de duas includes.
Includes são partes de códigos, que são incluídos dentro de um arquivo, separado do arquivo do programa, sendo que ao compilar o programa, essa parte do código é copiada na integra para dentro do executável do programa, a partir do ponto onde foi declarado a include.
As includes criadas exclusivamente para as templates são a BC9200.h e a BC9200a.h. Elas estarão disponíveis na pasta 'Fontes', criada pelo programa de instalação “bc_coletor_batch.exe” no local definido pelo usuário quando solicitada a execução.
As includes somente podem ser alteradas pela Datasul, pois todos os programas dependem delas.
BC9200a.h
Contém as declarações de alguns pré-processadores, a declaração da estrutura necessária para a construção das telas, e a declaração das funções das templates.
BC9200.h
Contém as funções responsáveis por toda a template, a qual abrange inicialização do scanner, validações de tela, construção de tela, impressão de campos, leitura de campos e gravação de arquivo.
As funções dessa include serão descritas abaixo:
Valida_tela
int valida_tela (short ini_reg, short fim_reg)
Funcionalidade:
Validar se a tela construída se adapta ao tamanho pré-determinado da tela, caso contrario, chama a função mostra_erro que apresenta na tela qual a divergência com os campos.
Parâmetros:
Recebe dois valores do tipo short, que são os índices inicial e final da tela.
Retorno:
Retorna um valor inteiro 1, caso os campos possam ser distribuídos sem divergências na tela, caso contrario, retorna 0.
Constrói_tela
void constrói_tela(char *titulo_tela, short ini_reg, short fim_reg)
Funcionalidades:
Imprime o título, utilizando a função centra_msg, imprime os labels na tela, calcula as coordenadas iniciais dos campos a serem preenchidos, alimentando a estrutura, e chama a função inicializa_campos.
Parâmetros:
Recebe um ponteiro de char para o título da tela, e valores do tipo short, que são os índices inicial e final da tela.
Retorno:
Nenhum
int_to_float
void int_to_float(char impressao[], short decimais)
Funcionalidade:
Converte uma string com formato inteiro para uma string com um valor em formato decimal, conforme os parâmetros passados.
Parâmetros:
Recebe um ponteiro para a string que contém os valores sem decimais (impressão), e o número de decimais que deve conter a string retornada.
Retorno:
Altera o valor que está sendo apontado pelo ponteiro impressão, para o valor com decimais.
le_campos
short le_campos(short ini_reg, short fim_reg)
Funcionalidade:
Faz a leitura dos campos passados, utilizando a função GetData.
Parâmetro:
Recebe dois valores do tipo short, que são os índices inicial e final da tela.
Retorno:
Retorna 0, caso todos o campos tenham sido lidos, e 1 se a leitura tenha sido abortada com a tecla “clear”.
GetData
short GetData (unsigned char mode, short line, short column, short width, char data_buffer[20], char *tipo_dado, short decimais).
Funcionalidades:
Faz a leitura do campo, caracter a caracter, validando a entrada de somente números ou alfa-numéricos, conforme tipo de dados, chama a função imprime_campos a cada caracter lido para atualizar a tela.
Parâmetros:
Recebe o modo de leitura (se vai ser com scanner, com teclados ou ambos), deve ser alimentado com os pré-processadores definidos no programa: CON_KEY_ONLY, CON_KEY_OR_SCAN, OU CON_SCAN_ONLY.
Recebe também a linha inicial (line), e a coluna inicial (column) para ser lido o campo, o tamanho do campo (width), o ponteiro para o valor a ser lido (data_buffer), o ponteiro para especificação do tipo de dado (tipo_dado), e o número de decimais ou número de casas para impressão de ano, no caso de data (decimais).
Retorno:
Retorna 0, caso o campo tenham sido lido, e 0 se a leitura tenha sido abortada com a tela “clear”.
Initialize
short initialize(void).
Funcionalidades:
Inicializa o scanner com a estrutura IOCTL. Essa função pode ser customizada, para a configuração do scanner, caso o desenvolvedor conheça a estrutura IOCTL do scanner.
Parâmetros:
Nenhum
Retorno:
Retorna se houve ou não erro durante a inicialização.
Grava_registro
int grava_registro(char *registro, char nome_arg[])
Funcionalidade:
Grava o registro no fim do arquivo especificado.
Parâmetros:
Recebe um ponteiro para a string a ser gravada (registro), e um ponteiro para o nome do arquivo, onde será gravada a string (nome_arg).
Retorno:
Retorna 0, caso a string tenha sido gravada corretamente, ou o índice do erro correspondente, caso tenha acontecido algum erro durante a gravação.
Centra_msg
void centra_msg(unsigned char lin, char *msg, unsigned char video)
Funcionalidade:
Imprime a mensagem centralizada.
Parâmetros:
Recebe a linha a ser impressa, um ponteiro para a string a ser impressa, e o tipo de vídeo (que podem ser utilizados os pré-processadores VIDEO_NORMAL ou VIDEO_INVERSE).
Retorno:
Nenhum.
valida_data
short valida_data(char data[], short casas_ano)
Funcionalidades:
Valida a data recebida.
Parâmetros:
Recebe a string com a data e o número de casas do ano.
Retorno:
Retorna 0, caso a data seja invalida, e 1 se a data estiver ok.
conv_type
void conv_type(char str_dec[])
Funcionalidade:
Converte o formato de números de europeu para americano e americano para europeu, conforme definição da constante NUM_TYPE.
Parâmetros:
Recebe a string com o número decimal.
Retorno:
Nenhum.