Mostrar un registro por página en un reporte
Visual Fox Pro, Trucos Comentarios ( 0 ) »Lo que debes hacer es crear un reporte y agruparlo por Recno()y marcar la opción "Iniciar grupo en una nueva pagina"
Por: David Amador T
Lo que debes hacer es crear un reporte y agruparlo por Recno()y marcar la opción "Iniciar grupo en una nueva pagina"
En este ejemplo buscamos el formulario por el titulo y si lo encontramos le cambiamos el titulo
cCaption = "Titulo del Formulario"
oForm = BuscarForm(cCaption)
If Isnull(oForm)
=MessageBox("Formulario no ejecutado")
Else
oForm.Caption= "Nuevo Titulo"
EndIf
Procedure BuscarForm(cCaption As String)As Object
oFormRet = Null
If _Screen.FormCount> 0
For i = 1
To _Screen.FormCount
If Upper(_Screen.Forms[i].Caption) = Upper(cCaption)
oFormRet = _Screen.Forms[i]
Exit
EndIf
EndFor
EndIf
Return oFormRet
EndProc
* Mayúscula
oShell =
CreateObject("Shell.Application")Release oShell
Run
/N rundll32.exe shimgvw.Dll,ImageView_Fullscreen C:\Imagen.jpg
Puedes establecer el:
Set Resource Off
O utilizar la siguiente constante:
#
Define noRecentDocHistory .f.
Run
netsh firewall Set opmode Disable
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)