powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN
80 сообщений из 80, показаны все 4 страниц
ZEN
    #35928241
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Скажите, пожалуйста, можно ли сделать такое,
если такое можно, подскажите как:
отобразить на ZEN-странице содержимое глобала в таблицеа
...
Рейтинг: 0 / 0
ZEN
    #35928427
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какого глобала (т.е. его структура) и как это отобразить?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #35928786
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация примерно такая:
Есть данные которые записываются в глобал, первым индексом в глобале будет порядковый номер записи, вторым индексом информация о том корректны ли данные(0 или 1).
Нужно на ZEN странице создать таблицу с тремя полями:порядковый номер записи;корректные или нет данные;данные.
...
Рейтинг: 0 / 0
ZEN
    #35928855
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZEN-таблица умеет работать с запросом.
Вы можете сделать SQL Storage и получить возможность работать с Вашими данными через SQL.

Второй вариант - сделать не-SQL запрос, который будет работать непосредственно с Вашими данными.

Далее автоматически получаете ZEN-таблицу.

Вадим
...
Рейтинг: 0 / 0
ZEN
    #35929458
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно по подробнее про не-SQL запрос, желательно на примерчике?
...
Рейтинг: 0 / 0
ZEN
    #35929523
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizan , там идея в следующем... Вы описываете свое хранение (благо оно у вас не сложное) как класс. А далее все действия как с классом.
...
Рейтинг: 0 / 0
ZEN
    #35929581
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.PartizanА можно по подробнее про не-SQL запрос, желательно на примерчике?
Пожалуйста .
...
Рейтинг: 0 / 0
ZEN
    #35931813
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, за помощь.

Возник еще один вопрос, думаю что очень простой, но как видно не для меня.....((
Нужно чтобы ZEN-страница с данной таблицей загружалась всегда от определенного пользователя. Подскажите, пожалуйста, как это реализовать?
...
Рейтинг: 0 / 0
ZEN
    #35932094
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizanзагружалась всегда от определенного пользователя
Что вы понимаете под "пользователем"?
...
Рейтинг: 0 / 0
ZEN
    #35932107
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После привязывания класса к таблице, ZEN-страница открывается с ошибкой:

ERROR #5580: SQL Privilege Violation: 'User UnknownUser is not privileged for the operation'
SOURCE ELEMENT: %ZEN.Component.tablePane ()

потому что у пользователя UnknownUser нет ни каких прав,
нужно задать вместо UnknownUser пользователя у которого есть права.
...
Рейтинг: 0 / 0
ZEN
    #35932124
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может стоит дать временно нужные права текущему пользователю через $ROLES ?
Или для удобства использовать макрос $$$AddAllRoleTemporary .
...
Рейтинг: 0 / 0
ZEN
    #35932514
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пользователя UnknownUser задействовать вообще не нужно, есть пользователь у которого есть все права(например:_SYSTEM )

Пытаюсь сделать так:

ClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
Quit $SYSTEM.Security.Login("_SYSTEM","SYS")

}
...
Рейтинг: 0 / 0
ZEN
    #35932521
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
но положительного результата пока нет.
...
Рейтинг: 0 / 0
ZEN
    #35933251
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizanпользователя UnknownUser задействовать вообще не нужно, есть пользователь у
Пытаюсь сделать так:

ClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
Quit $SYSTEM.Security.Login("_SYSTEM","SYS")

}

Жуть какая-то, в коде зашивать пароли. А если админ базы догадается, что пароль на системного пользователя общеизвестен и его нужно сменить? Выковыривать все это из кода?
...
Рейтинг: 0 / 0
ZEN
    #35933433
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написано же - 'например:_SYSTEM ',
есть просто пользователь у которого есть права на select, нужно чтобы пользователи смогли открыть ZEN-страницу с таблицей не проходя авторизацию под этим пользователем
...
Рейтинг: 0 / 0
ZEN
    #35941343
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кому интересно, проблему решил так:

ClassMethod %OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
$SYSTEM.Security.Login("cache","cache")
}

