Segue o módulo principal do programa. Ainda estou no início da conversão para xHarbour, sei pouca coisa, mas tentei seguir todos os passos a serem dados por um iniciante pelas dicas do fórum.
Código: Selecionar todos
/*********************************
* conpec.prg - conpec()
* Sistema MG-ConPec 1.0
*
* SIM/MARCA/21.03.96
* éltima Atualiza‡Æo: SIM/21.03.96
*
*********************************/
// Variaveis
#include "Common.ch"
#include "Inkey.ch"
#include "Setcurs.ch"
#include "Error.ch"
#include "set.ch"
#include "dbstruct.ch"
#include "getpass.ch"
#include "Getexit.ch"
FUNCTION Main()
local aCamp:={}, aDire:={}
local nColuAtua
parameters pSenha, pAjud
if pSenha=NIL
pSenha:=[xXxxxxx]
endif
if pAjud=NIL
pAjud:=[xXxxxxx]
endif
// Teste de chamada da fun‡Æo FreeTSlice()
// FreeTSlice(30)
// ventres
set date british
set century on
private msg_tel:="MG - S‚rgio: (51) 3474-1891"
PRIVATE Nlf,Ncf,Nvordf,Nacheif:=0,Intxf:=0,Nrepete:=0,filtrot, nBusca:=0
PRIVATE Cbuscan:=SPACE(7),Cbuscaa:=SPACE(2),Cbuscaf:=SPACE(4), nAtualReg
private cIanr:=space(7), cIaar:=" ", cIafr:=" ", cIdBuscar:=space(13)
private cCodPr:=space(5), cCodFrig:=space(5)
public nVordLf
// touros
PRIVATE Nlt,Nct,Nacheit:=0,Intxt:=0,Nvordlt,Nvordt,cBusca:=SPACE(13)
PRIVATE cFilterOld, dDataComp:=date(), dDataInf:=date()
// comum
PRIVATE cCampo,cVcampo,cMascara,cValida,nModo,Cadeia, filtra
PRIVATE Ntrmarca:=0,Ntrpos,Racat:=0.0000,Icom:=0
PRIVATE Ani_old,Ani_old1,Ani_new,Ani_new1
PRIVATE Raca_old0:={},Raca_old:={},Raca_new:={}
PRIVATE Ninct:=0,Nget:=0,Nr1a6:=0
// menus
PRIVATE mp:=1,V_me:={},Esc_fim,dnd,Volta
// reprodu‡ao
PRIVATE nlr,ncr,Nincv:=0,Filtrov,nIncTer:=0,;
nIncr:=0, nIncn:=0, nIncd:=0, nIncAlt:=0, nIncpd:=0, lErroNasc:=FALSE,;
lAvisoBol:=FALSE, Posfr, cSafra:=" ", cFazSaf:=" ", lNovaSaf:=FALSE,;
lSafAnt:=FALSE, lPriSaf:=FALSE, lUltSaf:=FALSE, cNomeFase:=" ",;
lCriaSafBr:=False, cSafra1:=" ", cSafra2:=" ", pFs:=" ", nIncu:=0,;
cMaeAntiga:=space(13)
public cEmpr:="", cEmprNome:="", empAtiva:=.F., cAnoo:="", lOffp:=TRUE
public cVers:="MG-ConPec 1.0M "
// public cVers:=" MG-ConPec X.X "
public cRede := "", nJane := ""
public x, y, cCaminho := "", lMostraGr:=FALSE, lArqUnico:=FALSE,;
lNatura:=FALSE, lUsarMarca:=False, cOrdIndex:="I", cCpm:="1",;
cAprDes:="1", cAprPos:="1", cAptPadrao:="", cEspPadrao:="",;
lUsarTam:=False, cBaseUnico:="GERAL", lPartida:=False,;
lPrecoce:=False
private aTouros:={}, aFiltro:={}, aGraus:={}, aComent:={}, aUsuar:={},;
aFazendas:={}, aRetiro:={}, aLote:={}, aInsemin:={}, aGrupoMan:={},;
aCateg:={}, aPelagem:={}, aGrSangue:={}, aReprod:={}, aSafra:={},;
aMarca:={}, aTmp:={}, aVacas:={}, aGrRms:={}, aReg:={}, aOcor:={},;
aAplOc:={}, aConfig:={}, aProp:={}, aSelePad:={}, aFrig:={},;
aMovim:={}, aMortes:={}, aGta:={}, aSemen:={}, aPesag:={}, aMed:={},;
aDP:={}, aFPdHb:={}, aFPdNe:={}, aFPdAb:={}, aFPfHb:={}, aFPfNE:={},;
aFPfAb:={}, aGenSys10:={}, aGrTmp:={}, aSoNoGrupo:={}, aAdvElim:={},;
aGrContemp:={}, aCeip:={}, aAnc:={}, aGenSys13:={}
caixa := replicate("_",9)
caix2 := "+-+Ý+-+Ý"
// Base de Dados
// Estrutura do arquivo CONFIG
aadd(aConfig,{"coratual","L",1,0})
aadd(aConfig,{"rapido","L",1,0})
aadd(aConfig,{"config","C",8,0})
aadd(aConfig,{"empresa","C",35,0})
aadd(aConfig,{"telefone","C",18,0})
aadd(aConfig,{"impressora","C",10,0})
aadd(aConfig,{"linhacalcu","N",2,0})
aadd(aConfig,{"colunacalc","N",2,0})
aadd(aConfig,{"decimalcal","N",1,0})
aadd(aConfig,{"mensagem",[C],5,0})
aadd(aConfig,{"som","L",1,0})
aadd(aConfig,{"porta","N",1,0})
aadd(aConfig,{"avisos","L",1,0})
aadd(aConfig,{"uea","C",3,0})
// Estrutura do arquivo de usu rios
aadd(aUsuar,{"cod_faz","C",4,0})
aadd(aUsuar,{"empresa","C",50,0})
aadd(aUsuar,{"respons","C",40,0})
aadd(aUsuar,{"estabel","C",40,0})
aadd(aUsuar,{"endereco","C",40,0})
aadd(aUsuar,{"cidade","C",30,0})
aadd(aUsuar,{"cep","C",9,0})
aadd(aUsuar,{"desc_fl","C",1,0})
aadd(aUsuar,{"raca","C",2,0})
aadd(aUsuar,{"mostragr","C",1,0})
aadd(aUsuar,{"arqunitou","C",1,0})
aadd(aUsuar,{"baseunico","C",8,0})
aadd(aUsuar,{"natura","C",1,0})
aadd(aUsuar,{"marca","C",1,0})
aadd(aUsuar,{"ultsafra","C",3,0})
aadd(aUsuar,{"ordem","C",1,0})
aadd(aUsuar,{"aprescpm","C",1,0})
aadd(aUsuar,{"apresdes","C",1,0})
aadd(aUsuar,{"aprespos","C",1,0})
aadd(aUsuar,{"especie","C",3,0})
aadd(aUsuar,{"aptidao","C",5,0})
aadd(aUsuar,{"usar_tam","C",1,0})
aadd(aUsuar,{"partida","C",1,0})
aadd(aUsuar,{"precoce","C",1,0})
aadd(aUsuar,{"saida","C",1,0})
// arquivo com os dados de vacas e produtos
aadd(aVacas,{"ident","C",15,0}) // Identifica‡Æo mestre do animal
aadd(aVacas,{"ian","C",7,0}) // Tatuagem do animal
aadd(aVacas,{"iaa","C",2,0}) // Ano de nascimento
aadd(aVacas,{"iaf","C",4,0}) // Fazenda de nascimento
aadd(aVacas,{"marca","C",1,0}) // Marca de identifica‡Æo
aadd(aVacas,{"nro_sisbov","N",14,0}) // Nro. do SISBOV do animal
aadd(aVacas,{"nrosisbov","C",14,0}) // Nro. do SISBOV do animal (Carcacter)
aadd(aVacas,{"i_ani","C",13,0}) // Identifica‡Æo estilo "touros"
aadd(aVacas,{"i_ape","C",13,0}) // Apelido do animal
aadd(aVacas,{"i_reg","C",13,0}) // Registro do animal
aadd(aVacas,{"mansisbov","C",6,0}) // Nro manejo Sisbov
aadd(aVacas,{"i_mae_n","C",7,0}) // Tat da mÆe natural (barriga)
aadd(aVacas,{"i_mae_a","C",2,0}) // Ano de nasc da mÆe natural (barriga)
aadd(aVacas,{"i_mae_f","C",4,0}) // Faz de nasc da mÆe natural (barriga)
aadd(aVacas,{"marcam","C",1,0}) // Marca de identica‡Æo da mÆe
aadd(aVacas,{"i_gen_n","C",7,0}) // Tat da mÆe gen‚tica
aadd(aVacas,{"i_gen_a","C",2,0}) // Ano de nasc da mÆe gen‚tica
aadd(aVacas,{"i_gen_f","C",4,0}) // Faz de nasc da mÆe gen‚tica
aadd(aVacas,{"i_ama_n","C",7,0}) // Tat da mÆe ama
aadd(aVacas,{"i_ama_a","C",2,0}) // Ano de nasc da mÆe ama
aadd(aVacas,{"i_ama_f","C",4,0}) // Faz de nasc da mÆe ama
aadd(aVacas,{"codgsm","C",4,0}) // C¢d. de grau de sangue da mÆe nat
aadd(aVacas,{"codgenm","C",4,0}) // C¢d de grau de sangue da mÆe gensys
aadd(aVacas,{"rast_mae","C",1,0}) // Identificador rastreabilidade da mÆe
aadd(aVacas,{"i_pai","C",13,0}) // Identifica‡Æo do pai (MESTRE)
aadd(aVacas,{"r1","C",2,0}) // C¢digo da ra‡a 1
aadd(aVacas,{"g1","N",6,4}) // Composi‡Æo da ra‡a 1
aadd(aVacas,{"r2","C",2,0}) // C¢digo da ra‡a 2
aadd(aVacas,{"g2","N",6,4}) // Composi‡Æo da ra‡a 2
aadd(aVacas,{"r3","C",2,0}) // C¢digo da ra‡a 3
aadd(aVacas,{"g3","N",6,4}) // Composi‡Æo da ra‡a 3
aadd(aVacas,{"r4","C",2,0}) // C¢digo da ra‡a 4
aadd(aVacas,{"g4","N",6,4}) // Composi‡Æo da ra‡a 4
aadd(aVacas,{"r5","C",2,0}) // C¢digo da ra‡a 5
aadd(aVacas,{"g5","N",6,4}) // Composi‡Æo da ra‡a 5
aadd(aVacas,{"r6","C",2,0}) // C¢digo da ra‡a 6
aadd(aVacas,{"g6","N",6,4}) // Composi‡Æo da ra‡a 6
aadd(aVacas,{"codgs","C",4,0}) // C¢d. do grau de sangue do animal
aadd(aVacas,{"codgen","C",4,0}) // C¢d. grau de sangue para GenSys
aadd(aVacas,{"codcat","C",6,0}) // C¢digo da categoria do animal
aadd(aVacas,{"comrep","C",3,0}) // Coment rio na reprodu‡Æo
aadd(aVacas,{"touroins","C",13,0}) // Touro indicado para IA
aadd(aVacas,{"tserv1","C",1,0}) // Tipo do 1§ servi‡o (I/C)
aadd(aVacas,{"touros1","C",13,0}) // Touro do 1§ servi‡o
aadd(aVacas,{"datas1","D",8,0}) // Data do 1§ servi‡o
aadd(aVacas,{"part1","C",10,0}) // partida do 1§ servico
aadd(aVacas,{"horas1","C",1,0}) // Turno do 1§ servico
aadd(aVacas,{"insem1","C",2,0}) // Inseminador do 1§ servi‡o
aadd(aVacas,{"tserv2","C",1,0}) // Tipo do 2§ servi‡o (I/C)
aadd(aVacas,{"touros2","C",13,0}) // Touro do 2§ servi‡o
aadd(aVacas,{"datas2","D",8,0}) // Data do 2§ servi‡o
aadd(aVacas,{"part2","C",10,0}) // partida do 2§ servico
aadd(aVacas,{"horas2","C",1,0}) // Turno do 2§ servi‡o
aadd(aVacas,{"insem2","C",2,0}) // Inseminador do 2§ servi‡o
aadd(aVacas,{"tserv3","C",1,0}) // Tipo do 3§ servi‡o (I/C)
aadd(aVacas,{"touros3","C",13,0}) // Touro do 3§ servi‡o
aadd(aVacas,{"datas3","D",8,0}) // Data do 3§ servi‡o
aadd(aVacas,{"part3","C",10,0}) // partida do 3§ servico
aadd(aVacas,{"horas3","C",1,0}) // Hora do 3§ servi‡o
aadd(aVacas,{"insem3","C",2,0}) // Inseminador do 3§ servi‡o
aadd(aVacas,{"tmonta1","C",13,0}) // Touro do 1§ per¡odo de monta
aadd(aVacas,{"entrada1","D",8,0}) // Data de entrada do 1§ per¡odo
aadd(aVacas,{"saida1","D",8,0}) // Data de sa¡da do 1§ per¡odo
aadd(aVacas,{"tmonta2","C",13,0}) // Touro do 2§ per¡odo de monta
aadd(aVacas,{"entrada2","D",8,0}) // Data de entrada do 2§ per¡odo
aadd(aVacas,{"saida2","D",8,0}) // Data de Saida do 2§ per¡odo
aadd(aVacas,{"gmrep","C",3,0}) // Grupo de manejo na reprodu‡Æo
aadd(aVacas,{"dg","C",1,0}) // Diagn¢stico de gesta‡Æo (toque)
aadd(aVacas,{"sf","D",8,0}) // Data do £ltimo servi‡o
aadd(aVacas,{"datapes1","D",8,0}) // Data da 1¦ pesagem na reprodu‡Æo
aadd(aVacas,{"pesorep1","N",4,0}) // Peso da 1¦ pesagem na reprodu‡Æo
aadd(aVacas,{"ccorp1","C",1,0}) // Condi‡Æo corporal na 1¦ pesagem
aadd(aVacas,{"alt1","C",3,0}) // Altura da vaca na 1¦ pesagem
aadd(aVacas,{"comnasc","C",3,0}) // Coment rio ao nascer
aadd(aVacas,{"commae","C",3,0}) // Coment rio da mÆe no nascimento
aadd(aVacas,{"sexo","C",1,0}) // Sexo no nacimento
aadd(aVacas,{"dnasc","D",8,0}) // Data de nascimento
aadd(aVacas,{"peson","N",2,0}) // Peso ao nascer
aadd(aVacas,{"tamnasc","C",1,0}) // Tamanho ao nascer
aadd(aVacas,{"distoc","N",1,0}) // Grau de distocia
aadd(aVacas,{"comte","C",2,0}) // Indica‡Æo que ‚ TE
aadd(aVacas,{"ge_ex","C",2,0}) // Indica‡Æo de que ‚ gˆmeos ou enxerto
aadd(aVacas,{"comnm","C",2,0}) // Indica‡Æo de que nasceu morto
aadd(aVacas,{"ts","C",1,0}) // Tipo Serv determinante de paternid
aadd(aVacas,{"pigocul","C",1,0}) // C¢digo de pigmenta‡Æo ocular
aadd(aVacas,{"gmnasc","C",3,0}) // Grupo de manejo ao nascer
aadd(aVacas,{"d_com","C",3,0}) // Coment rio ao desmame
aadd(aVacas,{"d_sex","C",1,0}) // Sexo no desmame
aadd(aVacas,{"pesov","N",3,0}) // Peso da vaca
aadd(aVacas,{"datad","D",8,0}) // Data do desmame convencional
aadd(aVacas,{"pesod","N",3,0}) // Peso ao desmame convencional
aadd(aVacas,{"datad2","D",8,0}) // Data do desmame precoce
aadd(aVacas,{"pesod2","N",3,0}) // Peso do desmame precoce
aadd(aVacas,{"d_datacpm","D",8,0}) // Data da avalia‡Æo CPMU desmame
aadd(aVacas,{"d_conf","C",1,0}) // Conforma‡Æo no desmame
aadd(aVacas,{"d_prec_g","C",1,0}) // Precocidade no desmame
aadd(aVacas,{"d_musc","C",1,0}) // Musculatura no desmame
aadd(aVacas,{"d_tam","C",1,0}) // Tamanho no desmame
aadd(aVacas,{"d_pelame","C",1,0}) // Pelame no desmame
aadd(aVacas,{"ad","C",1,0}) // Aprumos no desmame/Caract. racial
aadd(aVacas,{"d_pu","C",1,0}) // Prep/Umbigo no desmame
aadd(aVacas,{"d_altg","C",3,0}) // Altura de garupa no desmame
aadd(aVacas,{"d_gm","C",3,0}) // Grupo de manejo no desmame
aadd(aVacas,{"d_faz","C",4,0}) // Fazenda no desmame
aadd(aVacas,{"ectopar","N",3,0}) // Nro. de ectoparasitas (amostragem)
aadd(aVacas,{"ectopar2","C",3,0}) // Nro. de ectoparasitas (amostragem)
aadd(aVacas,{"data_ecto","D",8,0}) // Data contagem ectoparasitas
aadd(aVacas,{"gm_ecto","C",3,0}) // GM para ectoparasitas
aadd(aVacas,{"peso_ecto","N",3,0}) // peso na data da contagem ectopar
aadd(aVacas,{"p_com","C",3,0}) // Coment rio no p¢s-desmame
aadd(aVacas,{"p_sex","C",1,0}) // Sexo no p¢s-desmame
aadd(aVacas,{"datas","D",8,0}) // Data do p¢s-desmame convencional
aadd(aVacas,{"pesos","N",3,0}) // Peso no p¢s-desmame convencional
aadd(aVacas,{"datap2","D",8,0}) // Data 2¦ pesagem p¢s-desmame
aadd(aVacas,{"pesos2","N",3,0}) // Peso 2¦ pesagem p¢s-desmame
aadd(aVacas,{"p_datacpm","D",8,0}) // Data da avalia‡Æo CPMU p¢s-desmame
aadd(aVacas,{"p_conf","C",1,0}) // Conforma‡Æo no p¢s-desmame
aadd(aVacas,{"p_prec_g","C",1,0}) // Precocidade no p¢s-desmame
aadd(aVacas,{"p_musc","C",1,0}) // Musculatura no p¢s-desmame
aadd(aVacas,{"p_tam","C",1,0}) // Tamanho no p¢s-desmame
aadd(aVacas,{"p_pelame","C",1,0}) // Pelame no p¢s-desmame
aadd(aVacas,{"p_pu","C",1,0}) // Prep/Umbigo no p¢s-desmame
aadd(aVacas,{"p_altg","C",3,0}) // Altura de garupa no p¢s-desmame
aadd(aVacas,{"p_temp","C",1,0}) // Temperamento do animal
aadd(aVacas,{"as","C",1,0}) // Aprumos no p¢s-desmame
aadd(aVacas,{"p_dia_pe","D",8,0}) // Data da medi‡Æo do Per.Escrotal
aadd(aVacas,{"p_pe","N",4,1}) // Per¡metro escrotal
aadd(aVacas,{"peso_pe","N",3,0}) // Peso na medi‡Æo Per¡metro escrotal
aadd(aVacas,{"p_gm","C",3,0}) // Grupo de manejo no p¢s-desmame
aadd(aVacas,{"p_faz","C",4,0}) // Fazenda no p¢s-desmame
aadd(aVacas,{"armaepos","C",3,0}) // Retiro da vaca no p¢s-desmame
aadd(aVacas,{"aol","N",6,2}) // µrea de gordura de lombo
aadd(aVacas,{"egs","N",4,1}) // espessura de gordura subcutanea
aadd(aVacas,{"egsp","N",4,1}) // EGS Picanha
aadd(aVacas,{"dataus","D",8,0}) // Data do ultrasom
aadd(aVacas,{"tc","C",2,0}) // T‚cnico de campo ultrasom
aadd(aVacas,{"tl","C",2,0}) // T‚cnico de laborat¢rio ultrasom
aadd(aVacas,{"eq","C",2,0}) // Equipamento ultrasom
aadd(aVacas,{"pesous","N",3,0}) // Peso no ultrasom
aadd(aVacas,{"gmus","C",3,0}) // Grupo de manejo no ultrasom
aadd(aVacas,{"ac","C",3,0}) // Coment rio atual
aadd(aVacas,{"a_dia","D",8,0}) // Data da £ltima pesagem
aadd(aVacas,{"a_kg","N",4,0}) // peso da £ltima pesagem
aadd(aVacas,{"a_cc","C",1,0}) // Condi‡Æo corporal da £lt.pesagem
aadd(aVacas,{"a_alt","C",3,0}) // Altura na £ltima pesagem
aadd(aVacas,{"a_pu","C",1,0}) // Prep/Umbigo atual
aadd(aVacas,{"a_abm","C",1,0}) // Aspado, batoque ou mocho
aadd(aVacas,{"a_cor","C",1,0}) // Pelagem atual
aadd(aVacas,{"al","C",3,0}) // lote atual
aadd(aVacas,{"ar","C",3,0}) // Retiro atual
aadd(aVacas,{"af","C",4,0}) // Fazenda atual (usada na comp.safra)
aadd(aVacas,{"rastrear","C",1,0}) // Identificador para a rastreabilidade
aadd(aVacas,{"ped_inscr","C",1,0}) // Marcador de pedido de inscri‡Æo na Certif
aadd(aVacas,{"tre","C",1,0}) // Marcador para animais a transferir
aadd(aVacas,{"tri","C",1,0}) // Marcador para animais transf de outra faz
aadd(aVacas,{"tok","C",1,0}) // Marcador para animais j transferidos
aadd(aVacas,{"tf","C",1,0}) // Marcador da fase para transferˆncia
aadd(aVacas,{"safra","C",3,0}) // safra atual em que est trabalhando
aadd(aVacas,{"safran","C",3,0}) // Safra de nascimento
aadd(aVacas,{"ultsafra","C",3,0}) // Safra anterior … safra atual
aadd(aVacas,{"ww","C",1,0}) // Controlador de fˆmeas/reprodu‡Æo
// arquivo com os dados dos touros pais usados no sistema
aadd(aTouros,{"i_ani","C",13,0}) // Tatuagem do touro
aadd(aTouros,{"i_ape","C",13,0}) // Apelido do touro
aadd(aTouros,{"i_reg","C",13,0}) // Registro do touro
aadd(aTouros,{"i_dig","C",10,0}) // C¢digo de digita‡Æo
aadd(aTouros,{"ian","C",7,0}) // Tatuagem do touro
aadd(aTouros,{"iaa","C",2,0}) // Ano de nascimento
aadd(aTouros,{"iaf","C",4,0}) // Fazenda de nascimento
aadd(aTouros,{"marca","C",1,0}) // Marca identificadora
aadd(aTouros,{"mestre","C",13,0}) // Nome usado no campo PAI
aadd(aTouros,{"i_ant","C",2,0}) // Ano de nascimento do touro
aadd(aTouros,{"i_mae_n","C",7,0}) // Identifica‡Æo da mÆe do touro
aadd(aTouros,{"i_mae_a","C",2,0}) // Ano nascimento da mÆe do touro
aadd(aTouros,{"i_mae_f","C",4,0}) // Fazenda de nascimento mÆe do touro
aadd(aTouros,{"i_mae","C",13,0}) // MÆe do touro
aadd(aTouros,{"i_pai","C",13,0}) // Pai do touro
aadd(aTouros,{"r1","C",2,0}) // C¢digo da ra‡a 1
aadd(aTouros,{"g1","N",6,4}) // Composi‡Æo da ra‡a 1
aadd(aTouros,{"r2","C",2,0}) // C¢digo da ra‡a 2
aadd(aTouros,{"g2","N",6,4}) // Composi‡Æo da ra‡a 2
aadd(aTouros,{"r3","C",2,0}) // C¢digo da ra‡a 3
aadd(aTouros,{"g3","N",6,4}) // Composi‡Æo da ra‡a 3
aadd(aTouros,{"r4","C",2,0}) // C¢digo da ra‡a 4
aadd(aTouros,{"g4","N",6,4}) // Composi‡Æo da ra‡a 4
aadd(aTouros,{"r5","C",2,0}) // C¢digo da ra‡a 5
aadd(aTouros,{"g5","N",6,4}) // Composi‡Æo da ra‡a 5
aadd(aTouros,{"r6","C",2,0}) // C¢digo da ra‡a 6
aadd(aTouros,{"g6","N",6,4}) // Composi‡Æo da ra‡a 6
aadd(aTouros,{"codgs","C",4,0}) // C¢digo do grau de sangue do touro
aadd(aTouros,{"codgen","C",4,0}) // C¢d. de g.sangue usado pelo GenSys
aadd(aTouros,{"codcat","C",6,0}) // C¢digo da categoria do touro
aadd(aTouros,{"ac","C",3,0}) // Coment rio atual
aadd(aTouros,{"a_ts","C",1,0}) // Tipo de Servi‡o do touro
aadd(aTouros,{"cr","C",1,0}) // Caracteriza‡Æo racial
aadd(aTouros,{"pigocul","C",1,0}) // Pigmenta‡Æo Ocular
aadd(aTouros,{"a_dia","D",8,0}) // Data da pesagem do touro
aadd(aTouros,{"a_kg","N",4,0}) // Peso do touro
aadd(aTouros,{"a_cc","C",1,0}) // Condi‡Æo corporal do touro
aadd(aTouros,{"a_pu","C",1,0}) // Prep£cio/Umbigo do touro
aadd(aTouros,{"a_abm","C",1,0}) // Aspas (Aspado, Batoque, Mocho)
aadd(aTouros,{"a_cor","C",1,0}) // Pelagem do touro
aadd(aTouros,{"al","C",3,0}) // Lote Atual
aadd(aTouros,{"ar","C",3,0}) // Retiro Atual
aadd(aTouros,{"af","C",4,0}) // Fazenda Atual
aadd(aTouros,{"a_pe","N",4,1,0}) // Per¡metro Escrotal atual
aadd(aTouros,{"descricao","C",78,0}) // Nome do touro/obs/composi‡Æo RM
aadd(aTouros,{"nro_sisbov","N",14,0}) // N£mero do animal no SISBOV
aadd(aTouros,{"nrosisbov","C",14,0}) // N£mero do animal no SISBOV (caracter)
aadd(aTouros,{"mansisbov","C",6,0}) // N£mero de Manejo do SISBOV (caracter)
aadd(aTouros,{"rastrear","C",1,0}) // Identificador para a rastreabilidade
aadd(aTouros,{"ped_inscr","C",1,0}) // Marcador de pedido de inscri‡Æo na Certif
// Arquivo com as descri‡äes e condi‡äes para os filtros
aadd(aFiltro,{"descr_1","C",32,0})
aadd(aFiltro,{"descr_2","C",30,0})
aadd(aFiltro,{"descr_3","C",7,0})
aadd(aFiltro,{"descr_4","C",8,0})
aadd(aFiltro,{"descr_5","C",14,0})
aadd(aFiltro,{"descr_6","C",33,0})
aadd(aFiltro,{"descr_7","C",19,0})
aadd(aFiltro,{"descr_8","C",10,0})
aadd(aFiltro,{"descr_9","C",10,0})
aadd(aFiltro,{"descr_10","C",10,0})
aadd(aFiltro,{"descr_11","C",30,0})
aadd(aFiltro,{"descr_12","C",140,0})
aadd(aFiltro,{"descr_13","C",50,0})
aadd(aFiltro,{"descr_14","C",6,0})
aadd(aFiltro,{"codig_1", "C",45,0})
aadd(aFiltro,{"codig_2","C",51,0})
aadd(aFiltro,{"codig_3","C",6,0})
aadd(aFiltro,{"codig_4","C",6,0})
aadd(aFiltro,{"codig_5","C",12,0})
aadd(aFiltro,{"codig_6","C",51,0})
aadd(aFiltro,{"codig_7","C",35,0})
aadd(aFiltro,{"codig_8","C",8,0})
aadd(aFiltro,{"codig_9","C",8,0})
aadd(aFiltro,{"codig_10","C",8,0})
aadd(aFiltro,{"codig_11","C",105,0})
aadd(aFiltro,{"codig_12","C",298,0})
aadd(aFiltro,{"codig_13","C",250,0})
aadd(aFiltro,{"codig_14","C",24,0})
aadd(aFiltro,{"tipo","C",1,0})
// arquivo com os c¢digos de coment rios
aadd(aComent,{"codigo","C",3,0}) // C¢digo do coment rio
aadd(aComent,{"descricao","C",35,0}) // Descri‡Æo do coment rio
aadd(aComent,{"tipo","C",1,0}) // C¢digo do Tipo do coment rio
// arquivo com os c¢digos de fazendas
aadd(aFazendas,{"codigo","C",4,0}) // C¢digo da fazenda
aadd(aFazendas,{"nome_faz","C",30,0}) // Nome da fazenda
aadd(aFazendas,{"nome_pro","C",30,0}) // Propriet rio
// arquivo com os c¢digos de retiros
aadd(aRetiro,{"codigo","C",3,0}) // C¢digo do retiro
aadd(aRetiro,{"codfaz","C",4,0}) // Fazenda de localiza‡Æo do ret
aadd(aRetiro,{"nome_ret","C",30,0}) // Nome do retiro
aadd(aRetiro,{"nome_res","C",30,0}) // Nome do respons vel pelo ret
// arquivo com os c¢digos de lote
aadd(aLote,{"codigo","C",3,0}) // C¢digo do lote
aadd(aLote,{"codfaz","C",4,0}) // Fazenda de localiza‡Æo do lot
aadd(aLote,{"descricao","C",30,0}) // Descri‡Æo do lote
// arquivo com os c¢digos de inseminadores
aadd(aInsemin,{"codigo","C",2,0}) // C¢digo do Inseminador
aadd(aInsemin,{"nome_ins","C",30,0}) // Nome do inseminador
// arquivo dos grupos de manejo
aadd(aGrupoMan,{"codigo","C",3,0}) // C¢digo do grupo de manejo
aadd(aGrupoMan,{"descricao","C",50,0}) // Descricao fase nasc/desm
aadd(aGrupoMan,{"fase","C",1,0}) // Fase de informa‡Æo do grupo
aadd(aGrupoMan,{"codfaz","C",4,0}) // Fazenda do localiza‡Æo do GM
aadd(aGrupoMan,{"safra","C",3,0}) // Safra em que foi utilizado
// Extra¡dos do arquivo de grupo de manejo
//aadd(aGrupoMan, {"descrep", "C", 80, 0}) // Descricao fase reproducao
//aadd(aGrupoMan, {"descrpos", "C", 30, 0}) // Descricao fase desm/pos-desm
// arquivo das categorias
aadd(aCateg,{"codcat","C",6,0}) // C¢digo da categoria
aadd(aCateg,{"ano","C",2,0})
aadd(aCateg,{"descricao","C",30,0}) // Nome da categoria
// arquivo com os c¢digos de grau de sangue gerados pelos sistema
aadd(aGrSangue,{"codgs","C",4,0}) // C¢digo do grau de sangue
aadd(aGrSangue,{"codgen","C",4,0}) // C¢digo usado pelo GenSys
aadd(aGrSangue,{"descricao","C",60,0}) // Descr fracion ria do g.sangue
aadd(aGrSangue,{"r1","C",2,0}) // C¢digo da ra‡a 1
aadd(aGrSangue,{"g1","N",6,4}) // Composi‡Æo da ra‡a 1
aadd(aGrSangue,{"r2","C",2,0}) // C¢digo da ra‡a 2
aadd(aGrSangue,{"g2","N",6,4}) // Composi‡Æo da ra‡a 2
aadd(aGrSangue,{"r3","C",2,0}) // C¢digo da ra‡a 3
aadd(aGrSangue,{"g3","N",6,4}) // Composi‡Æo da ra‡a 3
aadd(aGrSangue,{"r4","C",2,0}) // C¢digo da ra‡a 4
aadd(aGrSangue,{"g4","N",6,4}) // Composi‡Æo da ra‡a 4
aadd(aGrSangue,{"r5","C",2,0}) // C¢digo da ra‡a 5
aadd(aGrSangue,{"g5","N",6,4}) // Composi‡Æo da ra‡a 5
aadd(aGrSangue,{"r6","C",2,0}) // C¢digo da ra‡a 6
aadd(aGrSangue,{"g6","N",6,4}) // Composi‡Æo da ra‡a 6
aadd(aGrSangue,{"empresa","C",4,0}) // C¢digo da empresa
// arquivo com os c¢digos de pelagem
aadd(aPelagem,{"codigo","C",2,0}) // C¢digo da pelagem
aadd(aPelagem,{"descricao","C",20,0}) // Descricao da pelagem
// arquivo contendo os dados de monta geral para aplica‡Æo
aadd(aReprod,{"fazenda","C",4,0}) // C¢d. da fazenda p/aplic monta
aadd(aReprod,{"lote","C",3,0}) // C¢d. do lote p/aplic monta
aadd(aReprod,{"retiro","C",3,0}) // C¢d. do retiro p/aplic monta
aadd(aReprod,{"gm","C",3,0}) // C¢d. do grupo de manejo
aadd(aReprod,{"codcat","C",6,0}) // C¢d. da categoria p/aplic monta
aadd(aReprod,{"codgs","C",4,0}) // C¢d. do g.sangue p/aplic monta
aadd(aReprod,{"inicial","C",2,0}) // Ano inicial para idade da vaca
aadd(aReprod,{"final","C",2,0}) // Ano final para idade da vaca
aadd(aReprod,{"tmonta1","C",13,0}) // Touro 1 usado na monta
aadd(aReprod,{"entrada1","D",8,0}) // Data da entrada do touro 1
aadd(aReprod,{"saida1","D",8,0}) // data da sa¡da do touro 1
aadd(aReprod,{"tmonta2","C",13,0}) // Touro 2 usado na monta
aadd(aReprod,{"entrada2","D",8,0}) // Data da entrada do touro 2
aadd(aReprod,{"saida2","D",8,0}) // data da sa¡da do touro 2
aadd(aReprod,{"ativo","C",1,0}) // Controla reg ativo/inativo
aadd(aReprod,{"safra","C",3,0}) // Safra na qual ser aplic monta
// arquivo contendo as safras geradas para cada fazenda
aadd(aSafra,{"fazsaf","C",7,0}) // Fazenda e Safra gerados pelo sist
// Arquivo com os c¢digos e descri‡äes das marcas e sinais
aadd(aMarca,{"marca","C",1,0}) // C¢digo da marca (marca em si)
aadd(aMarca,{"descricao","C",30,0}) // Descricao da marca
// Arquivo tempor rio com os dados de reprodu‡Æo
aadd(aTmp,{"i_mae_n","C",7,0}) // Ident. da mÆe do terneiro
aadd(aTmp,{"i_mae_a","C",2,0}) // Ano de nasc. da mÆe
aadd(aTmp,{"i_mae_f","C",4,0}) // Fazenda de nasc. da mÆe
aadd(aTmp,{"marcam","C",1,0}) // Marca ident. da mÆe
aadd(aTmp,{"i_gen_n","C",7,0}) // Ident. da mÆe gen‚tica do terneiro
aadd(aTmp,{"i_gen_a","C",2,0}) // Ano de nasc. da mÆe gen‚tica
aadd(aTmp,{"i_gen_f","C",4,0}) // Fazenda de nasc da mÆe gen‚tica
aadd(aTmp,{"codgsm","C",4,0}) // C¢d. grau de sangue da mÆe
aadd(aTmp,{"codgenm","C",4,0}) // C¢d. grau de sangue p/ GenSys
aadd(aTmp,{"codcat","C",6,0}) // C¢d. da categoria da mÆe
aadd(aTmp,{"gmrep","C",3,0}) // Grupo manejo na reprodu‡Æo
aadd(aTmp,{"al","C",3,0}) // Lote atual da mÆe
aadd(aTmp,{"ar","C",3,0}) // Retiro atual da mÆe
aadd(atmp,{"af","C",4,0}) // Fazenda atual da mÆe
aadd(aTmp,{"ut","C",1,0}) // Resultado do £ltimo toque
aadd(aTmp,{"armaepos","C",3,0}) // Retiro da mÆe no p¢s
aadd(aTmp,{"safra","C",3,0}) // Safra que est sendo trabalhada
aadd(aTmp,{"safran","C",3,0}) // Safra de nascimento dos terneiros
aadd(aTmp,{"ww","C",1,0}) // Controlador de fˆmeas em reproducÆo
// Arquivo que conter os touros que fazem parte dos RMs
aadd(aGrRms,{"mestre","C",13,0}) // Identifica‡Æo do RM
aadd(aGrRms,{"touro","C",13,0}) // Identifica‡Æo do touro integrante
aadd(aGrRms,{"ian","C",7,0}) // Tatuagem do touro
aadd(aGrRms,{"iaa","C",2,0}) // Ano de nascimento do touro
aadd(aGrRms,{"iaf","C",4,0}) // Fazenda de nascimento do touro
aadd(aGrRms,{"safra","C",3,0}) // Safra de trabalho do RM
// Arquivo que conter os registros dos animais (machos e fˆmeas)
aadd(aReg,{"i_ani","C",13,0}) // Identifica‡Æo do animal (machos)
aadd(aReg,{"ian","C",7,0}) // Identifica‡Æo (fˆmea)
aadd(aReg,{"iaa","C",2,0}) // Ano (fˆmea)
aadd(aReg,{"iaf","C",4,0}) // fazenda (fˆmea)
aadd(aReg,{"ident","C",15,0}) // Identifica‡Æo ian+' '+iaa+' '+iaf
aadd(aReg,{"apelido","C",13,0}) // Apelido do animal
aadd(aReg,{"registro","C",13,0}) // Registro do animal
aadd(aReg,{"tatuagem","C",10,0}) // Tatuagem do animal
aadd(aReg,{"dnasc","D",8,0}) // Data de nascimento do animal
aadd(aReg,{"sexo","C",1,0}) // Sexo do animal
aadd(aReg,{"pelagem","C",1,0}) // C¢digo da Pelagem do animal
aadd(aReg,{"codgs","C",4,0}) // C¢d. do grau de sangue do animal
aadd(aReg,{"pai","C",13,0}) // Identifica‡Æo do Pai
aadd(aReg,{"i_mae_n","C",7,0}) // Tat da mÆe natural
aadd(aReg,{"i_mae_a","C",2,0}) // Ano de nasc da mÆe natural
aadd(aReg,{"i_mae_f","C",4,0}) // Faz de nasc da mÆe natural
aadd(aReg,{"nome","C",50,0}) // Nome do animal (para PP)
aadd(aReg,{"classif","C",5,0}) // Classifica‡Æo dentro da ra‡a
aadd(aReg,{"regdef","C",1,0}) // Possui registro definitivo?
aadd(aReg,{"aprestec","C",1,0}) // Foi apresentado ao t‚cnico
aadd(aReg,{"tatpai","C",6,0}) // Tatuagem do pai do animal
aadd(aReg,{"nomepai","C",50,0}) // Nome do pai do animal
aadd(aReg,{"regpai","C",10,0}) // Registro do pai
aadd(aReg,{"tatmae","C",6,0}) // Tatuagem da mÆe
aadd(aReg,{"nomemae","C",50,0}) // Nome da mÆe
aadd(aReg,{"regmae","C",10,0}) // Registro da mÆe
aadd(aReg,{"idavom","C",10,0}) // Identifica‡Æo do av“ materno
aadd(aReg,{"nomeavom","C",50,0}) // Nome do av“ materno
aadd(aReg,{"regavom","C",10,0}) // Registro do av“ materno
aadd(aReg,{"gruporac","C",3,0}) // grupo racial (PO,PC,PPC,BRA)
aadd(aReg,{"baixa","C",3,0}) // C¢digo para baixa do animal
aadd(aReg,{"inform","M",10,0}) // Campo para outras informa‡”es
// Arquivo de Ocorrˆncias
aadd(aOcor,{"ian","C",7,0}) // Tatuagem do animal
aadd(aOcor,{"iaa","C",2,0}) // Ano de nascimento
aadd(aOcor,{"iaf","C",4,0}) // Fazenda de nascimento
aadd(aOcor,{"data","D",8,0}) // Data da ocorrˆncia
aadd(aOcor,{"codcom","C",3,0}) // C¢digo de coment rio
aadd(aOcor,{"desccom","C",80,0}) // Descri‡Æo do Coment rio para complementar
aadd(aOcor,{"tipo","C",1,0}) // Tipo V=Vaca, P=Produto, T=Touro
aadd(aOcor,{"classoc","C",1,0}) // Classifica‡Æo da ocorrˆncia
aadd(aOcor,{"safra","C",3,0}) // Safra de cadastramento do animal
aadd(aOcor,{"af","C",4,0}) // Fazenda de localiza‡Æo
aadd(aOcor,{"codcat","C",6,0}) // Categoria
aadd(aOcor,{"ar","C",3,0}) // Retiro
aadd(aOcor,{"al","C",3,0}) // Lote
// Fatores de pondera‡Æo indice desmama das ra‡as Hereford/Braford
aadd(aFPdHb,5.2)
aadd(aFPdHb,1.0)
aadd(aFPdHb,1.9)
aadd(aFPdHb,1.9)
// Fatores de pondera‡Æo indice desmama da ra‡a Nelore
aadd(aFPdNe,6.0)
aadd(aFPdNe,0.8)
aadd(aFPdNe,1.6)
aadd(aFPdNe,1.6)
// Fatores de pondera‡Æo indice desmama das ra‡as Angus/Brangus
aadd(aFPdAb,5.0)
aadd(aFPdAb,1.0)
aadd(aFPdAb,2.3)
aadd(aFPdAb,1.7)
// Fatores de pondera‡Æo indice final das ra‡as Hereford/Braford
aadd(aFPfHb,2.5)
aadd(aFPfHb,0.4)
aadd(aFPfHb,0.8)
aadd(aFPfHb,0.8)
aadd(aFPfHb,2.5)
aadd(aFPfHb,0.4)
aadd(aFPfHb,0.8)
aadd(aFPfHb,0.8)
aadd(aFPfHb,1.0)
// Fatores de pondera‡Æo indice final da ra‡a Nelore
aadd(aFPfNe,2.3)
aadd(aFPfNe,0.4)
aadd(aFPfNe,0.8)
aadd(aFPfNe,0.8)
aadd(aFPfNe,2.3)
aadd(aFPfNe,0.4)
aadd(aFPfNe,0.8)
aadd(aFPfNe,0.8)
aadd(aFPfNe,1.4)
// Fatores de pondera‡Æo indice final das ra‡as Angus/Brangus
aadd(aFPfAb,2.25)
aadd(aFPfAb,0.45)
aadd(aFPfAb,1.05)
aadd(aFPfAb,0.75)
aadd(aFPfAb,2.25)
aadd(aFPfAb,0.45)
aadd(aFPfAb,1.05)
aadd(aFPfAb,0.75)
aadd(aFPfAb,1.0)
save screen
// Ambiente
set cursor off
set date british
set scoreboard off
set deleted on
set wrap on
set message to 24
set escape off
set confirm off
set exclusive on
set key K_F10 to fCalculadora() // chama a calculadora
set key K_ALT_F8 to pIndexa() // indexa os arquivos
set key K_F9 to sobr() // chama o sobre
// set key asc("?") to comc() // Chama o Como ...
// set key K_F7 to stat() // Chama o Status
// set key K_SH_F9 to relo() // Ativa o rel¢gio
set key K_SH_F10 to fCalculadora() // Ativa a calculadora
// set key K_SH_F8 to scro() // Ativa/Desativa SOM
// Novo Controle do Cursor
public bSavIns := setkey( K_INS, { || dbb4() } ) // dbb4() - verifica o estado do cursor
// setcursor( iif( ReadInsert(), SC_INSERT, SC_NORMAL ) )
normal=[n+/w,w+/n]
realce:=[gr+/w,w+/n]
inverso=[w+/b,n+/w]
inverso2=normal
piscando=[w+*/r]
senha=[n/w,n/n]
dbbr=[n+/w,w+/n,r/w,r/n]
calc=[w+/r]
cCorInv="w+/n"
cCorGet="n+/w,w+/n"
corbarra:="gr+/w"
alerta:="w+/r"
corbarrap:="w*+/g"
corbarraina:="w+/g"
cdesk:="n+/bg"
cCorMens:=normal
cDirTrab:="\conpec"
cDirTmp:="\conpec\tmp"
cDirRel:=""; cDirBol:=""; cDirAva:=""; cDirUsom:=""; cDirAvg:=""
cDirImp:=""; cDirExp:=""; cDirPad:=""; cDirRelPad:=""; cDirResPad:=""
cDirBackPad:=""; cDirCeip:=""; cDirCeipImp:=""; cDirCeipExp:=""
setcolor(inverso)
cls
fConfig(); config->SOM:=FALSE
// use config alias config new
public nLinhCalc:=config->LINHACALCU, nColuCalc:=config->COLUNACALC, nDeciCalc:=config->DECIMALCAL,;
lScan:=FALSE
/* pRede() // Acessa servidor - REVISAR AQUI ... */
if subs(upper(pSenha),1,3) = "/IX" .or. subs(upper(pAjud),1,3) = "/IX"
if select("config")==0
dbusearea(.t.,,"\conpec\config","config")
endif
dbusearea(.t.,,"\conpec\help")
dbcreateindex("\conpec\help","modulo",{|| modulo})
if !empty(pSenha)
cEmp:=if(subs(pSenha,4,1)==":",upper(subs(pSenha,5,4))," ")
cEmp:=space(4-len(rtrim(cEmp)))+rtrim(cEmp)
elseif !empty(pAjuda).and.empty(pSenha)
cEmp:=if(subs(pAjuda,4,1)==":",upper(subs(pAjuda,5,4))," ")
endif
pReindTot(cEmp,True) // Faz indexa‡„o geral
restore screen
quit
endif
pAbreHelp() // Base de ajuda
// Seguran‡a contra altera‡Æo manual no config
/*
if empty(config->CONFIG)
cls
qout([Acesso negado ...])
qout([ Ligue (051)333-2483])
return
endif
*/
/*
// Seguranca
cCodiLido:=[]
for z=1 to len(alltrim(config->MENSAGEM))
cCodiLido+=chr(asc(substr(config->MENSAGEM,z,1))-159)
next
if cCodiLido#"WGRXY"
// hlock(cCodiLido) // Do config atual
endif
*/
// Detecta cor
if config->CORATUAL
normal=[n+/w,w+/n]
realce:=[gr+/w,w+/n]
inverso=[w+/b,n+/w]
inverso2=normal
piscando=[w+*/r]
senha=[n/w,w/n]
dbbr=[n+/w,w+/n,r/w,r/n]
calc=[w+/r]
cCorInv="w+/n"
cCorGet="n+/w,w+/n"
corbarra:="gr+/w"
alerta:="w+/r"
corbarrap:="w*+/g"
corbarraina:="w+/g"
cdesk:="n+/bg"
cCorMens:=normal
else
normal=[n/w,w+/n]
realce:=[gr+/w,w+/n]
inverso=[w+/n,n+/w]
inverso2=normal
piscando=[N*/W]
senha=[N/W,W/N]
dbbr=[n+/w,w+/n,r/w,r/n]
calc=[n/w]
cCorInv="w/n"
cCorGet="n/w,w+/n"
corbarra:=[w+/w]
alerta:="w+/n"
corbarrap:="n*+/w"
corbarraina:="n/w"
cdesk:="w/n"
cCorMens:="n+/w,w+/n"
endif
* gr+ - amarelo
* b - azul
* w - branco
* bg - ciano
* rb - magenta
* gr - marrom
* n - preto
* g - verde
* r - vermelho
// Detecta impressora
lOfic:=if(upper(pSenha)=[OI].or.upper(pAjud)=[OI],TRUE,FALSE)
if config->IMPRESSORA==[EPSON ]
paisagem := ""
retrato := ""
comprimido := "[COMPRIMIDO]" // chr(15)
ImpNormal := "[NORMAL]" // chr(18)+chr(20)+chr(27)+chr(80)
c12cpCome := "[NORMAL]" // chr(27)+chr(77) // Inicia 12 cpi Normal
expandido := "[EXPANDIDO]" // chr(14)
reset := chr(27)+chr(64)
cSetPc850 := ""
papel_def := ""
papel_car := ""
papel_ofi := ""
papel_a4 := ""
salto_on := ""
salto_off := ""
formato := ""
nlinret := 60
nlinpai := 60
cDoubStri := "[NEGRITO]" // chr(27)+chr(71) // Inicia Double Strike
cDoubStrf := "[CANCELANEGRITO]" // chr(27)+chr(72) // Finaliza Double Strike
cInicSubl := chr(27)+chr(45)+"1" // Inicia Sublinhado
cFinaSubl := chr(27)+chr(45)+"0" // Finaliza Sublinhado
cNegritoi := "[NEGRITO]" // chr(27)+chr(71) // Inicia Negrito
cNegritof := "[CANCELANEGRITO]" // chr(27)+chr(72) // Finaliza Negrito
elseif config->IMPRESSORA==[LASER ]
paisagem := chr(027)+chr(038)+chr(108)+chr(049)+chr(079)
retrato := chr(027)+chr(038)+chr(108)+chr(048)+chr(079)
comprimido := "[COMPRIMIDO]" // chr(027)+chr(040)+chr(115)+"20"+chr(072)
ImpNormal := "[NORMAL]" // chr(027)+chr(040)+chr(115)+"10"+chr(072)
c12cpCome := "[NORMAL]" // chr(027)+chr(038)+chr(107)+chr(052)+chr(083)
expandido := "[EXPANDIDO]" // chr(027)+chr(040)+chr(115)+"5"+chr(072)
reset := chr(027)+chr(069)
cSetPc850 := chr(027)+chr(040)+chr(049)+chr(050)+chr(085)
papel_def := chr(027)+chr(038)+chr(108)+chr(048)+chr(065)
papel_car := chr(027)+chr(038)+chr(108)+chr(050)+chr(065)
papel_ofi := chr(027)+chr(038)+chr(108)+chr(051)+chr(065)
papel_a4 := chr(027)+chr(038)+chr(108)+chr(050)+chr(054)+chr(065)
salto_on := chr(027)+chr(038)+chr(108)+chr(049)+chr(076)
salto_off := chr(027)+chr(038)+chr(108)+chr(048)+chr(076)
formato := chr(027)+chr(040)+chr(115)+chr(051)+chr(084)
nlinret := 60
nlinpai := 45
cDoubStri := "[NEGRITO]" // chr(027)+chr(040)+chr(115)+chr(052)+chr(066) // Inicia Double Strike
cDoubStrf := "[CANCELANEGRITO]" // chr(027)+chr(040)+chr(115)+chr(048)+chr(066) // Finaliza Double Strike
cInicSubl := chr(27)+chr(38)+chr(100)+chr(048)+chr(068) // Inicia Sublinhado
cFinaSubl := chr(27)+chr(38)+chr(100)+chr(064) // Finaliza Sublinhado
cNegritoi := "[NEGRITO]" // chr(027)+chr(040)+chr(115)+chr(055)+chr(066) // Inicia Negrito
cNegritof := "[CANCELANEGRITO]" // chr(027)+chr(040)+chr(115)+chr(048)+chr(066) // Finaliza Negrito
elseif config->IMPRESSORA==[TINTA ] // copiar convencao de variaveis ...
paisagem := chr(027)+chr(038)+chr(108)+chr(049)+chr(079)
retrato := chr(027)+chr(038)+chr(108)+chr(048)+chr(079)
comprimido := "[COMPRIMIDO]" // chr(027)+chr(040)+chr(115)+"20"+chr(072)
ImpNormal := "[NORMAL]" // chr(027)+chr(040)+chr(115)+"10"+chr(072)
c12cpCome := "[NORMAL]" // chr(027)+chr(038)+chr(107)+chr(052)+chr(083)
expandido := "[EXPANDIDO]" // chr(027)+chr(040)+chr(115)+"5"+chr(072)
reset := chr(027)+chr(069)
cSetPc850 := chr(027)+chr(040)+chr(049)+chr(050)+chr(085)
papel_def := chr(027)+chr(038)+chr(108)+chr(048)+chr(065)
papel_car := chr(027)+chr(038)+chr(108)+chr(050)+chr(065)
papel_ofi := chr(027)+chr(038)+chr(108)+chr(051)+chr(065)
papel_a4 := chr(027)+chr(038)+chr(108)+chr(050)+chr(054)+chr(065)
salto_on := chr(027)+chr(038)+chr(108)+chr(049)+chr(076)
salto_off := chr(027)+chr(038)+chr(108)+chr(048)+chr(076)
formato := chr(027)+chr(040)+chr(115)+chr(051)+chr(084)
nlinret := 60
nlinpai := 45
cDoubStri := "[NEGRITO]" // chr(027)+chr(040)+chr(115)+chr(052)+chr(066) // Inicia Double Strike
cDoubStrf := "[CANCELANEGRITO]" // chr(027)+chr(040)+chr(115)+chr(048)+chr(066) // Finaliza Double Strike
cInicSubl := chr(27)+chr(38)+chr(100)+chr(048)+chr(068) // Inicia Sublinhado
cFinaSubl := chr(27)+chr(38)+chr(100)+chr(064) // Finaliza Sublinhado
cNegritoi := "[NEGRITO]" // chr(027)+chr(040)+chr(115)+chr(055)+chr(066) // Inicia Negrito
cNegritof := "[CANCELANEGRITO]" // chr(027)+chr(040)+chr(115)+chr(048)+chr(066) // Finaliza Negrito
endif
// cSenhLida:=[]
// for z=1 to len(alltrim(config->CONFIG))
// cSenhLida+=chr(asc(substr(config->CONFIG,z,1))-159)
// next
/*
if pcount()=1
cSenh=upper(pSenha)
if cSenh=cSenhLida
elseif pSenha=[/?]
pSenh()
keyboard chr(4)+space(100)+chr(4)+space(100)+chr(4)+space(100)+chr(24)+space(100)+chr(24)+space(100)+chr(24)+space(100)+chr(13)
else
pSenh()
endif
elseif pcount()=2
cSenh=upper(pSenha)
if cSenh=cSenhLida.and.pAjud=[/?]
keyboard chr(4)+space(100)+chr(4)+space(100)+chr(4)+space(100)+chr(24)+space(100)+chr(24)+space(100)+chr(24)+space(100)+chr(13)
elseif cSenh#cSenhLida.and.pAjud=[/?]
pSenh()
keyboard chr(4)+space(100)+chr(4)+space(100)+chr(4)+space(100)+chr(24)+space(100)+chr(24)+space(100)+chr(24)+space(100)+chr(13)
elseif cSenh#cSenhLida.and.pAjud#[/?]
pSenh()
endif
else
pSenh()
endif
*/
nColuAtua := 1
pCfg()
nAltBases:=0; lBackup:=FALSE; lMensBack:=FALSE; lAlterado:=FALSE
aDire:=directory("\conpec\*.*","D")
if ascan(aDire,{|aVal| aVal[1]=="TOUROS"})==0
!md \conpec\touros
endif
aStrBase:={"ANG_BRAN","BLONDE","CHA_CANC","DEV_BRAV","HER_BRAF","NELORE",;
"SHORTHOR","STA_GERT","OUTROS","GERAL"}
if !file("\conpec\touros\touros.dbf")
// Cria arquivo de touros caso ela ainda nÆo exista
dbcreate( "\conpec\touros\touros", aTouros)
dbusearea(.t.,, "\conpec\touros\touros", "tmp")
tmp->(dbcriaindice("\conpec\touros\tou1", "fLtrim(MESTRE)", "EMPTY(AC).OR.SUBS(AC,1,1)='O'"))
tmp->(dbcreateindex("\conpec\touros\tou2", "I_ANI", {|| I_ANI}))
tmp->(dbcreateindex("\conpec\touros\tou3", "I_APE", {|| I_APE}))
tmp->(dbcreateindex("\conpec\touros\tou4", "I_MAE_N+I_MAE_A+I_MAE_F", {|| I_MAE_N+I_MAE_A+I_MAE_F}))
tmp->(dbcreateindex("\conpec\touros\tou5", "I_PAI", {|| I_PAI}))
tmp->(dbcreateindex("\conpec\touros\tou6", "MESTRE", {|| MESTRE}))
tmp->(dbcreateindex("\conpec\touros\tou7", "I_REG", {|| I_REG}))
tmp->(dbcreateindex("\conpec\touros\tou8", "I_DIG", {|| I_DIG}))
tmp->(dbcriaindice("\conpec\touros\tou14", "MESTRE", "EMPTY(AC).OR.SUBS(AC,1,1)='O'"))
tmp->(dbclosearea())
endif
if select("tou")#0; tou->(dbclosearea()); endif
dbusearea(.t.,,"\conpec\touros\touros","tou")
tou->(fVerBases("\conpec\touros\touros","aTouros"," "))
aDireTou:=directory("\conpec\touros\*.*","D")
for x=1 to len(aStrBase)
if aStrBase[x]#"GERAL"
if ascan(aDireTou,{|aVal| aVal[1]==aStrBase[x]})==0
cCriaDirt:="\conpec\touros\"+aStrBase[x]
!md &cCriaDirt.
endif
cDirTou:="\conpec\touros\"+aStrBase[x]+"\"
if !file(cDirTou+"touros.dbf")
dbcreate(cDirTou+"touros", aTouros)
dbusearea(.t.,,cDirTou+"touros", "tmp")
tmp->(dbcriaindice(cDirTou+"tou1","fLtrim(MESTRE)", "EMPTY(AC).OR.SUBS(AC,1,1)='O'"))
tmp->(dbcreateindex(cDirTou+"tou2","I_ANI", {|| I_ANI}))
tmp->(dbcreateindex(cDirTou+"tou3","I_APE", {|| I_APE}))
tmp->(dbcreateindex(cDirTou+"tou4","I_MAE_N+I_MAE_A+I_MAE_F", {|| I_MAE_N+I_MAE_A+I_MAE_F}))
tmp->(dbcreateindex(cDirTou+"tou5","I_PAI", {|| I_PAI}))
tmp->(dbcreateindex(cDirTou+"tou6","MESTRE", {|| MESTRE}))
tmp->(dbcreateindex(cDirTou+"tou7","I_REG", {|| I_REG}))
tmp->(dbcreateindex(cDirTou+"tou8","I_DIG", {|| I_DIG}))
tmp->(dbcriaindice(cDirTou+"tou14","MESTRE", "EMPTY(AC).OR.SUBS(AC,1,1)='O'"))
tmp->(dbclosearea())
endif
endif
next
if !file("\conpec\touros\graus.dbf")
// arquivo com os c¢digos de grau de sangue gerados pelos sistema
dbcreate( "\conpec\touros\graus", aGrSangue)
dbusearea(.t.,, "\conpec\touros\graus", "tmp")
tmp->(dbcreateindex("\conpec\touros\gra1","CODGS", {|| CODGS},TRUE))
tmp->(dbcreateindex("\conpec\touros\gra2","DESCRICAO", {|| DESCRICAO}))
tmp->(dbcreateindex("\conpec\touros\gra3","R1+str(G1,6,4)+R2+str(G2,6,4)+R3+str(G3,6,4)+R4+str(G4,6,4)+R5+str(G5,6,4)+R6+str(G6,6,4)",;
{|| R1+str(G1,6,4)+R2+str(G2,6,4)+R3+str(G3,6,4)+R4+str(G4,6,4)+R5+str(G5,6,4)+R6+str(G6,6,4)}))
tmp->(dbclosearea())
endif
aDireTou:=directory("\conpec\touros\*.*","D")
for x=1 to len(aStrBase)
if aStrBase[x]#"GERAL"
if ascan(aDireTou,{|aVal| aVal[1]==aStrBase[x]})==0
cCriaDirt:="\conpec\touros\"+aStrBase[x]
!md &cCriaDirt.
endif
cDirTou:="\conpec\touros\"+aStrBase[x]+"\"
if !file(cDirTou+"graus.dbf")
dbcreate(cDirTou+"graus", aGrSangue)
dbusearea(.t.,,cDirTou+"graus", "tmp")
tmp->(dbcreateindex(cDirTou+"gra1","CODGS",{|| CODGS},TRUE))
tmp->(dbcreateindex(cDirTou+"gra2","DESCRICAO",{|| DESCRICAO}))
tmp->(dbcreateindex(cDirTou+"gra3","R1+str(G1,6,4)+R2+str(G2,6,4)+R3+str(G3,6,4)+R4+str(G4,6,4)+R5+str(G5,6,4)+R6+str(G6,6,4)",;
{|| R1+str(G1,6,4)+R2+str(G2,6,4)+R3+str(G3,6,4)+R4+str(G4,6,4)+R5+str(G5,6,4)+R6+str(G6,6,4)}))
tmp->(dbclosearea())
endif
endif
next
if select("graus")#0; grau->(dbclosearea()); endif
dbusearea(.t.,,"\conpec\touros\graus","graus")
graus->(fVerBases("\conpec\touros\graus","aGrSangue"," "))
if !file("\conpec\usuario.dbf")
dbcreate("\conpec\usuario", aUsuar)
endif
keyboard ""
if select("usuario")#0; usuario->(dbclosearea()); endif
dbusearea(.t.,,"\conpec\usuario","usuario")
usuario->(fVerBases("\conpec\usuario","aUsuar"," "))
if select("rac")#0
rac->(dbclosearea())
endi
dbusearea(.t.,, "racas" ,"rac")
if !file("ntx_rac1")
rac->( dbcreateindex("ntx_rac1", "DESCRICAO", {|| DESCRICAO}))
endif
if !file("ntx_rac2")
rac->(dbcreateindex("ntx_rac2", "CODIGO", {|| CODIGO}))
endif
rac->(dbclearindex())
rac->(dbsetindex("ntx_rac1"))
rac->(dbsetindex("ntx_rac2"))
// Gera o arquivo das impressoras para o PRWIN
// !\CONPEC\PRWIN SIL:LISTA
// cRunCmd:="cmd /c START /max PRWIN SIL:LISTA"
// lValor:=SWPRUNCMD(cRunCmd,0,"","")
cFazenda:=" "
dDataInf:=fDataAtual(dDataInf)
while TRUE
keyboard chr( K_ENTER ) + chr( K_DOWN ) + chr( K_ENTER )
pConPec2(nColuAtua, FALSE)
// keyboard chr(K_DOWN)
// nColuAtua := 1
enddo
return NIL
static procedure dbb4()
// dbb4.prg
// instoggle( )
// uso da dbbr( )
// dbb4()
if readinsert()
readinsert( FALSE )
setcursor( SC_NORMAL )
else
readinsert( TRUE )
setcursor( SC_INSERT )
endif
return
// proc ErrorSys()
// ErrorBlock({|e| DefError(e)})
// return
Obrigado pela ajuda.