Konu: rapor ekranını forma gömülü alabilirmiyim ?
REPORT PREVIEW sonrası çıkan ekranı kullandığım form üstünde gömülü nesne olarak alabilirmiyim?
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
fox4um » Raporlar ve Etiketler » rapor ekranını forma gömülü alabilirmiyim ?
REPORT PREVIEW sonrası çıkan ekranı kullandığım form üstünde gömülü nesne olarak alabilirmiyim?
Ali abi, EVET.
Benim arşivden araştırıp buraya ekliyorum...
*!* http://www.foxite.com/archives/0000248890.htm
*!* Mike Gagnon
PUBLIC oForm
oForm = CREATEOBJECT("Form")
WITH oForm
.Caption = "whatever"
.WindowState = 2 && Maximized
.Show()
ENDWITH
REPORT FORM yourreport PREVIEW WINDOW (oForm.Name)
oForm.Release()
birde böyle bir kod var:
Yazarını not almamışım.
Use employee
lcRepName = 'employee.frx'
Define Window Output From 1,1 To Scols(),Srows() System Name oOUTPUT Close Zoom
With oOUTPUT
.Icon = "myIcon.ico"
.Caption = "My Employee Report"
.MaxButton = .T.
.WindowState = 2
.Show()
Endwith
Report Form (m.lcRepName) Preview Window 'OutPut'
If Vartype(oOUTPUT) = 'O'
oOUTPUT.Release()
Endif
Hatirlamamak senin sucun degil, ben basina hemen hemen hic yazmiyorum.
öncelikle teşekkürler,
her ikisi de ayrı bir form olarak açıyor.
benim istediğim örneğin bir PageFrame üstünde gömülü kullanabieceğim.
picture olsa: Myform.PageFrame1.Page1.Image1.Picture="fatura_raporu.frx" gibi ...
veya faturayı html olarak hazırlayıp pf.p1 üzerinde webrowser4 klasını kullanabilirim /
veya OLeControl ile oluşturamadım. - illa ki pdf falan haline gelip olabiliyor, onun da otomasyonunu yapamıyorum.
Ali abi, temel olarak PageFrame lerde bir çeşit "WINDOW" ama bu güne dek bir page frame in içerisinde bir RAPOR örneğine hiç rastlamadım.
Söylediğin gibi, raporunu HTML olarak oluşturup pageframe içinde kullanabilirsin. Bu benimde aklıma gelen en hızlı ve kolay yolu. Form da bu konuda bir çok örnek vardı. İsterszen ayrıca bu başlık altına ekleyebilirim.
Raporunu PDF ye çevirme işide kolay. O otomasyonla ilgili koduda ekleyeyim işini görürse ...
PDF Creator, hem ücretsiz, hemde rapor çıktısını sanal bir PDF yazıcısına almak için gerekli. Çıktıyı doğrudan PDF olarak oluşturabiliyorsun. :
http://sourceforge.net/projects/pdfcreator/
Çalışan kod örneği ise aşağıda :
http://www.foxite.com/archives/vfp-x-pd … 118089.htm
* Author : Emerson Reed
Local loPDFCreator As PDFCreator.clsPDFCreator
loPDFCreator = Createobject("PDFCreator.clsPDFCreator")
If loPDFCreator.cStart("/NoProcessingAtStartup")
With loPDFCreator
Local loOptions As PDFCreator.clsPDFCreatorOptions
loOptions = loPDFCreator.cOptions
With loOptions
.PrinterStop = .T.
.UseAutosave = 1
.UseAutosaveDirectory = 1
.AutosaveDirectory = "C:\temp"
.AutosaveFilename = "teste.pdf"
Endwith
loPDFCreator.cOptions = loOptions
.cDefaultPrinter = "PDFCreator"
.cClearCache()
Local loEventHandler
loEventHandler = Createobject("PDFCreatorStatus")
Eventhandler(loPDFCreator,loEventHandler)
Local lnFile
For lnFile=1 To 2
.cPrintfile(Getfile())
Inkey(1)
Endfor
Inkey(1)
.cCombineAll
Do While (.cCountOfPrintjobs <> 1)
Inkey(1)
Enddo
.cPrinterStop = .F.
Endwith
With loEventHandler
.ReadyState = 0
Do While (.ReadyState = 0)
Inkey(1)
Enddo
Endwith
Eventhandler(loPDFCreator,loEventHandler,.T.)
loEventHandler = Null
Endif
loPDFCreator.cClose()
loPDFCreator = Null
Clear All
Return
Define Class PDFCreatorStatus As Session
Implements __clsPDFCreator In "PDFCreator.clsPDFCreatorOptions"
ReadyState = 0
Procedure __clsPDFCreator_eReady() As VOID
* add user code here
This.ReadyState = 1
Endproc
Procedure __clsPDFCreator_eError() As VOID
* add user code here
Endproc
Enddefine
Buda bir başka örnek ...
http://www.eggheadcafe.com/software/asp … eator.aspx
LPARAMETERS cNameReport as String, cNameDirTarget as String, cNameFilePdf
as String
*recibe como parametro el nombre del informe, el directorio de salida y el
nombre de salida
LOCAL cNameReport as String, cNameDirTarget as String, cNameFilePdf as
String
LOCAL oPdf as Object
oPdf= CREATEOBJECT("PDFCreator.clsPDFCreator")
oPdf.cStart
oPdf.cVisible = .T.
oPdf.cclearCache
oPdf.cPrinterStop = .F.
oPdf.cOption("AutosaveDirectory") = cNameDirTarget
oPdf.cOption("AutosaveFilename")= cNameFilePdf
oPdf.cOption("UseAutosave")= 1
oPdf.cOption("UseAutosaveDirectory") = 1
oPdf.cOption("AutosaveFormat") = 0
oPdf.cSaveOptions()
SET PRINTER TO NAME 'PDFCreator'
*
REPORT form (cNameReport) TO PRINTER NOCONSOLE
*
opdf.cclearcache
oPdf.cClose
oPdf= null
Ek linkler
http://www.foxite.com/search.aspx?q=pdf … sc&e=0
http://www.foxite.com/archives/conversi … 188406.htm
* Author: Mike Gagnon
lcOldPrinter = SET("printer",2)
oPDFC = Createobject("PDFCreator.clsPDFCreator","pdfcreator")
oPDFC.cStart("/NoProcessingAtStartup")
oPDFC.cOption("UseAutosave") = 1
oPDFC.cOption("UseAutosaveDirectory") = 1
oPDFC.cOption("AutosaveFormat") = 0
DefaultPrinter = oPDFC.cDefaultprinter
oPDFC.cDefaultprinter = "pdfcreator"
oPDFC.cClearCache
ReadyState = 0
oPDFC.cOption("AutosaveFilename") = "myPdf"
oPDFC.cOption("AutosaveDirectory") = "c:\temp\"
oPDFC.cprinterstop=.F.
Report Form c:\test.frx To Printer
INKEY(5)
Set Printer To Name (lcoldPrinter)
oPDFC.cDefaultprinter = DefaultPrinter
oPDFC.cClearCache
Release oPDFC
HTML ya da PDF'i pageframe'de gostermekle ilgili problemin yok sanirim. Varsa ornek kod gondereyim.
xfrx kullanabilirsin. reportu bir container içine yerleştiriyor ve container'i yerleştirebildiğin heryere koyabilirsin. form içine koymayı ben de denedim ama report ve formun birbirinden ayrı ayrı kaydığını gördüm (veya bu problemi window ile de yaşamış olabilirim. ikisini de denemiştim).
bu hangi rapor aracı? verdiğin linkte birşeyler çıkmıyor.
Soykan abi, daha önce ctl32 yi detaylıca incelemiştim. Nasıl olduysa bu gözümden kaçmış.
Link için teşekkürler
Ali abi bu örnek işini fazla fazla görür sanki...
link guncellendi
keşke rapid yerine sendspace kullansaydın. rapid aynı şirketten başkası da rapid kullanıyorsa o bitirdikten sonra bile bir süre izin vermiyor. sendspace'de hiçbir kısıtlama yok.
bir daha ki sefere oyle yaparim
fox4um » Raporlar ve Etiketler » rapor ekranını forma gömülü alabilirmiyim ?