Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема / 19 сообщений из 19, страница 1 из 1
11.10.2006, 18:07
    #34048427
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
Такая проблема(понял что по маленьким вопросам-не добьюсь ничего):
Есть форма на ней 2 кнопки:
Первая кнопка вызывает defaut4.aspx с отчетом-всё отлично!(Response.Redirect)
Вторая кнопка открывает новое окно, но тоже default4.aspx но там отчета нету, т.е открывается пустое пдф окно.
Что странно если на default4.aspx поставить кнопку при нажатии на которую появится отчёт (inline) то и там и там открывается полный отчёт...
Отчет с параметрами через session от default3.aspx.
Посоветуйте что сделать..
Я думал сделать автонажатии кнопки но незнаю как.. а больше вариантов нет
...
Рейтинг: 0 / 0
11.10.2006, 18:25
    #34048481
Суповой набор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
вторая кнопка нужна только для того, чтобы открывалось новое окно?
а формируется отчет на дефолт3? и в сессию кидается? а в дефолт4 из сессии вытаскивается? так что ли?
что то ты замутил.
если отчет генерится и кидается в сессию в дефолт3 - так посмотри что у тебя в сессии в дефолт4, у меня такое ощущение, что ты генеришь отчет перед редиректом, естественно открывая новое окно - отчета в сессии нет.

куясе я роман нопесал
аж самому страшно стало
домой новерное пора
...
Рейтинг: 0 / 0
11.10.2006, 18:32
    #34048504
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
1. Да кнорка нужна только для открытия дефолта4.
2. Отчёт на дефолт3 по сессиям и вытаскивактся в дефолт4.
3. Нет Редирект первее, + к кнопке открывающей новое окно... Редирект не очень нужен BtnOk1.Attributes.Add("onclick", "window.open('default4.aspx');return false");
Но я не понимаю... Почему открывая одну и туже страницу разными способами
..в одном случае открывается, а в другом нет...
...
Рейтинг: 0 / 0
11.10.2006, 18:35
    #34048510
Суповой набор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
посмотри что у тебя в сессии в дефолт4
по идее там должен быть null
когда ты делаешь window.open();
...
Рейтинг: 0 / 0
11.10.2006, 18:37
    #34048514
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
Всмысле посмотреть? Как? вывести сессию через лэйблы... уже стёр лэйблы... там всё выводилось я проверял...я видел (То ли это?)
Ну а как от этого нулл тогда избавится?
...
Рейтинг: 0 / 0
11.10.2006, 18:49
    #34048540
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
ещё есть this.RegisterStartupScript("OnLoad", "<script language ='javascript'>" + Button1.ClientID + ".click();</script>"); но не работает!
...
Рейтинг: 0 / 0
11.10.2006, 18:56
    #34048552
Суповой набор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
короче давай код дефолт4 в студию
так тебя просто не возможно понять
...
Рейтинг: 0 / 0
11.10.2006, 19:02
    #34048563
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
public partial class Default4 : System.Web.UI.Page
{
public String MyCallParams;
public String ReportName;
public String ReportParams;
protected void Page_Load(object sender, EventArgs e)
{
this.RegisterStartupScript("OnLoad", "<script language ='javascript'>" + Button1.ClientID + ".click();</script>");
}
private void ProcessWebservice4(String ReportName, String ReportParams)
{
ebkservice.IWebPrintServiceservice Webservice = new ebkservice.IWebPrintServiceservice();
Byte[] Data = Webservice.getPdfReport(ReportName, ReportParams);

Response.ContentType = "application/pdf";
Response.Charset = "Windows-1251";
Response.AddHeader("Content-Disposition", "inline");
Response.BinaryWrite(Data);
Response.End();
}


protected void Button1_Click(object sender, EventArgs e)
{
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Gang")
{
Session["params"].ToString();
ProcessWebservice4("TRep_Arbeitsgang", Session["params"].ToString());
}
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Plan")
{
Session["params2"].ToString();
ProcessWebservice4("TrptArbeitsplan", Session["params2"].ToString());
}
if (Session["name"].ToString() == "Status / Kommissions-Status")
{
Session["params3"].ToString();
ProcessWebservice4("TRep_KommStatus", Session["params3"].ToString());
}

}
}
Вот дефаулт4. Простите за немецкий. Сам его незнаю... но тут он и не нужен!
...
Рейтинг: 0 / 0
11.10.2006, 19:07
    #34048578