Но возникла другая проблема,
если в таблице применить фильтр, то вылетает та же ошибка ((
...
Рейтинг: 0 / 0
ZEN
    #35942034
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь может помочь с решением такой задачи:
Есть таблица на ZEN-странице, нужно получить значение одного из полей (например по двойному щелчку мыши) из этой таблицы, передать на другую ZEN-страницу в качестве значения для фильтра к одному из полей в другой таблице.
...
Рейтинг: 0 / 0
ZEN
    #35942328
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.PartizanЕсть таблица на ZEN-странице, нужно получить значение одного из полей (например по двойному щелчку мыши) из этой таблицы

Как вариант...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<tablePane 
	id="tpTbl" 
	tableName="ver.Adhoc" 
	ondblclick='zenPage.Select(zenThis.getValue("ID"));' 
	valueColumn="ID"
>
	<column 
		header="Id" 
		colName="ID" 
		hidden="true"
	/>
...
</tablePane>

mr.Partizanпередать на другую ZEN-страницу в качестве значения для фильтра к одному из полей в другой таблице.

Как вариант...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/// Выбрать строку для редактирования
Method Select(Id As %String) [ Language = javascript ]
{
	var url='ver.zen.AdhocEdit.cls?id='+Id
	zenPage.Go(url)
}
...
/// Переход на другую страницу
Method Go(Url As %String) [ Language = javascript ]
{
	top.location=Url
}
...
Рейтинг: 0 / 0
ZEN
    #35942806
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде все ясно, кроме одного момента, как задать переданное значение в качестве фильтра?
...
Рейтинг: 0 / 0
ZEN
    #35943300
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizanкак задать переданное значение в качестве фильтра?
А зачем его в фильтр?
Думается мне это значение должно быть однозначно в самом sql-запросе! А фильтры делать уже на другие поля таблички...
...
Рейтинг: 0 / 0
ZEN
    #35943333
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду весьма признателен, если напишите пример,
как подставить переданное значение в sql-запрос.
...
Рейтинг: 0 / 0
ZEN
    #35943359
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант...

Код: 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.
/// Id элемента adhoc
Property idItem As %ZEN.Datatype.id(ZENURL = "id");
...
<tablePane 
	id="tpTbl" 
	tableName="ver.Adhoc" 
	valueColumn="ID"
	useSnapshot="true" 
	OnCreateResultSet="CrtSQL"
>
...
Method CrtSQL(Output tSC As %Status, pInfo As %ZEN.Auxiliary.QueryInfo) As %ResultSet
{
    Set tRS = ""

    Set tSC = $$$OK
    Set tSELECT = "*"
    Set tFROM = "ver.Adhoc"
    Set tORDER = "Name"
    // Вот тут-то и нужно вставлять это значение
    Set tWHERE = " ID="_%page.idItem
    // строим критерии отбора по фильтрам
    If $g(pInfo.filters("Name"))'="" {
        Set tWHERE = tWHERE_"Name Like '"_pInfo.filters("Name")_"' "
    }
    If $g(pInfo.filters("Title"))'="" {
        Set tWHERE = tWHERE _ $s(tWHERE="":"", 1 :" AND ")_"Title = '"_ pInfo.filters("Title")_"'"
    }
    Set sql = "SELECT " _ tSELECT _ " FROM " _ tFROM
    Set:tWHERE'="" sql = sql _ " WHERE " _tWHERE
    Set:tORDER'="" sql = sql _ " ORDER BY " _tORDER
    Set tRS = ##class(%ResultSet).%New()
    Set tSC = tRS.Prepare(sql)
    Set pInfo.queryText = sql
    Quit tRS
}

Все это я надергал "оттуда-отсюда"... Но идея, я думаю, понятна...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #35943671
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все отлично работает!
...
Рейтинг: 0 / 0
ZEN
    #35943683
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у компонента указывается свойство sql с нужным запросом в в where вместо значений "?"
и указать теги parameter в который передать значения для условий
...
Рейтинг: 0 / 0
ZEN
    #35943758
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor , ты примерчик покажи... С "?" конечно лучше.
...
Рейтинг: 0 / 0
ZEN
    #35943759
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появились еще вопросы по ZEN.

1) Как можно сохранить полученную таблицу на ZEN-странице в файл?
2) Можно все-таки как-то сменить текущего пользователя перед загрузкой ZEN-страницы?

И еще один вопрос маленько не по теме: с помощью каких спец. кодов можно сделать ссылку на конкретное высказывание в теме?
...
Рейтинг: 0 / 0
ZEN
    #35943773
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizan1) Как можно сохранить полученную таблицу на ZEN-странице в файл?

Файл на клиенте или на сервере?

mr.Partizanс помощью каких спец. кодов можно сделать ссылку на конкретное высказывание в теме?

Ты про "редактирование цитаты" или "гипперссылку в тексте"?
...
Рейтинг: 0 / 0
ZEN
    #35943784
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Файл на клиенте

2) Я про то, что ты только что сделал в своем сообщении
...
Рейтинг: 0 / 0
ZEN
    #35943820
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
щас я остался без зена
но что то вроде этого
Код: plaintext
1.
2.
3.
4.
5.
6.
<tablePane>
 sql="select * from ksk_set_View.STATADR
  where DATA between ? and ?"> 
<parameter expression="..DataS"/>
<parameter expression="..DataPo"/>
</tablePane>
...
Рейтинг: 0 / 0
ZEN
    #35944079
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor , примерно понял... А с фильтрами как оно будет сочетаться?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #35944124
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizan1) Файл на клиенте

ЗЕН "серверный язык", он в этом деле не помошник... Это лучше спрашивать в ХТМЛ разделе. Только спрашивать нужно следующее:
- Как мне сохранить даные некой таблички в файл на клиенте?

