maxtecomp 0 Denunciar post Postado Novembro 12, 2009 ola , preciso de uma ajuda urgente tenho uma fução que imprime uma determinada nota fiscal , so que quando eu possa os parametros de coluna e linha para imprimir ele não consegue fazer a impressão correta. exemplo de como fica. Codigo Descrição un valor_un total cod: 1 cod: 2 cod: 255 cod: 85 cod: 48 Ovos de leite leite de coco bolo grand laranja de nó pão francês 1 2 3 5 3 12,00 1,00 1,00 1,00 1,00 12,00 2,00 3,00 5,00 3,00 Obs: eu percebo que as colunas estão funcionado mas a linha não tem alguma coisa de errado no codigo gostria de uma ajuda. irei postar o codigo para melhor entender. // Aqui começa realmente a impressao do nota fiscal... with XPrint do begin for I := 1 to 75 do begin if ConverteStrToLog(ArqNF.ReadString('NOTA','Visivel_'+StrZero(I,02),'F')) then begin 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); if NF_Condensada then Condensado_C := False; 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 impf(linha_c,coluna_c,TabGlobal.DITNF.pro_codigo.Conteudo,[comp20]) else imp(linha_c,coluna_c,TabGlobal.DITNF.pro_codigo.Conteudo); end else if Pos_Campo = 19 then // Descricao begin if Condensado_c then impf(linha_c,coluna_c,TabGlobal.DITNF.pro_descricao.Conteudo,[comp20]) else imp(linha_c,coluna_c,TabGlobal.DITNF.pro_descricao.Conteudo); end else if Pos_Campo = 20 then // Qtde begin if TabGlobal.DITNF.pro_quantidade.Conteudo > 0 then if Condensado_c then impf(linha_c,coluna_c,MascValor(TabGlobal.DITNF.pro_quantidade.Conteudo,'ZZZZ9,99'),[comp20]) else imp(linha_c,coluna_c,MascValor(TabGlobal.DITNF.pro_quantidade.Conteudo,'ZZZZ9,99')); end else if Pos_Campo = 21 then // UN begin if Condensado_c then impf(linha_c,coluna_c,TabGlobal.DPRODUTO.uni_codigo.Conteudo,[comp20]) else imp(linha_c,coluna_c,TabGlobal.DPRODUTO.uni_codigo.Conteudo); end else if Pos_Campo = 22 then // CT begin if Condensado_c then begin impf(linha_c,coluna_c-3,Copy(TabGlobal.DPRODUTO.pro_classe_tr.Conteudo,01,01),[comp20]); impf(linha_c,coluna_c,Copy(TabGlobal.DPRODUTO.pro_classe_tr.Conteudo,02,04),[comp20]); end else begin imp(linha_c,coluna_c-3,Copy(TabGlobal.DPRODUTO.pro_classe_tr.Conteudo,01,01)); imp(linha_c,coluna_c,Copy(TabGlobal.DPRODUTO.pro_classe_tr.Conteudo,02,04)); end end else if Pos_Campo = 23 then // Unitário begin if TabGlobal.DITNF.pro_venda.Conteudo > 0 then if Condensado_c then impf(linha_c,coluna_c,MascValor(TabGlobal.DITNF.pro_venda.Conteudo,'ZZZ.ZZ9,99'),[comp20]) else imp(linha_c,coluna_c,MascValor(TabGlobal.DITNF.pro_venda.Conteudo,'ZZZ.ZZ9,99')); end else if Pos_Campo = 24 then // Total begin if TabGlobal.DITNF.inf_total.Conteudo > 0 then if Condensado_c then impf(linha_c,coluna_c,MascValor(TabGlobal.DITNF.inf_total.Conteudo,'ZZZZ.ZZ9,99'),[comp20]) else imp(linha_c,coluna_c,MascValor(TabGlobal.DITNF.inf_total.Conteudo,'ZZZZ.ZZ9,99')); end else if Pos_Campo = 25 then // ICMS begin if TabGlobal.DITNF.pro_icms.Conteudo > 0 then if Condensado_c then impf(linha_c,coluna_c,MascValor(TabGlobal.DITNF.pro_icms.Conteudo,'Z9,99'),[comp20]) else imp(linha_c,coluna_c,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; end; end; XPrint.fechar; XPrint.Free; DadosNF.Free; ArqNF.Free; end; no aguardo. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Novembro 12, 2009 Movido Delphi > Artigos, Tutoriais e Matérias (Delphi) http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Delphi maxtecomp, seja bem vindo ao Fórum iMasters, primeiramente conheça nossas regras: Regras do Fórum Não duplique suas dúvidas, não tem necessidade de postar duas vezes sua dúvida. Apaguei seu tópico: Ajuda urgente imprimir em Laboratório de scripts (Delphi) Poste dúvidas na área principal de Delphi como pode ter visto no aviso este sub-fórum é destinado apenas para postagem de scripts prontos e testados para auxiliar os demais membros. Não é permitido a abertura de tópicos com dúvidas. Para isso, use o Fórum de Delphi. Compartilhar este post Link para o post Compartilhar em outros sites