Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BRUNO AMABILE

Problema ao imprimir nota fiscal

Recommended Posts

Olá Pessoal, esse trecho de código abaixo imprime nota fiscal, mas quando o usuario desmarca a opção de deixar visivel o código do produto, nao aparece o código do produto,

 

nem descrição nem unitario... nao aparece nada. Eu queria que quando o usuario desmarcasse a opção de deixar visivel o cod do produto, apenas o código desaparecesse

 

 


// XPrint é o componente da impressão
with XPrint do
  begin
      for I := 1 to 75 do
      begin
          //Verifica se o dado do arquivo ini está aparecendo. Se estiver, continua..
          if ConverteStrToLog(ArqNF.ReadString('NOTA','Visivel_'+StrZero(I,02),'F')) then
          begin
          //Posição do campo
          Pos_Campo := I - 1;
          Condensado_C := ConverteStrToLog(ArqNF.ReadString('NOTA','Condensado_'+StrZero(I,02),'F'));
          linha_C      := StrToIntDef(ArqNF.ReadString('NOTA','linha_'+StrZero(I,02),'1'),1);
          coluna_C      := StrToIntDef(ArqNF.ReadString('NOTA','coluna_'+StrZero(I,02),'1'),1);
          // StrToInt(FormVendas.ArqIni.ReadString('COMANDO', 'ACK', '0'));
          coluna_C19     := StrToIntDef(ArqNF.ReadString('NOTA','coluna_'+StrZero(19,02),'1'),1);
          coluna_C20     := StrToIntDef(ArqNF.ReadString('NOTA','coluna_'+StrZero(20,02),'1'),1);
          coluna_C21     := StrToIntDef(ArqNF.ReadString('NOTA','coluna_'+StrZero(21,02),'1'),1);
          coluna_C22     := StrToIntDef(ArqNF.ReadString('NOTA','coluna_'+StrZero(22,02),'1'),1);
          coluna_C24    := StrToIntDef(ArqNF.ReadString('NOTA','coluna_'+StrZero(24,02),'1'),1);
          coluna_C27    := StrToIntDef(ArqNF.ReadString('NOTA','coluna_'+StrZero(25,02),'1'),1);
          Coluna_C28    := StrToIntDef(ArqNF.ReadString('NOTA', 'coluna_'+StrZero(26,02),'1'),1);
          linha_c16     := StrToIntDef(ArqNF.ReadString('NOTA', 'linha_'+StrZero(16,02),'1'),1);

          // coluna_C46    := StrToIntDef(ArqNF.ReadString('NOTA','coluna_'+StrZero(46,02),'1'),1);

          Condensado_C := False; //apartir da aqui começa os itens da nota
          if (Pos_Campo >= 18) and (Pos_Campo <= 25) then
          begin
              TabGlobal.DITNF.First;
              while not TabGlobal.DITNF.Eof do
              begin
                  TabGlobal.DPRODUTO.Filtro.Text := 'pro_codigo = '+#39+TabGlobal.DITNF.pro_codigo.Conteudo+#39;
                  TabGlobal.DPRODUTO.AtualizaSql;
                  TabGlobal.DPRODUTO.First;
                  if Pos_Campo = 18 then  // Código
                  begin
                      if Condensado_c then
                      begin
                        impf(linha_c,coluna_c19,TabGlobal.DITNF.pro_codigo.Conteudo,[comp20]);
                        impf(linha_c,coluna_c20,TabGlobal.DITNF.pro_descricao.Conteudo,[comp20]);
                        impf(linha_c,coluna_c21,MascValor(TabGlobal.DITNF.pro_quantidade.Conteudo,'Z9'),[comp20]);
                        impf(linha_c,coluna_c22,TabGlobal.DPRODUTO.uni_codigo.Conteudo,[comp20]);
                        impf(linha_c,coluna_c24,MascValor(TabGlobal.DITNF.pro_venda.Conteudo,'ZZZ.ZZ9,99'),[comp20]);
                        //Aqui ele ta imprimindo o total dos produtos de cada item
                        impf(linha_c,coluna_c27,MascValor(TabGlobal.DITNF.inf_total.Conteudo,'ZZZZ.ZZ9,99'),[comp20]);
                        impf(linha_c,coluna_c28,MascValor(TabGlobal.DITNF.pro_icms.Conteudo,'Z9,99'),[comp20]);

                      end
                      else
                        imp(linha_c,coluna_c19,TabGlobal.DITNF.pro_codigo.Conteudo);
                        imp(linha_c,coluna_c20,TabGlobal.DITNF.pro_descricao.Conteudo);
                        imp(linha_c,coluna_c21,MascValor(TabGlobal.DITNF.pro_quantidade.Conteudo,'Z9'));
                        imp(linha_c,coluna_c22,TabGlobal.DPRODUTO.uni_codigo.Conteudo);
                        imp(linha_c,coluna_c24,MascValor(TabGlobal.DITNF.pro_venda.Conteudo,'ZZZ.ZZ9,99'));
                        imp(linha_c,coluna_c27,MascValor(TabGlobal.DITNF.inf_total.Conteudo,'ZZZZ.ZZ9,99'));
                        imp(linha_c,coluna_c28,MascValor(TabGlobal.DITNF.pro_icms.Conteudo,'Z9,99'));

          
              end;
              Inc(linha_c);
              TabGlobal.DITNF.Next;
          end;
        end
        else if Pos_Campo = 53 then
        begin
          if RetiraBrancos(TabGlobal.DNOTA_F.ntf_dados_1.Conteudo) <> '' then
          begin
            if Condensado_c then
              impf(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_1.Conteudo,[comp20])
            else
              imp(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_1.Conteudo);
            Inc(Linha_c);
        end;
          if RetiraBrancos(TabGlobal.DNOTA_F.ntf_dados_2.Conteudo) <> '' then
          begin
            if Condensado_c then
              impf(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_2.Conteudo,[comp20])
            else
              imp(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_2.Conteudo);
            Inc(Linha_c);
            end;
            if RetiraBrancos(TabGlobal.DNOTA_F.ntf_dados_3.Conteudo) <> '' then
            begin
            if Condensado_c then
              impf(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_3.Conteudo,[comp20])
            else
              imp(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_3.Conteudo);
            Inc(Linha_c);
            end;
            if RetiraBrancos(TabGlobal.DNOTA_F.ntf_dados_4.Conteudo) <> '' then
            begin
              if Condensado_c then
                impf(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_4.Conteudo,[comp20])
            else
              imp(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_4.Conteudo);
              Inc(Linha_c);
            end;
            if RetiraBrancos(TabGlobal.DNOTA_F.ntf_dados_5.Conteudo) <> '' then
            begin
              if Condensado_c then
                impf(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_5.Conteudo,[comp20])
            else
                imp(linha_c,coluna_c,TabGlobal.DNOTA_F.ntf_dados_5.Conteudo);
                Inc(Linha_c);
            end;
        end
          else
          begin
              if Condensado_c then
              impf(linha_c,coluna_c,DadosNF[Pos_Campo],[comp20])
          else
              imp(linha_c,coluna_c,DadosNF[Pos_Campo]);
          end;

        end;//Esse end é o end que verifica se é visivel

      end;
  end;
  XPrint.fechar;
  XPrint.Free;
  DadosNF.Free;
  ArqNF.Free;


Quando o I é igual a 19 ou Pos_Campo é igual a 18 é porque está na posição do código do produto na stringlist.

 

Alguem poderá me ajudar? :o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você só quer impedir a impressão de 1 campo quando o usuário marcar que ele não é visível, não pode por a impressão de todos os campos dentro do if que valida isso, senão não vai imprimir nada mesmo.... dê uma organizada na sua rotina, pois do jeito que está está pondo todos os campos que deveriam ser impressos dentro do if que torna eles invisíveis, deixando todos ocultos...

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você só quer impedir a impressão de 1 campo quando o usuário marcar que ele não é visível, não pode por a impressão de todos os campos dentro do if que valida isso, senão não vai imprimir nada mesmo.... dê uma organizada na sua rotina, pois do jeito que está está pondo todos os campos que deveriam ser impressos dentro do if que torna eles invisíveis, deixando todos ocultos...

 

[]'s

 

 

Puxa.. é verdade, vo ter que refazer isso..

Obrigado http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.