powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает красный крестик
25 сообщений из 64, страница 2 из 3
Не работает красный крестик
    #37626876
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

При нажатии кнопки «печать» запускается процедура которая открывает форму у которой прописана процедура KeyPress:

Код: sql
1.
2.
3.
4.
5.
 
      DO FORM frm_Print_regKard NAME frmPrint WITH cRegNumb,0
      frmPrint.Visible=.f.
      frmPrint.Refresh()
      RELEASE frmPrint


А это код процедуры KeyPress, на форме frm_Print_regKard:

Код: sql
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.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
SET OLEOBJECT ON
TRY 
  tmpSheet = createobject('excel.application')
  XLApp = tmpSheet.application
  XLApp.visible = .F.		&& F
  full_path=cPathExe+'Report\xls_pech_upoln.xls'
  IF for_send=1
    COPY FILE (full_path) TO PathTmp+nRegNumb+'.xls'
    XLApp.WorkBooks.open(PathTmp+nRegNumb+'.xls')
  ELSE
    XLApp.WorkBooks.open(full_path)
  ENDIF
  XLSheet = XLApp.ActiveSheet
  SET DATE GERMAN 
  WITH thisform 
    XLApp.sheets("Лист2").cells(4,2).value=ALLTRIM(nLeadFio)
    XLApp.sheets("Лист2").cells(5,2).value=ALLTRIM(nAutorFio)+', № телефона: '+LEFT(nAutorPhone,2)+'-'+RIGHT(nAutorPhone,2)
    XLApp.sheets("Лист1").select
    XLApp.cells(1,3).Value=nRegNumb
    IF ThisForm.IkPz=1 
	  XLApp.cells(1,11).Value='ПЗ'
    ENDIF
    XLApp.cells(2,2).Value=ALLTRIM(nDocName)+" №"+ALLTRIM(nDocNumb)+" от "+DTOC(nDocDate)+" "+ALLTRIM(nDocTitle)
    XLApp.cells(4,2).Value=ALLTRIM(nIspFio)
    XLApp.cells(4,7).Value=ALLTRIM(nIspNaStruct)
    XLApp.cells(4,10).Value=nTabIspolnit
    XLApp.cells(6,2).Value=ALLTRIM(nKurFio)
    XLApp.cells(6,7).Value=ALLTRIM(nKurNaStruct)
    XLApp.cells(6,10).Value=nTabKurator
    SELECT cPoint
    SET DELETED ON
    COUNT TO kol_zap
    GO TOP 
    XLApp.sheets("Лист2").select
    XLApp.Range(XLApp.Sheets("Лист2").cells(1,1),XLApp.Sheets("Лист2").cells(1,10)).Select 
    XLApp.Selection.Copy
    XLApp.sheets("Лист1").select
    FOR i=1 TO kol_zap
      XLApp.Range(XLApp.Sheets("Лист1").cells(10+i-1,1),XLApp.Sheets("Лист1").cells(10+i-1,10)).Select
      XLApp.ActiveSheet.Paste
      XLApp.Sheets("Лист1").cells(10+i-1,1).Value=ALLTRIM(cPoint.PointNumb)
      XLApp.Sheets("Лист1").cells(10+i-1,2).Value=cPoint.DateOut
      IF !EMPTY(cPoint.DateNew)
        XLApp.Sheets("Лист1").cells(10+i-1,4).Value=cPoint.DateNew
      ENDIF 
      IF !EMPTY(cPoint.DateFact)
        XLApp.Sheets("Лист1").cells(10+i-1,6).Value=cPoint.DateFact
      ENDIF 
      IF !EMPTY(cPoint.DateCansel)
        XLApp.Sheets("Лист1").cells(10+i-1,7).Value=cPoint.DateCansel
      ENDIF
      IF !EMPTY(cPoint.TabMark)
        XLApp.Sheets("Лист1").cells(10+i-1,8).Value=ALLTRIM(cPoint.FioMark)+' т/н '+ALLTRIM(STR(cPoint.TabMark))
      ENDIF 
      XLApp.Sheets("Лист1").cells(10+i-1,9).Value=ALLTRIM(cPoint.PointRem)
      SKIP 
    ENDFOR
    XLApp.sheets("Лист2").select
    XLApp.Range(XLApp.Sheets("Лист2").cells(4,1),XLApp.Sheets("Лист2").cells(6,2)).Select
    XLApp.Selection.Copy
    XLApp.sheets("Лист1").select
    XLApp.Range(XLApp.Sheets("Лист1").cells(10+kol_zap+1,1),XLApp.Sheets("Лист1").cells(10+kol_zap+3,2)).Select
    XLApp.ActiveSheet.Paste
    GO TOP 
    XLApp.sheets("Лист2").select
    XLApp.Range(XLApp.Sheets("Лист2").cells(3,1),XLApp.Sheets("Лист2").cells(3,10)).Select
    XLApp.Selection.Copy
    XLApp.sheets("Лист1").select
    FOR i=1 TO kol_zap
      XLApp.Range(XLApp.Sheets("Лист1").cells(10+kol_zap+3+i,1),XLApp.Sheets("Лист1").cells(10+kol_zap+3+i,10)).Select
      XLApp.ActiveSheet.Paste
      XLApp.Sheets("Лист1").cells(10+kol_zap+3+i,1).Value=ALLTRIM(cPoint.PointNumb)+' '+ALLTRIM(cPoint.PointSod)
      stroka=XLApp.Sheets("Лист1").cells(10+kol_zap+3+i,1).Value
      XLApp.Sheets("Лист1").Rows(10+kol_zap+3+i).Select
      kol_simv=LEN(stroka)
       IF kol_simv>118 AND kol_simv<236
        XLApp.Selection.RowHeight = 2.5*XLApp.Selection.RowHeight
      ELSE 
        IF  kol_simv>=236
          XLApp.Selection.RowHeight = 3.5*XLApp.Selection.RowHeight
        ENDIF 
      ENDIF 
      SKIP 
    ENDFOR
  XLApp.Range(XLApp.cells(10+2*kol_zap+6,1),XLApp.cells(10+2*kol_zap+6,1)).Select
  ENDWITH
  IF for_send=1
    XLApp.DisplayAlerts=.f.
    XLApp.ActiveWorkbook.Save()
    XLApp.Quit
    SET OLEOBJECT ON
    SET DATE GERMAN 
    IF nEmail>' '
     *komu='IvcEtd@transistor.com.by'
     komu=ALLTRIM(nEmail)
      failik=PathTmp+nRegNumb+'.xls'
      nomer=nRegNumb
      send_ready=.t.
      TRY 
        tmpApplicat= createobject('NovellGroupWareSession')
        GWApp = tmpApplicat.application
        GWRootAccount = GWApp.Login('','')
        GWFolders = GWRootAccount.AllFolders
        GWMessage=GWFolders.item[1].Messages.Add('uaski')
        WITH GWMessage
          TRY 
            .Attachments.Add(failik)
            .FromText='УАСКИ'
            .ReplyRequested=0
            .NotifyWhenOpened=0
            .NotifyWhenDeleted=0
            .BodyText.PlainText='На вас выписана новая ИК р/н:('+nomer+')'
            .Subject.PlainText='УАСКИ'
            CATCH TO oException WHEN .t. 
            MESSAGEBOX('Проверьте имя файла прикрепления: '+failik)
            send_ready=.f.
          ENDTRY
          TRY
            .Recipients.Add(komu)
            IF send_ready
              outMail=.Send()
              outMail.Delete()
            ENDIF 
            CATCH TO oException WHEN .t. 
            MESSAGEBOX('Не могу отправить письмо: '+komu)
          ENDTRY 
        ENDWITH 
        catch TO oExcept WHEN .t.
        MESSAGEBOX('Пожалуйста установите GroupWise'+CHR(10)+CHR(13);
                  +'Письмо:('+komu+') не отправлено'+CHR(10)+CHR(13);
                  +'Имя файла с ИК:('+failik+')')
      ENDTRY 
    ENDIF  
  ELSE
    _vfp.AutoYield=.f.
    XLApp.visible = .t. 
    XLApp.Sheets("Лист1").PrintPreview
    XLApp.DisplayAlerts=.f. 
    XLApp.Quit
  ENDIF 
  CATCH TO oExcept WHEN .t.
  MESSAGEBOX(SYS(2018))