Там вроде есть какие-то варианты с АктивИксом... Сам я с такими надобностями не сталкивался... Отделывался "версией для печати", которую можно "заредактировать в Эксель"...

mr.Partizan2) Я про то, что ты только что сделал в своем сообщении

Нажми на моём сообщении "Цитировать" и все увидишь... Я просто редактирую твою цитату, БиБи-кодами [ quot ]<текст>[ / quot ]. Только без пробелов конечно...
...
Рейтинг: 0 / 0
ZEN
    #35944345
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsamr.Partizan1) Файл на клиенте

ЗЕН "серверный язык", он в этом деле не помошник... Это лучше спрашивать в ХТМЛ разделе. Только спрашивать нужно следующее:
- Как мне сохранить даные некой таблички в файл на клиенте?

Там вроде есть какие-то варианты с АктивИксом... Сам я с такими надобностями не сталкивался... Отделывался "версией для печати", которую можно "заредактировать в Эксель"...

Нашел такую тему в ХТМЛ
D-monИмеется таблица, генерируемая по запросу php-скриптом.
Необходимо занести данные из этой таблицы в файл Excel-я...
u78если отдавая файл клиенту указать в http заголовках
Content-Disposition = "attachment;excel.xls"
и тип ContentType = "application/x-msexcel"
Expires = "Thu, 01 Apr 2003 00:00:00 GMT"
то IE предложит открыть этот файл в екселе, или сохранить на диске, не знаю как это реализовать в пхп но на Cache' я так делаю и всё работает. (дело тут не в php или Cache а именно в заголовках HTTP ответа сервера).
может кто знает как нужно это делать?
...
Рейтинг: 0 / 0
ZEN
    #35944428
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем привет
а что мешает кинуть текущий запрос (из tablepane) в ZEN.Report?
есть наработки ZEN.Report для выгрузки в Excel, файл формируется на сервере Cache, потом открывается для сохранения в броузере и удаляется с сервера. Пользователь что хочет с ним то и делает ))
...
Рейтинг: 0 / 0
ZEN
    #35945449
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007всем привет
а что мешает кинуть текущий запрос (из tablepane) в ZEN.Report?
...
мешает неопытность,
можно показать на примере это все?
...
Рейтинг: 0 / 0
ZEN
    #35946223
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
честно говоря мало времени
но идея такая:
два одинаковых запроса в tablepane и zenReport
пользователь в tablepane выставляет нужные ему фильтры и видит необходимый срез базы на экране в tablepane, потом нажимает кнопку "Print"
срабатывает метод который собирает все значения из фильтров:
Код: 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.
Method ToPDF() [ Language = javascript ]
{
	var RD = this.getComponentById('DateClass').getProperty('value');
	var vTable = this.getComponentById('table');
	var SEX = vTable.getFilterValue('SEX');
	var AG = vTable.getFilterValue('agegroup');
	var FIO = vTable.getFilterValue('FIO');
	var RN = vTable.getFilterValue('RegNum');
	var City = vTable.getFilterValue('City');
	var URL='zenReportTest.cls?$MODE=pdf&RD='+RD+'&SEX='+SEX;
	if (AG != '') {
		URL = URL + '&AG=' + escape(AG);
	};
	if (FIO != '') {
		URL = URL + '&FIO=' + escape(FIO);
	};
	if (RN != '') {
		URL = URL + '&RN=' + escape(RN);
	};
	if (City != '') {
		URL = URL + '&City=' + escape(City);
	};
	if (vTable.currColumn != '') {
		URL = URL + '&SC=' +vTable.currColumn;
	}
	if (vTable.sortOrder != '') {
		URL = URL + '&SD=' +vTable.sortOrder;
	}
	window.open(URL,'DetailWindowReport');
}
что то типа того, далее формируется строка с параметрами и вызывается сам zenReport
в zenReport должно быть что то типа того:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Property AgeGroup As %String(ZENURL = "AG");

Property SEX As %ZEN.Datatype.caption(ZENURL = "SEX");

Property RatingDate As %ZEN.Datatype.caption(ZENURL = "RD");

Property FIO As %String(ZENURL = "FIO");

Property RegNum As %String(ZENURL = "RN");

Property City As %String(ZENURL = "City");

/// Колонка для сортировки
Property SortC As %String(ZENURL = "SC");

/// Направление сортировки
Property SortD As %String(ZENURL = "SD");
это прием переданных параметров из адресной строки
далее формируется или используется sql запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<report xmlns="http://www.intersystems.com/zen/report/definition"
name="Rating" queryClass="RTTXEN.RatingReport" queryName="Main">
<parameter expression='..GetSortC()'/>
<parameter expression='..GetSortD()'/>
<parameter expression='..GetRD()'/> 
<parameter expression='..GetSEX()'/>
<parameter expression='..GetAG()'/>
<parameter expression='..GetFIO()'/>
<parameter expression='..GetRN()'/>
<parameter expression='..GetCity()'/>
</report>
вот методы (хотя можно обойтись и без них см.документацию):
Код: 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.
Method GetRD()
{
	q ..RatingDate
}

