Clipper/FiveWin - Conectar Paradox 7.x

 
Vista:
Imágen de perfil de SuperIndio
Val: 12
Ha mantenido su posición en Clipper/FiveWin (en relación al último mes)
Gráfica de Clipper/FiveWin

Conectar Paradox 7.x

Publicado por SuperIndio (25 intervenciones) el 14/09/2018 23:24:24
Estimados para el que no pueda conectar paradox
usando HMG en cualquiera de sus versiones (
Harbour MiniGUI Oficial,
Harbour minigui Extended con BCC55,
Harbour minigui Extended con BCC10,
Harbour minigui Extended con Mingw32,
OOHG con BCC55 o Mingw32
)

se declara :

1
Public oConexion as OBJECT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
////////////////////////////////////////////////////////////////////////////
//
// Nombre.......: ConnectToParadox()
// Parametros...: None
// Descripcion..: Conecta Paradox Database
//                Y deja el vivo el objeto oConexion
//                para poder ejecutar los Querys.
// Autor........: SuperIndio
// Fecha........: 24-08-2018
////////////////////////////////////////////////////////////////////////////
STATIC FUNCTION ConnectToParadox()
 
       LOCAL x_Error
       Local lConnect := .f.
       Local cString := "Driver={Microsoft Paradox Driver (*.db )};"+;
                        "collatingsequence=ASCII;"+;
                        "dbq="+ ccPath +";"+;
                        "defaultdir="+ ccPath +";"+;
                        "driverid=538;"+;
                        "fil=Paradox 7.X;"+;
                        "paradoxnetpath="+ ccPath +";"+;
                        "paradoxnetstyle=4.x;"+;
                        "paradoxusername=Administrador;"+;
                        "safetransactions=0;"+;
                        "threads=3;"+;
                        "uid=administrador;"+;
                        "usercommitsync=Yes"
 
       oConexion := TOleAuto():New("ADODB.Connection")
       oConexion:ConnectionString := cString
 
       BEGIN SEQUENCE
            oConexion:Open()
            lConnect := .T.
       RECOVER
            x_Error:=oConexion:Errors
            MSGINFO(x_Error)
            MsgInfo('Conexion Fallida!')
            oConexion := Nil
       END SEQUENCE
 
RETURN( lConnect )

Luego ejecutar un query:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
////////////////////////////////////////////////////////////////////////////
//
// Nombre.......: Query_TProductos()
// Parametros...: None
// Descripcion..:
//
// Autor........: SuperIndio
// Fecha........: 15-09-2018
////////////////////////////////////////////////////////////////////////////
static function Query_TProductos()
 
      LOCAL aNuevo    := {}
      LOCAL ccCodProd := ""
      LOCAL ccDescrip := ""
      LOCAL ccProveed := ""
      LOCAL nnPrecio  := ""
      LOCAL nnPorcen  := ""
 
      WITH OBJECT oRs := TOleAuto():New("ADODB.RecordSet")
          :LockType := adLockOptimistic
          :CursorType := adOpenDynamic
          :CursorLocation   := adUseClient
          :Source := "Select * from TProductos.db"
          :Open( :Source , oConexion )
          :MoveFirst()
          DO WHILE !:EOF()
               //
               ccCodProd  := :Fields(0):value
               ccDescrip  := :Fields(1):value
               ccProveed  := :Fields(3):value
               nnPrecio   := Str( :Fields(4):value )
               nnPorcen   := Str( :Fields(8):value )
               //
               aNuevo     := { ccCodProd , ccDescrip, ccProveed, nnPrecio, nnPorcen }
	       vnmain.gridpro.AddItem( aNuevo )
              :MoveNext()
              //
          ENDDO
      END
 
RETURN NIL

Si tenes alguna duda --> [email protected]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Conectar Paradox 7.x