Суповой набор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
хорошо, надо было конечно код дефолт3
а на дефолт4 тоже есть кнопка?
...
Рейтинг: 0 / 0
11.10.2006, 19:08
    #34048579
Суповой набор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
а,я понял, это ты эксперементировал :)
давай код дефолт3.
...
Рейтинг: 0 / 0
11.10.2006, 19:08
    #34048582
Суповой набор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
давай быстрее, домой уже пора
...
Рейтинг: 0 / 0
11.10.2006, 19:12
    #34048594
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
Что странно если на default4.aspx поставить кнопку при нажатии на которую появится отчёт (inline) то и там и там открывается полный отчёт...
Отчет с параметрами через session от default3.aspx.
Посоветуйте что сделать..
Я думал сделать автонажатии кнопки но незнаю как.. а больше вариантов нет
---------Это мой первый пост-----------------------------
можно и убрать я вот и спрашиваю... либо как сделать авто нажатие кнопки, либо как сделать без нее. Дефаулт3 очень большой... Кнопка генерации отчета:
protected void btnOk_Click(object sender, EventArgs e)
{
Session["name"] = lblReportname.Text;
Session["params"] = MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
Session["params2"] = MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
Session["params3"] = MyCallParams = "qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
"variable|nuroffenepos|true";
Response.Redirect("default4.aspx");
if (lblReportname.Text == "APlan-/A-Gang / Arbeits-Gang")
{
MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
Session["Klas"] = "TRep_Arbeitsgang";
ProcessWebservice("TRep_Arbeitsgang", MyCallParams);
}
if (lblReportname.Text == "APlan-/A-Gang / Arbeits-Plan")
{
MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
Session["Klas"] = "TrptArbeitsplan";
ProcessWebservice("TrptArbeitsplan", MyCallParams);
}
if (lblReportname.Text == "Status / Kommissions-Status")
{
MyCallParams =
"qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
"variable|nuroffenepos|true";
Session["Klas"] = "TRep_KommStatus";
ProcessWebservice("TRep_KommStatus", MyCallParams);
}
}
ну сам отчет ProcessWebservice можно взять тот же... и открытие окна яваскрипта я кидал..
...
Рейтинг: 0 / 0
11.10.2006, 19:16
    #34048601
Суповой набор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
короче

Session["name"] = lblReportname.Text;
Session["params"] = MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
Session["params2"] = MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
Session["params3"] = MyCallParams = "qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
"variable|nuroffenepos|true";
Response.Redirect("default4.aspx");

у тебя в оброботчике клика стоит - занос данных в сессию
а потом редирект.

ты должен вот это сделать в пейджлоад:
Session["name"] = lblReportname.Text;
Session["params"] = MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
Session["params2"] = MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
Session["params3"] = MyCallParams = "qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
"variable|nuroffenepos|true";

тогда и window.open() юзай