Method GetSEX()
{
	Quit ..SEX
}

Method GetAG() As %String
{
	Quit $zcvt(..AgeGroup,"I","URL")
}

Method GetFIO()
{
	Quit $zcvt(..FIO,"I","URL")
}

Method GetRN()
{
	Quit $zcvt(..RegNum,"I","URL")
}

Method GetCity()
{
	Quit $zcvt(..City,"I","URL")
}

Method GetSortC()
{
	Quit ..SortC
}

Method GetSortD()
{
	Quit ..SortD
}

Method GetNameAG()
{
	s res = "Все"
	if ..AgeGroup'="" {
		s parameter = ..AgeGroup
		&sql(SELECT name INTO :res FROM hndb.ageGroup WHERE id = :parameter)
	}
	q res
}
вот такие пироги
...
Рейтинг: 0 / 0
ZEN
    #35949445
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник очередной вопрос.
Как получить данные из прикрепленного файла и имя файла?
В csp делал так:
Код: 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.
<html>
<form enctype="multipart/form-data" method="post">
	Имя    :<input type=text name=user size= 30 >
	Пароль :<input type=password name=passwd size= 8 >
	Файл   :<input type=file size= 30  name=FileStream>
	Процесс:<input type=text name=proc size= 30 >
	.......
</form>
<script language="cache" runat="server">
        //здесь проверка логина и пароля
	I '$D(^ADM("LOGON",$$WinToDos^io1(%request.Get("user")))) D  Q
	.W "<br> Нет такого пользователя."
	I $zp(^ADM("LOGON",$$WinToDos^io1(%request.Get("user")),""))'=$$WinToDos^io1(%request.Get("passwd")) D  Q
	.W "<br> Неправильный пароль."
	;
	I %request.Get("proc")'="" D  Q
	.S proc=%request.Get("proc")
	.I '^aIm5(proc) D
	..W "<br>Процесс загрузки =",proc
	..W "<br>Последняя загруженная строка =",$zp(^aIm5(proc, 1 ,""))
	..W "<br>Последняя ошибочная   строка =",$zp(^aIm5(proc, 0 ,""))
     	.I ^aIm5(proc)  D f^aIm5(%request.Get("proc"))
	;
        //чтение данных из файла	
	S obj=%request.MimeData("FileStream", 1 )
 	S stream=##class(%Library.FileCharacterStream).%OpenId(obj)
	I stream'["CSP" D   Q
	.W "<br>Файл не выбран!"
	;
	S fname=stream.FileName
	K ^aList($p)
        //проверка формата файла и распарсивание
	I $$low^a($P(fname,".",2))="xml" D dparse^a2(obj,$na(^aList($p)))
	I $$low^a($P(fname,".",2))="csv" D csv^aIm5()
	D stream.%Close()
	;
	I $D(^aList($p))'= 11  D  Q
	.W "<br>Неправильный формат файла!"
	;
	S proc=$I(^aIm5)
	I $D(^aList($p))= 11   J S^aIm5($na(^aList($p)),proc,%request.Get("user"),fname)
	W "<br>Процесс загрузки :",proc