Publicado por ElLoquito (1 intervención) el 14/06/2024 00:30:15
ahi va este codigo
/*>===========c:\GReader\GestabReader.hbc */ incpaths= libpaths= libs=adordd hbole gt= mt=no instpaths="c:\GReader\" /*>===========c:\GReader\GestabReader.hbp */ GestabReader.prg /*>===========c:\GReader\GestabReader.ini */ /*>===========c:\GReader\GestabReader.prg */ #include "FileIO.ch" #include "Minigui.ch" #include "Dbstruct.ch" #include "Include\GestabReader.ch" #include "Include\adordd.ch" #define CRLF Chr(13)+Chr(10) #command DEFINE WINDOW <w> ; [ AT <row>,<col> ] ; [ WIDTH <wi> ] ; [ HEIGHT <h> ] ; PICTURE <bitmap> ; SPLASH ; [ DELAY <delay> ] ; [ ON RELEASE <ReleaseProcedure> ] ; => ; _DefineSplashWindow( <"w">, <row>, <col>, <wi>, <h>, <bitmap>, <delay>, <{ReleaseProcedure}> ) ////////////////////////////////////////////////////////////////////// // Paradox Files // // ODBC Desktop Database Drivers version 4.0 includes // the following ISAM files for Paradox: ////////////////////////////////////////////////////////////////////// // // Mspbde40.dll // Msxbde40.dll // Msrd3x40.dlL // Odpdx32.dll ////////////////////////////////////////////////////////////////////// // // #include "TSBrowse.ch" #ifndef __XHARBOUR__ #xcommand TRY => BEGIN SEQUENCE WITH {|__o| break(__o) } #xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr-> #xcommand FINALLY => ALWAYS #endif Static oServer Static cPath Static ccSYSINFO Static aWidths Static aSt9999 Static aListadb // Array con la lista de archivos *.db Static ccTablaSelecta Static aDatosTabla // Contenido de la tabla (para la grilla ) Static aCabecera // Nombre de los campos (para la grilla ) Static aCabWidth // Ancho de loa campos (para la grilla ) Static aRubrique // Rubrica y Descripcion static vnmain static ccFecha // FECHA DEL SISTEMA static ccConfig := "" static ccPathApp := "" //////////////////////////////////////////////////////////////////////////// // Nombre.......: Main() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// Function Main() LOCAL nPosit := 0 LOCAL cFileName := "ScreenSplash.Png" // 441 230 LOCAL nDelaySeconds := 7 LOCAL nAnimateSeconds := 2 Public nWidth // Ancho de la Pantalla Public nHeight // Alto de la Pantalla Public ccPathApp := "" PUBLIC aRecds := {} PUBLIC aHeaders := { 'NOTAB', 'LOGICA', 'DESCRIPCION', 'ALCANCE', 'FISICA' } PUBLIC aWidths := { 120, 120, 350, 100, 120 } PUBLIC aDatosTabla := {} PUBLIC oServer AS OBJECT PUBLIC aCabecera := {} PUBLIC aCabWidth := {} PUBLIC aListadb := {} && PARA CARGAR EL CONTENIDO DEL DIRECTORIO PUBLIC aWListab := {} && PARA CARGAR LA "W_LISTAB.DB" PUBLIC aRubrique := {} && PARA CARGAR LA "Rubrique.DB" PUBLIC cGestabLocal := "" PUBLIC cGestabU400 := "" PUBLIC cFolderTemp := "" PUBLIC cFolderTranfer := "" PUBLIC cFolderLogs := "" PUBLIC ccConfig := "" PUBLIC cPath := "" PUBLIC ccTablaSelecta := "" SET LANGUAGE TO SPANISH REQUEST HB_LANG_ES SET MULTIPLE OFF WARNING SET INTERACTIVECLOSE ON SET NAVIGATION EXTENDED SET FIXED ON SET DECIMALS TO 0 SET DATE TO French SET DATE FRENCH SET century ON dFecha := Date() SET DATE FORMAT "yyyymmdd" nWidth := GetDesktopWidth() - 5 nHeight := GetDesktopHeight() - 100 nPosit := nWidth/2 dFecha := Date() ccFecha := dtoc( dFecha ) ccPathApp := GetCurrentFolder() + "\" ISM_OpenConfig() cPath := cGestabLocal if EMPTY( cPath ) cPath := "c:\Greader\LGestab\" ELSE cPath := cGestabLocal ENDIF SET DEFAULT TO cPath IF !ConnectToParadox() MsgInfo("no puedo conectar PARADOX") QUIT ENDIF GetInfoAutor() Query_W_Listab() BNL_GetDetailRub() aListadb := CargaTabDirectory() DEFINE WINDOW vnmain At 00,00 WIDTH 1280 HEIGHT 800 ; TITLE SISTEMA + " [ Conectado a: " + cPath + " ]"; FONT "Consolas" SIZE 10 ; ICON "MAINICO" ; MAIN ; NOSHOW ON KEY ALT+X OF vnmain ACTION vnmain.Release() DEFINE TAB tabAll OF vnmain AT 003,003 ; WIDTH nWidth-3 HEIGHT nHeight-105 ; FONT "Consolas" SIZE 10 ; VALUE 1 ; BUTTONS FLAT PAGE 'Archivos' @030,003 GRID gdListab WIDTH nWidth-5 HEIGHT nHeight-40 ; FONT "Consolas" SIZE 10 ; HEADERS { 'Nombre', 'Descripción', 'Tamaño', 'Fecha', 'Hora' } ; WIDTHS { 100, 380, 140, 120, 120 } ; ITEMS aListadb ; VALUE 1 ; ON DBLCLICK MostrarContenido() END PAGE PAGE 'Utilitarios' END PAGE PAGE 'Autor' @050,020 IMAGE Logo PICTURE "BOQUITA18"; WIDTH 333 HEIGHT 333 @050,365 LABEL lbautor VALUE ccSYSINFO ; WIDTH 650 HEIGHT 450 ; FONT "Consolas" SIZE 12 ; FONTCOLOR {6,77,4} END PAGE END TAB END WINDOW DEFINE WINDOW Form_Splash ; PICTURE 'SPREADER' ; SPLASH ; DELAY 4 ; ON RELEASE vnmain.Show END WINDOW vnmain.Hide() Maximize WINDOW vnmain ACTIVATE WINDOW ALL Return Nil Procedure _DefineSplashWindow( name, row, col, width, height, cbitmap, nTime, Release ) Local aBmpSize := {} // Local aBmpSize := BmpSize( cbitmap ) // DEFAULT row := 0, col := 0, width := aBmpSize[1], height := aBmpSize[2], nTime := 2 DEFAULT row := 0, col := 0, width := 613, height := 110, nTime := 2 DEFINE WINDOW &name AT row, col ; WIDTH width HEIGHT height ; CHILD TOPMOST ; NOSIZE NOMAXIMIZE NOMINIMIZE NOSYSMENU NOCAPTION ; ON INIT _SplashDelay( name, nTime ) ; ON RELEASE Eval( Release ) @ 0,0 IMAGE Image_1 ; PICTURE cbitmap ; WIDTH width ; HEIGHT height DRAW LINE IN WINDOW &name ; AT 0, 0 TO 0, Width ; PENCOLOR BLACK ; PENWIDTH 2 DRAW LINE IN WINDOW &name ; AT Height, 0 TO Height, Width ; PENCOLOR BLACK ; PENWIDTH 2 DRAW LINE IN WINDOW &name ; AT 0, 0 TO Height, 0 ; PENCOLOR BLACK ; PENWIDTH 2 DRAW LINE IN WINDOW &name ; AT 0, Width TO Height, Width ; PENCOLOR BLACK ; PENWIDTH 2 END WINDOW IF EMPTY(row) .AND. EMPTY(col) CENTER WINDOW &name ENDIF SHOW WINDOW &name Return Procedure _SplashDelay( name, nTime ) Local iTime := Seconds() SendMessage( GetFormHandle(name), 0, 0, 0 ) Do While Seconds() - iTime < nTime Do Events EndDo DoMethod( name, 'Release' ) Return FUNCTION CargaTabDirectory() LOCAL aParadox := HB_DirScan( cPath, "*.db" ) LOCAL alaNegra := {} LOCAL x1Row LOCAL iConta:=0 LOCAL ccTama, ccName, ccDate LOCAL aTempo := {} LOCAL ccDescrip := "" iConta:=0 FOR EACH x1Row IN aParadox ccName := x1Row[1] ccTama := TRANSFORM( x1Row[2], '999,999,999,999') ccTama := AnyToString(ccTama) ccDate := x1Row[3] ccDate := AnyToString(ccDate) ccTime := x1Row[4] ccAttr := x1Row[5] IF !IsBlackList( ccName ) // ccDescrip := SearchTheDescription( ccName ) AADD( aTempo, { ccName, ccDescrip, ccTama, ccDate, ccTime } ) // ENDIF iConta := iConta + 1 NEXT x1Row RETURN(aTempo) FUNCTION SearchTheDescription( ccNametable ) LOCAL ccDetail := "" LOCAL i:=0 LOCAL ccLogic := "" ccLogic := SUBSTR( UPPER(ccNametable), 1, 4) IF !EMPTY(ccLogic) nInde := ASCAN(aWListab, {|aVal| aVal[1] == ccLogic}) IF nInde>0 ccDetail := aWListab[nInde][2] ENDIF ENDIF RETURN( ccDetail ) FUNCTION MostrarContenido() CargaLasMatrices() RETURN NIL PROCEDURE CargaLasMatrices() LOCAL aTemp :={} LOCAL i := 0 LOCAL inLen := 0 LOCAL nFCount := 0 LOCAL ccSQL := "" LOCAL ccTypee LOCAL ccLongi LOCAL cNameName LOCAL objRes AS OBJECT i := vnmain.gdListab.Value aTemp := vnmain.gdListab.Item(i) ccTablaSelecta := ALLTRIM( aTemp[1] ) SET DEFAULT TO cPath IF FILE(cPath + ccTablaSelecta) ccSQL := "Select * From " + ccTablaSelecta objRes := EjecuteQuery( ccSQL ) IF objRes:RecordCount=0 MsgInfo("TABLA VACIA","ccTablaSelecta") objRes := NIL RETURN NIL ENDIF WITH OBJECT objRes :MoveFirst() aCabecera := {} aCabWidth := {} i := 0 nFCount := :Fields:Count DO WHILE i < nFCount cNameName := AnyToString( :Fields(i):Name ) AADD( aCabecera, cNameName ) /////////////////////////////////////////////////////////////// // objRes:Fields( i-1 ):Type = 200 // ES DE TIPO CHAR // objRes:Fields( i-1 ):Type = 135 // ES DE TIPO DATE // objRes:Fields( i-1 ):Type = 2 // ES DE TIPO SHORT INT // objRes:Fields( i-1 ):Type = 3 // ES DE TIPO LONG INT // objRes:Fields( i-1 ):Type = 5 // ES DE TIPO NUMBER /////////////////////////////////////////////////////////////// IF objRes:Fields( i ):Type = 200 inLen := 100 ELSEIF objRes:Fields( i ):Type = 3 inLen := 80 ELSEIF objRes:Fields( i ):Type = 5 inLen := 80 ELSE inLen := 80 ENDIF AADD( aCabWidth, inLen ) i := i + 1 ENDDO aDatosTabla := {} DO WHILE !:EOF() i := 0 aUnaFila := {} DO WHILE i < nFCount // ccType := :Fields( i ):Type ccValor := :Fields( i ):Value IF objRes:Fields( i ):Type = 200 IF VALTYPE( objRes:Fields( i ):Value) ='U' ccValor := "" ELSE ccValor := objRes:Fields( i ):Value ENDIF ELSEIF objRes:Fields( i ):Type = 3 ///////////////////////////////////////////////////////////////// // objRes:Fields( i-1 ):Type = 200 // ES DE TIPO CHAR // objRes:Fields( i-1 ):Type = 135 // ES DE TIPO DATE // objRes:Fields( i-1 ):Type = 2 // ES DE TIPO SHORT INT // objRes:Fields( i-1 ):Type = 3 // ES DE TIPO LONG INT // objRes:Fields( i-1 ):Type = 5 // ES DE TIPO NUMBER ///////////////////////////////////////////////////////////////// IF VALTYPE( objRes:Fields( i ):Value) ='U' ccValor := '0' ELSE ccValor := AnyToString( objRes:Fields( i ):Value ) ENDIF ELSEIF objRes:Fields( i ):Type = 5 IF VALTYPE( objRes:Fields( i ):Value) ='U' ccValor := "0" ELSE ccValor := AnyToString( objRes:Fields( i ):Value ) ENDIF ELSE ccValor := AnyToString( objRes:Fields( i ):Value ) ENDIF AADD( aUnaFila, ccValor ) GetLenColumGrid( LEN(ccValor) , i+1 ) i++ // ENDDO AADD( aDatosTabla, aUnaFila ) :MoveNext() ENDDO END objRes := Nil CargaPantalla() ELSE MSGINFO("NO ES UN ARCHIVO") ENDIF ///////////////////////////////////////////////////////////////////// && Append --> oRs:AddNew() && Close --> oRs:Close() && Commit --> oRs:Update() && Delete --> oRs:Delete() && Deleted() --> oRs:Status == adRecDeleted && EOF() --> oRs:EOF or oRs:AbsolutePosition == -3 && Field() --> oRs:Fields( nField - 1 ):Name, :Value, :Type && FCount() --> oRs:Fields:Count && GoTop --> oRs:MoveFirst() && GoBottom --> oRs:MoveLast() && Locate --> oRs:Find( cFor, If( lContinue, 1, 0 ) ) && Open --> oRs:Open( cQuery, hConnection ) && OrdListClear() --> oRs:Index := "" && RecCount() --> oRs:RecordCount && LastRec() --> oRs:RecordCount && RecNo() --> oRs:AbsolutePosition && Skip --> oRs:Move( nToSkip ) ///////////////////////////////////////////////////////////////////// RETURN NIL //////////////////////////////////////////////////////////////////////////// // Nombre.....: GetLenColumGrid( inLeng, inIndex ) // Autor......: RullyVillanueva // Fecha......: 31/07/2018 // Descripcion: //////////////////////////////////////////////////////////////////////////// PROCEDURE GetLenColumGrid( inLeng, inIndex ) LOCAL nnAncho := 80 IF ( inLeng < 6 ) nnAncho := 50 ELSEIF ( inLeng < 10 ) nnAncho := 100 ELSEIF ( inLeng < 12 ) nnAncho := 120 ELSEIF ( inLeng < 20 ) nnAncho := 200 ELSEIF ( inLeng < 30 ) nnAncho := 280 ELSEIF ( inLeng < 60 ) nnAncho := 320 ELSE nnAncho := 380 ENDIF IF aCabWidth[inIndex] < nnAncho aCabWidth[inIndex] := nnAncho ENDIF RETURN NIL //////////////////////////////////////////////////////////////////////////// // // Nombre.......: BNL_QueryStructure(ccTableta) // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// Function ConnectToParadox() LOCAL x_Error Local lConnect := .f. Local cString := "Driver={Microsoft Paradox Driver (*.db )};"+; "collatingsequence=ASCII;"+; "dbq="+ cPath +";"+; "defaultdir="+ cPath +";"+; "driverid=538;"+; "fil=Paradox 7.X;"+; "paradoxnetpath="+ cPath +";"+; "paradoxnetstyle=4.x;"+; "paradoxusername=Administrador;"+; "safetransactions=0;"+; "threads=3;"+; "uid=administrador;"+; "usercommitsync=Yes" oServer := TOleAuto():New("ADODB.Connection") oServer:ConnectionString := cString TRY oServer:Open() lConnect := .T. CATCH x_Error:=oServer:Errors MSGINFO(x_Error) MsgInfo('Conexion Fallida!') oServer := Nil END Return( lConnect ) //////////////////////////////////////////////////////////////////////////// // // Nombre.......: EjecuteQuery( ccSQL ) // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// Function EjecuteQuery( ccSentenia ) LOCAL ccNOTAB := "" LOCAL cc00240 := "" LOCAL cc00241 := "" LOCAL cc00243 := "" LOCAL cc00242 := "" LOCAL ccTypexx:= "" Local oRecordset AS OBJECT // Msginfo(ccSentenia) WITH OBJECT oRecordset := TOleAuto():New("ADODB.RECORDSET") // :LockType := adLockOptimistic // :CursorType := adOpenDynamic :CursorLocation := adUseClient // :ActiveConnection(oServer) :Source := ccSentenia :Open( ccSentenia, oServer ) END RETURN( oRecordset ) //////////////////////////////////////////////////////////////////////////// // // Nombre.......: Query_W_Listab() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// // Numero Libelle // 0 1 //////////////////////////////////////////////////////////////////////////// static function Query_W_Listab() LOCAL aNuevo := {} LOCAL ccNumero := "" LOCAL ccLibelle := "" LOCAL iconta := 0 Local oRs AS OBJECT aWListab := {} WITH OBJECT oRs := TOleAuto():New("ADODB.RECORDSET") :LockType := adLockOptimistic :CursorType := adOpenDynamic :CursorLocation := adUseClient //:ActiveConnection(oServer) :Source := "Select * from W_Listab.db" :Open( :Source, oServer) :MoveFirst() DO WHILE !:EOF() ccNumero := :Fields(0):value ccLibelle := :Fields(1):value IF !EMPTY( ccLibelle) ccLibelle := UPPER( ccLibelle ) ENDIF aNuevo := { ccNumero, ccLibelle } AADD( aWListab, { ccNumero, ccLibelle } ) :MoveNext() iconta := iconta + 1 ENDDO END RETURN NIL //////////////////////////////////////////////////////////////////////////// // // Nombre.......: Query_dePortes() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// // Notab 00240 00020 00090 00690 01040 00241 00243 00710 00242 // 0 1 2 3 4 5 6 7 8 9 //////////////////////////////////////////////////////////////////////////// static function Query_dePortes() LOCAL aNuevo := {} LOCAL cc00242 := "" LOCAL cc00241 := "" LOCAL cc00690 := "" Local iconta := 0 WITH OBJECT oRs := TOleAuto():New("AdoDB.RecordSet") :LockType := adLockOptimistic :CursorType := adOpenDynamic :CursorLocation := adUseClient :ActiveConnection(oServer) :Source := "Select * from A90000.db" :Open() :MoveFirst() DO WHILE !:EOF() cc00690 := Str( :Fields(4):value ) // IDIOMA cc00241 := :Fields(6):value // DESCRIPCION cc00242 := :Fields(9):value // FISICA aNuevo := { cc00242, cc00690, cc00241 } vnmain.gdRepert.AddItem( aNuevo ) :MoveNext() iconta := iconta + 1 ENDDO END RETURN NIL //////////////////////////////////////////////////////////////////////////// // // Nombre.......: BNL_QueryStructure(ccTableta) // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// static function BNL_QueryStructure(ccTableta) LOCAL ccPosit := "" LOCAL ccNomCm := "" LOCAL ccClave := "" LOCAL ccTypee := "" LOCAL ccLongi := "" LOCAL ccDecim := "" Local iconta := 0 Local nnOccur := 0 Local cNewName:= "" aCabecera := {} aCabWidth := {} aSt9999 := {} WITH OBJECT oRs := TOleAuto():New("AdoDB.RecordSet") :LockType := adLockOptimistic :CursorType := adOpenDynamic :CursorLocation := adUseClient :ActiveConnection(oServer) :Source := "Select * from ST9999.Db where Nutab = '" + ccTableta + "' Order by posi" :Open() :MoveFirst() DO WHILE !:EOF() // iconta := iconta + 1 // ccPosnm := iconta // := :Fields(0):value // Notab // := :Fields(1):value // Nutab ccPosit := :Fields(2):value // Posi ccNomCm := :Fields(3):value // Norubr ccClave := :Fields(4):value // Cle nnOccur := :Fields(5):value // Occurs ccTypee := :Fields(6):value // Type ccLongi := :Fields(7):value // Long ccDecim := :Fields(8):value // Dec // := :Fields(9):value // Signe msginfo(nnOccur) if (ccTypee=='X') nAncho := GetLenghtOfColumWin(ccLongi) else if (ccTypee=='9') .or. (ccTypee=='D') nAncho := 100 else nAncho := 120 endif endif // if nnOccur=0 AADD( aCabecera, ccNomCm ) AADD( aCabWidth, nAncho ) AADD( aSt9999, { ccPosit, ccNomCm, ccClave, ccTypee, ccLongi, ccDecim } ) else // aNoNames :={} for u:=1 to nnOccur Step 1 cNewName := ccNomCm + Alltrim(Str(u) ) AADD( aCabecera, cNewName ) AADD( aCabWidth, nAncho ) // AADD( aNoNames, ccNomCm + Alltrim(Str(u)) next u endif :MoveNext() // ENDDO END RETURN NIL //////////////////////////////////////////////////////////////////////////// // Nombre.....: BNL_GetDetailRub() // Autor......: RullyVillanueva // Fecha......: 31/07/2018 // Descripcion: // // //////////////////////////////////////////////////////////////////////////// static function BNL_GetDetailRub() LOCAL ccNorubr := "" LOCAL nnCodlang := 0 LOCAL ccLibrub := "" LOCAL ccModifiable := "" LOCAL obRset AS OBJECT aRubrique := {} WITH OBJECT obRset := TOleAuto():New("AdoDB.RecordSet") :LockType := adLockOptimistic :CursorType := adOpenDynamic :CursorLocation := adUseClient // :ActiveConnection(oServer) :Source := "Select * from Rubrique.db where Codlang = 3" :Open("Select * from Rubrique.db where Codlang = 3", oServer ) :MoveFirst() DO WHILE !:EOF() // ccNorubr := AnyToString( :Fields(0):value ) ccLibrub := AnyToString( :Fields(2):value ) AADD(aRubrique, { ccNorubr, ccLibrub }) :MoveNext() // ENDDO END RETURN NIL //////////////////////////////////////////////////////////////////////////// // Nombre.....: GetLenghtOfColumWin(nnLngt) // Autor......: RullyVillanueva // Fecha......: 31/07/2018 // Descripcion: // // //////////////////////////////////////////////////////////////////////////// FUNCTION GetLenghtOfColumWin(nnLngt) LOCAL nnAncho := 80 IF ( nnLngt < 6 ) nnAncho := 50 ELSEIF ( nnLngt < 12 ) nnAncho := 120 ELSEIF ( nnLngt < 20 ) nnAncho := 250 ELSEIF ( nnLngt < 30 ) nnAncho := 350 ELSEIF ( nnLngt < 60 ) nnAncho := 380 ELSE nnAncho := 400 ENDIF RETURN( nnAncho ) && sendevent -E FORCE_STARTJOB -J jyw1pr01 //////////////////////////////////////////////////////////////////////////// // // Nombre.......: AnyToString( csValue ) // Parametros...: csValue ==> es un valor de cualquier tipo // Descripcion..: Convertir un valor de cualquier tipo en tipo String // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// STATIC FUNCTION AnyToString( csValue ) LOCAL ccValor LOCAL cdate DO CASE CASE ValType( csValue ) == "N" ccValor := hb_ntos( csValue ) CASE ValType( csValue ) $ "DT" IF !Empty( csValue ) cdate := DToS( csValue ) ccValor := SubStr( cDate, 1, 4 ) + "-" + SubStr( cDate, 5, 2 ) + "-" + SubStr( cDate, 7, 2 ) ELSE ccValor := "" ENDIF CASE ValType( csValue ) $ "CM" IF Empty( csValue ) ccValor = "" ELSE ccValor := "" + csValue + "" ENDIF CASE ValType( csValue ) == "L" ccValor := hb_ntos( lton( csValue ) ) CASE ValType( csValue ) == "U" ccValor := "" OTHERWISE ccValor := "" // NOTE: Here we lose csValues we cannot convert ENDCASE RETURN( ccValor ) //////////////////////////////////////////////////////////////////////////// // Nombre.....: Get_PathProgram( cFile ) // Autor......: RullyVillanueva // Fecha......: 31/07/2018 // Descripcion: //////////////////////////////////////////////////////////////////////////// FUNCTION Get_PathProgram( cFile ) LOCAL nPos, cFilePath IF ( nPos := RAT("\", cFile) ) != 0 cFilePath = SUBSTR(cFile, 1, nPos) ELSE cFilePath = "" ENDIF RETURN( cFilePath ) //////////////////////////////////////////////////////////////////////////// // Nombre.....: Get_NameProgram( cFile ) // Autor......: RullyVillanueva // Fecha......: 31/07/2018 // Descripcion: //////////////////////////////////////////////////////////////////////////// FUNCTION Get_NameProgram( cFile ) LOCAL nPos, cFilePath IF ( nPos := RAT("\", cFile) ) != 0 cFilePath = Alltrim( SUBSTR(cFile, nPos+1, 16) ) cFilePath = SUBSTR(cFilePath, 1, LEN(cFilePath)-4 ) ELSE cFilePath = "" ENDIF RETURN( cFilePath ) FUNCTION GetInfoAutor() Local cText := "" // "Program " + Application.ExeName + CRLF + ; cText := "[Information]" + CRLF + ; "Program : GestabReader" + CRLF + ; "FileInfo " + SISTEMA + CRLF + ; "Author " + Autor + CRLF + ; "Free Compiler " + Version() + CRLF + ; "C/C++ Compiler " + hb_compiler() + CRLF + ; "Free Library " + MiniGUIVersion() + CRLF + ; "User Name " + GetUserName() + CRLF + ; "WorkStation " + GetComputerName() + CRLF + CRLF ccSYSINFO := cText RETURN NIL //=============================================================// // SOBRE LA A99900 //=============================================================// // NOTAB C 06 NOMBRE DE TABLA // 00240 C 06 NOMBRE DE TABLA LOGICA // 01040 D 08 FECHA DE CREACION/MODIFICACION // 00241 C 50 DESCRIPCION DE LA TABLA // 00243 N 02 INDICADOR ALCANCE 1=Todos los bancos 2=Todas las Suc de un banco 3=esp de una Sucursal // 00710 N 02 SPECIFIES IF A LOGICAL TABLE IS LANGUAGE DEPENDENT 0=NO 1=ONE LANGUAGE // 00020 N 02 CODIGO DE BANCO // 00690 N 02 CODE SPECIFYING THE LANGUAGE IN WHICH CERTAIN // 00242 C 06 NOMBRE FISICO DE LA TABLA // 00244 N 02 COMENTARIO ADICIONAL // SCSUJT C 02 CODIGO SUJETO //=============================================================// // NOTAB NOTAB C 06 NOMBRE DE TABLA // LOGICA 00240 C 06 NOMBRE DE TABLA LOGICA // DESCRIPCION 00241 C 50 DESCRIPCION DE LA TABLA // ALCANCE 00243 N 02 INDICADOR ALCANCE 1=Todos los bancos 2=Todas las Suc de un banco 3=esp de una Sucursal // FISICA 00242 C 06 NOMBRE FISICO DE LA TABLA //=============================================================// // NOTAB NOTAB C 06 120 // LOGICA 00240 C 06 120 // DESCRIPCION 00241 C 50 350 // ALCANCE 00243 N 02 100 // FISICA 00242 C 06 120 &&========================================================================&& && Tipos de datos de Paradox &&========================================================================&& && El controlador ODBC Paradox asigna tipos de datos de Paradox a && tipos de datos SQL de ODBC. En la tabla siguiente se enumera && todos los tipos de datos de Paradox y muestra que se asignan && a los tipos de datos de ODBC SQL. &&========================================================================&& && Tipo de datos de Paradox Tipo de datos de ODBC && ************************ ********************* && ALFANUMÉRICO SQL_VARCHAR && AUTOINCREMENT [1] SQL_INTEGER && BCD [1] SQL_DOUBLE && BYTES [1] SQL_BINARY && DATE SQL_DATE && IMAGEN DE [2] SQL_LONGVARBINARY && LÓGICA [1] SQL_BIT && LARGA [1] SQL_INTEGER && MEMORANDO [2] SQL_LONGVARCHAR && MONEY [1] SQL_DOUBLE && NUMBER SQL_DOUBLE && CORTO SQL_SMALLINT && TIEMPO [1] SQL_TIMESTAMP && MARCA DE TIEMPO [1] SQL_TIMESTAMP && && [1] válido únicamente para versiones de Paradox 5. x. && && [2] válido sólo para versiones de Paradox 4. x y 5. x. &&========================================================================&& && Nota &&========================================================================&& && SQLGetTypeInfo devuelve tipos de datos de SQL de ODBC. && Todas las conversiones en el apéndice D de la referencia && del programador de ODBC son compatibles con los tipos de && datos SQL de ODBC enumerados anteriormente en este tema. &&========================================================================&& && La siguiente tabla muestra las limitaciones en los tipos && de datos de Paradox. &&========================================================================&& && Tipo de datos Description &&========================================================================&& && ALFANUMÉRICO Crear una columna ALFANUMÉRICA de cero o && sin especificar longitud realmente devuelve && una columna de 255 bytes. && BYTES Si inserta NULL en una columna binaria con el && controlador de Paradox5, se cambia a 0. && LONG El valor negativo máximo admitido por el && controlador de Paradox para el tipo de && datos de tipo Long en 5 Paradox. x no && es -2 ^ 31 (-2147483648), ya que debe && ser desde largo se asigna a los datos && ODBC escriba SQL_INTEGER. && El valor negativo máximo admitido largos && es realmente -2 ^ 31 + 1 (-2147483647). && TIMESTAMP Cuando un valor se inserta en una columna && de marca de tiempo con el controlador de && Paradox y que posteriormente se recupera && de la columna, el valor recuperado puede && diferir del valor insertado por tanto como && 1 segundo a causa del redondeo. &&========================================================================&& #include "Include\Config.prg" #include "Include\BlackList.prg" #include "Include\WTable3.prg" #include "Include\WSearch10.prg" &&========================================================================&& /*>===========c:\GReader\GestabReader.rc */ MAINICO ICON Resources\ViNoe.ico MCHOTES ICON Resources\Mchotes.ico IMAIN ICON Resources\Main.ico ISTOP ICON Resources\Stop.ico IARROW ICON Resources\arrow.ico IBOLD ICON Resources\bold.ico ICLEAR ICON Resources\clear.ico ICLOSE ICON Resources\close.ico BNLIEW ICON Resources\BNLiew.ico BOQUITA18 JPG Resources\Se_viene_Boca.jpg SPREADER BITMAP Resources\GestabReader.bmp 1 VERSIONINFO FILEVERSION 1,3,0,0 PRODUCTVERSION 1,0,0,0 FILEOS 0x4 FILETYPE 0x1 { BLOCK "StringFileInfo" { BLOCK "0C0904E4" { VALUE "CompanyName", "Muchachotes Team" VALUE "FileDescription", "Muchachotes Utility" VALUE "FileVersion", "1.1.0.0" VALUE "InternalName", "GReader" VALUE "LegalCopyright", "Copyright © BienBoys\000" VALUE "LegalTrademarks", "Harbour" VALUE "OriginalFilename", "GReader.exe" VALUE "ProductName", "Muchachotes" VALUE "ProductVersion", "1.0.0.0" VALUE "Comments", "Freeware, pero no tanto." VALUE "Additional Notes", "Software de Distribution Restringida por el Autor" } } } /*>===========c:\GReader\Include */ /*>===========c:\GReader\Resources */ /*>===========c:\GReader\Include\adordd.ch */ /*>===========c:\GReader\Include\BlackList.prg */ ////////////////////////////////////////////////////////////////////// // FUNCION PARA BUSCAR SI EL NOMBRE DEL ARCHIVO .DB // ESTA EN LA LISTA NEGRA ////////////////////////////////////////////////////////////////////// FUNCTION IsBlackList( ccValor ) LOCAL aNegrada := {} LOCAL nPos := 0 LOCAL siEsta := FALSE AADD( ANEGRADA, '$$4.DB' ) AADD( ANEGRADA, '$A905DA.DB' ) AADD( ANEGRADA, '$A905DE.DB' ) AADD( ANEGRADA, '$A905DF.DB' ) AADD( ANEGRADA, '$A905DL.DB' ) AADD( ANEGRADA, '$A905DR.DB' ) AADD( ANEGRADA, '.DB' ) AADD( aNegrada, "A126DT_OLD.DB" ) AADD( aNegrada, "COPY OF A127DE.DB" ) AADD( aNegrada, "COPY OF RUBRIQUE.DB" ) AADD( aNegrada, "COPY OF W_EXPORT(2).DB" ) AADD( aNegrada, "COPY OF W_EXPORT(3).DB" ) AADD( aNegrada, "COPY OF W_EXPORT.DB" ) AADD( aNegrada, "COPY OF W_LOCK.DB" ) AADD( aNegrada, "LOG.DB" ) AADD( aNegrada, "LOG01.DB" ) AADD( aNegrada, "LOG02.DB" ) AADD( aNegrada, "LOG03.DB" ) AADD( aNegrada, "LOG04.DB" ) AADD( aNegrada, "LOG05.DB" ) AADD( aNegrada, "LOG06.DB" ) AADD( aNegrada, "LOG07.DB" ) AADD( aNegrada, "LOG08.DB" ) AADD( aNegrada, "LOG09.DB" ) AADD( aNegrada, "LOG10.DB" ) AADD( aNegrada, "LOG11.DB" ) AADD( aNegrada, "LOG12.DB" ) AADD( aNegrada, "LOG13.DB" ) AADD( aNegrada, "LOG14.DB" ) AADD( aNegrada, "LOG15.DB" ) AADD( aNegrada, "LOG16.DB" ) AADD( aNegrada, "LOG17.DB" ) AADD( aNegrada, "LOG18.DB" ) AADD( aNegrada, "LOG19.DB" ) AADD( aNegrada, "LOG20.DB" ) AADD( aNegrada, "LOG21.DB" ) AADD( aNegrada, "LOG22.DB" ) AADD( aNegrada, "LOG24.DB" ) AADD( aNegrada, "LOG25.DB" ) AADD( aNegrada, "LOG26.DB" ) AADD( aNegrada, "LOG27.DB" ) AADD( aNegrada, "LOG28.DB" ) AADD( aNegrada, "LOG29.DB" ) AADD( aNegrada, "LOG30.DB" ) AADD( aNegrada, "LOG31.DB" ) AADD( aNegrada, "LOG32.DB" ) AADD( aNegrada, "LOG33.DB" ) AADD( aNegrada, "LOG34.DB" ) AADD( aNegrada, "LOG35.DB" ) AADD( aNegrada, "LOG36.DB" ) AADD( aNegrada, "LOG37.DB" ) AADD( aNegrada, "LOG38.DB" ) AADD( aNegrada, "LOG39.DB" ) AADD( aNegrada, "LOG40.DB" ) AADD( aNegrada, "LOG41.DB" ) AADD( aNegrada, "LOG42.DB" ) AADD( aNegrada, "LOG43.DB" ) AADD( aNegrada, "LOG44.DB" ) AADD( aNegrada, "LOG45.DB" ) AADD( aNegrada, "LOG46.DB" ) AADD( aNegrada, "LOG47.DB" ) AADD( aNegrada, "LOG48.DB" ) AADD( aNegrada, "LOG49.DB" ) AADD( aNegrada, "LOG50.DB" ) AADD( aNegrada, "LOG51.DB" ) AADD( aNegrada, "LOG52.DB" ) AADD( aNegrada, "LOG53.DB" ) AADD( aNegrada, "LOG54.DB" ) AADD( aNegrada, "LOGNUM.DB" ) AADD( aNegrada, "MAJMIX.DB" ) AADD( aNegrada, "MAJMIX2.DB" ) AADD( aNegrada, "MAJMIX3.DB" ) AADD( aNegrada, "MAJMIXPL.DB" ) AADD( aNegrada, "MAJMIXRG.DB" ) AADD( aNegrada, "OBJ.DB" ) AADD( aNegrada, "PETALE.DB" ) AADD( aNegrada, "PTFTRI.DB" ) AADD( aNegrada, "RECHERCH.DB" ) AADD( aNegrada, "RESTRU.DB" ) AADD( aNegrada, "RESTRU2.DB" ) AADD( aNegrada, "RESTRUAM.DB" ) AADD( aNegrada, "RESTRUCL.DB" ) AADD( aNegrada, "RESTTEM1.DB" ) AADD( aNegrada, "RESTTEM2.DB" ) AADD( aNegrada, "RESTTEM3.DB" ) AADD( aNegrada, "RESTTEM4.DB" ) AADD( aNegrada, "RESULT.DB" ) AADD( aNegrada, "RUB999.DB" ) AADD( aNegrada, "RUBRIQUE1.DB" ) AADD( aNegrada, "RUBRIQUE2.DB" ) AADD( aNegrada, "RUB_FULL.DB" ) AADD( aNegrada, "STRUC.DB" ) AADD( aNegrada, "STRUCT.DB" ) AADD( aNegrada, "STRUCT1.DB" ) AADD( aNegrada, "STRUCT_DET.DB" ) AADD( aNegrada, "TABFAMI.DB" ) AADD( aNegrada, "TABLE.DB" ) AADD( aNegrada, "TABLESO.DB" ) AADD( aNegrada, "TABPTF.DB" ) AADD( aNegrada, "TABWS.DB" ) AADD( aNegrada, "TRANSFER.DB" ) AADD( aNegrada, "VERSION.DB" ) AADD( aNegrada, "W.DB" ) AADD( aNegrada, "WERWERW.DB" ) AADD( aNegrada, "WEXTRACT.DB" ) AADD( aNegrada, "WV_NYRSK.DB" ) AADD( aNegrada, "WV_ORION.DB" ) AADD( aNegrada, "WX_0218.DB" ) AADD( aNegrada, "WX_25848.DB" ) AADD( aNegrada, "WX_DIN47.DB" ) AADD( aNegrada, "WX_HP.DB" ) AADD( aNegrada, "WX_HP11.DB" ) AADD( aNegrada, "W_001GT1.DB" ) AADD( aNegrada, "W_002GT1.DB" ) AADD( aNegrada, "W_003GT1.DB" ) AADD( aNegrada, "W_ACCES.DB" ) AADD( aNegrada, "W_ALFANUM.DB" ) AADD( aNegrada, "W_ARTIFI.DB" ) AADD( aNegrada, "W_ARTIFIALE.DB" ) AADD( aNegrada, "W_CLASS.DB" ) AADD( aNegrada, "W_CONV36.DB" ) AADD( aNegrada, "W_CONVDV.DB" ) AADD( aNegrada, "W_CONVMT.DB" ) AADD( aNegrada, "W_CONVPH.DB" ) AADD( aNegrada, "W_DATA.DB" ) AADD( aNegrada, "W_DEVMNT.DB" ) AADD( aNegrada, "W_DIN.DB" ) AADD( aNegrada, "W_ERREUR.DB" ) AADD( aNegrada, "W_ETAT.DB" ) AADD( aNegrada, "W_EXPORT.DB" ) AADD( aNegrada, "W_EXTRAC.DB" ) AADD( aNegrada, "W_INFOPATCH.DB" ) AADD( aNegrada, "W_INSTAL.DB" ) AADD( aNegrada, "W_LISTAB.DB" ) AADD( aNegrada, "W_LOCK.DB" ) AADD( aNegrada, "W_LOGIC.DB" ) AADD( aNegrada, "W_LOGIN.DB" ) AADD( aNegrada, "W_PARAM.DB" ) AADD( aNegrada, "W_RESTRU.DB" ) AADD( aNegrada, "W_SELECT.DB" ) AADD( aNegrada, "W_STRUCT.DB" ) AADD( aNegrada, "W_SUFFIX.DB" ) AADD( aNegrada, "W_VAL.DB" ) AADD( aNegrada, "_$MDP$_.DB" ) AADD( aNegrada, "__STRU.DB" ) nPos := ASCAN( aNegrada, UPPER( ccValor )) IF nPos > 0 siEsta := TRUE ELSE IF (nPos := RAT("\", ccValor)) != 0 siEsta := TRUE ELSEIF (nPos := RAT("_", ccValor)) != 0 siEsta := TRUE ELSEIF (nPos := RAT("£", ccValor)) != 0 siEsta := TRUE ENDIF ENDIF RETURN( siEsta ) /*>===========c:\GReader\Include\Config.prg */ FUNCTION ISM_OpenConfig() ccConfig := Get_NameProgram( hb_ProgName() ) + ".ini" IF FILE( ccConfig ) BEGIN INI FILE ( ccConfig ) GET cGestabLocal SECTION "Path" ENTRY "GestabLocal" GET cFolderTemp SECTION "Path" ENTRY "FolderTemp" GET cFolderTranfer SECTION "Path" ENTRY "FolderTransfer" END INI ELSE cGestabLocal := "c:\GReader\LGestab\" cFolderTemp := "c:\Temp\" cFolderTranfer := "c:\Transf\" BEGIN INI FILE ( ccConfig ) SET SECTION "Path" ENTRY "GestabLocal" TO cGestabLocal SET SECTION "Path" ENTRY "FolderTemp" TO cFolderTemp SET SECTION "Path" ENTRY "FolderTransfer" TO cFolderTranfer END INI ENDIF RETURN NIL FUNCTION ISM_Grabar() BEGIN INI FILE ( ccConfig ) SET SECTION "Path" ENTRY "GestabLocal" TO cGestabLocal SET SECTION "Path" ENTRY "FolderTemp" TO cFolderTemp SET SECTION "Path" ENTRY "FolderTransfer" TO cFolderTranfer END INI RETURN NIL /*>===========c:\GReader\Include\GestabReader.ch */ #define TRUE .T. #define FALSE .F. #define SQuote CHR(39) #define DQuote CHR(34) #define BDER BROWSE_JTFY_RIGHT #define BIZQ BROWSE_JTFY_LEFT #define BCEN BROWSE_JTFY_CENTER #define NEGRO {0,0,0} #define BLANCO {255,255,255} #define VERDECITO {3,69,9} #define ROJITO {255,0,0} #define BEIGE {245,243,146} #define AGUA {200,241,150} #define F_FEFIL 10 #define FinLinea Chr(10) + Chr(13) #define NOMSYS "GReader" #define VERSYS "Version 1.01.67(R)" #define SISTEMA NOMSYS + " " + VERSYS #define Autor "Isma" /*>===========c:\GReader\Include\WSearch10.prg */ FUNCTION ExecQuery45() IF _IsWindowDefined( "wseach" ) RETURN Nil ENDIF DEFINE WINDOW wseach AT 0,0 WIDTH 568 HEIGHT 168 ; TITLE "Buscar... en la tabla: " + ccTablaSelecta + " - elija el criterio" ; MODAL NOSIZE; FONT "Consolas" SIZE 12 ON KEY ESCAPE OF wseach ACTION wseach.Release() @010,010 LABEL lblfield VALUE 'Por Columna' ; WIDTH 120 HEIGHT 25 ; FONT "Consolas" SIZE 11 ; FONTCOLOR RED @032,012 COMBOBOX cbocolum OF wseach ; WIDTH 150 HEIGHT 400 ; ITEMS aCabecera ; VALUE 2 @032,164 COMBOBOX cbooper OF wseach ; WIDTH 60 HEIGHT 400 ; ITEMS {'=','<>','>=','>','<','<='} ; VALUE 1 @032,226 TEXTBOX txtvalue WIDTH 200 VALUE "" ; FONT "Consolas" SIZE 12 @032,445 BUTTON cmdacepta CAPTION "&Ejecutar" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ITALIC ; ACTION ISM_EjecutaQuery() @064,445 BUTTON cmdsalia CAPTION "&Cerrar" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ; ACTION wseach.Release() END WINDOW CENTER WINDOW wseach ACTIVATE WINDOW wseach RETURN Nil FUNCTION ISM_EjecutaQuery() LOCAL iCon := 0 LOCAL x := 0 LOCAL indx :=0 LOCAL ccGalue :="" LOCAL aTemporal := {} LOCAL cColumn := wseach.cbocolum.DisplayValue LOCAL cOperat := " " + wseach.cbooper.DisplayValue + " " LOCAL cValore := wseach.txtvalue.Value LOCAL cwSQLt := "Select * From " + Alltrim(ccTablaSelecta) + ".DB Where " + ; cColumn + cOperat IF EMPTY(cValore) .or. cValore=nil .or. LEN(cValore)=0 MsgInfo("DEBE INGRESAR UN VALOR") wseach.txtvalue.Setfocus() RETURN NIL ENDIF ////////////////////////////////////////////////////////////// // aSt9999 ==> ESTRUCTURA DE LA TABLA // aDatosTabla ==> Datos de las tablas // aCabecera ==> Cabecera de la Grilla ////////////////////////////////////////////////////////////// // wawin.gdFisica.DeleteAllItems() indx:= ASCAN(aCabecera, cColumn) aTemporal:={} IF indx > 0 iCon:=0 FOR i:=1 TO Len(aDatosTabla) STEP 1 FOR j:=1 TO Len(aCabecera) STEP 1 ccGalue := aDatosTabla[i][j] AADD(aTemporal, ccGalue) NEXT j IF aTemporal[indx]==cValore iCon:=iCon+1 ENDIF aTemporal:={} NEXT i IF iCon = 0 MsgInfo("NO HAY DATOS PARA ESA BUSQUEDA") wseach.Release() RETURN NIL ENDIF wawin.gdFisica.DeleteAllItems() FOR i:=1 TO Len(aDatosTabla) STEP 1 FOR j:=1 TO Len(aCabecera) STEP 1 ccGalue := aDatosTabla[i][j] AADD(aTemporal, ccGalue) NEXT j IF aTemporal[indx]= cValore wawin.gdFisica.AddItem( aTemporal ) ENDIF aTemporal:={} NEXT i ENDIF WaWin_MostrarUnaFila() wseach.Release() RETURN NIL /*>===========c:\GReader\Include\WTable2.prg */ //////////////////////////////////////////////////////////////////////////// // Nombre.......: CargaPantalla() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION CargaPantalla() LOCAL ccHeadTootip LOCAL ccHeadTitle := " .... Presione " + CHR(34) + "ESC" + CHR(34) + " para regresar..." IF _IsWindowDefined( "wawin" ) RETURN Nil ENDIF DEFINE WINDOW wawin AT 0,0 WIDTH 1280 HEIGHT 800 ; TITLE ccTablaSelecta + " ... " + ccHeadTitle ; MODAL ; FONT "Consolas" SIZE 10 ON KEY ESCAPE OF wawin ACTION WaWin_Salir() @003,nWidth-520 LABEL lblwhats VALUE ' '; WIDTH 500 HEIGHT 25 ; FONT "Consolas" SIZE 10 ITALIC; FONTCOLOR {6,77,4} @035,003 GRID gdFisica WIDTH nWidth-5 HEIGHT nHeight-45 ; FONT "Consolas" SIZE 10 ; HEADERS aCabecera ; WIDTHS aCabWidth ; ITEMS aDatosTabla; VALUE 1 ; ON DBLCLICK nil // ISM_GrillaClick() END WINDOW Maximize WINDOW wawin ACTIVATE WINDOW wawin RETURN Nil FUNCTION wawin_Salir() wawin.Release() RETURN Nil //////////////////////////////////////////////////////////////////////////// // Nombre.......: wawin_PageUp() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION DescriptionHeads() LOCAL i:=0 LOCAL ccNamerub :="" LOCAL ccTexto :="" ccTexto :="" FOR i:=1 TO LEN(aCabecera) STEP 1 ccNamerub := aCabecera[i] nInde := ASCAN(aRubrique, {|aVal| aVal[1] == ccNamerub}) IF nInde>0 ccTexto := ccTexto + aRubrique[nInde][1] + " " + ; aRubrique[nInde][2] + " " + CRLF ENDIF NEXT i MsgInfo( ccTexto ) RETURN NIL //////////////////////////////////////////////////////////////////////////// // Nombre.......: wawin_Exp2XLS() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION wawin_Exp2XLS() Local oExcel, oSheet, oBook, nCell := 1, nRow := 1 Local ccFileXls := cFolderTemp + ccTablaSelecta + '.xlsx' IF aDatosTabla==NIL MsgInfo("No hay dato para exportar","EXPORTAR A XLS") RETURN NIL ENDIF oExcel := TOleAuto():New( "Excel.Application" ) IF Ole2TxtError() != 'S_OK' MsgStop('WinExcel no está instalado!', SISTEMA) RETURN NIL ENDIF oExcel:Visible := .F. oExcel:WorkBooks:Add() oSheet := oExcel:Get( "ActiveSheet" ) oSheet:Cells:Font:Name := "Consolas" oSheet:Cells:Font:Size := 11 wawin.lblwhats.Value := "EXPORTANDO LA TABLA => " + ccTablaSelecta wawin.lblwhats.FONTCOLOR := BLUE FOR nCell := 1 TO LEN(aCabecera) STEP 1 c1erLetra := Substr(Alltrim(aCabecera[nCell]), 1, 1) IF c1erLetra$"01234567890" oSheet:Cells( 1, nCell ):Value := chr(39) + AnyToString( aCabecera[nCell] ) else oSheet:Cells( 1, nCell ):Value := AnyToString( aCabecera[nCell] ) endif NEXT nCell FOR nIndice := 1 TO LEN(aDatosTabla) STEP 1 nFila := nIndice + 1 FOR nColu := 1 TO LEN(aCabecera) STEP 1 c1erLetra := Substr(Alltrim(aDatosTabla[nIndice][nColu]), 1, 1) IF c1erLetra$"01234567890" oSheet:Cells( nFila, nColu ):Value := chr(39) + AnyToString( aDatosTabla[nIndice][nColu] ) ELSE oSheet:Cells( nFila, nColu ):Value := AnyToString( aDatosTabla[nIndice][nColu] ) ENDIF NEXT nColu wawin.lblwhats.FONTCOLOR := RED NEXT nIndice oBook := oExcel:Get("ActiveWorkBook") oBook:Title := wawin.TITLE oBook:Subject := Substr(wawin.TITLE, 1, 4) IF !EMPTY(cFolderTemp) if file(ccFileXls) delete file (ccFileXls) inkey(1) endif oBook:SaveAs(ccFileXls) ELSE oExcel:Visible := .T. ENDIF wawin.lblwhats.Value := "Listo, se exportó la tabla: " + ccFileXls wawin.lblwhats.FONTCOLOR := BLUE oExcel:Quit() Inkey(1) MsgInfo("Se ha exportó la tabla -> [ " + ccFileXls + " ]", SISTEMA) wawin.lblwhats.Value := "" RETURN NIL //////////////////////////////////////////////////////////////////////////// // Nombre.......: wawin_Salir() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION wawin_Salir() wawin.Release() RETURN Nil //------------------------------------------------------------------// FUNCTION IIS_Char_SQLType( nnLeng ) //------------------------------------------------------------------// LOCAL cRETURN := "CHAR" IF nnLeng < 6 cRETURN := "CHAR" ELSEIF nnLeng < 200 cRETURN := "VARCHAR" ELSEIF nnLeng > 199 cRETURN := "TEXT" ENDIF RETURN( cRETURN ) //------------------------------------------------------------------// FUNCTION IIS_Number_SQLType( nnLeng, nnDecim ) //------------------------------------------------------------------// LOCAL cRETURN := "Smallint" IF nnDecim = 0 IF nnLeng < 5 cRETURN := "SMALLINT" ELSEIF nnLeng < 16 cRETURN := "INTEGER" ELSEIF nnLeng > 15 cRETURN := "LONGINT" ENDIF ELSE cRETURN := "DECIMAL" ENDIF RETURN( cRETURN ) //------------------------------------------------------------------// FUNCTION IIS_Boolean_SQLType( nnLeng ) //------------------------------------------------------------------// LOCAL cRETURN := "Smallint" IF nnLeng < 5 cRETURN := "SMALLINT" ELSEIF nnLeng < 16 cRETURN := "INTEGER" ELSEIF nnLeng > 15 cRETURN := "LONGINT" ENDIF RETURN( cRETURN ) /*>===========c:\GReader\Include\WTable3.prg */ //////////////////////////////////////////////////////////////////////////// // Nombre.......: CargaPantalla() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION CargaPantalla() LOCAL ccHeadTootip LOCAL ccHeadTitle := " .... Presione " + CHR(34) + "ESC" + CHR(34) + " para regresar..." IF _IsWindowDefined( "wawin" ) RETURN Nil ENDIF DEFINE WINDOW wawin AT 0,0 WIDTH 1280 HEIGHT 800 ; TITLE ccTablaSelecta + " ... " + ccHeadTitle ; MODAL ; FONT "Consolas" SIZE 10 // ON KEY ESCAPE OF wawin ACTION WaWin_Salir() ON KEY ESCAPE OF wawin ACTION WaWin_MostrarGrilla() ON KEY PRIOR OF wawin ACTION WaWin_PageUp() ON KEY NEXT OF wawin ACTION WaWin_PageDown() ON KEY HOME OF wawin ACTION WaWin_Home() ON KEY END OF wawin ACTION WaWin_End() @003,nWidth-520 LABEL lblwhats VALUE ' '; WIDTH 500 HEIGHT 25 ; FONT "Consolas" SIZE 10 ITALIC; FONTCOLOR {6,77,4} @035,003 GRID gdFisica WIDTH nWidth-5 HEIGHT nHeight-45 ; FONT "Consolas" SIZE 10 ; HEADERS aCabecera ; WIDTHS aCabWidth ; ITEMS aDatosTabla; VALUE 1 ; ON DBLCLICK ISM_GrillaClick() @035,030 GRID gbficha WIDTH nWidth-160 HEIGHT nHeight-45 ; FONT "Consolas" SIZE 11 ; HEADERS {"Columna","Valor"} ; WIDTHS {330, 400} ; ITEMS nil ; VALUE 1 ; ON GOTFOCUS EnFocoLaGrilla() ; ON LOSTFOCUS QuitaFocoLaGrilla() @003,030 BUTTON cmdwseach CAPTION "&Buscar" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ITALIC ; ACTION ExecQuery45() @030,nWidth-120 BUTTON cmdprim CAPTION "&Primero" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ITALIC ; INVISIBLE ; ACTION WaWin_Home() @060,nWidth-120 BUTTON cmdretro CAPTION "&Anterior" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ITALIC ; INVISIBLE ; ACTION WaWin_PageUp() @090,nWidth-120 BUTTON cmdseguir CAPTION "&Siguiente" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ITALIC ; INVISIBLE ; ACTION WaWin_PageDown() @120,nWidth-120 BUTTON cmdultimo CAPTION "&Ultimo" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ITALIC ; INVISIBLE ; ACTION WaWin_End() @180,nWidth-120 BUTTON cmd2xls CAPTION "&Exportar(XLS)" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ITALIC; TOOLTIP "Exportar la tabla completa a EXCEL"; INVISIBLE ; ACTION WaWin_Exp2XLS() @240,nWidth-120 BUTTON cmdgrid CAPTION "&Tabular" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 BOLD ; TOOLTIP "Volver a la tabla(ver en forma de tabla)"; INVISIBLE ; ACTION WaWin_MostrarGrilla() // WaWin_Volver() @270,nWidth-120 BUTTON cmdquit CAPTION "&Menu Tablas" ; WIDTH 100 HEIGHT 28 FLAT ; FONT "Consolas" SIZE 10 ; TOOLTIP "regresa a la Lista de tablas"; INVISIBLE ; ACTION WaWin_Salir() END WINDOW Maximize WINDOW wawin wawin.gbficha.Visible := FALSE wawin.gdFisica.SetFocus() inRowNum := wawin.gdFisica.Value // ON KEY F2 OF wawin ACTION DescriptionHeads() ACTIVATE WINDOW wawin RETURN Nil //////////////////////////////////////////////////////////////////////////// // Nombre.......: WaWin_Salir() // Parametros...: // Descripcion..: // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION WaWin_Salir() wawin.Release() RETURN Nil //////////////////////////////////////////////////////////////////////////// // Nombre.......: WaWin_PageUp() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION WaWin_PageUp() IF wawin.gbficha.Visible inRowNum := inRowNum - 1 IF inRowNum < 1 inRowNum := 1 ENDIF wawin.gdFisica.Value := inRowNum ISM_GrillaClick() ENDIF RETURN Nil //////////////////////////////////////////////////////////////////////////// // Nombre.......: WaWin_PageDown() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION WaWin_PageDown() LOCAL inItemCount := 0 IF wawin.gbficha.Visible inItemCount := wawin.gdFisica.ItemCount inRowNum := inRowNum + 1 IF inRowNum > inItemCount inRowNum := inItemCount ENDIF wawin.gdFisica.Value := inRowNum ISM_GrillaClick() ENDIF RETURN Nil //////////////////////////////////////////////////////////////////////////// // Nombre.......: WaWin_Home() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION WaWin_Home() IF wawin.gbficha.Visible inRowNum := 1 wawin.gdFisica.Value := inRowNum ISM_GrillaClick() ENDIF RETURN Nil //////////////////////////////////////////////////////////////////////////// // Nombre.......: WaWin_End() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION WaWin_End() IF wawin.gbficha.Visible inRowNum := wawin.gdFisica.ItemCount wawin.gdFisica.Value := inRowNum ISM_GrillaClick() ENDIF RETURN Nil //////////////////////////////////////////////////////////////////////////// // Nombre.......: WaWin_OcultarGrilla() // Parametros...: // Descripcion..: // // Autor........: RullyVillanueva // Fecha........: 24-08-2018 //////////////////////////////////////////////////////////////////////////// FUNCTION WaWin_OcultarGrilla() wawin.gdFisica.Visible
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Conectar Paradox 7.x