з.ы. все, успехов, побежал пить пиво.
...
Рейтинг: 0 / 0
11.10.2006, 19:17
    #34048604
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
Сейчас попробуем!
...
Рейтинг: 0 / 0
11.10.2006, 19:27
    #34048621
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
Хмммм... чё то не ворк...Спасибо! Сейчас подумаем
...
Рейтинг: 0 / 0
11.10.2006, 19:35
    #34048636
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
protected void Page_Load(object sender, EventArgs e)
{
Session["name"] = lblReportname.Text;
Session["params"] = MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
Session["params2"] = MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
Session["params3"] = MyCallParams = "qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
"variable|nuroffenepos|true";
BtnOk1.Attributes.Add("onclick", "window.open('default4.aspx');return false");
DateTime dt = System.DateTime.Today;
lblDatum.Text = String.Format("{0:dd.MM.yyyy}", dt);
...
Рейтинг: 0 / 0
11.10.2006, 21:51
    #34048799
Суповой набор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
вот смотри:
Код: 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.
protected void btnOk_Click(object sender, EventArgs e)
{
	Session["name"] = lblReportname.Text;
	Session["params"] = MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
	Session["params2"] = MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
	Session["params3"] = MyCallParams = "qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
	"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
	"variable|nuroffenepos|true";
	Response.Redirect("default4.aspx");

if (lblReportname.Text == "APlan-/A-Gang / Arbeits-Gang")
{
	MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
	Session["Klas"] = "TRep_Arbeitsgang";
	ProcessWebservice("TRep_Arbeitsgang", MyCallParams);
}
if (lblReportname.Text == "APlan-/A-Gang / Arbeits-Plan")
{
	MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
	Session["Klas"] = "TrptArbeitsplan";
	ProcessWebservice("TrptArbeitsplan", MyCallParams);
}
if (lblReportname.Text == "Status / Kommissions-Status")
{
	MyCallParams =
	"qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
	"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
	"variable|nuroffenepos|true";
	Session["Klas"] = "TRep_KommStatus";
	ProcessWebservice("TRep_KommStatus", MyCallParams);
этот код страницы дефолт3
а вернее - обработка события клик btnOk
где весь код страницы дефолт3?
дальше:
Код: 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.
public partial class Default4 : System.Web.UI.Page
{
	public String MyCallParams;
	public String ReportName;
	public String ReportParams;

protected void Page_Load(object sender, EventArgs e)
{
	this.RegisterStartupScript("OnLoad", "<script language ='javascript'>" + Button1.ClientID + ".click();</script>");
}
private void ProcessWebservice4(String ReportName, String ReportParams)
{
	ebkservice.IWebPrintServiceservice Webservice = new ebkservice.IWebPrintServiceservice();
	Byte[] Data = Webservice.getPdfReport(ReportName, ReportParams);

	Response.ContentType = "application/pdf";
	Response.Charset = "Windows-1251";
	Response.AddHeader("Content-Disposition", "inline");
	Response.BinaryWrite(Data);
	Response.End();
}


protected void Button1_Click(object sender, EventArgs e)
{
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Gang")
{
	Session["params"].ToString();
	ProcessWebservice4("TRep_Arbeitsgang", Session["params"].ToString());
}
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Plan")
{
	Session["params2"].ToString();
	ProcessWebservice4("TrptArbeitsplan", Session["params2"].ToString());
}
if (Session["name"].ToString() == "Status / Kommissions-Status")
{
	Session["params3"].ToString();
	ProcessWebservice4("TRep_KommStatus", Session["params3"].ToString());
}

}
}
этот код страницы дефолт4
ты пытаешься при загрузке этой страницы вызвать код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
protected void Button1_Click(object sender, EventArgs e)
{
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Gang")
{
	Session["params"].ToString();
	ProcessWebservice4("TRep_Arbeitsgang", Session["params"].ToString());
}
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Plan")
{
	Session["params2"].ToString();
	ProcessWebservice4("TrptArbeitsplan", Session["params2"].ToString());
}
if (Session["name"].ToString() == "Status / Kommissions-Status")
{
	Session["params3"].ToString();
	ProcessWebservice4("TRep_KommStatus", Session["params3"].ToString());
}

}
}
нахера такой гемор?
разве нельзя сделать так:
Код: 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.
public partial class Default4 : System.Web.UI.Page
{
	public String MyCallParams;
	public String ReportName;
	public String ReportParams;

protected void Page_Load(object sender, EventArgs e)
{
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Gang")
{
	Session["params"].ToString();
	ProcessWebservice4("TRep_Arbeitsgang", Session["params"].ToString());
}
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Plan")
{
	Session["params2"].ToString();
	ProcessWebservice4("TrptArbeitsplan", Session["params2"].ToString());
}
if (Session["name"].ToString() == "Status / Kommissions-Status")
{
	Session["params3"].ToString();
	ProcessWebservice4("TRep_KommStatus", Session["params3"].ToString());
}
}
private void ProcessWebservice4(String ReportName, String ReportParams)
{
	ebkservice.IWebPrintServiceservice Webservice = new ebkservice.IWebPrintServiceservice();
	Byte[] Data = Webservice.getPdfReport(ReportName, ReportParams);

	Response.ContentType = "application/pdf";
	Response.Charset = "Windows-1251";
	Response.AddHeader("Content-Disposition", "inline");
	Response.BinaryWrite(Data);
	Response.End();
}
}

вообще, имхо, тут полный бардак - меняй весь код, и объясни плиз ЧТО ТЫ ХОЧЕШЬ СДЕЛАТЬ? - если я правильно понял - ты хочешь по клик на кнопке в дефолт3 - открыть новое окно дефолт4? - тогда вот этот код:
Код: 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.
protected void btnOk_Click(object sender, EventArgs e)
{
	Session["name"] = lblReportname.Text;
	Session["params"] = MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
	Session["params2"] = MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
	Session["params3"] = MyCallParams = "qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
	"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
	"variable|nuroffenepos|true";
	Response.Redirect("default4.aspx");

if (lblReportname.Text == "APlan-/A-Gang / Arbeits-Gang")
{
	MyCallParams = "qd_arbeitsgang|betr_auftrag_id|" + ddlPosition.SelectedValue;
	Session["Klas"] = "TRep_Arbeitsgang";
	ProcessWebservice("TRep_Arbeitsgang", MyCallParams);
}
if (lblReportname.Text == "APlan-/A-Gang / Arbeits-Plan")
{
	MyCallParams = "qd_position|position_id|" + ddlPosition.SelectedValue;
	Session["Klas"] = "TrptArbeitsplan";
	ProcessWebservice("TrptArbeitsplan", MyCallParams);
}
if (lblReportname.Text == "Status / Kommissions-Status")
{
	MyCallParams =
	"qd_kommission|kommission_id|" + ddlKommission.SelectedValue + "," +
	"qd_position|position_id|" + ddlPosition.SelectedValue + "," +
	"variable|nuroffenepos|true";
	Session["Klas"] = "TRep_KommStatus";
	ProcessWebservice("TRep_KommStatus", MyCallParams);
}
}
тут же видно, что параметры в сессии формируются на основе каких-то данных с формы дефолт3. - тогда делай постбэк на дефолт4 и из Request.Form - получай эти параметры и формируй по ним отчет. нафига вообще страница дефолт4?
все это можно сделать на дефолт3. если хочешь, чтобы отчет сформировался в отдельном окне - заюзай HttpHandler - и передавай ему необходимые параметры в том же get'е, только все ненужное скрывай, тулбары там и прочую хню.
...
Рейтинг: 0 / 0
11.10.2006, 22:46
    #34048850
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
Объясняю!
Мне это нужно было для того что...
Был отчет! Генерировался на дефолт 3... открывался inline Мне нужно было сделать чтобы открывался в новом окне отчёт... Я спрашивал... сам пробовал! Этого сделать нельзя... Что я сделал тогда?-Я сделал просто Дефолт4 в который занёс параметры отчета...и при нажатии на кнопку открывается Дефолт 4 и там inline открывается отчет. Вот что надо было...
Теперь в реальность:
public partial class Default4 : System.Web.UI.Page
{
public String MyCallParams;
public String ReportName;
public String ReportParams;

protected void Page_Load(object sender, EventArgs e)
{
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Gang")
{
Session["params"].ToString();
ProcessWebservice4("TRep_Arbeitsgang", Session["params"].ToString());
}
if (Session["name"].ToString() == "APlan-/A-Gang / Arbeits-Plan")
{
Session["params2"].ToString();
ProcessWebservice4("TrptArbeitsplan", Session["params2"].ToString());
}
if (Session["name"].ToString() == "Status / Kommissions-Status")
{
Session["params3"].ToString();
ProcessWebservice4("TRep_KommStatus", Session["params3"].ToString());
}
}
private void ProcessWebservice4(String ReportName, String ReportParams)
{
ebkservice.IWebPrintServiceservice Webservice = new ebkservice.IWebPrintServiceservice();
Byte[] Data = Webservice.getPdfReport(ReportName, ReportParams);

Response.ContentType = "application/pdf";
Response.Charset = "Windows-1251";
Response.AddHeader("Content-Disposition", "inline");
Response.BinaryWrite(Data);
Response.End();
}
}
Про это собственно и был первый мой пост:) я так и пытаюсь сделать... но открывается пустой лист в новом окне. А вторая дополнительная кнопка открывает этот же дефолт4 с отличным отчетом. Вот собственно!
И вот идеи postback и Request.Form Но как? я не опытен в этих делах... поэтому и просил помощи! Как это лучше сделать и главное как?
Спасибо заранее! Ну и за это тоже!
P.S. А вот с хэндлером мне кажется не то, т.к. метод get!! я пытался поставить его на форму-у меня всё отказывалось работать!
...
Рейтинг: 0 / 0
12.10.2006, 14:02
    #34050518
vitalycrash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема
Есть какие нибудь идеи? Подкиньте может чего... буду благодарен
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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