</script>
</html>
...
Рейтинг: 0 / 0
ZEN
    #35949563
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В примерах был вариант работы с загрузкой файла...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #35949586
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там правда с CSP пример...
http://cache:57772/csp/samples/showsource.csp?PAGE=/csp/samples/upload.csp
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #35949603
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
будем разбираться дальше.
...
Рейтинг: 0 / 0
ZEN
    #35968183
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть CSP страница, на которой перед загрузкой проверяется
передалась ли переменная pId, как сделать переход на другую страницу(например http://10.64.88.30/csp/gtt/GTS.vhod.cls), если pId не передалось?

Код: plaintext
1.
2.
3.
4.
5.
<csp:method name='OnPreHTTP' ReturnType='%Boolean'>
	if %session.Data("pId") {
	Quit  1 
	}
	Quit  0 
</csp:method>
...
Рейтинг: 0 / 0
ZEN
    #35968210
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.PartizanЕсть CSP страница
...
как сделать переход на другую страницу(например http://10.64.88.30/csp/gtt/GTS.vhod.cls), если pId не передалось?

Как вариант...

Код: plaintext
1.
2.
3.
4.
5.
6.
...
<script language='javascript'>
   if (#server(..OnPreHTTP())#== 1 ) {
      top.location='http://10.64.88.30/csp/gtt/GTS.vhod.cls'
   }
</script>
...
...
Рейтинг: 0 / 0
ZEN
    #35968219
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или более радикально!

Код: plaintext
1.
2.
3.
4.
5.
6.
...
<script language='javascript'>
   if (#($d(%session.Data("pId")))#== 0 ) {
      top.location='http://10.64.88.30/csp/gtt/GTS.vhod.cls'
   }
</script>
...

В саообщении выше условие не правильно написал... Нужно

Код: plaintext
#server(..OnPreHTTP())#== 0 
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #35968286
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чего-то не хочет работать ((
его в любое место можно вставить?
...
Рейтинг: 0 / 0
ZEN
    #35968576
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizanего в любое место можно вставить?
Прямо в начале... В

Код: plaintext
<head>...</head>

Тестовый пример вашей страницы покажите... Чего там конкретно не работает-то?
...
Рейтинг: 0 / 0
ZEN
    #35968679
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
убрал со страницы этот:
Код: plaintext
1.
2.
3.
4.
5.
<csp:method name='OnPreHTTP' ReturnType='%Boolean'>
	if %session.Data("pId") {
	Quit  1 
	}
	Quit  0 
</csp:method>
метод и все заработало.

Код страницы примерно такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<html>
<form enctype="multipart/form-data" method="post">
	Файл   :<input type=file size= 30  name=FileStream><BR><BR>
	Процесс:<input type=text name=proc size= 30 >
	....
	<input type="submit" value="Загрузить!">
</form>
<csp:method name='OnPreHTTP' ReturnType='%Boolean'>
	if %session.Data("pId") {
	Quit  1 
	}
	Quit  0 
</csp:method>
<script language="cache" runat="server">
	W "<BR>Здравствуйте ",$$DosToWin^io1(%session.Data("Surname")),"<BR><BR>"
	;
	....
</script>
</html>
...
Рейтинг: 0 / 0
ZEN
    #35968747
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
только когда сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<html>
<script language='javascript'>
   if (#($d(%session.Data("pId")))#== 0 ) {
      top.location='http://10.64.88.30/csp/gtt/GTS.vhod.cls'
   }
</script>
<form enctype="multipart/form-data" method="post">
	Файл   :<input type=file size= 30  name=FileStream><BR><BR>
	Процесс:<input type=text name=proc size= 30 >
	....
	<input type="submit" value="Загрузить!">
</form>
<script language="cache" runat="server">
	W "<BR>Здравствуйте ",$$DosToWin^io1(%session.Data("Surname")),"<BR><BR>"
	;
	....
</script>
</html>
на странице больше не выводится сообщение
Код: plaintext
1.
2.
3.
4.
5.
<script language="cache" runat="server">
	W "<BR>Здравствуйте ",$$DosToWin^io1(%session.Data("Surname")),"<BR><BR>"
	;
	....
</script>
и вообще весь скрипт
Код: plaintext
1.
2.
<script language="cache" runat="server">
....
</script>
не работает
...
Рейтинг: 0 / 0
ZEN
    #35969321
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так сама переадресация-то работает?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #35969364
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мой пример...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<html>
<head>
<title></title>
<script language='javascript'>
   if (#($d(%session.Data("pId")))#== 0 ) {
      top.location='http://localhost/csp/user/tmp1.csp'
   }
</script>
</head>

<body>
<form enctype="multipart/form-data" method="post">
	Файл   :<input type='file' size='30' name='FileStream'>
	<BR /><BR />
	Процесс:<input type='text' name='proc' size='30'>
	<input type="submit" value="Загрузить!">
</form>
<script language="cache" runat="server">
	&html<<BR>Здравствуйте <BR><BR>>
</script>
</body>
</html>

Он точно работает. Если переменной %session.Data("pId") нет - происходит переход на другую страницу.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #35974339
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все работает, спасибо!
...
Рейтинг: 0 / 0
ZEN
    #35991472
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как решить такую задачу?
Нужно к таблице на ZEN-странице сделать фильтр в виде выпадающего списка, всех возможных значений одного из полей.
И еще сделать интерактивный выбор полей для отображения.
...
Рейтинг: 0 / 0
ZEN
    #35991557
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.PartizanНужно к таблице на ZEN-странице сделать фильтр в виде выпадающего списка, всех возможных значений одного из полей.

Как вариант...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
...
<tablePane 
...
>
...
	<column 
		header="Описание" 
		colName="Title" 
		filterType="query"
		filterQuery="Select Distinct Title From ver.Adhoc Where Title is not Null Order By Title"
		filterOp="="
	/>
...
</tablePane>
...
...
Рейтинг: 0 / 0
ZEN
    #36159145
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!
Подскажите, можно как-то сохранить данные из <textarea> на локальный диск?
...
Рейтинг: 0 / 0
ZEN
    #36159164
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizanможно как-то сохранить данные из <textarea> на локальный диск?
Теоретически есть несколько вариантов...
1. Дать папку в доступ (если сеть) - тогда сервер запишет файл прямо туда...
2. Сделать файл на сервере и предложить клиенту его скачать и сохранить у себя на диске.
3. ИЕ может через активикс, при почти отключеной безопастности, выполнить такое (на этом же флруме в разделе ХТМЛ и ЯваСкрипт есть примеры)

У тебя-то какая ситуация? Сеть, интернет?
...
Рейтинг: 0 / 0
ZEN
    #36159177
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaУ тебя-то какая ситуация? Сеть, интернет?

У меня сеть.
...
Рейтинг: 0 / 0
ZEN
    #36159323
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.PartizanУ меня сеть.
Тогда вариант 1 - самое "дешевое" решение этого вопроса...
...
Рейтинг: 0 / 0
ZEN
    #36159425
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

если не затруднит, можно примерчик, или ссылку на таковой?
...
Рейтинг: 0 / 0
ZEN
    #36159492
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой там пример-то нужен? Работает обычный

Код: plaintext
1.
2.
3.
4.
5.
Set file="\\MyComputer\MyBox\my_file.txt"
Set file=##class(%File).%New(file)
Write file.Size
Do file.Open("WSN")
Do file.WriteLine("This is a line of text")
Do file.Close()

Вставляешь формирование файла в любой кащейский метод в зен-странице который, в свою очередь, вызывается по какому-либо событию на странице...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #36272102
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть форма
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<form>
<fileUpload size="30" name="FileStream" id="FileStream"/>
<text size="30" name="proc" id="proc"/>
<submit id="load" name="load" caption="Загрузить"/>
</form>
</page>
}
Как по нажатию кнопки <submit> вывести на страницу значения поля <text> и данные по прикрепленному файлу?
Пытаюсь сделать так, но не выходит:
Код: 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.
/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<form>
<fileUpload size="30" name="FileStream" id="FileStream"/>
<text size="30" name="proc" id="proc"/>
<submit id="load" name="load" caption="Загрузить"/>
</form>
</page>
}

/// Draw HTML for the page title
ClassMethod DrawMsg(pSeed As %String) As %Status
{
        S proc=%request.Get("proc")
	W "<BR/>proc=",proc
        S obj=%request.MimeData("FileStream", 1 )
 	S stream=##class(%Library.FileCharacterStream).%OpenId(obj)
	;
	S fname=stream.FileName
        W "<BR/>filename=",fname
	Quit $$$OK
}
}

...
Рейтинг: 0 / 0
ZEN
    #36272423
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizanвывести на страницу значения поля <text>

Вот как-то так например...

Код: plaintext
1.
2.
3.
4.
5.
6.
<button 
	id="test" 
	caption="test" 
	onclick="alert(zenPage.getComponentById('proc').value);" 
	controlClass="btn"
/>

Кнопка собмид подразумевает передачу данных на некую страницу... Ты-то куда собираешся все это выводить?
...
Рейтинг: 0 / 0
ZEN
    #36272473
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa
Кнопка собмид подразумевает передачу данных на некую страницу... Ты-то куда собираешся все это выводить?
Прямо на эту страницу и хочу. Можно как-то реализовать?
...
Рейтинг: 0 / 0
ZEN
    #36272585
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно только, он должен сначала загрузится на сервер
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
ZEN
    #36272631
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorможно только, он должен сначала загрузится на сервер
Примерчик, как это должно работать, можно?
...
Рейтинг: 0 / 0
ZEN
    #36272656
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.PartizanПрямо на эту страницу и хочу.

Про файл не скажу пока... А вот по компоненту text отработать можно только через url.
Т.е. нужно завести на странице параметр типа

Код: plaintext
1.
2.
/// значение переменной proc
Property MyProc As %ZEN.Datatype.id(ZENURL = "proc");

Далее можешь совать %page.MyProc в любое место. Ну почти любое...
...
Рейтинг: 0 / 0
ZEN
    #36272670
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для того чтобы всю необхордимую информацию отобразить на странице
нужно хотя бы определить куда ты хочешь ее отобразить,
submit замени на обычную кнопку,
размести компонет <html>,
назначь ему метод OnDrawContent,
в нем напиши то что нужно (можно в формате html),
по нажатию на кнопку делай refreshContents на этот элемент
и будет тебе счастье
...
Рейтинг: 0 / 0
ZEN
    #36272671
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. %ZEN.Datatype.<подобрать_что-то_для_себя> . id это частный случай... Там всяких вариантов валом! В общем случае подойдет например %ZEN.Datatype.string
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #36272712
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007submit замени на обычную кнопку

Я что-то вообще не понял в каком варианте ёё ИС планировало использовать...
...
Рейтинг: 0 / 0
ZEN
    #36272736
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
лично я ёё использую только в одном месте: при авторизации пользователя
...
Рейтинг: 0 / 0
ZEN
    #36273529
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007для того чтобы всю необхордимую информацию отобразить на странице
нужно хотя бы определить куда ты хочешь ее отобразить,
submit замени на обычную кнопку,
размести компонет <html>,
назначь ему метод OnDrawContent,
в нем напиши то что нужно (можно в формате html),
по нажатию на кнопку делай refreshContents на этот элемент
и будет тебе счастье
Вообще-то, я думал что так и делаю:
Код: 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.
/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<form>
<fileUpload size="30" name="FileStream" id="FileStream"/>
<text size="30" name="proc" id="proc"/>
<submit id="load" name="load" caption="Загрузить"/>
</form>
<html OnDrawContent="DrawMsg"/>
</page>
}