Publicado por Gloria (1 intervención) el 14/06/2024 05:29:38
me sale estos erores al compilar
Error: Unresolved external '_HB_FUN_WAWIN_MOSTRARGRILLA' referenced from F:\MINIGUI\SAM2026\GEST
Error: Unresolved external '_HB_FUN_ISM_GRILLACLICK' referenced from F:\MINIGUI\SAM2026\GESTABRE
Error: Unresolved external '_HB_FUN_ENFOCOLAGRILLA' referenced from F:\MINIGUI\SAM2026\GESTABREA
Error: Unresolved external '_HB_FUN_QUITAFOCOLAGRILLA' referenced from F:\MINIGUI\SAM2026\GESTAB
Error: Unresolved external '_HB_FUN_WAWIN_EXP2XLS' referenced from F:\MINIGUI\SAM2026\GESTABREAD
Error: Unresolved external '_HB_FUN_WAWIN_MOSTRARUNAFILA' referenced from F:\MINIGUI\SAM2026\GES
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Conectar Paradox 7.x

Publicado por Pressniakov (1 intervención) el 14/06/2024 15:40:46
para completar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
FUNCTION WaWin_OcultarGrilla()
       wawin.gdFisica.Visible := FALSE
       wawin.gbficha.Visible := TRUE
       wawin.cmdprim.Visible := TRUE
       wawin.cmdretro.Visible := TRUE
       wawin.cmdseguir.Visible := TRUE
       wawin.cmdultimo.Visible := TRUE
       wawin.cmd2xls.Visible := TRUE
       wawin.cmdgrid.Visible := TRUE
       wawin.cmdquit.Visible := TRUE
       wawin.gbficha.SetFocus()
