Newsgroup: it.comp.lang.vo-clipper
Titolo: ca report

Sono Francesco,
qualcuno sa spiegarmi come si lavoro su ca report?
In particolare vorrei sapere:
quando lancio ca-report mi appare questo messaggio.
errore executing database query CODE=1 SQLCODE=1 There is a syntax error in
the generate SQL statement.
Lanciando ca report io mi trovo al secondo passaggio una finestra con due
cartelle:
Origine dat
origine dati macchina
In orgine dati vi è una casella "cerca in" con selezionato Data Source
più sotto vi è un'altra casella "nome DSN"
Se premo ok non va avanti.
Potete aiutarmi??
Francesco

Ca Ret lavora utilizzando un accesso Sql ai database via ODBC; onde per cui
cerca sulla macchina la sorgente dati da utilizzare per connettersi al DBF.
La cosa è molto noiosa, questo è il motivo per cui quasi tutti quelli che
utilizzano VO e i DBF usano Report Pro, ed è lo stesso motivo per cui e nata
MySql2Vo, ovvero accedere ad una base dati senza dover avere sulla macchina
gli ODBC installati.
L'utilizzo di CaRet presuppone la conoscenza del linguaggio SQL92. Detto ciò
eccoti del codice prezioso:
Per creare agevolmente file Ret scarica dal sito:
http://space.tin.it/clubnet/llbgiu/index.htm
la vesrione di DBManager per CARET.
Danilo Giuliani
PS : ti sei iscritto al Techical Meeting ? se vuoi che lo User group viva
bisogna darsi tutti da fare, lo user goup non è una società, siamo noi, e
non lo si aiuta con le critiche, ma con i fatti dandosi da fare, essere
solidali tra noi aiutandosi e collaborando.
****************************************************************************
****************
FUNCTION PreparaRegistro(cNome) AS LOGIC
// Questa funzione scrive nel registro di Windows le impostazioni necessarie
all'uso di un ODBC che ho chiamato //
// "Generico FoxPro" in modo da non dover settare ODBC su ogni stazione di
lavoro //
// da far eseguire all'avvio della applicazione, richiamala nel metodo Start
//
LOCAL lRes AS LONG
LOCAL hKey AS DWORD
LOCAL dwDis AS DWORD
LOCAL pszSubKey AS PSZ
LOCAL cPrg AS STRING
// Per settare gli ODBC //
IF IsClass(#ReportQueue)
 pszSubKey := PSZ(_CAST,  "Software\ODBC\ODBC.INI\Generico FoxPro")
 lRes := RegCreateKeyEx(HKEY_CURRENT_USER, pszSubKey, 0,;
     PSZ(_CAST, "STRING"), REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,;
    NULL, ;
    @hKey, @dwDis)
 IF lRes != ERROR_SUCCESS
  Mostra("Errore nell'apertura del file di registro di Windows (Generico
FoxPro)")
  RETURN FALSE
 ENDIF
 IF dwDis == REG_CREATED_NEW_KEY
  RegSetValueEx(hKey, PSZ(_CAST, "CacheSize"), 0, REG_SZ, PSZ(_CAST, "4"),
3)
  RegSetValueEx(hKey, PSZ(_CAST, "CreateType"), 0, REG_SZ, PSZ(_CAST,
"FoxPro25"),10)
  RegSetValueEx(hKey, PSZ(_CAST, "Database"), 0, REG_SZ, PSZ(_CAST, " "), 3)
  RegSetValueEx(hKey, PSZ(_CAST, "Description"), 0, REG_SZ, PSZ(_CAST, "
"),3)
  RegSetValueEx(hKey, PSZ(_CAST, "Driver"), 0, REG_SZ, PSZ(_CAST,
"C:\CA_APPSW\C3DBF13.DLL"),25)
  RegSetValueEx(hKey, PSZ(_CAST, "FileOpenCache"), 0, REG_SZ, PSZ(_CAST,
"0"), 3)
  RegSetValueEx(hKey, PSZ(_CAST, "IntlSort"), 0, REG_SZ, PSZ(_CAST, "0"),3)
  RegSetValueEx(hKey, PSZ(_CAST, "LockCompatibility"), 0, REG_SZ, PSZ(_CAST,
"dBASE"),7)
  RegSetValueEx(hKey, PSZ(_CAST, "Locking"), 0, REG_SZ, PSZ(_CAST, "NONE"),
6)
  RegSetValueEx(hKey, PSZ(_CAST, "UseLongNames"), 0, REG_SZ, PSZ(_CAST,
"0"), 3)
  RegSetValueEx(hKey, PSZ(_CAST, "UseLongQualifiers"), 0, REG_SZ, PSZ(_CAST,
"0"),3)
 ENDIF
 RegCloseKey(hKey)
 pszSubKey := PSZ(_CAST,  "Software\ODBC\ODBC.INI\ODBC Data Sources")
 lRes := RegCreateKeyEx(HKEY_CURRENT_USER, pszSubKey, 0,;
     PSZ(_CAST, "STRING"), REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,;
    NULL, ;
    @hKey, @dwDis)
 IF lRes != ERROR_SUCCESS
  Mostra("Errore nell'apertura del file di registro di Windows (ODBC Data
Sources)")
  RETURN FALSE
 ENDIF
 IF dwDis == REG_CREATED_NEW_KEY
  RegSetValueEx(hKey, PSZ(_CAST, "Generico FoxPro"), 0, REG_SZ, PSZ(_CAST,
"CA Xbase (*.dbf)"),17)
 ENDIF
 RegCloseKey(hKey)
 pszSubKey := PSZ(_CAST,  "Software\ODBC\ODBCINST.INI\CA Xbase (*.dbf)")
 lRes := RegCreateKeyEx(HKEY_CURRENT_USER, PSZSubKey, 0, ;
     PSZ(_CAST, "STRING"), REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,;
    NULL, ;
    @hKey, @dwDis)
 IF lRes != ERROR_SUCCESS
  Mostra("Errore nell'apertura del file di registro di Windows (CA Xbase
(*.dbf))")
  RETURN FALSE
 ENDIF
 IF dwDis == REG_CREATED_NEW_KEY
  RegSetValueEx(hKey, PSZ(_CAST, "driver"), 0, REG_SZ, PSZ(_CAST,
"C:\CA_APPSW\C3DBF13.DLL"),25)
  RegSetValueEx(hKey, PSZ(_CAST, "setup"), 0, REG_SZ, PSZ(_CAST,
"C:\CA_APPSW\C3DBF13.DLL"),25)
 ENDIF
 RegCloseKey(hKey)
ENDIF
// Fine Per settare gli ODBC //
RETURN TRUE
****************************************************************************
****************
FUNCTION PrintFileRet(cRetFile,nVAL,aPARA,nCopie)
// Questa funzione per stampare un RET //
LOCAL n AS BYTE
LOCAL aStruct AS _WINDEVMODE
LOCAL cDir:=CurrentPath() AS STRING // una funzione che torna la path
corrente //
LOCAL oWin AS SaveAsDialog
LOCAL cFile AS STRING
 Default(@nCopie,1)
IF (SysObject():oPrint == NULL_OBJECT)
 SysObject():oPrint := ReportQueue{SysObject(),"Report Editor"}
 SysObject():oPrint:ConnectToDB("Generico FoxPro")
ENDIF
 SysObject():oPrint:Open(cRetFile)
IF nVal = 1
 FOR n := 1 TO nCopie
  SysObject():oPrint:Print(aPara)
     CheckEvent()
    NEXT
 SysObject():oPrint:Close()
ELSEIF nVal = 2
 SysObject():oPrint:Preview(aPara)
ELSEIF nVal = 3
 SysObject():oPrint:Edit()
ELSEIF nVal = 4
 oWin := SaveAsDialog{,"*.RTF"}
 oWin:Show()
    IF !Empty(oWin:FileName)
     cFile := oWin:FileName
  SysObject():oPrint:SaveToFile(cFile,"DOC",aPara)
 ENDIF
ENDIF
SetCurrentDirectory(cDir)
RETURN NIL
****************************************************************************
****************
FUNCTION CurrentPath() AS STRING
 LOCAL PSZBuffer AS PSZ
 LOCAL pszLen  AS DWORD
 LOCAL  cRet  AS STRING
 //
 pszLen := 512
 pszBuffer := MemAlloc( pszLen + 1 )
 //
 GetCurrentDirectory( pszLen, pszBuffer )
 //
 cRet := Psz2String( pszBuffer )+"\"
 MemFree( pszBuffer )
RETURN cRet
****************************************************************************
****************
FUNCTION Mostra(cFrase AS STRING)
LOCAL  oWB AS TEXTBOX
 oWB:= TextBox{ ,"Nota" , cFrase}
 oWB:type := BOXICONEXCLAMATION  + BUTTONOKAY
 oWB:Show()
RETURN  NIL
****************************************************************************
****************