none
Estou CHAMANDO certo esse "texto" no Java Script ASP.NET?? RRS feed

  • 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; 

            }

    }


    quarta-feira, 4 de julho de 2012 17:08

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
    quinta-feira, 5 de julho de 2012 15:10

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/

    quarta-feira, 4 de julho de 2012 18:16
  • Vitor, vou tentar e posto aqui com certeza se deu certo! Por favor, volte para me ajudar! rs

    abraço.

    quarta-feira, 4 de julho de 2012 19:38
  • 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!!!!

    quarta-feira, 4 de julho de 2012 20:05
  • 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/

    quarta-feira, 4 de julho de 2012 20:25
  • 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?



    quarta-feira, 4 de julho de 2012 21:09
  • 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/

    quarta-feira, 4 de julho de 2012 23:47
  • 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>


    quinta-feira, 5 de julho de 2012 14:36
  • 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
    quinta-feira, 5 de julho de 2012 15:10