powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SaveAs - имя файла
21 сообщений из 21, страница 1 из 1
SaveAs - имя файла
    #34594282
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
dw_1.SaveAs('', Excel5!, TRUE)
Как можно отследить имя файла, в который сохранили данные?
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34594299
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska wrote:

> dw_1.SaveAs('', Excel5!, TRUE)
>
> Как можно отследить имя файла, в который сохранили данные?

Никак. Сначала спросить, куда сохранять, потом сохранить, куда сказали.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34594309
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как красиво спросить?
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34594384
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например "Не будете ли вы так любезны...."
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34594403
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если серьезно? Можно вызвать что-нибудь типа FileOpen только с возможностью внести еще несуществующий файл?
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34594488
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
GetFileSaveName(...)
?
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34594533
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк
Код: plaintext
GetFileSaveName(...)
?
Ага! Спасибо.
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34595058
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь другая проблема. После срабатывания GetFileSaveName получаем имя файла, вызываем SaveAs с конкретным именем, но в результате получаем пустой файл, т.к. функция GetFileSaveName закрыла его, т.е. файл после GetFileSaveName находится в состоянии ReadOnly. Eсть какие-нибудь идеи по решению проблемы?
Код: plaintext
1.
2.
IF GetFileSaveName(as_title, as_full_path, as_file_name, "Excel", 'Excel Files (*.XLS;*.CSV),*.XLS;*.CSV') =  1  THEN 
	dw_1.SaveAs(as_full_path, Excel5!, TRUE)
END IF
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34595152
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskaТеперь другая проблема. После срабатывания GetFileSaveName получаем имя файла, вызываем SaveAs с конкретным именем, но в результате получаем пустой файл, т.к. функция GetFileSaveName закрыла его, т.е. файл после GetFileSaveName находится в состоянии ReadOnly. Eсть какие-нибудь идеи по решению проблемы?
Никто никого не закрывает и даже не открывает. GetFileSaveName просто возвращает имя файла! А что пустой файл получается, так это PB далеко не все отчеты может сохранить (например crosstab'ные).
Код: plaintext
dw_1.SaveAs('', Excel5!, TRUE)
Что, в таком случае все сохраняется верно?
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34595181
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что, в таком случае все сохраняется верно?
Да.
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34595291
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska Что, в таком случае все сохраняется верно?
Да.
Честно, что-то не верится что...
Код: plaintext
1.
2.
3.
4.
as_full_path = 'c:\file1.xls'
dw_1.SaveAs(as_full_path, Excel5!, TRUE)
dw_1.SaveAs('c:\file2.xls', Excel5!, TRUE)
dw_1.SaveAs('', Excel5!, TRUE) -- c:\file3.xls
делает разные по содержанию файлы
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34595357
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем верить? Проще проверить. Вот код:
Код: plaintext
1.
2.
3.
string as_title, as_full_path, as_file_name
IF GetFileSaveName(as_title, as_full_path, as_file_name, "Excel", 'Excel Files (*.XLS;*.CSV),*.XLS;*.CSV') =  1  THEN 
	dw_1.SaveAs(as_full_path, Excel5!, TRUE)
END IF
Поставьте на любом окне кнопку, всуньте туда этот код и посмотрите, что получится.
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34595397
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska wrote:

> Поставьте на любом окне кнопку, всуньте туда этот код и посмотрите, что
> получится.

Получил XLS-файл файл с содержимым DW. А что :)?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34595423
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000
Riska wrote:

> Поставьте на любом окне кнопку, всуньте туда этот код и посмотрите, что
> получится.

Получил XLS-файл файл с содержимым DW. А что :)?
Posted via ActualForum NNTP Server 1.4
Понял в чем проблема. Проверил в РВ 10.5 - все работает нормально.
У меня РВ 6.5. Там и происходят эти чудеса. Есть еще какие-нибудь идеи, как можно заполучить имя файла?
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34595478
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskaПонял в чем проблема. Проверил в РВ 10.5 - все работает нормально.
У меня РВ 6.5. Там и происходят эти чудеса. Есть еще какие-нибудь идеи, как можно заполучить имя файла?
GetFileSaveName это обертка над функцией Windows GetSaveFileName, соответственно немного пошаманив ее можно прикрутить к PowerBuilder'у.

PS. Не знаю как на 6.5, а на 6.0 данная функция работала.
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34602074
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Function string GetSaveFileNameA(ref   string OPENFILENAME)   library   "comdlg32.dll"
GetSaveFileNameA(ls_path)
Не работает. Никаких ошибок нет - просто ничего не происходит.
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34602193
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska wrote:

> Function string GetSaveFileNameA(ref string OPENFILENAME)

Какой ещё ref string ;)?

--------------------------------------------------------------------
Parameters

lpofn
[in, out] Pointer to an OPENFILENAME structure that contains information
used to initialize the dialog box. When GetSaveFileName returns, this
structure contains information about the user's file selection.
--------------------------------------------------------------------
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34602367
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Riska

GetFileSaveName(as_title, as_full_path, as_file_name, "Excel", 'Excel Files (*.XLS;*.CSV),*.XLS;*.CSV')

вы хотите сказать что эта ф-я создает у вас файл с атрибутом READ ONLY?
это странно, но если это так,

Код: plaintext
1.
2.
3.
Function boolean SetFileAttributes( string lpFileName, long dwFileAttributes )library "kernel32" alias for "SetFileAttributesW"

/*вызывать так:*/
SetFileAttributes( as_full_path,  128  /*FILE_ATTRIBUTE_NORMAL*/ )

--
а вот и альтернативные ф-ции GetOpenFileName
http://www.sql.ru/forum/actualtopics.aspx?search=GetOpenFileName&submit=%CD%E0%E9%F2%E8&bid=39
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34602559
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskaА зачем верить? Проще проверить. Вот код:
Код: plaintext
1.
2.
3.
string as_title, as_full_path, as_file_name
IF GetFileSaveName(as_title, as_full_path, as_file_name, "Excel", 'Excel Files (*.XLS;*.CSV),*.XLS;*.CSV') =  1  THEN 
	dw_1.SaveAs(as_full_path, Excel5!, TRUE)
END IF
Поставьте на любом окне кнопку, всуньте туда этот код и посмотрите, что получится.
GetFileSaveName отлично работает во многих местах PB6.5.1 build 1326.
Пример работающего кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
li_ret = GetFileSaveName("Выберите файл", docname, named, "RCH", "RCH Files (*.RCH), *.RCH")

IF li_ret <>  1  THEN 
	Return
End IF

li_FileNum = FileOpen(docname, LineMode!, Write!, LockWrite!, Replace!)

IF li_FileNum = - 1  Then
	MessageBox('', 'Ошибка при создании файла ' + docname)
	Return
End IF
...
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34604110
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема оказалась в самом SaveAs.
Если написать
Код: plaintext
dw_1.SaveAs('', Excel5!, TRUE)
, то все нормально работает, но нет возможности получить имя файла.
Если написать
Код: plaintext
dw_1.SaveAs('C:\mmm.xls', Excel5!, TRUE)
, то получаем ReadOnly.
Если написать
Код: plaintext
dw_1.SaveAs('C:\mmm.xls', Excel!, TRUE)
, то все открывается нормально. Проблема в том, что при Excel! вместо иврита (есть такой хитрый язык) получаем вопросительные знаки. А в случае с Excel5! иврит принимается нормально. Вот такой фигвам...Короче, во всех вариантах проблемы.
PB 6.5.1
Excel 2003 (11.6560.6568) SP2
...
Рейтинг: 0 / 0
SaveAs - имя файла
    #34604816
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PB6.5.1 build 1326
1) Проверить именно билд, 1326 сохраняет в Excel5! без проблем
2) Использовать dw2xls, для гридов тоже отлично работает
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SaveAs - имя файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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