RETURN Nil
////////////////////////////////////////////////////////////////////////////
// Nombre.......: WaWin_MostrarGrilla()
// Parametros...:
// Descripcion..:
//
// Autor........: RullyVillanueva
// Fecha........: 24-08-2018
////////////////////////////////////////////////////////////////////////////
FUNCTION WaWin_MostrarGrilla()
       IF wawin.gdFisica.Visible
          wawin.Release()
          RETURN Nil
       ENDIF
       wawin.gdFisica.Visible := TRUE
       wawin.gbficha.Visible := FALSE
       wawin.cmdprim.Visible := FALSE
       wawin.cmdretro.Visible := FALSE
       wawin.cmdseguir.Visible := FALSE
       wawin.cmdultimo.Visible := FALSE
       wawin.cmd2xls.Visible := FALSE
       wawin.cmdgrid.Visible := FALSE
       wawin.cmdquit.Visible := FALSE
       wawin.gdFisica.SetFocus()
RETURN Nil
////////////////////////////////////////////////////////////////////////////
// Nombre.......: WaWin_MostrarUnaFila()
// Parametros...:
// Descripcion..:
//
// Autor........: RullyVillanueva
// Fecha........: 24-08-2018
////////////////////////////////////////////////////////////////////////////
FUNCTION WaWin_MostrarUnaFila()
       wawin.gdFisica.Visible := TRUE
       wawin.gbficha.Visible := FALSE
       wawin.cmdprim.Visible := FALSE
       wawin.cmdretro.Visible := FALSE
       wawin.cmdseguir.Visible := FALSE
       wawin.cmdultimo.Visible := FALSE
       wawin.cmd2xls.Visible := FALSE
       wawin.cmdgrid.Visible := FALSE
       wawin.cmdquit.Visible := FALSE
       wawin.gdFisica.SetFocus()
