Enviar datos a puertos COM
Visual Fox Pro, Trucos Comentarios ( 0 ) »cCadena = "Texto a enviar"
nHwd = Fopen("COM1:")
If nHwd <> -1
Fwrite(nHwd, cCadena, Len(cCadena))
Fclose(nHwd)
EndIf

cCadena = "Texto a enviar"
nHwd = Fopen("COM1:")
If nHwd <> -1
Fwrite(nHwd, cCadena, Len(cCadena))
Fclose(nHwd)
EndIf
Debes crear un archivo de texto y colocar el siguiente texto en él
REGEDIT4
[HKEY_CLASSES_ROOTLicensesDB4C0D00-400B-101B-A3C9-08002B2F49FB]
@="mgkgtgnnmnmninigthkgogggvmkhinjggnvm"
Ahora lo guardas con cualquier nombre pero extensión REG y luego haces doble click sobre él, te hará una pregunta, debes responder que SI y listo.... el problema estará solucionado.
cCadCon = "Provider=VFPOLEDB;Data Source=" +;
_Samples +"data estdata.dbc"
oCon = Createobject("AdoDb.Connection")
oCon.ConnectionString = cCadCon
oCon.Open
oRS = oCon.Execute("Celect * From Customer")
xDOM = Newobject("MSXML.DOMDocument")
oRS.Save(xDOM, 1)
oRS.Close
oCon.Close
XmlToCursor(xDOM.XML,
"MiCursor", 1028)
Select MiCursor
Browse
Public oForm
oForm=Createobject("form1")
oForm.Show
Define Class form1
As Form
Top = 0
Left = 0
Height = 520
Width = 790
DoCreate = .T.
Name = "Form1"
Add Object Graf As OleControl With ;
Top = 10, ;
Left = 5, ;
Height = 500, ;
Width = 780, ;
Name = "Graf", ;
OleClass = "MSChart20Lib.MsChart"
Procedure Init
TEXT to _cliptext noshow
X1 X2 X3 X4
25 35 15 25
EndText
This.Graf.Editpaste
#Define VtChChartType2dPie 14
This.Graf.ChartType = VtChChartType2dPie
This.Graf.ShowLegend = .T.
This.Graf.TitleText = "Titulo del Gráfico"
EndProc
EndDefine
Te gustaría poder mostrar una casilla de verificación en tus reportes ???
Para el ejemplo crea un campo lógico en la tabla que esta vinculada al reporte, luego cree el reporte y agregue un cuadro de texto y establécele el tipo de fuente a WingDings. Ahora debes hacer doble click en cuadro de texto y en "Expresión" debes colocar lo siguiente:
IIF
(CampoLogico, CHR(0xFD),CHR(0xA8))Y ahora puedes probar tu reporte ...
Supongamos tenemos una tabla de empleados y le agregamos 2 registros
CREATE TABLE employees (
emp_id INT,
name VARCHAR(30),
dept VARCHAR(30)
)
INSERT INTO employees (emp_id,name,dept) VALUES(1,"Maria","DS");
INSERT INTO employees (emp_id,name,dept) VALUES(2,"Pedro","ds");
Y queremos obtener sólo los registros que tengan "DS" :
SELECT * FROM employees where dept = "DS"
La sentencia SQL anterior nos devolverá los 2 registros puesto no distingue entre mayúsculas y minúsculas, y ahora lo vamos de otra forma:
SELECT * FROM employees where BINARY dept = "DS"
En este caso sólo obtenemos 1 registro, el que coincide exactamente con la condición, para eso utilizamos BINARY.
#Define
VK_SHIFT 0x10
#Define
VK_CONTROL 0x11
#Define
VK_MENU 0x12
#Define
PRESSED 0x07
Declare Integer GetKeyboardState In WIN32API String @
Do While .T.
m1 = Replicate(Chr(0),255)
Wait Window
""
Timeout
0.5
GetKeyboardState(@m1)
? "Shift",
Bittest(Asc(Substr(m1,VK_SHIFT+1,1)),PRESSED)
? "Control",
Bittest(Asc(Substr(m1,VK_CONTROL+1,1)),PRESSED)
? "Alt",
Bittest(Asc(Substr(m1,VK_MENU+1,1)),PRESSED)
If Lastkey()
== 27
Exit
EndIf
EndDo
nNum = 721.96841
? nNum - INT(nNum)
Excelente truco que te permitirá deshabilitar el menú de un formulario de nivel superior
El evento LOAD del formulario de nivel superior colocamos
Do
MenuFormSuperior.mpr With ThisForm,"MnuSupe"Y cuando deseemos deshabilitar el menú :
Set Skip Of Menu
MnuSupe .T.En este caso utilizamos un campo para realizar la búsqueda. Veamos 2 formas de hacerlo:
Select * From Tabla1 ;
WHERE Not Exists ;
(Select * From
Tabla2 ;
WHERE Tabla1.Id = Tabla2.Id)
La otra forma de hacerlo es:
Select * From Tabla1 ;
Where Id Not In
(Select Id From Tabla2)
* Para
DBC
cCon = [Provider=VFPOLEDB.1;]
+ ;
[Data Source=C:\Ruta\Datos\BaseDatos.dbc;]
+ ;
[Share Deny
None;Password="";];
[Collating Sequence=MACHINE]
* Para tablas libres
cCon = [Provider=VFPOLEDB.1;]
+
[Data Source=C:\Ruta\Datos\;]
[Share Deny None;Password="";];
[Collating Sequence=MACHINE]
?Int2Bin(1)
?Int2Bin(25)
?Int2Bin(100)
?Int2Bin(198)
Function Int2Bin(num)
Do Case
Case num = 0
Return
"0"
Case
num < 0
num = 0x100000000 + m.num
Endcase
Local cRet, nIndex
cRet = ""
For
nIndex=Min(31,
Ceiling(Log(num)/Log(2)))
To
0
Step
-1
cRet = cRet +
Iif(Bittest(num,
nIndex), "1",
"0")
Next
Return cRet
EndFunc
?
Day(Gomonth(Date()-Day(Date())+ 1,1)-1)