|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
www.fabriciobreve.com
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Relatório de Estágio Nome: Fabricio Aparecido Breve nº 16 3º PD"A" Empresa: Ação Educacional Claretiana Tema desenvolvido: Sistema de Páginas para Internet Índice Departamento............................................................................................................................................................... 2 Histórico da Faculdade............................................................................................................................................... 2 Organograma da Empresa.......................................................................................................................................... 4 Análise com relação à Funcionalidade do Departamento................................................................................... 5 D.F.D do C.P.D das Faculdades Claretianas........................................................................................................... 7 Modular...................................................................................................................................................................... 14 D.F.D Sistema Internet.............................................................................................................................................. 15 Macro Fluxo do Sistema........................................................................................................................................... 16 Macro Fluxo da verificação de senhasVisão Geral do
Sistema........................................................................ 17 Escolha da Linguagem de Programação............................................................................................................... 19 Identificação das Variáveis..................................................................................................................................... 20 Identificação das funções........................................................................................................................................ 22 Viabilidade e Implantação do sistema.................................................................................................................. 24 Lay Out de Arquivos................................................................................................................................................. 25 Especificações Técnicas........................................................................................................................................... 28 Operação e cuidados com relação ao sistema..................................................................................................... 29 Transcrição dos Programas...................................................................................................................................... 31 Lay-Out de Telas........................................................................................................................................................ 45 DepartamentoO departamento escolhido
para o estágio foi o Departamento de Informática. Desenvolvendo
como função principal a de Suporte e Manutenção. Trabalhando basicamente
no CPD da Faculdade visando o seu perfeito funcionamento. As
Faculdades Claretianas contam com 3 CPDs com 73 micros terminais em
funcionamento, além dos micros que estão nos outros departamentos, mas, também
ligados ao servidor principal. Os
CPDs contam com dois servidores Novell 3.12 que serão brevemente atualizados
para Novell 4 e provavelmente também Windows NT. Todos os computadores estão ligados
diretamente a um Provedor Internet também mantido pelas Faculdades Claretianas. O
principal ramo de atividade da empresa é o ensino. A
quantidade de funcionários em março de 1997 era de: ·
A administração é composta por 46 funcionários. ·
Total de professores da Faculdade e do Colégio é de 72 funcionários. ·
Total de professores do primário e do pré é de 10 funcionários. ·
A TV Rio Claro é composta por 20 funcionários. A
obra é composta por 51 funcionários. Histórico da FaculdadeFoi fundada em 15 de setembro
de 1971, a Sociedade Rioclarense de Ensino Superior (mais tarde) Sociedade
Rioclarense de Ensino, com objetivos essencialmente educacionais e sem fins
lucrativos. Hoje esta sociedade ocupa lugar de destaque no cenário educacional
do interior do Estado de São Paulo, principalmente em Rio Claro e cidades
vizinhas. No dia 07 de julho de 1972,
publicou-se o decreto de autorização para funcionamento da Faculdade de
Ciências Contábeis de Rio Claro - FACCO -, com o curso superior de Ciências
Contábeis . O curso regular de Ciências Contábeis sempre foi destacado pelas
Associações e Entidades de Classe da área de contabilidade do Estado de São
Paulo. Em janeiro de 1981, a
Sociedade foi autorizada a manter a Faculdade de Tecnologia de Rio Claro -
FATERC - com os cursos superiores de Planejamento Administrativo e Programação
Econômica , Formação de Secretário e Construção Civil - Edifícios. Logo em
seguida a entidade fundou o IPETERC - Instituto de Pesquisas Tecnológicas de
Rio Claro, atuando na área da Construção Civil e do Planejamento. Além dos cursos superiores a
entidade mantém a Escola de 1o e 2o graus Colégio Integrado Universitário desde
1974, que possue os cursos profissionalizantes de Técnico em Contabilidade,
Assistente de Administração, Secretariado, Patologia Clínica, Desenhista de
Arquitetura, Desenhista de Agrimensura e Técnico em Processamento de Dados. Além disso, a entidade
mantém um canal de televisão, a TV RIO CLARO , canal 19, UHF, emissora
educativa afiliada à TVE - Fundação Roquete Pinto - Ministério da Educação. No dia 18 de janeiro de 1993
foi aprovado o Regimento Unificado das FACULDADES UNIDAS DE RIO CLARO, Escola
de Educação Infantil 1o e 2o graus "Colégio Integrado Universitário de Rio
Claro" e TV Rio Claro, canal 19 UHF, que passou para a Congregação dos
Missionários Claretianos. A Congregação tem por objetivo fundamental a
valorização do ser humano em seus aspectos cultural, científico, tecnológico e
humanístico, através de sua criatividade, com competência e qualidade. Este breve histórico mostra
a missão da Sociedade Rioclarense de Ensino e a sua experiência no campo
educacional e credencia a ampliar e universalizar suas atividades educacionais. Organograma da Empresa
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||
![]() |
|||
|
||||
![]() |
||||
|
||||
![]() |
||||
|
|||
![]() |
|||
|
|||
![]() |
|||
|
|
|
|
|
|


