foxcharts
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -34,3 +34,6 @@ log.txt
|
|||||||
Thumbs.db
|
Thumbs.db
|
||||||
Desktop.ini
|
Desktop.ini
|
||||||
bash.exe.stackdump
|
bash.exe.stackdump
|
||||||
|
|
||||||
|
# Setari locale Claude Code (specifice masinii, nu proiectului)
|
||||||
|
.claude/
|
||||||
|
|||||||
435
programe/export_database.prg
Normal file
435
programe/export_database.prg
Normal file
@@ -0,0 +1,435 @@
|
|||||||
|
*-- Program pentru exportul listei de view-uri din Oracle in XLSX
|
||||||
|
*-- Foloseste ExcelXML pentru crearea fisierelor Excel fara automatizare
|
||||||
|
*-- Presupune ca exista gnHandle (connection handle) si goExecutor cu metoda oExecuta
|
||||||
|
Local lcOutputFile, lcOutputPath, llSucces
|
||||||
|
|
||||||
|
llSucces = .F.
|
||||||
|
lcOutputPath = GETDIR("C:\","Alegeti directorul pentru salvarea exportului","Director salvare export",64)
|
||||||
|
IF EMPTY(m.lcOutputPath)
|
||||||
|
RETURN m.llSucces
|
||||||
|
ENDIF
|
||||||
|
lcOutputFile = m.lcOutputPath + "roa_export.xlsx"
|
||||||
|
llSucces = ExportOracleViewsToXLSX("vact,vbal,vbalana,vbalanta_parteneri,vireg_parteneri,vjv2013,vjc2013", m.lcOutputFile)
|
||||||
|
|
||||||
|
RETURN m.llSucces
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
*-- Export direct in XLSX folosind ExcelXML
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
Procedure ExportOracleViewsToXLSX
|
||||||
|
Parameters pcCursorName, pcOutputFile
|
||||||
|
Local lcOutputFile, llSuccess, loExcelXML
|
||||||
|
Local lnRecCount, lcLog, lcLogLevel
|
||||||
|
|
||||||
|
*-- Initializeaza log-ul
|
||||||
|
lcLog = ""
|
||||||
|
lcLogLevel = "INFO"
|
||||||
|
|
||||||
|
*-- Verifica daca cursorul exista sau foloseste lista existenta
|
||||||
|
If Empty(pcCursorName)
|
||||||
|
pcCursorName = "curViews" && Presupune ca ai deja o lista de view-uri
|
||||||
|
Endif
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Verificare cursor: " + pcCursorName + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
If !Used(pcCursorName)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] EROARE: Cursorul '" + pcCursorName + "' nu exista!" + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Asigura-te ca ai o lista de view-uri incarcata." + Chr(13) + Chr(10)
|
||||||
|
lcLogLevel = "ERROR"
|
||||||
|
MessageBox(lcLog, 16, "Log Export - Eroare")
|
||||||
|
Return .F.
|
||||||
|
Endif
|
||||||
|
|
||||||
|
*-- Selecteaza cursorul si verifica datele
|
||||||
|
Select (pcCursorName)
|
||||||
|
lnRecCount = Reccount()
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Cursor selectat. Inregistrari gasite: " + Transform(lnRecCount) + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
If lnRecCount = 0
|
||||||
|
lcLog = lcLog + "[" + Time() + "] AVERTISMENT: Nu exista inregistrari de exportat." + Chr(13) + Chr(10)
|
||||||
|
lcLogLevel = "WARNING"
|
||||||
|
AMessageBox(lcLog, 64, "Log Export - Avertisment")
|
||||||
|
Return .T.
|
||||||
|
Endif
|
||||||
|
|
||||||
|
*-- Determina fisierul de iesire
|
||||||
|
If Empty(pcOutputFile)
|
||||||
|
lcOutputFile = Putfile("Salveaza lista view-urilor Oracle", "oracle_views.xlsx", "XLSX")
|
||||||
|
If Empty(lcOutputFile)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Export anulat de utilizator." + Chr(13) + Chr(10)
|
||||||
|
AMessageBox(lcLog, 64, "Log Export - Anulat")
|
||||||
|
Return .F.
|
||||||
|
Endif
|
||||||
|
Else
|
||||||
|
lcOutputFile = pcOutputFile
|
||||||
|
Endif
|
||||||
|
|
||||||
|
*-- Asigura-te ca extensia este .xlsx
|
||||||
|
If Upper(Right(lcOutputFile, 4)) <> "XLSX"
|
||||||
|
lcOutputFile = Forceext(lcOutputFile, "xlsx")
|
||||||
|
Endif
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Fisier destinatie: " + lcOutputFile + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
Try
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Creare obiect ExcelXML..." + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
*-- Creeaza obiectul ExcelXML
|
||||||
|
loExcelXML = Createobject("ExcelXML")
|
||||||
|
|
||||||
|
If Type("loExcelXML") <> "O"
|
||||||
|
lcLog = lcLog + "[" + Time() + "] EROARE: Nu s-a putut crea obiectul ExcelXML!" + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Verifica daca ExcelXML este inclus corect in proiect." + Chr(13) + Chr(10)
|
||||||
|
lcLogLevel = "ERROR"
|
||||||
|
AMessageBox(lcLog, 16, "Log Export - Eroare")
|
||||||
|
Return .F.
|
||||||
|
Endif
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Obiect ExcelXML creat cu succes." + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
*-- Configureaza proprietatile pentru formatare
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Configurare proprietati ExcelXML..." + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
With loExcelXML
|
||||||
|
.ColumnHeaderBackgroundColor = "DDDDDD" && Gri deschis pentru header
|
||||||
|
.ColumnHeaderForeColor = "000000" && Text negru
|
||||||
|
.WorksheetName = "Oracle Views" && Numele foii de lucru
|
||||||
|
.Author = "Visual FoxPro Export" && Autorul documentului
|
||||||
|
Endwith
|
||||||
|
|
||||||
|
*-- Exporta cursorul la Excel XML
|
||||||
|
Select (pcCursorName)
|
||||||
|
Go Top
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Incepere export la XML..." + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
*-- Creeaza fisierul XML temporar
|
||||||
|
Local lcTempXmlFile
|
||||||
|
lcTempXmlFile = Forceext(lcOutputFile, "xml")
|
||||||
|
|
||||||
|
*-- Exporta la XML cu header
|
||||||
|
loExcelXML.TableToExcel(lcTempXmlFile, "", .T.) && .T. pentru a include header-ul
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Export XML completat: " + lcTempXmlFile + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
*-- Converteste XML la XLSX
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Conversie XML la XLSX..." + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
*-- Parametrii: (Filename, FileFormat, OpenAfterExporting)
|
||||||
|
*-- FileFormat: 51 = xlOpenXMLWorkbook (XLSX)
|
||||||
|
loExcelXML.ConvertXmlToXlsx(lcTempXmlFile, 51, .F.)
|
||||||
|
|
||||||
|
*-- Muta fisierul XLSX la locatia dorita
|
||||||
|
Local lcGeneratedXlsx
|
||||||
|
lcGeneratedXlsx = Forceext(lcTempXmlFile, "xlsx")
|
||||||
|
|
||||||
|
If File(lcGeneratedXlsx) And lcGeneratedXlsx <> lcOutputFile
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Mutare fisier de la " + lcGeneratedXlsx + " la " + lcOutputFile + Chr(13) + Chr(10)
|
||||||
|
Copy File (lcGeneratedXlsx) To (lcOutputFile)
|
||||||
|
Delete File (lcGeneratedXlsx)
|
||||||
|
Endif
|
||||||
|
|
||||||
|
*-- Sterge fisierul XML temporar
|
||||||
|
If File(lcTempXmlFile)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Stergere fisier temporar XML." + Chr(13) + Chr(10)
|
||||||
|
Delete File (lcTempXmlFile)
|
||||||
|
Endif
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Export XLSX completat cu succes!" + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Fisier final: " + lcOutputFile + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Total inregistrari exportate: " + Transform(lnRecCount) + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
llSuccess = .T.
|
||||||
|
lcLogLevel = "SUCCESS"
|
||||||
|
|
||||||
|
Catch To loError
|
||||||
|
lcLog = lcLog + "[" + Time() + "] EROARE CRITICA in export!" + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Mesaj: " + loError.Message + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Linia: " + Transform(loError.Lineno) + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Procedura: " + loError.Procedure + Chr(13) + Chr(10)
|
||||||
|
llSuccess = .F.
|
||||||
|
lcLogLevel = "ERROR"
|
||||||
|
|
||||||
|
Finally
|
||||||
|
*-- Cleanup
|
||||||
|
If Type("loExcelXML") = "O"
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Cleanup obiect ExcelXML." + Chr(13) + Chr(10)
|
||||||
|
loExcelXML = Null
|
||||||
|
Endif
|
||||||
|
|
||||||
|
Endtry
|
||||||
|
|
||||||
|
*-- Afiseaza log-ul final
|
||||||
|
Local lnIcon
|
||||||
|
Do Case
|
||||||
|
Case lcLogLevel = "ERROR"
|
||||||
|
lnIcon = 16
|
||||||
|
Case lcLogLevel = "WARNING"
|
||||||
|
lnIcon = 48
|
||||||
|
Case lcLogLevel = "SUCCESS"
|
||||||
|
lnIcon = 64
|
||||||
|
Otherwise
|
||||||
|
lnIcon = 64
|
||||||
|
Endcase
|
||||||
|
|
||||||
|
AMessageBox(lcLog, lnIcon, "Log Export Oracle Views - " + lcLogLevel)
|
||||||
|
|
||||||
|
*-- Intreaba daca vrea sa deschida fisierul doar daca exportul a reusit
|
||||||
|
If llSuccess And File(lcOutputFile)
|
||||||
|
If AMessageBox("Vrei sa deschizi fisierul exportat?", 36, "Deschide fisierul") = 6
|
||||||
|
Run /N EXPLORER "&lcOutputFile"
|
||||||
|
Endif
|
||||||
|
Endif
|
||||||
|
|
||||||
|
Return llSuccess
|
||||||
|
Endproc
|
||||||
|
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
*-- Export direct in XML (daca nu vrei XLSX)
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
Procedure ExportOracleViewsToXML
|
||||||
|
Parameters pcCursorName, pcOutputFile
|
||||||
|
Local lcOutputFile, llSuccess, loExcelXML
|
||||||
|
Local lcLog, lcLogLevel
|
||||||
|
|
||||||
|
*-- Initializeaza log-ul
|
||||||
|
lcLog = ""
|
||||||
|
lcLogLevel = "INFO"
|
||||||
|
|
||||||
|
If Empty(pcCursorName)
|
||||||
|
pcCursorName = "curViews"
|
||||||
|
Endif
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Verificare cursor pentru export XML: " + pcCursorName + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
If !Used(pcCursorName)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] EROARE: Cursorul '" + pcCursorName + "' nu exista!" + Chr(13) + Chr(10)
|
||||||
|
lcLogLevel = "ERROR"
|
||||||
|
AMessageBox(lcLog, 16, "Log Export XML - Eroare")
|
||||||
|
Return .F.
|
||||||
|
Endif
|
||||||
|
|
||||||
|
Select (pcCursorName)
|
||||||
|
Local lnRecCount
|
||||||
|
lnRecCount = Reccount()
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Inregistrari gasite: " + Transform(lnRecCount) + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
If lnRecCount = 0
|
||||||
|
lcLog = lcLog + "[" + Time() + "] AVERTISMENT: Nu exista inregistrari de exportat." + Chr(13) + Chr(10)
|
||||||
|
lcLogLevel = "WARNING"
|
||||||
|
AMessageBox(lcLog, 64, "Log Export XML - Avertisment")
|
||||||
|
Return .T.
|
||||||
|
Endif
|
||||||
|
|
||||||
|
If Empty(pcOutputFile)
|
||||||
|
lcOutputFile = Putfile("Salveaza in Excel XML", "oracle_views.xml", "XML")
|
||||||
|
If Empty(lcOutputFile)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Export XML anulat de utilizator." + Chr(13) + Chr(10)
|
||||||
|
AMessageBox(lcLog, 64, "Log Export XML - Anulat")
|
||||||
|
Return .F.
|
||||||
|
Endif
|
||||||
|
Else
|
||||||
|
lcOutputFile = pcOutputFile
|
||||||
|
Endif
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Fisier destinatie XML: " + lcOutputFile + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
Try
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Creare obiect ExcelXML pentru export XML..." + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
loExcelXML = Createobject("ExcelXML")
|
||||||
|
|
||||||
|
If Type("loExcelXML") <> "O"
|
||||||
|
lcLog = lcLog + "[" + Time() + "] EROARE: Nu s-a putut crea obiectul ExcelXML!" + Chr(13) + Chr(10)
|
||||||
|
lcLogLevel = "ERROR"
|
||||||
|
AMessageBox(lcLog, 16, "Log Export XML - Eroare")
|
||||||
|
Return .F.
|
||||||
|
Endif
|
||||||
|
|
||||||
|
*-- Configureaza proprietatile
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Configurare proprietati pentru XML..." + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
With loExcelXML
|
||||||
|
.ColumnHeaderBackgroundColor = "CCCCCC"
|
||||||
|
.ColumnHeaderForeColor = "000000"
|
||||||
|
.WorksheetName = "Oracle Views"
|
||||||
|
.Author = "Visual FoxPro Export"
|
||||||
|
Endwith
|
||||||
|
|
||||||
|
*-- Exporta cursorul
|
||||||
|
Select (pcCursorName)
|
||||||
|
Go Top
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Incepere export la fisier XML..." + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
loExcelXML.TableToExcel(lcOutputFile, "", .T.) && .T. pentru a include header-ul
|
||||||
|
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Export XML completat cu succes!" + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Fisier creat: " + lcOutputFile + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Total inregistrari exportate: " + Transform(lnRecCount) + Chr(13) + Chr(10)
|
||||||
|
|
||||||
|
llSuccess = .T.
|
||||||
|
lcLogLevel = "SUCCESS"
|
||||||
|
|
||||||
|
Catch To loError
|
||||||
|
lcLog = lcLog + "[" + Time() + "] EROARE la exportul XML!" + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Mesaj: " + loError.Message + Chr(13) + Chr(10)
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Linia: " + Transform(loError.Lineno) + Chr(13) + Chr(10)
|
||||||
|
llSuccess = .F.
|
||||||
|
lcLogLevel = "ERROR"
|
||||||
|
|
||||||
|
Finally
|
||||||
|
If Type("loExcelXML") = "O"
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Cleanup obiect ExcelXML." + Chr(13) + Chr(10)
|
||||||
|
loExcelXML = Null
|
||||||
|
Endif
|
||||||
|
|
||||||
|
Endtry
|
||||||
|
|
||||||
|
*-- Afiseaza log-ul final
|
||||||
|
Local lnIcon
|
||||||
|
Do Case
|
||||||
|
Case lcLogLevel = "ERROR"
|
||||||
|
lnIcon = 16
|
||||||
|
Case lcLogLevel = "WARNING"
|
||||||
|
lnIcon = 48
|
||||||
|
Case lcLogLevel = "SUCCESS"
|
||||||
|
lnIcon = 64
|
||||||
|
Otherwise
|
||||||
|
lnIcon = 64
|
||||||
|
Endcase
|
||||||
|
|
||||||
|
AMessageBox(lcLog, lnIcon, "Log Export XML - " + lcLogLevel)
|
||||||
|
|
||||||
|
Return llSuccess
|
||||||
|
Endproc
|
||||||
|
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
*-- Exemplu de utilizare cu lista ta existenta de view-uri
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
Procedure TestExportViews
|
||||||
|
Local llSuccess
|
||||||
|
|
||||||
|
*-- Presupune ca ai deja un cursor cu view-urile incarcat
|
||||||
|
*-- Exemplu: ai un cursor numit "myViews" cu campurile:
|
||||||
|
*-- owner, view_name, text_length, view_type, last_analyzed
|
||||||
|
|
||||||
|
*-- Test export XLSX
|
||||||
|
llSuccess = ExportOracleViewsToXLSX("myViews", "C:\temp\test_views.xlsx")
|
||||||
|
If llSuccess
|
||||||
|
? "Export XLSX reusit!"
|
||||||
|
Else
|
||||||
|
? "Export XLSX esuat!"
|
||||||
|
Endif
|
||||||
|
|
||||||
|
*-- Test export XML
|
||||||
|
llSuccess = ExportOracleViewsToXML("myViews", "C:\temp\test_views.xml")
|
||||||
|
If llSuccess
|
||||||
|
? "Export XML reusit!"
|
||||||
|
Else
|
||||||
|
? "Export XML esuat!"
|
||||||
|
Endif
|
||||||
|
|
||||||
|
Endproc "O"
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Cleanup obiect ExcelXML." + Chr(13) + Chr(10)
|
||||||
|
loExcelXML = Null
|
||||||
|
Endif
|
||||||
|
|
||||||
|
Endtry
|
||||||
|
|
||||||
|
*-- Afiseaza log-ul final
|
||||||
|
Local lnIcon
|
||||||
|
Do Case
|
||||||
|
Case lcLogLevel = "ERROR"
|
||||||
|
lnIcon = 16
|
||||||
|
Case lcLogLevel = "WARNING"
|
||||||
|
lnIcon = 48
|
||||||
|
Case lcLogLevel = "SUCCESS"
|
||||||
|
lnIcon = 64
|
||||||
|
Otherwise
|
||||||
|
lnIcon = 64
|
||||||
|
Endcase
|
||||||
|
|
||||||
|
AMessageBox(lcLog, lnIcon, "Log Export XML - " + lcLogLevel)
|
||||||
|
|
||||||
|
Return llSuccess
|
||||||
|
Endproc
|
||||||
|
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
*-- Exemplu de utilizare cu lista ta existenta de view-uri
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
Procedure TestExportViews
|
||||||
|
Local llSuccess
|
||||||
|
|
||||||
|
*-- Presupune ca ai deja un cursor cu view-urile incarcat
|
||||||
|
*-- Exemplu: ai un cursor numit "myViews" cu campurile:
|
||||||
|
*-- owner, view_name, text_length, view_type, last_analyzed
|
||||||
|
|
||||||
|
*-- Test export XLSX
|
||||||
|
llSuccess = ExportOracleViewsToXLSX("myViews", "C:\temp\test_views.xlsx")
|
||||||
|
If llSuccess
|
||||||
|
? "Export XLSX reusit!"
|
||||||
|
Else
|
||||||
|
? "Export XLSX esuat!"
|
||||||
|
Endif
|
||||||
|
|
||||||
|
*-- Test export XML
|
||||||
|
llSuccess = ExportOracleViewsToXML("myViews", "C:\temp\test_views.xml")
|
||||||
|
If llSuccess
|
||||||
|
? "Export XML reusit!"
|
||||||
|
Else
|
||||||
|
? "Export XML esuat!"
|
||||||
|
Endif
|
||||||
|
|
||||||
|
Endproc "O"
|
||||||
|
lcLog = lcLog + "[" + Time() + "] Cleanup obiect ExcelXML." + Chr(13) + Chr(10)
|
||||||
|
loExcelXML = Null
|
||||||
|
Endif
|
||||||
|
|
||||||
|
Endtry
|
||||||
|
|
||||||
|
*-- Afi?eaza log-ul final
|
||||||
|
Local lnIcon
|
||||||
|
Do Case
|
||||||
|
Case lcLogLevel = "ERROR"
|
||||||
|
lnIcon = 16
|
||||||
|
Case lcLogLevel = "WARNING"
|
||||||
|
lnIcon = 48
|
||||||
|
Case lcLogLevel = "SUCCESS"
|
||||||
|
lnIcon = 64
|
||||||
|
Otherwise
|
||||||
|
lnIcon = 64
|
||||||
|
Endcase
|
||||||
|
|
||||||
|
AMessageBox(lcLog, lnIcon, "Log Export XML - " + lcLogLevel)
|
||||||
|
|
||||||
|
Return llSuccess
|
||||||
|
Endproc
|
||||||
|
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
*-- Exemplu de utilizare cu lista ta existenta de view-uri
|
||||||
|
*-----------------------------------------------------------
|
||||||
|
Procedure TestExportViews
|
||||||
|
Local llSuccess
|
||||||
|
|
||||||
|
*-- Presupune ca ai deja un cursor cu view-urile <20>ncarcat
|
||||||
|
*-- Exemplu: ai un cursor numit "myViews" cu c<>mpurile:
|
||||||
|
*-- owner, view_name, text_length, view_type, last_analyzed
|
||||||
|
|
||||||
|
*-- Test export XLSX
|
||||||
|
llSuccess = ExportOracleViewsToXLSX("myViews", "C:\temp\test_views.xlsx")
|
||||||
|
If llSuccess
|
||||||
|
? "Export XLSX reu?it!"
|
||||||
|
Else
|
||||||
|
? "Export XLSX e?uat!"
|
||||||
|
Endif
|
||||||
|
|
||||||
|
*!* *-- Test export XML
|
||||||
|
*!* llSuccess = ExportOracleViewsToXML("myViews", "C:\temp\test_views.xml")
|
||||||
|
*!* If llSuccess
|
||||||
|
*!* ? "Export XML reusit!"
|
||||||
|
*!* Else
|
||||||
|
*!* ? "Export XML esuat!"
|
||||||
|
*!* Endif
|
||||||
|
|
||||||
|
Endproc
|
||||||
|
|
||||||
BIN
utile/foxcharts/foxcharts.vct
Normal file
BIN
utile/foxcharts/foxcharts.vct
Normal file
Binary file not shown.
BIN
utile/foxcharts/foxcharts.vcx
Normal file
BIN
utile/foxcharts/foxcharts.vcx
Normal file
Binary file not shown.
BIN
utile/foxcharts/foxchartsbeta.VCT
Normal file
BIN
utile/foxcharts/foxchartsbeta.VCT
Normal file
Binary file not shown.
BIN
utile/foxcharts/foxchartsbeta.vcx
Normal file
BIN
utile/foxcharts/foxchartsbeta.vcx
Normal file
Binary file not shown.
BIN
utile/foxcharts/gdiplusx.VCT
Normal file
BIN
utile/foxcharts/gdiplusx.VCT
Normal file
Binary file not shown.
BIN
utile/foxcharts/gdiplusx.vcx
Normal file
BIN
utile/foxcharts/gdiplusx.vcx
Normal file
Binary file not shown.
305
utile/foxcharts/systemfoxcode.xml
Normal file
305
utile/foxcharts/systemfoxcode.xml
Normal file
@@ -0,0 +1,305 @@
|
|||||||
|
<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
|
||||||
|
<VFPData>
|
||||||
|
<row>
|
||||||
|
<type>C</type>
|
||||||
|
<abbrev>draw</abbrev>
|
||||||
|
<expanded>Drawing</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTG9</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Bmp</abbrev>
|
||||||
|
<expanded>Bitmap</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Bitmap.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGA</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Brus</abbrev>
|
||||||
|
<expanded>Brush</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.SolidBrush.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGB</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Clr</abbrev>
|
||||||
|
<expanded>Color</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Color.FromRGB</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGC</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Font</abbrev>
|
||||||
|
<expanded>Font</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Font.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGD</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Gfx</abbrev>
|
||||||
|
<expanded>Graphics</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Graphics.FromImage</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGE</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>GfxH</abbrev>
|
||||||
|
<expanded>GraphicsH</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Graphics.FromHWnd</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2HB1EHKAD</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>GfxI</abbrev>
|
||||||
|
<expanded>GraphicsI</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Graphics.FromImage</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2HB1EHKAE</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Img</abbrev>
|
||||||
|
<expanded>Image</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Image.FromFile</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGF</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Matr</abbrev>
|
||||||
|
<expanded>Matrix</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Drawing2D.Matrix.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGG</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Path</abbrev>
|
||||||
|
<expanded>GraphicsPath</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Drawing2D.GraphicsPath.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGH</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Pen</abbrev>
|
||||||
|
<expanded>Pen</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Pen.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGI</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Pnt</abbrev>
|
||||||
|
<expanded>Point</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Point.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGJ</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Rect</abbrev>
|
||||||
|
<expanded>Rectangle</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Rectangle.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGK</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>Stre</abbrev>
|
||||||
|
<expanded>Stream</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.IO.MemoryStream.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGL</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>F</type>
|
||||||
|
<abbrev>clrm</abbrev>
|
||||||
|
<expanded>ColorMatrix</expanded>
|
||||||
|
<cmd>{gdiplusx}</cmd>
|
||||||
|
<tip>_SCREEN.System.Drawing.Imaging.ColorMatrix.New</tip>
|
||||||
|
<data/>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGM</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<type>S</type>
|
||||||
|
<abbrev>gdiplusx</abbrev>
|
||||||
|
<expanded/>
|
||||||
|
<cmd/>
|
||||||
|
<tip/>
|
||||||
|
<data>LPARAMETER oFoxcode
|
||||||
|
LOCAL lcfxtoollib, lnWinHdl, laEnv, lcStr, lcLastWord, lcReturn, lcWith
|
||||||
|
|
||||||
|
lcfxtoollib = SYS(2004)+"FOXTOOLS.FLL"
|
||||||
|
IF !FILE(lcfxtoollib)
|
||||||
|
RETURN .F.
|
||||||
|
ENDIF
|
||||||
|
SET LIBRARY TO (m.lcfxtoollib) ADDITIVE
|
||||||
|
|
||||||
|
lnWinHdl = _WONTOP()
|
||||||
|
_wselect(lnWinHdl)
|
||||||
|
|
||||||
|
DIMENSION laEnv[25]
|
||||||
|
_EdGetEnv(lnWinHdl ,@laEnv)
|
||||||
|
lcStr = _EDGETSTR(lnWinHdl , 0, laEnv[17])
|
||||||
|
|
||||||
|
lcWith = WithStr(lcStr)
|
||||||
|
lcReturn = oFoxCode.Tip
|
||||||
|
IF NOT EMPTY(lcWith)
|
||||||
|
IF lcWith+"." == UPPER(LEFT(oFoxCode.Tip,LEN(lcWith)+1))
|
||||||
|
lcReturn = SUBSTR(oFoxCode.Tip, LEN(lcWith)+1)
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
oFoxCode.ValueType = "V"
|
||||||
|
RETURN lcReturn
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE WithStr(tcStr)
|
||||||
|
LOCAL lcStr, lnLines, i, laLines, lcWord, lcReturn
|
||||||
|
|
||||||
|
IF EMPTY(tcStr)
|
||||||
|
RETURN ""
|
||||||
|
ENDIF
|
||||||
|
lcStr = tcStr
|
||||||
|
lcReturn = ""
|
||||||
|
|
||||||
|
DIMENSION laLines[1]
|
||||||
|
lnLines = ALINES(laLines,lcStr)
|
||||||
|
|
||||||
|
* Quick search backward to find a WITH
|
||||||
|
FOR i = lnLines TO 1 STEP -1
|
||||||
|
lcWord = UPPER(ALLTRIM(GETWORDNUM(ALLTRIM(laLines[m.i]), 1)))
|
||||||
|
IF LEN(lcWord)>3 AND lcWord=="ENDWITH"
|
||||||
|
EXIT
|
||||||
|
ENDIF
|
||||||
|
IF LEN(lcWord)>3 AND lcWord=="WITH"
|
||||||
|
lcWord = ALLTRIM(CHRTRAN(laLines[m.i],CHR(9)," "))
|
||||||
|
IF ATC(REPLICATE("&",2), lcWord) > 0 && strip out comments
|
||||||
|
lcWord = ALLTRIM(LEFT(lcWord, ATC(REPLICATE("&",2),lcWord)-1) )
|
||||||
|
ENDIF
|
||||||
|
IF ATC(" AS ", lcWord) > 0 && strip out AS
|
||||||
|
lcWord = ALLTRIM(LEFT(lcWord, ATC(" AS ",lcWord)-1) )
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
lcWord = ALLTRIM(STRTRAN(lcWord,"WITH ","",1,1,1))
|
||||||
|
|
||||||
|
lcReturn = UPPER(lcWord)
|
||||||
|
EXIT
|
||||||
|
ENDIF
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
RETURN lcReturn
|
||||||
|
ENDPROC
|
||||||
|
</data>
|
||||||
|
<case>M</case>
|
||||||
|
<save>false</save>
|
||||||
|
<timestamp>2008-09-30T00:00:00</timestamp>
|
||||||
|
<source>VFPX</source>
|
||||||
|
<uniqueid>_2H612DTGN</uniqueid>
|
||||||
|
<user/>
|
||||||
|
</row>
|
||||||
|
</VFPData>
|
||||||
Reference in New Issue
Block a user