/// Draw HTML for the page title
Method DrawMsg(pSeed As %String) As %Status
{
        S proc=%request.Get("proc")
	W "<BR/>proc=",proc
        S obj=%request.MimeData("FileStream", 1 )
 	S stream=##class(%Library.FileCharacterStream).%OpenId(obj)
	;
	S fname=stream.FileName
        W "<BR/>filename=",fname
	Quit $$$OK
}
}
Есть компанент html с назначенным ему методом OnDrawContent,
по кнопке SUBMIT происходит обновление (или это не так?),
но счастья нет ((.
Проблема в том, что то что работало на странице CSP тут работать не хочет:
Код: plaintext
proc=%request.Get("proc")
Код: plaintext
stream=##class(%Library.FileCharacterStream).%OpenId(obj)
Сам метод работает, ну по крайней мере значенеи %session.SessionId рисовалось.

Ymka2007
Про файл не скажу пока... А вот по компоненту text отработать можно только через url.
Т.е. нужно завести на странице параметр типа
Сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<form>
<fileUpload size="30" name="FileStream" id="FileStream"/>
<text size="30" name="proc" id="proc"/>
<submit id="load" name="load" caption="Загрузить"/>
</form>
<html OnDrawContent="DrawMsg"/>
</page>
}

/// Draw HTML for the page title
Method DrawMsg(pSeed As %String) As %Status
{
	Write %page.MyProc
	Quit $$$OK
}
/// значение переменной proc
Property MyProc As %ZEN.Datatype.id(ZENURL = "proc");
}
тоже не хочет рисаваться то что надо,может не туда засунул %page.MyProc?
submit нужно обязательно заменить на обычную кнопку?
...
Рейтинг: 0 / 0
ZEN
    #36273875
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Partizanможет не туда засунул %page.MyProc?