|
|
|
|

|
|
|

|
|
Modular
|
|

|
|

|
|

|
|

|
|

|
|
|
|
|
|
|

|

|
|
|
|


|
|
|
|
|
|





|
|
D.F.D Sistema Internet
|
|

|
|
|

Macro Fluxo do Sistema
|
|

|





|










A linguagem usada para programar o web site da Ação Educacional
Claretiana foi HTML para criação das páginas em geral, com algumas
implementações usando JAVASCRIPT para consistência em formulários, além de
extensões Internet Explorer para criação de efeitos visuais.
Um dos conteúdos pedidos para o website foi um sistema em que fosse
possível aos alunos consultarem seus boletins escolares usando a Internet. A
instituição usa atualmente um sistema desenvolvido em Clipper para emitir os
boletins em papel. Nosso objetivo era criar um programa capaz de montar um
boletim na Internet usando os bancos de dados existentes do programa utilizado
pela instituição.
A maneira mais utilizada de
disponibilizar dados extraidos de bases de dados na Internet atualmente é o
CGI. O programa CGI tem a função de ler os dados passados por um formulário em
HTML e fornecer a saída no formato HTML a partir dos dados entrados.
Em servidores UNIX, as
linguagens mais usadas para fazer o código CGI são Perl e C. Porém os nossos
bancos de dados estavam no formato DBF (Dbase) que não é suportado por estas
linguagens em UNIX. Optamos então por fazer um programa em Clipper e manter o
sistema funcionando em um servidor Web Windows 95 ou Windows NT.
Qualquer linguagem de 32
bits poderia ser usada para fazer o programa CGI, porém o Clipper é uma
linguagem de 16 bits e era necessário que houvesse uma ligação entre o programa
em Clipper e a página HTML. Para tanto criamos um pequeno código em C++ que
fizesse a leitura dos dados passados pelo usuário na página e os repassasse
para o programa em Clipper. O programa em Clipper através de sucessivas buscas
nos bancos de dados do sistema reúne os dados necessários no boletim e dá a saida
no formato de páginas HTML. Estes dados são lidos então pelo programa em C++ e
os repassa para o browser do usuário.
Variáveis
do programa em Clipper.
Variáveis Públicas de Controle:
X -
Controle de vetores diversos.
Y -
Controle de vetores diversos.
INDVET - Índice do vetor de matérias. Quantidade de matérias.
Variáveis Públicas de Memória Temporária de Dados
SIT -
Resultado da verificação de existência do CGM e validade da senha.
ICGM
- CGM digitado pelo aluno.
ISENHA
- Senha digitada pelo aluno.
ANOATUAL - Variável que armazena o ano corrente de um banco de dados.
BIATUAL - Variável que armazena o bimestre corrente de um banco de dados.
ICURSO - Curso do aluno.
ITURMA - Turma do aluno que vem do banco de dados.
ISÉRIE - Série do aluno que do banco de dados.
INÚMERO - Número do aluno que vem do banco de dados.
INOME
- Nome do aluno que vem do banco de dados.
Matrizes:
MATS = Nome da matéria por extenso.
Mat=
Matéria (Código).
F1 = Faltas do 1º Bim.
F2 = Faltas do 2º Bim.
F3 = Faltas do 3º Bim.
F4 = Faltas do 4º Bim.
N1 = Notas do 1º Bim.
N2 = Notas do
2º Bim.
N3 = Notas do 3º Bim.
N4 = Notas do 4º Bim.
MedBI = Medias
dos bimestres.
N5 = Média de notas de cada matéria.
F5 = Total de faltas.
Variáveis
do Sistema em C++ e HTML
CGM
= Cgm fornecido pelo usuário
Senha
= Senha fornecida pelo usuário
Referentes
ao programa em Clipper
Function ABREBANCO( )
Abre e indexa os
bancos de dados.
Function VERIFICA ( )
Verifica se o CGM
existe e se a senha é válida no BD Aluno2.
Function PEGANOTA( )
Pega todas as notas
do aluno no BD Nota e armazena nas respectivas matrizes.
Function ADNOTA ( )
Adiciona as notas
encontradas na matriz.
Function PEGAMATE ( )
Pega no BD Discip o
nome de cada matéria.
Function SAIDA ( )
Dá a saída dos dados
p/ o programa em C.
Function CALCMEDIA ( )
Calcula as média de
cada matéria.
Variáveis:
Divisor=0 => Implementa em 1 cada vez que um novo
valor é encontrado.
Function CALCMEDBI ( )
Calcula a média de
todos os bimestres.
Variáveis:
Matriz Divisor - Por
quanto será dividido o número de notas de cada matéria.
Function PEGADADOS ( )
Pega os dados
pessoais, curso, numero, serie do aluno no BD Aluno2.
Function CALCCHTOT ( )
Calcula a carga
horária total de cada matéria com base nos dados de Disepoca.DBF.
O Sistema foi requerido para tornar mais fácil e rápido o
acesso dos alunos ao boletim pela Internet, visto que ele só era obtido através
da Secretaria do Colégio e da Faculdade.
Levando-se em consideração que todos os aperfeiçoamentos
propostos poderiam ser adaptados ao sistema atual sem maiores problemas, dentro
de um tempo razoável, a um custo compensador e trazendo diversos benefícios aos
pesquisadores.
O sistema deverá ser implantado antes do término de 1997,
pois a Instituição precisa rapidamente de uma página na Internet, pelo motivo
de haver somente uma página referente ao Provedor de Acesso à Internet
Claretianas, e não haver uma página que tratasse dos assuntos do Colégio
Integrado e das Faculdades Claretianas.
A página irá conter também informações sobre o
Vestibular das Faculdades Claretianas, e este é mais um dos motivos pelo qual o
sistema será implantado o mais rápido possível.A implantação do sistema é muito
simples, devido ao motivo da Instituição já manter um provedor Internet no ar,
bastando apenas disponibilizar as páginas em um domínio já adquirido
anteriormente. A única parte do sistema que não pode ser imediatamente inclusa
é a disponibilização dos boletins on-line, isto porque o sistema que monta o
boletim deve rodar em um servidor Windows 95 ou Windows NT, e os servidores que
a instituição possui rodam todos o sistema LINUX. Porém por um custo relativamente
baixo será possível adicionar um servidor Windows para trabalhar em conjunto
com os servidores LINUX e sem nenhuma dificuldade de instalação ou
configuração.
A => Aluno2.DBF => Informações dos alunos - Pessoais, turma, etc.
|
Nome Mnemônico |
Posição Inicial |
Posição Final |
Tamanho |
Tipo |
OBS: |
||||
|
Ano |
|
|
4 |
Numeric |
|
||||
|
Semestre |
|
|
1 |
Numeric |
|
||||
|
CGM |
|
|
5 |
Numeric |
|
||||
|
Digito |
|
|
2 |
Numeric |
|
||||
|
Turma |
|
|
4 |
Character |
|
||||
|
Numero |
|
|
3 |
Numeric |
|
||||
|
Nome |
|
|
20 |
Character |
|
||||
|
Sobrenome |
|
|
35 |
Character |
|
||||
|
Sexo |
|
|
1 |
Character |
|
||||
|
Dtmat |
|
|
8 |
Date |
|
||||
|
Situacao |
|
|
2 |
Numeric |
|
||||
|
Dtsit |
|
|
8 |
Date |
|
||||
|
Codaprov |
|
|
1 |
Character |
|
||||
|
Senha |
|
|
8 |
Character |
|
||||
B => Nota.DBF => Armazena as
notas dos alunos.
|
Nome Mnemônico |
Ano |
Semestre |
Turma |
Numero |
CGM |
Discip |
Epoca |
TipoDisp |
Nota |
Conceito |
Falta |
||
|
Posição Inicial |
|
|
|
|
|
|
|
|
|
|
|
||
|
Posição Final |
|
|
|
|
|
|
|
|
|
|
|
||
|
Tamanho |
4 |
1 |
4 |
3 |
5 |
4 |
2 |
1 |
6 |
2 |
2 |
||
|
Tipo |
Numeric |
Numeric |
Character |
Numeric |
Numeric |
Numeric |
Numeric |
Character |
Numeric |
Character |
Numric |
||
|
OBS: |
|
|
|
|
|
|
|
|
2 decimais |
|
|
||
E=> Curso.DBF => Nomes dos cursos, etc.
|
Nome Mnemônico |
Curso |
Grau |
Nome |
Nrseries |
Discip |
Oficial |
Usual |
Abrev |
Parte |
||||
|
Posição Inicial |
|
|
|
|
|
|
|
|
|
||||
|
Posição Final |
|
|
|
|
|
|
|
|
|
||||
|
Tamanho |
1 |
1 |
30 |
1 |
4 |
40 |
20 |
5 |
1 |
||||
|
Tipo |
Character |
Numeric |
Character |
Numeric |
Numeric |
Character |
Character |
Character |
Character |
||||
|
OBS: |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
F => Disepoca.DBF =>
Cargas horárias de cada matéria em cada bimestre.
|
Nome Mnemônico |
Ano |
Semestre |
Turma |
Discip |
Epoca |
Descricao |
Carga |
||||
|
Posição Inicial |
|
|
|
|
|
|
|
||||
|
Posição Final |
|
|
|
|
|
|
|
||||
|
Tamanho |
4 |
1 |
3 |
4 |
2 |
5 |
3 |
||||
|
Tipo |
Numeric |
Numeric |
Character |
Numeric |
Numeric |
Character |
Numeric |
||||
|
OBS: |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||||
Por se tratar de um sistema de páginas para
Internet, deverá sempre existir um
computador cliente e um servidor. A máquina servidora deve ser mantida
pela instituição fornecendo acesso as máquinas clientes 24 horas por dia. A
máquina cliente não precisará necessariamente estar na instituição, visto que
os usuários do sistema poderão ser
quaisquer pessoas que venham a acessá-lo pela Internet.
Configuração
mínima para o servidor:
·
IBM PC AT 386 SX ou compatível
·
4 Mb RAM
·
Disco rígido IDE mínimo 100 Mb
·
Monitor VGA Mono
·
Video 512 Kb RAM
·
Modem e/ou placa de rede p/ conexão c/ Internet
·
Sistema Operacional Windows 95 ou Windows NT
·
Qualquer programa para servidor WEB para Windows 95 conhecido no
mercado (Ex: Folkweb)
Configuração
recomendada para o servidor:
·
IBM PC Pentium 133 ou superior
·
16 Mb RAM
·
Disco rígido SCSI
·
Monitor SVGA Color
·
Vídeo 2 Mb RAM
·
Link rápido c/ Internet
·
Sistema Operacional Windows 95 ou Windows NT
·
Qualquer programa de servidor WEB para Windows 95 conhecido no mercado.
Configuração
para máquina cliente:
A máquina cliente poderá ser qualquer máquina
rodando um browser que suporte JAVASCRIPT e esteja conectada à Internet.
Preços das
configurações:
Servidor Mínima: U$ 600,00
Servidor Recomendada: U$ 2000,00
Cliente: U$ 300,00
A rapidez do sistema dependerá da
configuração escolhida. É altamente recomendável usar uma configuração igual ou
parecida com a "Configuração recomendada para máquina servidor" para
obter uma boa velocidade. Usando a configuração mínima o sistema rodará sem
maiores problemas, porém os usuários perderão mais tempo ao acessar as páginas
do servidor e haverá também uma demora considerável na obtenção do boletim pela
Internet.
Por medidas de segurança não deverão
ser usados no programa boletim os bancos de dados originais do sistema da
instituição. Não há problemas em se usar uma cópia destes, visto que atualizações são feitas apenas a cada 2 meses
aproximadamente. O uso dos bancos de dados originais poderia trazer grandes
problemas no caso de um hacker conseguir entrar no sistema e alterar dados
nessas bases originais.
Para utilizar o sistema basta executar
um servidor WEB em uma máquina Windows 95 ou NT. Os diretórios PAGINA e BOLETIM
deverão estar preferencialmente no "root" deste servidor, ou em
qualquer outro diretório, porém eles deverão sempre serem subdiretórios do
mesmo diretório.
Para executar o programa, basta chamar
o endereço IP ou host da máquina servidora através do browser de uma máquina
cliente.
Como todo site na Internet, é
necessário que se faça constantes atualizações na página. Sempre que houver
mudança de bimestre do ano letivo deverão ser atualizados os bancos de dados do
boletim e alterados o número do bimestre e/ou do ano corrente no banco de dados
ANO.DBF para que funcione corretamente.
Arquivo
Ver_Bol.C
Linguagem: C++
#include
<stdio.h>
static
char ax[50];
static
int c0,c1,l,i;
static char cgm[15],senha[15],com[55];
static
char *cont(char var[15])
{
static char ax2[20];
l = ((int) strlen(var)) + 1;
c0 = 0; c1 = 0;
var =
strstr(getenv("QUERY_STRING"),var);
var = var+l;
while(var[c0] != '&' && (c0 < ((int) strlen(var))) )
{
if (var[c0] != '+')
{
ax2[c1] = var[c0]; c1=c1+1;
}
c0=c0+1;
}
ax2[c1] = '\0';
return ax2;
}
int main(void)
{ /* Desativa a bufferizacao para stdin.*/
setvbuf(stdin, NULL, _IONBF, 0); /* Informa ao cliente o que vamos enviar */
// printf("Content-type:
text/html\n\n");
i =
sprintf(cgm,"%s",cont("cgm"));
i = sprintf(senha,"%s",cont("senha"));
i = sprintf(com,"boletim %s %s",cgm,senha); printf("");
system(com);
system("type saida.prn");
printf("");
return(0);
}
Arquivo:
Boletim.prg
Linguagem:
Clipper
******************************************************
* BOLETIM - GERADOR DE PAGINA HTML C/ TABELA BOLETIM *
* Versao 1.0 Beta - *
******************************************************
PROCEDURE BOLETIM(PAR2,PAR1)
SET
DELETED ON
SET
ALTERNATE ON
SET
ALTERNATE TO SAIDA.PRN
PUBLIC
SIT
PUBLIC
ICGM
PUBLIC
ISENHA
PUBLIC
ANOATUAL
PUBLIC
BIATUAL
PUBLIC
INDVET
DECLARE
MATS[0],MAT[1],F1[1],F2[1],F3[1],F4[1],N1[1],N2[1],N3[1],N4[1],MEDBI[5]
ICURSO=SPACE(1)
ITURMA=SPACE(1)
ISERIE=SPACE(1)
INUMERO=SPACE(1)
INOME=SPACE(1)
F1[1]=SPACE(2)
F2[1]=SPACE(2)
F3[1]=SPACE(2)
F4[1]=SPACE(2)
N1[1]=SPACE(4)
N2[1]=SPACE(4)
N3[1]=SPACE(4)
N4[1]=SPACE(4)
ICGM=PAR1
ISENHA=PAR2
ABREBANCO()
VERIFICA()
?"</PRE>"
?'<BODY BACKGROUND="../pagina/imagens/tex22.gif">'
?'<CENTER><FONT COLOR="#FF0000"><H1>Boletim Individual</H1></FONT></CENTER>'
DO CASE
CASE SIT="A"
PEGADADOS()
PEGANOTA()
PEGAMATE()
DECLARE N5[INDVET],F5[INDVET]
CALCMEDIA()
CALCMEDBI()
DECLARE CHTOT[INDVET],PRES[INDVET]
CALCCHTOT()
SAIDA()
CASE SIT="B"
?"<P><B>Senha incorreta.</B></P>"
CASE SIT="C"
?"<P><B>CGM nao cadastrado.</B></P>"
ENDCASE
?'<p align="center"><a href="../pagina/secretar/colegio/boletim.htm">'
?'<img src="../pagina/imagens/voltar.gif" border=0></a></p>'
?'</BODY>'
SET
ALTERNATE OFF
********************************************************************
FUNCTION
ABREBANCO()
SELE A
IF .NOT. FILE("ALUNO2.NTX")
USE ALUNO2 SHARED
INDEX ON CGM TO ALUNO2
ELSE
USE ALUNO2 INDEX ALUNO2 SHARED
ENDIF
SELE B
IF .NOT. FILE("NOTA.NTX")
USE NOTA SHARED
INDEX ON
STR(ANO,4)+STR(CGM,5)+STR(DISCIP,4)+STR(SEMESTRE,1) TO NOTA
ELSE
USE NOTA INDEX NOTA SHARED
ENDIF
SELE C
USE ANO
ANOATUAL=ANO
BIATUAL=BIMESTRE
SELE D
IF .NOT. FILE("DISCIP.NTX")
USE DISCIP SHARED
INDEX ON DISCIP TO DISCIP
ELSE
USE DISCIP INDEX DISCIP SHARED
ENDIF
SELE E
IF .NOT. FILE("CURSO.NTX")
USE CURSO SHARED
INDEX ON CURSO TO CURSO
ELSE
USE CURSO INDEX CURSO SHARED
ENDIF
SELE F
IF .NOT.
FILE("DISEPOCA.NTX")
USE DISEPOCA SHARED
INDEX ON
STR(ANO,4)+TURMA+STR(DISCIP,4)+STR(EPOCA,2) TO DISEPOCA
ELSE
USE DISEPOCA INDEX DISEPOCA SHARED
ENDIF
RETU(.T.)
********************************************************************
FUNCTION
VERIFICA
SELE A
GOTO TOP
SET SOFTSEEK OFF
SET DELETED ON
SEEK ICGM
IF .NOT. EOF()
IF ISENHA=SENHA
SIT="A"
ELSE
SIT="B"
ENDIF
ELSE
SIT="C"
ENDIF
RETU(.T.)
********************************************************************
FUNCTION
PEGANOTA()
INDVET=1
SELE B
GOTO TOP
LOCATE FOR STR(ANO,4)=ANOATUAL .AND.
CGM=VAL(ICGM) .AND. TURMA=ITURMA
MAT[INDVET]=DISCIP
ADNOTA()
DO WHILE .NOT. EOF()
CONTINUE
IF .NOT. EOF()
IF
MAT[INDVET]<>DISCIP
INDVET++
AADD(MAT,DISCIP)
AADD(F1,SPACE(2))
AADD(F2,SPACE(2))
AADD(F3,SPACE(2))
AADD(F4,SPACE(2))
AADD(N1,SPACE(4))
AADD(N2,SPACE(4))
AADD(N3,SPACE(4))
AADD(N4,SPACE(4))
ADNOTA()
ELSE
ADNOTA()
ENDIF
ENDIF
ENDDO
RETU(.T.)
******************************************************************
FUNCTION ADNOTA()
DO CASE
CASE EPOCA=1
IF TIPODISP=SPACE(1)
N1[INDVET]=STR(NOTA,4,1)
ELSE
N1[INDVET]="Disp"
ENDIF
F1[INDVET]=STR(FALTA,2)
CASE EPOCA=2 .AND. VAL(BIATUAL)>1
IF TIPODISP=SPACE(1)
N2[INDVET]=STR(NOTA,4,1)
ELSE
N2[INDVET]="Disp"
ENDIF
F2[INDVET]=STR(FALTA,2)
CASE EPOCA=3 .AND. VAL(BIATUAL)>2
IF TIPODISP=SPACE(1)
N3[INDVET]=STR(NOTA,4,1)
ELSE
N3[INDVET]="Disp"
ENDIF
F3[INDVET]=STR(FALTA,2)
CASE EPOCA=4 .AND. VAL(BIATUAL)>3
IF TIPODISP=SPACE(1)
N4[INDVET]=STR(NOTA,4,1)
ELSE
N4[INDVET]="Disp"
ENDIF
F4[INDVET]=STR(FALTA,2)
ENDCASE
RETU(.T.)
*****************************************************************
FUNCTION PEGAMATE()
SELE D
FOR X=1 TO INDVET
GOTO TOP
SEEK MAT[X]
AADD(MATS,USUAL)
NEXT X
RETU(.T.)
***********************************************************************
FUNCTION SAIDA()
?"<B>Curso:</B> "+ICURSO
?"<BR>"
?"<B>CGM :</B> "+ICGM
?" "
?"<B>Turma:</B> "+ITURMA
?" "
?"<B>Serie:</B> "+ISERIE
?" "
?"<B>N:</B> "+INUMERO
?"<BR>"
?"<B>Nome :</B> "+INOME
?"<BR>"
?"<BR>"
?'<DIV ALIGN="CENTER"><CENTER>'
?'<TABLE border="2" cellpading="4" cellspacing="3">'
?'<tr>'
?'<td align="center"><strong></strong> </td>'
?'<td align="center" colspan="2"><strong>1.BIM</strong></td>'
?'<td align="center" colspan="2"><strong>2.BIM</strong></td>'
?'<td align="center" colspan="2"><strong>3.BIM</strong></td>'
?'<td align="center" colspan="2"><strong>4.BIM</strong></td>'
?'<td align="center"><strong>MEDIA</strong></td>'
?'<td align="center"><strong>TOT</strong></td>'
?'<td align="center"><strong>CARGA</strong></td>'
?'<td align="center"><strong>%</strong></td>'
?'</tr>'
?'<tr>'
?'<td><strong>DISCIPLINAS</strong></td>'
?'<td align="center"><strong>N</strong></td>'
?'<td align="center"><strong>F</strong></td>'
?'<td align="center"><strong>N</strong></td>'
?'<td align="center"><strong>F</strong></td>'
?'<td align="center"><strong>N</strong></td>'
?'<td align="center"><strong>F</strong></td>'
?'<td align="center"><strong>N</strong></td>'
?'<td align="center"><strong>F</strong></td>'
?'<td align="center"><strong>N</strong></td>'
?'<td align="center"><strong>F</strong></td>'
?'<td align="center"><strong>HORARIA</strong></td>'
?'<td align="right"><strong>PRESENCA</strong></td>'
?'</tr>'
FOR X=1 TO INDVET
?"<TR>"
?"<TD>"
?MATS[X]
?"</TD>"
?'<TD align="RIGHT">'
?N1[X]
?'</TD>'
?'<TD align="RIGHT">'
?F1[X]
?"</TD>"
?'<TD align="RIGHT">'
?N2[X]
?"</TD>"
?'<TD align="RIGHT">'
?F2[X]
?"</TD>"
?'<TD align="RIGHT">'
?N3[X]
?"</TD>"
?'<TD align="RIGHT">'
?F3[X]
?"</TD>"
?'<TD align="RIGHT">'
?N4[X]
?"</TD>"
?'<TD align="RIGHT">'
?F4[X]
?"</TD>"
?'<TD align="RIGHT">'
?N5[X]
?"</TD>"
?'<TD align="RIGHT">'
?F5[X]
?"</TD>"
?'<TD align="CENTER">'
?STR(CHTOT[X],3)
?"</TD>"
?'<TD align="RIGHT">'
?STR(PRES[X],6,2)
?"</TD>"
?"</TR>"
NEXT
?"<TD>"
?"<B>MEDIAS"
?"</TD>"
?"<TD>"
?MEDBI[1]
?'</TD>'
?'<TD>'
?" "
?"</TD>"
?'<TD align="RIGHT">'
?MEDBI[2]
?"</TD>"
?"<TD>"
?" "
?"</TD>"
?'<TD align="RIGHT">'
?MEDBI[3]
?"</TD>"
?"<TD>"
?" "
?"</TD>"
?'<TD align="RIGHT">'
?MEDBI[4]
?"</TD>"
?"<TD>"
?" "
?"</TD>"
?'<TD align="RIGHT">'
?MEDBI[5]
?"</TD>"
?"<TD>"
?" "
?"</TD>"
?"<TD>"
?" "
?"</TD>"
?"<TD>"
?" "
?"</TD>"
?"</TR>"
?"</B>"
?"</TABLE></DIV></CENTER>"
RETU(.T.)
***********************************************************************
FUNCTION CALCMEDIA()
FOR X=1 TO INDVET
N5[X]=0
DIVISOR=0
DISP=.F.
IF N1[X]<>SPACE(4) .AND. N1[X]<>"Disp"
N5[X]=N5[X]+VAL(N1[X])
DIVISOR++
ENDIF
IF N2[X]<>SPACE(4) .AND. N2[X]<>"Disp"
N5[X]=N5[X]+VAL(N2[X])
DIVISOR++
ENDIF
IF N3[X]<>SPACE(4) .AND. N3[X]<>"Disp"
N5[X]=N5[X]+VAL(N3[X])
DIVISOR++
ENDIF
IF N4[X]<>SPACE(4) .AND. N4[X]<>"Disp"
N5[X]=N5[X]+VAL(N4[X])
DIVISOR++
ENDIF
IF DIVISOR>=1
N5[X]=STR(N5[X]/DIVISOR,5,2)
ELSE
N5[X]=" Disp"
ENDIF
F5[X]=0
IF F1[X] <>SPACE(2)
F5[X]=F5[X]+VAL(F1[X])
ENDIF
IF F2[X] <>SPACE(2)
F5[X]=F5[X]+VAL(F2[X])
ENDIF
IF F3[X] <>SPACE(2)
F5[X]=F5[X]+VAL(F3[X])
ENDIF
IF F4[X] <>SPACE(2)
F5[X]=F5[X]+VAL(F4[X])
ENDIF
F5[X]=STR(F5[X],4)
NEXT X
RETU(.T.)
*************************************************************************
FUNCTION CALCMEDBI()
DECLARE DIVISOR[5]
AFILL(DIVISOR,0)
AFILL(MEDBI,0)
FOR X=1 TO INDVET
IF N1[X]<>"Disp" .AND. N1[X]<>SPACE(4)
MEDBI[1]=MEDBI[1]+VAL(N1[X])
DIVISOR[1]++
ENDIF
IF N2[X]<>"Disp" .AND. N2[X]<>SPACE(4)
MEDBI[2]=MEDBI[2]+VAL(N2[X])
DIVISOR[2]++
ENDIF
IF N3[X]<>"Disp" .AND. N3[X]<>SPACE(4)
MEDBI[3]=MEDBI[3]+VAL(N3[X])
DIVISOR[3]++
ENDIF
IF N4[X]<>"Disp" .AND. N4[X]<>SPACE(4)
MEDBI[4]=MEDBI[4]+VAL(N4[X])
DIVISOR[4]++
ENDIF
IF N5[X]<>" Disp" .AND. N5[X]<>SPACE(5)
MEDBI[5]=MEDBI[5]+VAL(N5[X])
DIVISOR[5]++
ENDIF
NEXT X
FOR X=1 TO 4
IF DIVISOR[X]<>0
MEDBI[X]=STR(MEDBI[X]/DIVISOR[X],4,1)
ELSE
MEDBI[X]=SPACE(4)
ENDIF
NEXT X
MEDBI[5]=STR(MEDBI[5]/DIVISOR[5],5,2)
RETU(.T.)
****************************************************************
FUNCTION PEGADADOS()
SELE A
GOTO TOP
LOCATE FOR STR(ANO,4)=ANOATUAL .AND. CGM=VAL(ICGM)
ITURMA=TURMA
INUMERO=STR(NUMERO,3)
INOME=TRIM(NOME)+SPACE(1)+TRIM(SOBRENOME)
SELE E
CODCURSO=SUBSTR(ITURMA,3,1)
SEEK CODCURSO
ICURSO=NOME
DO CASE
CASE SUBSTR(ITURMA,2,1)="1"
ISerie="Primeira"
CASE SUBSTR(ITURMA,2,1)="2"
ISerie="Segunda"
CASE SUBSTR(ITURMA,2,1)="3"
ISerie="Terceira"
CASE SUBSTR(ITURMA,2,1)="4"
ISerie="Quarta"
CASE SUBSTR(ITURMA,2,1)="5"
ISerie="Quinta"
CASE SUBSTR(ITURMA,2,1)="6"
ISerie="Sexta"
CASE SUBSTR(ITURMA,2,1)="7"
ISerie="Setima"
CASE SUBSTR(ITURMA,2,1)="8"
ISerie="Oitava"
ENDCASE
RETU(.T.)
****************************************************************
FUNCTION CALCCHTOT()
SELE F
FOR X=1 TO INDVET
CHTOT[X]=0
LOCATE FOR ANO=VAL(ANOATUAL) .AND. TURMA=SUBSTR(ITURMA,1,3) .AND. DISCIP=MAT[X]
CHTOT[X]=CHTOT[X]+CARGA
IF VAL(BIATUAL)>1
FOR Y=1 TO VAL(BIATUAL)
CONTINUE
CHTOT[X]=CHTOT[X]+CARGA
NEXT Y
ENDIF
PRES[X]=(CHTOT[X]-VAL(F5[X]))*100/CHTOT[X]
NEXT X
RETU(.T.)
*****************************************************************

Tela Inicial

Página Histórico

Página da Biblioteca

Página da Secretária

Página do Jornal

Tela de entrada de
dados do Boletim

Webdesigner:
Fabricio Breve 1997 - 2011
[email protected] - Privacidade