RETURN Nil
////////////////////////////////////////////////////////////////////////////
// Nombre.......: ISM_GrillaClick()
// Parametros...:
// Descripcion..:
//
// Autor........: RullyVillanueva
// Fecha........: 24-08-2018
////////////////////////////////////////////////////////////////////////////
FUNCTION ISM_GrillaClick()
       LOCAL i         := 0
       LOCAL aTemp     := {}
       LOCAL ccNamerub := ""
       LOCAL ccTexto   := ""
       LOCAL csValor   := ""
       inRowNum  := wawin.gdFisica.Value
       aTemp := wawin.gdFisica.Item(inRowNum)
       wawin.gbficha.DeleteAllItems()
       FOR  i :=1 TO Len(aTemp) Step 1
            ccTexto   := ""
            ccNamerub := aCabecera[ i ]
            //
            //
            nInde := ASCAN(aRubrique, {|aVal| aVal[1] == ccNamerub})
            IF  nInde>0
                ccNamerub := ccNamerub + "  " + aRubrique[nInde][2]
            ENDIF
            //
            //
            csValor  := ALLTRIM( aTemp[i] )
            wawin.gbficha.ADDITEM({ ccNamerub, csValor });
       NEXT k
       WaWin_OcultarGrilla()
       wawin.gbficha.SetFocus()
