Usuário com melhor resposta
Estou CHAMANDO certo esse "texto" no Java Script ASP.NET??

Pergunta
-
Pessoal, tenho o código a baixo em Java Script:
<script language="javascript" type="text/javascript"> function imprimi(){ var arg1 = "<%=texto%>" //Já tentei sem as "" aspas e tbm dá o memso erro. //CRIA OBJETO PARA MANIPULACAO DE ARQUIVOS NO CLIENTE. var fso = new ActiveXObject("Scripting.FileSystemObject"); //VERIFICA A EXISTENCIA DO ARQUIVO DE IMPRESSAO ANTIGO E O DELETA; if ( fso.FileExists("c:\\temp\\imprime.prn") ) { fso.DeleteFile("c:\\temp\\imprime.prn"); } //if //VERIFICA A NAO EXISTENCIA DO ARQUIVO RESPONSAVEL PELA IMPRESSAO NA IMPRESSORA BEMATECH. if ( !(fso.FileExists("c:\\temp\\imprime.bat")) ) { //CRIA O ARQUIVO IMPRIME.BAT, ESCREVE O COMANDO RESPONSAVEL PELA IMPRESSAO E FECHA O ARQUIVO. var b = fso.CreateTextFile("c:\\temp\\imprime.bat", true); b.WriteLine("type c:\\temp\\imprime.prn > \\\\PLANEJAMENTO\\imp1"); b.Close(); } //if //CRIA O ARQUIVO IMPRIME.PRN, ESCREVE TODO O TEXTO PARA SER IMPRESSO E FECHA O ARQUIVO. var a = fso.CreateTextFile("c:\\temp\\imprime.prn", true); a.WriteLine(arg1); a.Close(); //Cria um objeto para execucao de um programa no computador do cliente. var WshShell = new ActiveXObject("WScript.Shell"); //Executa o arquivo responsavel pela impressao do arquivo imprime.prn. var oExec = WshShell.Exec("c:\\temp\\imprime.bat"); setTimeout('window.close()',10); //Fim do imprime_lpt1 return true; } </script>
e esta dando o seguinte erro:
Server Error in '/' Application.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0103: O nome 'texto' não existe no contexto atual
Source Error:Line 6: <script language="javascript" type="text/javascript"> Line 7: function imprimi() { Line 8: var arg1 = "<%=texto%>" Line 9: Line 10: //CRIA OBJETO PARA MANIPULACAO DE ARQUIVOS NO CLIENTE.
Meu Botão:
public void AtualizarCliente()
{
if (Session["pesquisa"] != null)
{
string textopesquisa = Session["pesquisa"].ToString();
idCliente = int.Parse(txtidt_visitantes.Text);
cliente = ClientesConfirmadosBLL.Find(cli => cli.IDT_VISITANTE == idCliente).First<CLIENTESCONFIRMADOS>();
cliente.NMCOMPLETO = txtnmcompleto.Text;
cliente.NMCRACHA = txtnmcracha.Text;
cliente.EMPRESA = txtempresa.Text;
cliente.CARGO = txtcargo.Text;
cliente.AREAATUACAO = txtareaatuacao.Text;
cliente.CEP = txtcep.Text;
cliente.ENDERECO = txtendereco.Text;
cliente.NUMERO = txtnumero.Text;
cliente.COMPLEMENTO = txtcomplemento.Text;
cliente.BAIRRO = txtbairro.Text;
cliente.CIDADE = txtcidade.Text;
cliente.UF = txtuf.Text;
cliente.DDD = txtddd.Text;
cliente.TELEFONE = txttelefone.Text;
cliente.DDDCEL = txtdddcel.Text;
cliente.CELULAR = txtcelular.Text;
cliente.EMAIL = txtemail.Text;
cliente.CNPJCPF = txtcnpjcpf.Text;
ClientesConfirmadosBLL.Update(cliente);
ClientesConfirmadosBLL.SaveChanges();
string NomeCracha = RemoverAcentos(txtnmcracha.Text);
string Empresa = RemoverAcentos(txtempresa.Text);
StringBuilder msg = new StringBuilder();
msg.Append("^XA ");
msg.Append("^FWN");
msg.Append("^PRB");
msg.Append("^PQ1");
msg.Append("^LH120,030");
msg.Append("^FS");
msg.Append("^FO000,070^A0N,40,42^FD" + NomeCracha.ToUpper() + "^FS");
msg.Append("^FO000,130^A0N,50,35^FD" + "Cursos: " + esc1 + ", " + esc2 + "^FS");
msg.Append("^FO000,190^A0N,40,42^FD" + Empresa.ToUpper() + "^FS");
//msg.Append("^FO150,190^BCN,60,Y,N,N^FD"+ insCodigoBarras + insControleAcesso +"^FS");
msg.Append("^XZ");
string texto = msg.ToString();BuscarClientePorNome(textopesquisa);
Session["pesquisa"] = null;
}
}
- Editado Vinicius Vendramel quarta-feira, 4 de julho de 2012 17:09
Respostas
-
VITOR, ACHO QUE É O NAVEGAR, FIZ O TESTE DAÍ FUI VER O CÓDIGO FONTE NO CHROME E ESTÁ COMO O CÓDIGO A BAIXO:
FUNCIONOU!! AGORA VOU FAZER O TESTE NO IE E VER SE FUNCIONA!!
function MinhaFuncao() { var texto = '^XA ^FWN^PRB^PQ1^LH120,030^FS^FO000,070^A0N,40,42^FDHUGO CAMPOS ^FS^FO000,190^A0N,40,42^FDCONSULFARMA^FS^XZ'; if (texto == "") { texto == 'Hugo' } else
- Marcado como Resposta Harley Araujo sexta-feira, 6 de julho de 2012 12:44
Todas as Respostas
-
Não é possível acessar uma variável C# pelo javascript, oque você pode tentar é jogar ela em uma sessão e depois recuperar via JavaScript, veja este exemplo:
http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/0a323c6d-cbb5-4ca0-85d2-b9fea1b020a9/Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/ -
-
Vitão, depois que eu preencho a textbox na master page ele me redireciona para a pagina resultado.aspx com a session assim:
if (Session["pesquisa"] != null)
{
string textopesquisa = Session["pesquisa"].ToString();
BuscarClientePorNome(textopesquisa);
}
else
{
ShowAlert("Cliente não encontrado!");
}Daí, ele preenche a grid com os dados pesquisados.. Na prórpria grid há um botão "selecionar" que ele seleciona o cliente e logo em baixo as textbox recebedo os dados do cliente para serem alterados.
e em baixo, há um botão imprimir, dentro do botão, está assim:
protected void Imprimir_Click1(object sender, EventArgs e)
{
if (Session["pesquisa"] != null)
{
string textopesquisa = Session["pesquisa"].ToString();
string[] escreveimpressora = new string[42];
idCliente = int.Parse(txtidt_visitantes.Text);
cliente = ClientesConfirmadosBLL.Find(cli => cli.IDT_VISITANTE == idCliente).First<CLIENTESCONFIRMADOS>();
cliente.NMCOMPLETO = txtnmcompleto.Text;
cliente.NMCRACHA = txtnmcracha.Text;
cliente.EMPRESA = txtempresa.Text;
cliente.CARGO = txtcargo.Text;
cliente.AREAATUACAO = txtareaatuacao.Text;
cliente.CEP = txtcep.Text;
//cliente.ENDERECO = txtendereco.Text;
cliente.NUMERO = txtnumero.Text;
cliente.COMPLEMENTO = txtcomplemento.Text;
cliente.BAIRRO = txtbairro.Text;
cliente.CIDADE = txtcidade.Text;
cliente.UF = txtuf.Text;
cliente.DDD = txtddd.Text;
cliente.TELEFONE = txttelefone.Text;
cliente.DDDCEL = txtdddcel.Text;
cliente.CELULAR = txtcelular.Text;
cliente.EMAIL = txtemail.Text;
cliente.CNPJCPF = txtcnpjcpf.Text;
ClientesConfirmadosBLL.Update(cliente);
ClientesConfirmadosBLL.SaveChanges();
string NomeCracha = RemoverAcentos(txtnmcracha.Text);
string Empresa = RemoverAcentos(txtempresa.Text);
StringBuilder msg = new StringBuilder();
msg.Append("^XA ");
msg.Append("^FWN");
msg.Append("^PRB");
msg.Append("^PQ1");
msg.Append("^LH120,030");
msg.Append("^FS");
msg.Append("^FO000,070^A0N,40,42^FD" + NomeCracha.ToUpper() + "^FS");
// msg.Append("^FO000,130^A0N,50,35^FD" + "Cursos: " + esc1 + ", " + esc2 + "^FS");
msg.Append("^FO000,190^A0N,40,42^FD" + Empresa.ToUpper() + "^FS");
//msg.Append("^FO150,190^BCN,60,Y,N,N^FD"+ insCodigoBarras + insControleAcesso +"^FS");
msg.Append("^XZ");
var texto = msg.ToString();
//string nome_arquivo = "C:/Teste/imprimi.prn";
//if (!File.Exists(nome_arquivo))
// File.Create(nome_arquivo).Close();
//TextWriter arquivo = File.AppendText(nome_arquivo);
//arquivo.WriteLine(texto);
//arquivo.Close();
//StringBuilder msgBAT = new StringBuilder();
//Process processo = new Process();
//msgBAT.Append("type C:\\Teste\\imprimi.prn > \\\\PLANEJAMENTO\\mp1");
//string b = msgBAT.ToString();
//string arqui_bat = "C:/Teste/imprimir.bat";
//if (!File.Exists(arqui_bat))
//{
// File.Create(arqui_bat).Close();
// TextWriter escrever = File.AppendText(arqui_bat);
// escrever.WriteLine(b);
// // File.Delete(arqui_bat);
// escrever.Close();
// processo.StartInfo.FileName = arqui_bat;
// processo.Start();
//}
//else
//{
// processo.StartInfo.FileName = arqui_bat;
// processo.Start();
//}
//File.Delete(nome_arquivo);
//LimparCampos();
//btnsalvar.Text = "Salvar";
BuscarClientePorNome(textopesquisa);
Session["pesquisa"] = null;
}
}
Então, quando o cara clicar, neste botão quero que o "texto" jogue o valor dele dentro DO JAVA Script na página asp.net.. para abrir pode imprimir.
<script type="text/javascript">
function MinhaFuncao() {
var arg1 = "<%=texto%>"
//CRIA OBJETO PARA MANIPULACAO DE ARQUIVOS NO CLIENTE.
var fso = new ActiveXObject("Scripting.FileSystemObject");
//VERIFICA A EXISTENCIA DO ARQUIVO DE IMPRESSAO ANTIGO E O DELETA;
if (fso.FileExists("c:\\temp\\imprime.prn")) {
fso.DeleteFile("c:\\temp\\imprime.prn");
} //if
//VERIFICA A NAO EXISTENCIA DO ARQUIVO RESPONSAVEL PELA IMPRESSAO NA IMPRESSORA BEMATECH.
if (!(fso.FileExists("c:\\temp\\imprime.bat"))) {
//CRIA O ARQUIVO IMPRIME.BAT, ESCREVE O COMANDO RESPONSAVEL PELA IMPRESSAO E FECHA O ARQUIVO.
var b = fso.CreateTextFile("c:\\temp\\imprime.bat", true);
b.WriteLine("type c:\\temp\\imprime.prn > \\\\PLANEJAMENTO\\imp1");
b.Close();
} //if
//CRIA O ARQUIVO IMPRIME.PRN, ESCREVE TODO O TEXTO PARA SER IMPRESSO E FECHA O ARQUIVO.
var a = fso.CreateTextFile("c:\\temp\\imprime.prn", true);
a.WriteLine(arg1);
a.Close();
//Cria um objeto para execucao de um programa no computador do cliente.
var WshShell = new ActiveXObject("WScript.Shell");
//Executa o arquivo responsavel pela impressao do arquivo imprime.prn.
var oExec = WshShell.Exec("c:\\temp\\imprime.bat");
setTimeout('window.close()', 10);
}
</script>VITÃO ME AJUDA POR FAVOR!!!!
-
Você chegou a ver o link que eu passei acima ? Você pode atribuir esta variável texto em uma session e depois recuperar no .aspx, atribuindo no JavaScript.
http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/0a323c6d-cbb5-4ca0-85d2-b9fea1b020a9/Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/ -
Vitor, ficou assim:
No c# o código para aqui:
msg.Append("^LH120,030");
msg.Append("^FS");
msg.Append("^FO000,070^A0N,40,42^FD" + NomeCracha.ToUpper() + "^FS");
// msg.Append("^FO000,130^A0N,50,35^FD" + "Cursos: " + esc1 + ", " + esc2 + "^FS");
msg.Append("^FO000,190^A0N,40,42^FD" + Empresa.ToUpper() + "^FS");
//msg.Append("^FO150,190^BCN,60,Y,N,N^FD"+ insCodigoBarras + insControleAcesso +"^FS");
msg.Append("^XZ");
msg.ToString();
Session["escreve"] = msg.ToString();BuscarClientePorNome(textopesquisa);
}
}
<script type="text/javascript">
function MinhaFuncao() {
var texto = '<%= Session["escreve"].ToString() %>'; ESTÁ CHEGANDO VAZIA!!!
if (texto != "")
{
//CRIA OBJETO PARA MANIPULACAO DE ARQUIVOS NO CLIENTE.
var fso = new ActiveXObject("Scripting.FileSystemObject");
//VERIFICA A EXISTENCIA DO ARQUIVO DE IMPRESSAO ANTIGO E O DELETA;
if (fso.FileExists("c:\\temp\\imprime.prn")) {
fso.DeleteFile("c:\\temp\\imprime.prn");
} //if
//VERIFICA A NAO EXISTENCIA DO ARQUIVO RESPONSAVEL PELA IMPRESSAO NA IMPRESSORA BEMATECH.
if (!(fso.FileExists("c:\\temp\\imprime.bat"))) {
//CRIA O ARQUIVO IMPRIME.BAT, ESCREVE O COMANDO RESPONSAVEL PELA IMPRESSAO E FECHA O ARQUIVO.
var b = fso.CreateTextFile("c:\\temp\\imprime.bat", true);
b.WriteLine("type c:\\temp\\imprime.prn > \\\\PLANEJAMENTO\\imp1");
b.Close();
} //if
//CRIA O ARQUIVO IMPRIME.PRN, ESCREVE TODO O TEXTO PARA SER IMPRESSO E FECHA O ARQUIVO.
var a = fso.CreateTextFile("c:\\temp\\imprime.prn", true);
a.WriteLine(texto);
a.Close();
//Cria um objeto para execucao de um programa no computador do cliente.
var WshShell = new ActiveXObject("WScript.Shell");
//Executa o arquivo responsavel pela impressao do arquivo imprime.prn.
var oExec = WshShell.Exec("c:\\temp\\imprime.bat");
setTimeout('window.close()', 10);
}
}
</script>ELE CHEGA A VARIAVEL texto porém, vazia!!! o que deve ser?
- Editado Vinicius Vendramel quarta-feira, 4 de julho de 2012 21:12
-
Em que momento esta função MinhaFuncao é executada ?? antes ou depois do clique ??
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/ -
VITOR, OBRIGADO POR ME AJUDA BLZ?
Bom, vou lhe explicar, tenho na master page uma textbox de pesquisa, e quando o cara clica, ele redireciona para pagina resultado.aspx populando uma gridview com o nome pesquisado, curso, endereço e um botão nessa grid "selecionar" e quando o cara clica nesse botão selecionar, ele popula os textox box a baixo com os respectivos valores da gridview. Daí, logo a baixo de o botão imprimir.. esse botão imprimir está assim:
public void AtualizarCliente()
{
if (Session["pesquisa"] != null)
{
string textopesquisa = Session["pesquisa"].ToString();
idCliente = int.Parse(txtidt_visitantes.Text);
cliente = ClientesConfirmadosBLL.Find(cli => cli.IDT_VISITANTE == idCliente).First<CLIENTESCONFIRMADOS>();
cliente.NMCOMPLETO = txtnmcompleto.Text;
cliente.NMCRACHA = txtnmcracha.Text;
cliente.EMPRESA = txtempresa.Text;
cliente.CARGO = txtcargo.Text;
cliente.AREAATUACAO = txtareaatuacao.Text;
cliente.CEP = txtcep.Text;
//cliente.ENDERECO = txtendereco.Text;
cliente.NUMERO = txtnumero.Text;
cliente.COMPLEMENTO = txtcomplemento.Text;
cliente.BAIRRO = txtbairro.Text;
cliente.CIDADE = txtcidade.Text;
cliente.UF = txtuf.Text;
cliente.DDD = txtddd.Text;
cliente.TELEFONE = txttelefone.Text;
cliente.DDDCEL = txtdddcel.Text;
cliente.CELULAR = txtcelular.Text;
cliente.EMAIL = txtemail.Text;
cliente.CNPJCPF = txtcnpjcpf.Text;
ClientesConfirmadosBLL.Update(cliente);
ClientesConfirmadosBLL.SaveChanges();
string NomeCracha = RemoverAcentos(txtnmcracha.Text);
string Empresa = RemoverAcentos(txtempresa.Text);
StringBuilder msg = new StringBuilder();
msg.Append("^XA ");
msg.Append("^FWN");
msg.Append("^PRB");
msg.Append("^PQ1");
msg.Append("^LH120,030");
msg.Append("^FS");
msg.Append("^FO000,070^A0N,40,42^FD" + NomeCracha.ToUpper() + "^FS");
// msg.Append("^FO000,130^A0N,50,35^FD" + "Cursos: " + esc1 + ", " + esc2 + "^FS");
msg.Append("^FO000,190^A0N,40,42^FD" + Empresa.ToUpper() + "^FS");
//msg.Append("^FO150,190^BCN,60,Y,N,N^FD"+ insCodigoBarras + insControleAcesso +"^FS");
msg.Append("^XZ");
msg.ToString();
Session["escreve"] = msg.ToString();
BuscarClientePorNome(textopesquisa);
}
}
e LOGO APÓS quando o cara clica nesse botão "IMPRIMIR" nessa própria página resultado.aspx ele lê O JAVA SCRIPT que vocÊ me ajudou entendeu? Nesse java script ele deveria imprimir os dados do botão no caminho especificado no java script....pode me ajudaR?
<script type="text/javascript">
function MinhaFuncao() {
var texto = '<%= Session["escreve"].ToString() %>';
if (texto == "")
{
texto == '<%= Session["pesquisa"].ToString() %>'
}
else
{
//CRIA OBJETO PARA MANIPULACAO DE ARQUIVOS NO CLIENTE.
var fso = new ActiveXObject("Scripting.FileSystemObject");
//VERIFICA A EXISTENCIA DO ARQUIVO DE IMPRESSAO ANTIGO E O DELETA;
if (fso.FileExists("c:\\temp\\imprime.prn")) {
fso.DeleteFile("c:\\temp\\imprime.prn");
} //if
//VERIFICA A NAO EXISTENCIA DO ARQUIVO RESPONSAVEL PELA IMPRESSAO NA IMPRESSORA BEMATECH.
if (!(fso.FileExists("c:\\temp\\imprime.bat"))) {
//CRIA O ARQUIVO IMPRIME.BAT, ESCREVE O COMANDO RESPONSAVEL PELA IMPRESSAO E FECHA O ARQUIVO.
var b = fso.CreateTextFile("c:\\temp\\imprime.bat", true);
b.WriteLine("type c:\\temp\\imprime.prn > \\\\PLANEJAMENTO\\imp1");
b.Close();
} //if
//CRIA O ARQUIVO IMPRIME.PRN, ESCREVE TODO O TEXTO PARA SER IMPRESSO E FECHA O ARQUIVO.
var a = fso.CreateTextFile("c:\\temp\\imprime.prn", true);
a.WriteLine(<%= Session["escreve"].ToString() %>);
a.Close();
//Cria um objeto para execucao de um programa no computador do cliente.
var WshShell = new ActiveXObject("WScript.Shell");
//Executa o arquivo responsavel pela impressao do arquivo imprime.prn.
var oExec = WshShell.Exec("c:\\temp\\imprime.bat");
setTimeout('window.close()', 10);
}
}
</script>- Editado Vinicius Vendramel quinta-feira, 5 de julho de 2012 14:41
-
VITOR, ACHO QUE É O NAVEGAR, FIZ O TESTE DAÍ FUI VER O CÓDIGO FONTE NO CHROME E ESTÁ COMO O CÓDIGO A BAIXO:
FUNCIONOU!! AGORA VOU FAZER O TESTE NO IE E VER SE FUNCIONA!!
function MinhaFuncao() { var texto = '^XA ^FWN^PRB^PQ1^LH120,030^FS^FO000,070^A0N,40,42^FDHUGO CAMPOS ^FS^FO000,190^A0N,40,42^FDCONSULFARMA^FS^XZ'; if (texto == "") { texto == 'Hugo' } else
- Marcado como Resposta Harley Araujo sexta-feira, 6 de julho de 2012 12:44