ENDTRY 

RETURN
thisform.Release()
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37626986
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставь MessageBox() после PrintPreview и посмотри когда сообщения выходит - сразу при выводе предпросмотра или после выхода из экселя?
Код: sql
1.
2.
XLApp.Sheets("Лист1").PrintPreview
MessageBox('Test')



Кроме "крестика" на другие действия фокс реагирует? Кнопки нажимаются, текст в контролы пишется?
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627021
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
      DO FORM frm_Print_regKard NAME frmPrint WITH cRegNumb,0
      frmPrint.Visible=.f.
      frmPrint.Refresh()
      RELEASE frmPrint


Это ерунда какая-то написана. KeyPress() кнопки никак не вызывается.
frm_Print_regKard форма случайно не модальная? Свойство WindowType что стоит?
RELEASE frmPrint - не уничтожает форму, только переменную frmPrint, надо так
Код: sql
1.
frmPrint.Release()
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627045
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Код: sql
1.
2.
3.
4.
      DO FORM frm_Print_regKard NAME frmPrint WITH cRegNumb,0
      frmPrint.Visible=.f.
      frmPrint.Refresh()
      RELEASE frmPrint


Это ерунда какая-то написана. KeyPress() кнопки никак не вызывается.
frm_Print_regKard форма случайно не модальная? Свойство WindowType что стоит?
RELEASE frmPrint - не уничтожает форму, только переменную frmPrint, надо так
Код: sql
1.
frmPrint.Release()



Процедура KeyPress стоит не совсем на форме а на компоненте txtRegNumb (TextBox)
WindowType 0 - Modeless
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627066
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПоставь MessageBox() после PrintPreview и посмотри когда сообщения выходит - сразу при выводе предпросмотра или после выхода из экселя?
Код: sql
1.
2.
XLApp.Sheets("Лист1").PrintPreview
MessageBox('Test')



