Determinar si un campo existe en una tabla
Visual Fox Pro, Trucos Comentarios ( 0 ) »?
"Existe ",Fsize("Campo","Tabla") > 0Por: David Amador T
?
"Existe ",Fsize("Campo","Tabla") > 0Declare
DoFileDownload In shdocvw.Dll;cRuta =
"http://www.davphantom.net/archivo.txt"DoFileDownload(
Strconv(cRuta,12))
* Asumamos que el Set Decimals
está en 2
nValor = "8.2433"
* Con la función VAL() me devolveria 8.24
? VAL(nValor)
* Con la función CAST() me deolveria el valor 8.2433
? CAST(nValor
AS
N(20,4))
Algo también interesante con VAL()
aproximaría el valor mientras que con CAST no.
nValor =
"8.2833"
* Con la función VAL() me devolveria 8.29
? VAL(nValor)
* Con la función CAST() me deolveria el valor 8.2833
? CAST(nValor
AS
N(20,4))
Declare Long GetDriveType
In
"kernel32"
;
STRING
nDrive
nRet = GetDriveType("H:")
Do Case
Case nRet = 1
? "DESCONOCIDO"
Case
nRet = 2
? "DISCO REMOVIBLE"
Case
nRet = 3
? "DISCO DURO"
Case
nRet = 4
? "DISCO EN RED"
Case
nRet = 5
? "CDROM"
Case
nRet = 6
? "DISCO RAM"
EndCase
Declare Integer SetWindowTheme
In
UxTheme ;
INTEGER HWnd,
String pszSubAppName,;
String pszSubIdList
=SetWindowTheme(Thisform.HWnd,
Null,
"")
Declare
SetupPromptReboot IN setupapi.dll ;Para reiniciar, preguntando si se desea proceder
SetupPromptReboot (0,
_Screen.hWnd, 0)Para reiniciar, sin preguntar
SetupPromptReboot (0, _Screen.hWnd, 1)
RUN ping
"NOMBRE_PC"
> c:\PingIp.TXT
cTxt = FILETOSTR([c:\PingIp.TXT])
cTxt = SUBSTR(cTxt,AT("[",cTxt)+1)
? LEFT(cTxt,AT("]",cTxt)
-1)
Local lOnline
oWSH = Createobject("WScript.Shell")
lOnline = oWSH.Run("ping
192.168.0.12",0,"True")
If lOnline = 0
Messagebox("ping
OK!")
Else
Messagebox("ping
ERROR!")
EndIf
Release oWSH
En el ejemplo podemos ver una forma de registrar un activex.
Declare Long WinExec
In
kernel32 ;
STRING
lpCmdLine ,
Long
nCmdShow
cCmd = "RegSvr32.exe micontrol.ocx"
=WinExec(cCmd, 0)
Note;0 - Se ejecuta, pero no se hace Visible)
;1 - la Ventana se muestra Normal
;2 - minimizado ;3 - Maximizado
;4 - Tamaño Normal, pero sin Foco
Set Safety Off
Open Database Home(2) +
"northwind\northwind"
Use Shippers
Shared
COPY TO c:\TempDatos
TYPE CSV
oWord = CREATEOBJECT("Word.Application")
oDoc = oWord.Documents.Open("c:\TempDatos.CSV")
oRange = oDoc.Range()
oRange.ConvertToTable(",")
oWord.Visible
= .T.
Close Databases all
Usted podría adaptar este ejemplo y a través de
automatización hacerle algunas modificaciones al documento de Word.
DECLARE INTEGER ShellExecute
IN
shell32;
INTEGER hwnd, STRING
lpOperation,;
STRING
lpFile,
STRING
lpParameters,;
STRING
lpDirectory,
INTEGER
nShowCmd
WAIT WINDOWS
"Copiando..." NOWAIT
=ShellExecute(0,"Open","XCOPY.EXE","C:\DirOrigen
c:\DirDestino /t","",0)
Wait Clear
#
Define FORCE 1 DECLARE INTEGER InternetCheckConnection in wininet;Close
Databases All
Open Database (Home(2)
+ "Northwind\northwind.dbc")
Use northwind!shippers
Create Report shippers
From
shippers
Use northwind!Suppliers
Create Report Suppliers
From
Suppliers
Report Form shippers
Object Type
1
Nopageeject
Report Form Suppliers
Object Type
1
Noreset
cFileXLS = Getfile("XLS")
cConn = "Driver={Microsoft
Excel Driver (*.xls)};"+;
"DriverId=790;Dbq="+cFileXLS+;
";DefaultDir="+Justpath(cFileXLS)+";"
nH = SqlStringConnect(cConn)
SQLTables(nH,"", "SheetNames")
Scan
cTabla =
Trim(SheetNames.Table_Name)
cCursor = Chrtran(cTabla,"
$","_")
SQLExec(nH,'Select
* From ['+cTabla+']',cCursor)
Select
(cCursor)
Browse
EndScan
SQLDisconnect(nH)
Aquí tiene como puedes realizar este proceso:
nTablas = Adir(aMisTablas,"*.dbf")
On Error ?aMisTablas[x,1] + " tiene errores"
For x = 1
To
nTablas
Use
aMisTablas[x,1]
Shared
EndFor
Use
On Error