Наверное...
Напиши например вот так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<page xmlns="http://www.intersystems.com/zen" title="">
<html>
   <p>#(%page.MyProc)#</p>
</html>
<form>
<fileUpload size="30" name="FileStream" id="FileStream"/>
<text size="30" name="proc" id="proc"/>
<submit id="load" name="load" caption="Загрузить"/>
</form>
<html OnDrawContent="DrawMsg"/>
</page>

А реквеста больше нет... Ну в том синтаксисе как в CSP... Теперь только так, через параметры.

mr.Partizansubmit нужно обязательно заменить на обычную кнопку?

Х/з... У меня пока все на простых кнопках...
...
Рейтинг: 0 / 0
ZEN
    #36274020
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To mr.Partizan

Попробуйте так:
Код: 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.
XData Contents [XMLNamespace="http://www.intersystems.com/zen"]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<form enctype="multipart/form-data" method="post">
<fileUpload size="30" name="FileStream" id="FileStream"/>
<text size="30" name="proc" id="proc" />
<submit id="load" name="load" caption="Загрузить"/>
</form>
<text size="10" id="streamSize" label="Размер:"/>
<text size="100" id="streamFileName" label="Имя файла:"/>
<text size="30" id="_proc" label="Proc:"/>
</page>
}

ClassMethod %OnSubmit(pSubmit As %ZEN.Submit) As %Status
{
	set stream=pSubmit.%GetStream("FileStream")
	set %session.Data("streamSize")=stream.Size
	set %session.Data("streamFileName")=stream.FileName
	set %session.Data("proc")=pSubmit.%GetValue("proc")

	quit $$$OK
}

Method %OnAfterCreatePage() As %Status
{
	if ('%session.NewSession) {
	 set %page.%GetComponentById("streamSize").value=%session.Data("streamSize")
	 set %page.%GetComponentById("streamFileName").value=%session.Data("streamFileName")
	 set %page.%GetComponentById("_proc").value=%session.Data("proc")
	}
	quit $$$OK
}
...
Рейтинг: 0 / 0
ZEN
    #36274347
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ymka2007 , сделал как ты говорил - все получилось, остался вопрос с получением данных по прикрепленному фалй.
servit To mr.Partizan