Кроме "крестика" на другие действия фокс реагирует? Кнопки нажимаются, текст в контролы пишется?

Сообщение выдает после закрытия Excel.
Все работает, сома форма закрывается, и по кнопке выход и по нажатию крестика, НО по нажатию крестика не закрывается само приложение (основное меню)!?
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627079
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AllkayDima TПоставь MessageBox() после PrintPreview и посмотри когда сообщения выходит - сразу при выводе предпросмотра или после выхода из экселя?
Код: sql
1.
2.
XLApp.Sheets("Лист1").PrintPreview
MessageBox('Test')



Кроме "крестика" на другие действия фокс реагирует? Кнопки нажимаются, текст в контролы пишется?

Сообщение выдает после закрытия Excel.
Все работает, сома форма закрывается, и по кнопке выход и по нажатию крестика, НО по нажатию крестика не закрывается само приложение (основное меню)!?

А что, должно по крестику приложение закрываться? Вроде разговор шел о том, что не закрывается форма. Поставь в Dystroy формы CLEAR EVENTS.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627111
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,

Да, приложение, с формой проблем нет, она закрывается.
Поставил во всех задействованных формах в Dystroy
Код: sql
1.
2.
3.
CLOSE TABLES ALL 
CLEAR EVENTS 
QUIT


Все равно не закрывается.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627129
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,

Зачем же во всех?
Ты обясни толком, что там у тебя, что-то типа:
есть форма главная, из нее вызывается другая форма и из этой другой формы вызывается Excel. Я так понимаю, у тебя по крестику как раз не закрывается эта другая форма или нет? Причем здесь тогда все приложение?
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627139
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парни огромное сори. Я видно что-то затупил, не в ту форму добавил

Код: sql
1.
2.
3.
CLOSE TABLES ALL 
CLEAR EVENTS 
QUIT



А когда добавил куда надо то в месте с формой закрывается приложение. Это хорошо что закрывается, но плохо что закрывает приложение раньше времени. На случай, если пользователь закроет форму просмотра в Excel, и захочет выбрать, посмотреть еще что ни будь, не нужно приложение закрывать.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627156
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AllkayСообщение выдает после закрытия Excel.
Как я и подозревал - у тебя фокс "висит", ждет закрытия экселя. Не должно быть этого. Меняй способ вызова экселя.
Пока эту проблему не решишь, не будет фокс закрываться крестиком.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627157
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627168
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что не работает.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627183
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,

А зачем вообще нужна эта форма, из которой открывается Excel? При выборе нужного пункта меня запускай процедуру формирования отчета в Excel.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627206
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627210
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,

(Предыдущее сообщение пустое, промазал по клавише.)
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627293
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,

Ну на кнопке печать и пиши код вызова Exceля. Форма-то зачем? При закрытии Екселя вернешься в эту же форму.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627344
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,

Не знаю, это не я писал. Но после закрытия Excel, я и выхожу на эту форму.
Код представлен выше!
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627351
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,

Так эта форма не закрывается крестиком? А кнопка выхода работает?
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627358
Grin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Allkay,

Уууу как все запущено...
Приложение, скорее всего писали не Вы??

ищите основной prg, он в проекте выделен жирным

добавьте в него такой код

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ON SHUTDOWN DO release_app

PROCEDURE release_app
m.ans=MESSAGEBOX('Вы действительно желаете выйти из программы??',36,'Определитесь!')
	IF m.ans=6
		CLOSE TABLES all
		CLEAR EVENTS 
		quit
	ENDIF 
RETURN
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627448
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,

Форма закрывается.
После закрытия Формы не закрывается само приложение!
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627464
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,

Это в форме с гланым меню? А по кнопке "Выход"?
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627487
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Сообщение оно выдавало после закрытия Excel потому что из-за открытого Excel я не видел сообщения.
А было как:
Запуск Excel → Предварительный –просмотр →Сообщение (“Test”) → Запрос о сохранении Файла Excel → Форма
После ответа на запрос о сохранении Файла Excel, сообщение (“Test”) еще висит.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627495
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,

По кнопке выход все работает! Приложение закрывается.
Код: sql
1.
2.
3.
4.
          IF oPers.CleanUp()
  	 oPerS.Cleanup2
	 RELEASE oPers	
          ENDIF
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627503
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не запущено а еще не изучено.

Добавил

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ON SHUTDOWN DO release_app

PROCEDURE release_app
m.ans=MESSAGEBOX('Вы действительно желаете выйти из программы??',36,'Определитесь!')
	IF m.ans=6
		CLOSE TABLES all
		CLEAR EVENTS 
		quit
	ENDIF 
RETURN



И тишина не закрывается и ни какого сообщения.
...
Рейтинг: 0 / 0
Не работает красный крестик
    #37627505
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,

А что в функции CleanUp()?
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 2 из 3
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает красный крестик
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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