Professional Documents
Culture Documents
Part 1
Custom-Folder
31/03/2020 1
Project COVID19 Part 1 Custom-Folder
31/03/2020 2
Project COVID19 Part 1 Analysis
Analysis Chart
FMPAIS1 FMREGS1
ID ID
CO DIG O F E C HA
NOMBRE P AIS _ ID
DIA1_EPIDEM CASOS
...
31/03/2020 3
Project COVID19 Part 1 Analysis
COVID19.wda
Directory F:\WDT2\CV19\COVID19.ana\
Data File Directory Application Directory
31/03/2020 4
Project COVID19 Part 1 Analysis
Memo Compression
Read/Write Log *¹
exceeding 2GB
Memo Encrypt.
Index Encrypt.
Data Encrypt.
Automatic ID
Abbreviation
Generation #
Record Size
Write Log *¹
Replication
Security *¹
Spaces *¹
Type
FMPAIS1 3 83 HFSQL
Classic
FMREGS1 5 51 HFSQL
Classic
¹ Spaces * : Complete strings with spaces Write Log * : Logging write operations
Read/Write Log * : Logging read/write operations Security * : High Security Mode
Main Information
FMPAIS1 FMPAIS1
Default Value
Unique Key
Caption Type
Direction
Size
31/03/2020 5
Project COVID19 Part 1 Files and Items
Main Information
FMREGS1 FMREGS1
Default Value
Unique Key
Caption Type
Direction
Size
ID ID Automatic Identifier (8
bytes)
FECHA FECHA Date (yyyymmdd)
PAIS_ID PAIS_ID 8-byte integer 0
CASOS CASOS 4-byte integer 0
FALLEC FALLEC 4-byte integer 0
DIA_EPIDEM DIA_EPIDEM 4-byte integer 0
SEM_EPIDEM SEM_EPIDEM 4-byte integer 0
PAISID_FECHA PAIS_ID + FECHA Composite Key: 16
PAIS_ID+FECHA
31/03/2020 6
Project COVID19 Part 2 Table of Contents
Part 2
Table of Contents
31/03/2020 7
Project COVID19 Part 2 Table of Contents
Table of Contents
Project COVID19
2 Custom-Folder Part 1
2 List of elements in the
3 Analysis
3 Chart
4 Main Information
4 Item Dictionary
4 Files and Items
5 FMPAIS1
6 FMREGS1
31/03/2020 8
Project COVID19 WIN_MENU1
Click BTN_CREAR_BASESDATOS
HCreationIfNotFound("*")
HModifyStructure("*")
Click BTN_IMPORTAR
Open(WIN_IMPORT1)
Click BTN_DATOS1
Open(WIN_REGISTROS1)
Click BTN_DESCARGAR
sUrl is string
//sUrl="https://www.ecdc.europa.eu/sites/default/files/documents/COVID-19-geographic-disbtr
ibution-worldwide-2020-03-27.
xlsx"
sUrl=
"https://www.ecdc.europa.eu/en/publications-data/download-todays-data-geographic-distributi
on-covid-19-
cases-worldwide"
ShellExecute(sUrl)
Click BTN_EXIT
Close()
Click BTN_VACIAR_TABLAS
IF YesNo("Vaciar las tablas de Paises y Registros?")=Yes THEN
HDeleteAll(FMPAIS1)
HDeleteAll(FMREGS1)
Info("Tabla de Paises y Registros de Casos borrados","Los Paises y Registros se
volveran a importar desde el inicio")
ELSE
ToastDisplay("Operacion Cancelada")
END
31/03/2020 1
Project COVID19 WIN_IMPORT1
Click BTN_GET_PATHFILE
sFile is string
sFile = fSelect("", "", "Seleccionar un Fichero Excel...", "All the files (*.*)" + TAB +
"*.*", "*.*")
IF sFile<>"" THEN
EDT_PATHFILE=sFile
END
Click BTN_IMPORTAR
nIdPais is 8-byte int
nLin is int
k is int
nRows is int
sCod is string
dFecha is Date
nRows=TableCount(TABLE_REGS)
PROGBAR_PAISES..MaxValue=nRows
TraceStart(trTopMost)
// Controlar Paises
FOR nLin=1 TO nRows
IF TABLE_REGS[nLin].COL_PAIS_ID=0 THEN
sCod=Upper(NoSpace(TABLE_REGS[nLin].COL_PAIS_CODIGO))
PROGBAR_PAISES=nLin
nIdPais=0
PROGBAR_REGISTROS_EXISTEN..MaxValue=nRows
FOR nLin=1 TO nRows
PROGBAR_REGISTROS_EXISTEN=nLin
dFecha=TABLE_REGS[nLin].COL_FECHA
nIdPais=TABLE_REGS[nLin].COL_PAIS_ID
IF HReadSeekFirst(FMREGS1,PAISID_FECHA,[nIdPais,dFecha]) THEN
TABLE_REGS[nLin].COL_REG_ID=FMREGS1.ID
END
END
31/03/2020 1
Project COVID19 WIN_IMPORT1
Trace("Registros Nuevos")
Trace("----------------")
PROGBAR_REGISTROS_NUEVOS..MaxValue=nRows
FOR nLin=1 TO nRows
PROGBAR_REGISTROS_NUEVOS=nRows
IF TABLE_REGS[nLin].COL_REG_ID=0 THEN
HReset(FMREGS1)
FMREGS1.PAIS_ID=TABLE_REGS[nLin].COL_PAIS_ID
FMREGS1.FECHA=TABLE_REGS[nLin].COL_FECHA
FMREGS1.CASOS=TABLE_REGS[nLin].COL_CASOS
FMREGS1.FALLEC=TABLE_REGS[nLin].COL_FALLECIDOS
HAdd(FMREGS1)
Trace(FMREGS1.PAIS_ID,FMREGS1.FECHA)
END
END
IF HExecuteQuery(QRY_FMREGS1_PRIMER_DIA_PAIS,hQueryDefault) THEN
PROGBAR_CALCULO_DIA1..MaxValue=HNbRec(QRY_FMREGS1_PRIMER_DIA_PAIS)
PROGBAR_CALCULO_DIA1=0
FOR EACH QRY_FMREGS1_PRIMER_DIA_PAIS
nIdPais=QRY_FMREGS1_PRIMER_DIA_PAIS.PAIS_ID
PROGBAR_CALCULO_DIA1++
IF HReadSeekFirst(FMPAIS1,ID,nIdPais) THEN
IF FMPAIS1.DIA1_EPIDEM="" THEN
FMPAIS1.DIA1_EPIDEM=QRY_FMREGS1_PRIMER_DIA_PAIS.DIA1_EPIDEMIA
HModify(FMPAIS1)
END
END
END
END
TraceEnd()
Click BTN_IMPORTAR_XLS
sPathFile is string
nLin is int
xlsFich is xlsDocument
nRows is int
l is int
sPathFile=EDT_PATHFILE
IF fFileExist(sPathFile) THEN
xlsFich=xlsOpen(sPathFile)
IF ErrorOccurred=True THEN RETURN
nRows=xlsNbRow(xlsFich)
//nCols=tablecount(TABLE_REGS,toColumn)
31/03/2020 2
Project COVID19 WIN_REGISTROS1
//COMBO_FMPAIS2=159 // spain
Click BTN_REFRESH1
nIdPais is 8-byte int
nLin is int
dFecDia1 is Date
nIdPais=COMBO_FMPAIS2
IF HReadSeekFirst(FMPAIS1,ID,nIdPais) THEN
dFecDia1=FMPAIS1.DIA1_EPIDEM
EDT_PAIS_CODIGO=FMPAIS1.CODIGO
EDT_PAIS_NOMBRE=FMPAIS1.NOMBRE
EDT_PAIS_DIA1EPIDEMIA=dFecDia1
ELSE
EDT_PAIS_CODIGO=""
EDT_PAIS_NOMBRE=""
EDT_PAIS_DIA1EPIDEMIA=""
nIdPais=0
END
IF nIdPais=0 THEN
Info("FALTA SELECCIONAR PAIS")
RETURN
END
TableDeleteAll(TABLE_REGS)
IF HExecuteQuery(QRY_FMREGS1,hQueryDefault,nIdPais,dFecDia1) THEN
FOR EACH QRY_FMREGS1
nLin=TableAddLine(TABLE_REGS)
TABLE_REGS[nLin].COL_ID=QRY_FMREGS1.ID
TABLE_REGS[nLin].COL_PAIS_ID=QRY_FMREGS1.PAIS_ID
TABLE_REGS[nLin].COL_FECHA=QRY_FMREGS1.FECHA
TABLE_REGS[nLin].COL_CASOS=QRY_FMREGS1.CASOS
TABLE_REGS[nLin].COL_FALLECIDOS=QRY_FMREGS1.FALLEC
END
END
floc_CalcularTabla()
Click BTN_NoName2
nId is 8-byte int
nLin is int
Click BTN_GRAFICOS
31/03/2020 1
Project COVID19 WIN_REGISTROS1
Open(WIN_GRAFICOS2)
rFactorCrecimiento is real
nRows=TableCount(TABLE_REGS)
// Linea 1ª
nSumaCasos=TABLE_REGS[1].COL_CASOS
nSumaFallecidos=TABLE_REGS[1].COL_FALLECIDOS
TABLE_REGS[1].COL_SUM_CASOS=nSumaCasos
TABLE_REGS[1].COL_SUM_FALLECIDOS=nSumaFallecidos
TABLE_REGS[1].COL_DIA=1
FOR nLin=2 TO nRows
TABLE_REGS[nLin].COL_DIA=nLin
nSumaCasos+=TABLE_REGS[nLin].COL_CASOS
TABLE_REGS[nLin].COL_SUM_CASOS=nSumaCasos
TABLE_REGS[nLin].COL_DELTA_CASOS=TABLE_REGS[nLin].COL_CASOS-TABLE_REGS[nLin-1].COL_
CASOS
rFactorCrecimiento=TABLE_REGS[nLin].COL_SUM_CASOS/TABLE_REGS[nLin-1].COL_SUM_CASOS
TABLE_REGS[nLin].COL_FAC_CRE=rFactorCrecimiento
TABLE_REGS[nLin].COL_GRAF1=rFactorCrecimiento
nSumaFallecidos+=TABLE_REGS[nLin].COL_FALLECIDOS
TABLE_REGS[nLin].COL_SUM_FALLECIDOS=nSumaFallecidos
END
EDT_TOT_CASOS=nSumaCasos
EDT_TOT_FALLECIDOS=nSumaFallecidos
31/03/2020 2
Project COVID19 WIN_GRAFICOS2
nLin is int
nRows is int
rDato is real
grDeleteAll(CHART_GRAF1)
nRows=TableCount(WIN_REGISTROS1.TABLE_REGS)
FOR nLin=1 TO nRows
SWITCH RADIO_DATO
CASE 1 // Casos Dia
rDato=WIN_REGISTROS1.TABLE_REGS[nLin].COL_CASOS
END
grAddData(CHART_GRAF1,1,nLin,rDato)
grCategoryLabel(CHART_GRAF1,nLin,StringBuild("%1º",nLin))
END
grLineThickness(CHART_GRAF1,grAllSeries,5)
grDraw(CHART_GRAF1)
31/03/2020 1
Project COVID19 QRY_FMPAIS1
31/03/2020 1
Project COVID19 QRY_FMREGS1
31/03/2020 1
Project COVID19 QRY_FMREGS1_PRIMER_DIA_PAIS
31/03/2020 1