RETURN NIL
////////////////////////////////////////////////////////////////////////////
// Nombre.......: WaWin_Exp2XLS()
// Parametros...:
// Descripcion..:
//
// Autor........: RullyVillanueva
// Fecha........: 24-08-2018
////////////////////////////////////////////////////////////////////////////
FUNCTION WaWin_Exp2XLS()
      Local oExcel,  oSheet, oBook, nCell := 1, nRow := 1
      Local ccFileTMP := ccTablaSelecta
      Local nPos      := 0
      Local ccFileXls := ''
      IF (nPos := RAT(".", ccTablaSelecta)) != 0
          ccFileTMP = SUBSTR(ccTablaSelecta, 1, nPos-1)
      ELSE
          ccFileTMP = ccTablaSelecta
      ENDIF
      // ccFileXls := cFolderTemp + ccTablaSelecta + '.xlsx'
      ccFileXls := cFolderTemp + ccFileTMP + '.xlsx'
      IF  aDatosTabla==NIL
          MsgInfo("No hay dato para exportar","Exportar a XLSX")
          RETURN NIL
      ENDIF
      oExcel := TOleAuto():New( "Excel.Application" )
      IF  Ole2TxtError() != 'S_OK'
          MsgStop('WinExcel no está instalado!', SISTEMA)
          RETURN NIL
      ENDIF
      oExcel:Visible := .F.
      oExcel:WorkBooks:Add()
      oSheet := oExcel:Get( "ActiveSheet" )
      oSheet:Cells:Font:Name := "Consolas"
      oSheet:Cells:Font:Size := 11
      wawin.lblwhats.Value := "EXPORTANDO LA TABLA =>  " + ccTablaSelecta
      wawin.lblwhats.FONTCOLOR := BLUE
      FOR  nCell := 1 TO LEN(aCabecera) STEP 1
           c1erLetra := Substr(Alltrim(aCabecera[nCell]), 1, 1)
           IF c1erLetra$"01234567890"
               oSheet:Cells( 1, nCell ):Value :=  chr(39) + AnyToString( aCabecera[nCell] )
           else
               oSheet:Cells( 1, nCell ):Value :=  AnyToString( aCabecera[nCell] )
           endif
      NEXT nCell
      FOR  nIndice := 1 TO LEN(aDatosTabla) STEP 1
           nFila := nIndice + 1
           FOR  nColu := 1 TO LEN(aCabecera) STEP 1
                c1erLetra := Substr(Alltrim(aDatosTabla[nIndice][nColu]), 1, 1)
                IF c1erLetra$"01234567890"
                    oSheet:Cells( nFila, nColu ):Value :=  chr(39) + AnyToString( aDatosTabla[nIndice][nColu] )
                ELSE
                    oSheet:Cells( nFila, nColu ):Value :=  AnyToString( aDatosTabla[nIndice][nColu] )
                ENDIF
           NEXT nColu
           wawin.lblwhats.FONTCOLOR := RED
      NEXT nIndice
      oBook := oExcel:Get("ActiveWorkBook")
      oBook:Title   := wawin.TITLE
      oBook:Subject := Substr(wawin.TITLE, 1, 4)
      IF !EMPTY(cFolderTemp)
          if file(ccFileXls)
             delete file (ccFileXls)
             inkey(1)
          endif
          oBook:SaveAs(ccFileXls)
      ELSE
          oExcel:Visible := .T.
      ENDIF
      wawin.lblwhats.Value := "Listo, se exportó la tabla: " + ccFileXls
      wawin.lblwhats.FONTCOLOR := BLUE
      oExcel:Quit()
      Inkey(1)
      MsgInfo("Se ha exportó la tabla -> [ " + ccFileXls + " ]", SISTEMA)
      wawin.lblwhats.Value := ""
