Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как можно из компонента EditBox распечатать текст на принтере? / 5 сообщений из 5, страница 1 из 1
22.11.2006, 15:24
    #34147180
SVR
SVR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно из компонента EditBox распечатать текст на принтере?
Все привет!
Как можно из компонента EditBox распечатать текст на принтере?
...
Рейтинг: 0 / 0
22.11.2006, 15:34
    #34147232
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно из компонента EditBox распечатать текст на принтере?
создать репорт , в котором будет это поле.
...
Рейтинг: 0 / 0
23.11.2006, 07:19
    #34148709
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно из компонента EditBox распечатать текст на принтере?
Ну что-то вроде этого. Только если принтер не начнет каркозяблы печатать
Код: plaintext
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.
#define HANDLE INTEGER
#define BOOLEAN LONG

=printtextFile("test.txt")

*:********************************************************************
*:
*: Procedure : PrintTextFile
*:
*:********************************************************************
PROCEDURE PrintTextFile
LPARAMETERS cFileName as String

LOCAL hPrinter as Integer
LOCAL cPrinter as String
LOCAL cString as String
LOCAL nWritten as Long
LOCAL oPB as Object
LOCAL hFile as Integer
LOCAL nAll as Long
LOCAL nCur as Long

IF .NOT.FILE(m.cFileName) THEN
	MESSAGEBOX("Файл "+m.cFileName+" не найден!", 16 ,"Печать файла")
	RETURN .F.
ENDIF

DECLARE INTEGER OpenPrinterA IN WINSPOOL.DRV AS OpenPrinter ;
	STRING pPrinterName, ;
	HANDLE @phPrinter, ;
	LONG pDefault

DECLARE LONG StartDocPrinterA IN WINSPOOL.DRV AS StartDocPrinter ;
	HANDLE hPrinter, ;
	LONG Level, ;
	STRING pDocInfo

DECLARE INTEGER EndDocPrinter IN WINSPOOL.DRV AS EndDocPrinter ;
	HANDLE hPrinter

DECLARE INTEGER WritePrinter IN WINSPOOL.DRV AS WritePrinter ;
	HANDLE hPrinter, ;
	STRING pBuf, ;
	LONG cbBuf, ;
	LONG @pcWritten

DECLARE INTEGER ClosePrinter IN WINSPOOL.DRV AS ClosePrinter ;
	HANDLE hPrinter

Declare integer EndPagePrinter in winspool.drv integer


DECLARE LONG GetLastError IN WIN32API as GetLastError

m.cPrinter=GETPRINTER()
IF ISBLANK(m.cPrinter) THEN
	RETURN .F.
ENDIF

m.hFile=FOPEN(m.cFileName)
IF m.hFile< 0  THEN
	MESSAGEBOX("Не удалось открыть файл "+m.cFileName+"!", 16 ,"Печать файла")
	RETURN .F.
ENDIF

IF OpenPrinter(m.cPrinter,@m.hPrinter, 0 )= 0  THEN
	FCLOSE(m.hFile)
	m.nWritten=GetLastError()
	MESSAGEBOX("Произошла ошибка при печати! Код ошибки "+ALLTRIM(STR(m.nWritten, 10 , 0 )), 48 ,"Печать файла")
	RETURN .F.
ENDIF

IF StartDocPrinter(m.hPrinter, 1 ,REPLICATE(CHR( 0 ), 12 ))= 0  THEN
	FCLOSE(m.hFile)
	m.nWritten=GetLastError()
	MESSAGEBOX("Произошла ошибка при печати! Код ошибки "+ALLTRIM(STR(m.nWritten, 10 , 0 )), 48 ,"Печать файла")
	ClosePrinter(m.hPrinter)
	RETURN .F.
ENDIF

DO WHILE .NOT.FEOF(m.hFile)
	m.cString=FREAD(m.hFile, 1024 )
	db=Strconv(m.cString, 1 , 1049 )
	ws=Strconv(m.cString, 5 , 1049 )
	m.cString=ws
		

	IF WritePrinter(m.hPrinter,m.cString,LEN(m.cString),@m.nWritten)= 0  THEN
		m.nWritten=GetLastError()
		MESSAGEBOX("Произошла ошибка при печати! Код ошибки "+ALLTRIM(STR(m.nWritten, 10 , 0 )), 48 ,"Печать файла")
		EXIT
	ENDIF
ENDDO

FCLOSE(m.hFile)

EndPagePrinter(m.hPrinter)
EndDocPrinter(m.hPrinter)

ClosePrinter(m.hPrinter)

ENDPROC
...
Рейтинг: 0 / 0
23.11.2006, 09:45
    #34148921
SVR
SVR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно из компонента EditBox распечатать текст на принтере?
А как можно получить доступ к строкам у компонента EditBox?
...
Рейтинг: 0 / 0
23.11.2006, 11:00
    #34149227
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно из компонента EditBox распечатать текст на принтере?
SVRА как можно получить доступ к строкам у компонента EditBox?
Что значит доступ ?
Вам нужно конкретную строку получить или что ?
КонтролСоурс едита - просто строка - поэтому работайте с ней как с обычной строкой.
Для получения конкретной строки пользуйтесь MEMLINES( ),MLINE( ), ALINES( ) ну и т.д. в зависимости от источника эдита.
Если ван нужно получить только выделенную часть - смотрите в сторону SelText и прочих свойств EditBox'a , начинаюшихся с Sel
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как можно из компонента EditBox распечатать текст на принтере? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]