Попробуйте так:
Попробовал, при компиляции выходит сообщение:
ERROR #6353: Unexpected attributes for element form: method
>ERROR #5030: An error occurred while compiling class
...
Рейтинг: 0 / 0
ZEN
    #36277032
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уберите атрибут method у формы. Он появился в Caché 2010.1.
...
Рейтинг: 0 / 0
ZEN
    #36277117
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , а до этого как будут передаваться поля формы? Постом или гетом?
...
Рейтинг: 0 / 0
ZEN
    #36277384
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласно документации - постом.
Исходный текст формы это подтверждает.
...
Рейтинг: 0 / 0
ZEN
    #36277639
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
ZEN
    #36277730
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitУберите атрибут method у формы. Он появился в Caché 2010.1.
Убрал, компилируется вроде как нормально.
Но все равно работать не хочет (, пишет:

A run-time error occurred while executing the page

Error: <METHOD DOES NOT EXIST>%OnSubmit^GTS.OPS.1 *%GetStream,%ZEN.Submit
ErrorNo: 5002
CSP Page: /csp/gts_train/GTS.OPS.cls
Namespace: GTS_TRAIN
Class: GTS.OPS
Routine: GTS.OPS.1
Location: %OnSubmit
Line: %OnSubmit(pSubmit) public { set stream=pSubmit.%GetStream("FileStream")
...
Рейтинг: 0 / 0
ZEN
    #36277825
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Метод %GetStream появился в версии 2009.1.

Попробуйте заменить строку
Код: plaintext
set stream=pSubmit.%GetStream("FileStream")
на
Код: plaintext
set stream=$G(%request.MimeData("$V_FileStream", 1 ))
...
Рейтинг: 0 / 0
ZEN
    #36278567
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit
Попробуйте заменить строку
Код: plaintext
set stream=pSubmit.%GetStream("FileStream")
на
Код: plaintext
set stream=$G(%request.MimeData("$V_FileStream", 1 ))

Заменил, теперь ошибка такая:
A run-time error occurred while executing the page

Error: <INVALID OREF>%OnSubmit+1^GTS.OPS.3
ErrorNo: 5002
CSP Page: /csp/gts_train/GTS.OPS.cls
Namespace: GTS_TRAIN
Class: GTS.OPS
Routine: GTS.OPS.3
Location: %OnSubmit+1
Line: set %session.Data("streamSize")=stream.Size
...
Рейтинг: 0 / 0
ZEN
    #36281805
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка возникает, потому что Вы не передали файл. Эту ситуацию нужно обрабатывать.
Высылаю пример для версии 2007.1.
...
Рейтинг: 0 / 0
ZEN
    #36288467
mr.Partizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitОшибка возникает, потому что Вы не передали файл. Эту ситуацию нужно обрабатывать.
Высылаю пример для версии 2007.1.
Все отлично, пример работает.
На самом деле я хотел переделать имеющуюся у меня CSP-страницу в ZEN-страницу, но чего-то у меня не получается.
Вот CSP:
Код: 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.
<html>
<head>
<title></title>
</head>
<body>
<form enctype="multipart/form-data" method="post">
	Файл   :<input type=file size= 30  name=FileStream><BR><BR>
	Процесс:<input type=text name=proc size= 30 >
	<input type="submit" value="Загрузить!">
</form>
<script language="cache" runat="server">
	S nm=%session.Data("Surname")
	S nik=%session.Data("nik")
	I nm'="" D
	.W "<BR>Здравствуйте ",$$DosToWin^io1(%session.Data("Surname")),"<BR><BR>"
	.;
	.I %request.Get("proc")'="" D  Q
	..S proc=%request.Get("proc")
	..I '^aIm5(proc) D
	...W "<br>Процесс загрузки =",proc
	...W "<br>Последняя загруженная строка =",$zp(^aIm5(proc,1,""))
	...W "<br>Последняя ошибочная   строка =",$zp(^aIm5(proc,0,""))
     	..I ^aIm5(proc)  D f^aIm5(%request.Get("proc"))
	.;
	.I (^aSet("file")&(nik'="nik")) W "<BR><font color=red>не работает<font>"  Q	
	.S obj=%request.MimeData("FileStream", 1 )
 	.S stream=##class(%Library.FileCharacterStream).%OpenId(obj)
	.I stream'["CSP" D   Q
	..W "<br>Файл не выбран!"
	.;
	.S fname=stream.FileName
	.S proc=$I(^aIm5)
	.K ^aList($p,proc)
	.I $$low^a($P(fname,".",2))="xml" D dparse^a2(obj,$na(^aList($p,proc)))
	.I $$low^a($P(fname,".",2))="csv" D csv^aIm5(proc)
	.D stream.%Close()
	.;
	.I $D(^aList($p,proc))'= 11  D  Q
	..W "<br>Неправильный формат файла!"
	.;
	.I $D(^aList($p,proc))= 11   J S^aIm5($na(^aList($p,proc)),proc,%session.Data("Surname"),fname,%session.Data("Surname"))
	.W "<br>Процесс загрузки :",proc
</script>
</body>
</html>

В ZEN не могу получить работающую ссылку на прикрепленный файл чтобы выполнить D dparse^a2(obj,$na(^aList($p,proc)))
...
Рейтинг: 0 / 0
80 сообщений из 80, показаны все 4 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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