RETURN NIL
////////////////////////////////////////////////////////////////////////////
// Nombre.......: EnFocoLaGrilla()
// Parametros...:
// Descripcion..:
//
// Autor........: RullyVillanueva
// Fecha........: 24-08-2018
////////////////////////////////////////////////////////////////////////////
FUNCTION EnFocoLaGrilla()
       EstaEnlaGrilla := TRUE
RETURN Nil
////////////////////////////////////////////////////////////////////////////
// Nombre.......: QuitaFocoLaGrilla()
// Parametros...:
// Descripcion..:
//
// Autor........: RullyVillanueva
// Fecha........: 24-08-2018
////////////////////////////////////////////////////////////////////////////
FUNCTION QuitaFocoLaGrilla()
       EstaEnlaGrilla := FALSE
RETURN Nil
////////////////////////////////////////////////////////////////////////////
// Nombre.......: WaWin_Volver()
// Parametros...:
// Descripcion..:
//
// Autor........: RullyVillanueva
// Fecha........: 24-08-2018
////////////////////////////////////////////////////////////////////////////
FUNCTION WaWin_Volver()
       wawin.Release()
RETURN Nil
/*>===========c:\GReader\Resources\AAASe_viene_Boca.jpg               */
/*>===========c:\GReader\Resources\arrow.ico                          */
/*>===========c:\GReader\Resources\BNLiew.ico                         */
/*>===========c:\GReader\Resources\BViewer.png                      */
/*>===========c:\GReader\Resources\bold.ico                           */
/*>===========c:\GReader\Resources\clear.ico                          */
/*>===========c:\GReader\Resources\close.ico                          */
/*>===========c:\GReader\Resources\cooltext328193902021631.png        */
/*>===========c:\GReader\Resources\cooltext328194006379736.png        */
/*>===========c:\GReader\Resources\cooltext328194888268810.png        */
/*>===========c:\GReader\Resources\GestabReader.bmp                   */
/*>===========c:\GReader\Resources\GestabReader.png                   */
/*>===========c:\GReader\Resources\LOGO-bancoWally.jpg               */
/*>===========c:\GReader\Resources\Main.ico                           */
/*>===========c:\GReader\Resources\Mchotes.ico                        */
/*>===========c:\GReader\Resources\old_GestabReader.bmp               */
/*>===========c:\GReader\Resources\PinoBNL.ico                        */
/*>===========c:\GReader\Resources\Se_viene_Boca.jpg                  */
/*>===========c:\GReader\Resources\Stop.ico                           */
/*>===========c:\GReader\Resources\ViNoe.ico                          */
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar