Ir para conteúdo
  • Cadastre-se

chico_lopes

Membros
  • Total de ítens

    42
  • Registro em

  • Última visita

Posts postados por chico_lopes

  1. Boa tarde

     

       o método de impressão usa o GAP da impressora, com isso faça a calibragem da impressora conforme o manual, dai vc não precisa configurar o tamanho da etiqueta. 

     

      Obs.: se a etiqueta tiver 5 linhas e vc mandar impressão de 7 linhas ou quantidade maior que o GAP a impressora vai entender que não quer respeitar o GAP, veja se vc não está estourando o tamanho da linha.

     

     

  2. 2 horas atrás, Daniel Simoes disse:

    Experimente implementar o método ComandoDimensoes, na classe PPLA, ele foi introduzido, para EscLabel e é chamado em TACBrETQClass.ComandosIniciarEtiqueta

    function TACBrETQEscLabel.ComandoDimensoes: AnsiString;
    begin
      Result := '';
      if (Dimensoes.Largura > 0) then
        AdicionarComandos('^S(CLS,P,' + IntToStr(ConverterUnidade(etqDots, Dimensoes.Largura)), Result);
      if (Dimensoes.Altura > 0) then
        AdicionarComandos('^S(CLS,L,'+IntToStr(ConverterUnidade(etqDots, Dimensoes.Altura)), Result);
      if (Dimensoes.EspacoEntreEtiquetas > 0) then
        AdicionarComandos('^S(CLS,C,'+IntToStr(ConverterUnidade(etqDots, Dimensoes.EspacoEntreEtiquetas)), Result);
      if (Dimensoes.EspacoEsquerda > 0) then
        AdicionarComandos('^S(CLS,G,'+IntToStr(ConverterUnidade(etqDots, Dimensoes.EspacoEsquerda)), Result);
    end;
    

     

    Eu tenho q procurar o manual desse EscLabel mas pelo visto ele está fazendo o cálculo do tamanho da etiqueta? 

     

    Vou tentar replicar ele dentro do ACBrETQPpla 

     

    e sobre o TACBrETQPpla.ComandosFinalizarEtiqueta você consegue dar uma analisada. 

  3. Bom dia 

        eu li já no fórum que o ACBrETQ não é compatível com etiqueta contínua (sem o gap), porém estou conseguindo imprimir em uma Argox com linguagem PPLA. 

     

        Somente tive que fazer duas alteração, uma adição de comando <STX>cxxxx<CR> dizendo o tamanho da etiqueta e retirar o comando <STX>fxxx<CR> que informa o backfeed. Estive lendo o componente TACBrETQPpla.ComandosFinalizarEtiqueta que diz que é obrigatório passar o comando <STX>fxxx<CR> e vi em tópico no forum que outros usuários tiveram problemas sem esse comando <STX>fxxx<CR>. 

    function TACBrETQPpla.ComandosFinalizarEtiqueta(NumCopias: Integer;
      aAvancoEtq: Integer): AnsiString;
    var
      wAvanco: Integer;
    begin
      if (aAvancoEtq < 0) or (aAvancoEtq > 779) then
        raise Exception.Create('Avanço de Etiquetas deve ser de 0 a 779');
    
      // Valor mínimo para Back-feed é 220 (Manual "PPLA&PPLB.pdf" ... pág. 18)
      wAvanco := aAvancoEtq + 220;
      Result  := Inherited ComandosFinalizarEtiqueta(NumCopias, wAvanco);
    end;

    Mas sobre esse assunto tem dois pontos

      1º pelo manual no avanço o mínimo é 220 e não o avanço mais 220

      2º no componente tem o campo backfeed e pelo que eu vi não está sendo usando em nenhum momento e o correto não seria ser usado com o seguir ?

    function TACBrETQPpla.ComandosFinalizarEtiqueta(NumCopias: Integer;
      aAvancoEtq: Integer): AnsiString;
    var
      wAvanco: Integer;
    begin
      if (aAvancoEtq < 0) or (aAvancoEtq > 779) then
        raise Exception.Create('Avanço de Etiquetas deve ser de 0 a 779');
    
      // Valor mínimo para Back-feed é 220 (Manual "PPLA&PPLB.pdf" ... pág. 18)
      if BackFeed = bfOn then
        if aAvancoEtq < 220 then
          wAvanco := 220
        else
          wAvanco := aAvancoEtq;
      Result  := Inherited ComandosFinalizarEtiqueta(NumCopias, wAvanco);
    end;

     

  4. 18 horas atrás, jrsoares disse:

    Boa noite,

         Estou com o mesmo problema, preciso fazer um get passando um parametro em json como filtro. No postman funciona, mas no delphi não consigo encontrar uma solução. Alguem tem uma dica?

    image.thumb.png.6c7af781884399a882c73569bc8af7a9.png

     

    Codigo em C# e em outras linguens tem, mas em delphi não. Alguem consegui me ajudar?

     

    image.thumb.png.9e362f8b2a1ece6706adc2be1a781699.png

     

    Estou conseguindo revolver parcialmente a minha conexão com o Lazarus + RESTRequest4D (https://github.com/viniciussanchez/RESTRequest4Delphi). Porém ainda estou procurando uma solução para usar no Delphi7 aonde aplicação foi feita. 

     

       mas pelo visto vc está usando o Delphi 10 dai RESTRequest4D acho que vai funcionar corretamente. 

     

     

  5.  

    Sim estou usando Delphi 7

     

    estou tentando consumir uma API da qualp.com.br que é para cálculo rodoviários, tenho q passar o json com as requisições que eu preciso e ele irá retornar um json com as informações.

    nos parâmetros tenho q passar o Json dos parâmetros da consulta 

    image.png.a5144b250c413eac8cd1c1f44f418265.png

    image.png.21e2f7e042ea7332bf54e74d3971193e.png

     

    Desculpa mas queryparams seria um parâmetro do Get, porém tentei passar o Json por lá mas dá erro, não sei se é eu q não estou sabendo interpretar o Get. Pois pelo componente delphi-rest-client-api tem esses três tipo de get

        function Get: string;overload;
        procedure Get(AHandler: TRestResponseHandler);overload;
        function Get(EntityClass: TClass): TObject;overload;

    tentei usar o 3º Get conforme no exemplo, porem no exemplo ele usa uma Type mas preciso passar um Json, porém dá seguinte erro >> [Error] API.pas(285): There is no overloaded version of 'Get' that can be called with these arguments

        Jsonretorno := Tjson(RestClient.Resource('http://api.qualp.com.br/rotas/v4')
                                  .ContentType(RestUtils.MediaType_Json)
                                  .Accept(RestUtils.MediaType_Json)
                                  //.GetContentTypes();
                                  .Header('Access-Token', 'kCSSeyXsjXutqKzs3y5f2SevzGe1h4No')
                                  .get(TJson, Json));

     

     

    exemplo do Get 

    type
      TPerson = class(TObject)
      {$IFDEF DELPHI_7}
      private
        FId: Integer;
        FEmail: String;
        FName: String;
        FCreateDate: TDateTime;
      published
        property id: Integer read FId write FId;
        property name: String read FName write FName;
        property email: String read FEmail write FEmail;
        property createDate: TDateTime read FCreateDate write FCreateDate;
      {$ELSE}
      public
        id: Integer;
        name: String;
        email: String;
        createDate: TDateTime;
      {$ENDIF}
    
        class function NewFrom(Id: Integer; Name, EMail: String): TPerson;
      end;
    procedure TFrm_PersonList.btnUpdateClick(Sender: TObject);
    var
      vPerson: TPerson;
    begin
      if ListView1.ItemIndex >= 0 then
      begin
        vPerson := TPerson(ListView1.Items[ListView1.ItemIndex].Data);
    
        if TFrm_Person.Modify(vPerson) then
        begin
          DM.RestClient.Resource(CONTEXT_PATH + 'person')
                       .Accept(RestUtils.MediaType_Json)
                       .ContentType(RestUtils.MediaType_Json)
                       .Put(vPerson)
                       .Free;
    
          RefreshList;
        end;
      end;
    end;

     

  6. Boa noite @Juliomar Marchetti eu vi um post seu que você faz uso do delphi-rest-client-api  para consumir API. 

     

     

    estou precisando fazer um consumo conforme a imagem abaixo o Json já consegui criar usando o json4delphi, porém não sei se não estou sabendo como inserir isso no componente ou se estou inserido corretamente.

    image.png.a5144b250c413eac8cd1c1f44f418265.png

     

     

        retorno := RestClient.Resource('http://api.qualp.com.br/rotas/v4' + ',params: {json: '+Json.Stringify+'}')
                                  .ContentType(RestUtils.MediaType_Json)
                                  .Accept(RestUtils.MediaType_Json)
                                  .Header('Access-Token', 'kCSSafswrwerwerwe2341h4No')
                                  .get;

     

     

    se puder me dar uma luz para onde deve ir agradeço.

     

    pois pelo erro acho que estou montando o comando errado. 

     

    image.thumb.png.199df4db2c3497f821d0fd01b61ba040.png

    image.png

  7. Boa tarde, Ítalo

     

          nenhum consumo desnecessário é visto como bom, porém é o que está no manual não seria o correto a ser adotado ?  

         Levando em ponto de consumo, como as caixas são tons estilo marca d'agua eu vejo que o consumo seria quase igual as linhas já impressas, pois as linhas irá dar lugar as caixa. Mas não tenho um conhecimento suficiente para apontar de qual seria o consumo entre os dois layouts. 

  8. Em 25/10/2021 at 11:13, Marcosmm disse:

    Estou com o mesmo problema, com a impressora Bematech MP4200, quando imprime do terminal externo em conexão remota. nao sei mais oque pode ser, caso alguem tiver uma ideia agradeço.

    Boa tarde Marcos, 

     

         infelizmente não conseguimos resolver, deixamos como o pessoal que cuida do servidor, pois pelo q vimos é uma incompatibilidade de drive. Mas no seu caso vc está imprimindo o MDF-e em impressora termica? Você está usando código direto para impressão (zpl/PPla/PPlb)?

  9. Boa noite 

     

        hoje passei a tarde com o suporte do servidor in loco no cliente e não conseguimos resolver o problema, desinstalamos os drivers e instalamos novamente e toda a vez q imprimimos diretamente do programa sai borrado o QrCode, já testamos com versão do delphi 7 e delphi 2010 ambos com FortesReport. Porém ao savar em PDF e mandar imprimir o mesmo sai corretamente, estamos desconfiando se pode ser uma falha do Fortes + winserver2012 + brother se alguém puder me enviar o programa exemplo do AcbrMdf-e em FastReport (o qual não possuo) compilado,  agradeço para eu realizar mais um teste. 

  10. Boa tarde Italo, 

     

       mas o estranho é que é a mesma impressora q já era utilizada quando o sistema estava instalada na estação de trabalho. Já instalei os drive da impressora no servidor e mesmo assim continua embaçado. Pedi para o pessoal, que dá manutenção no servidor, se há alguma coisa q pode ser feita por eles mas ate o momento não me responderam. 

     

         agradeço pela atenção. 

  11. Bom dia 

     

           em um cliente nosso eles já utilizavam o MDF-e com o sistema instalado na estação de trabalho e jogamos o sistema de MDF-e em um servidor 2012 R2, para logar por TS, e ao imprimir o MDF-e está saindo com o Qr Code embaçado impossibilitando a leitura, na impressora Brother HL 1210W SERIES e na impressora Brother DCP-8157DN saiu embaçado conforme imagem abaixo e fizemos o teste imprimindo em duas outras HP saiu correto. Salvamos em PDF o MDF-e e imprimimos nas impressoras impressoras borther e saíram normais. Estamos deduzindo que uma relação TS+Brother+sistema  pois antes funcionava quando era instalada na estação de trabalho. 

     

         Alguém já passou por isso ? ou tem alguma ideia do que pode ser ?

     

    image.png.9bbc72654322f6c425b58c5dde43f08a.png 

  12. Bom dia 

       

         fizemos a atualização para o Fortes / Delphi no Layout do MDF-e, tentamos deixar o mais próximo do manual. Somente o Código de barras que não conseguimos aumentar para deixar a disposição igual esta no manual, alguém saberia como fazer essa mudança ? Pois toda mudança que realizávamos ao tentar fazer a leitura da impressão não reconhecia.

    image.thumb.png.bff5b92ea53497cdad12ec32314e9717.png

     

     

     

        Poderiam validar se está totalmente correto, fazendo um favor

     

    segue os fontesACBrMDFeDAMDFeRLRetrato.dfmACBrMDFeDAMDFeRLRetrato.pas

    • Curtir 1
  13. Bom dia Pessoal, 

     

         conseguir resolver o problemas, segue as soluções:

        - o primeiro caso foi que a linguagem da zebra TLP 2844 deve ser etqEpl2 

        - e segundo a Origem tive que deixar como ogTop, e após isso fazer as rotações necessárias 

        - sobre o tamanho da etiqueta, pelo que eu entendi, ele vai pegar a horizontal, do ponto zero definido pela origem acima até o máximo da etiqueta, e a vertical vai pegar do ponto zero ate o gap(que eu entendi é o final da etiqueta) , se for superior a isso a impressora nem aceita o comando do texto.

    • Curtir 1
  14. Bom dia 

     

        fiz teste nesta manhã, na linguagem etqPplb, porém percebemos que a zebra TLP2844 utiliza a ligagem EPL

    image.png.6f58d7136c89f1d9440713acff0d9141.png

    conforme o site http://zebramaster.blogspot.com/2013/04/linguagem-de-programacao-zebra-epl.html

     

       nos teste usando a etqEpl2 vimos que exemplo que está no ACBRSerial está com erro na passagem dos parametros  mutiplicadorH e V, abaixo segue o código corrigido, se puderem upar  no servidor. 

     

        Porém mesmo assim, esta saindo um pagina em branco porém agora no incio 🤦‍♂️, Por usarmos a linguagem EPL2 pode ser o motivo da EPL estar saltando? Mas vamos continuar mais teste assim q conseguir achar mais alguma coisa irei reportando. 

     

     

     

      with ACBrETQ do
      begin
         if Modelo in [etqPpla, etqPplb] then
          begin
            ImprimirTexto(orNormal, 2, 2, 2, 3, 3, 'BISCOITO MARILAN RECH 335G', 0, True);
            ImprimirTexto(orNormal, 2, 2, 1, 8, 3, 'CHOC BRANCO');
            ImprimirBarras(orNormal, barEAN13, 2, 2, 13, 5, '7896003701685', 10, becSIM);
            ImprimirTexto(orNormal, 3, 3, 2, 18, 32, 'R$');
            ImprimirTexto(orNormal, 3, 4, 4, 15, 50, '20,59');
          end
         else  //if Modelo = etqZPLII then
          begin
            ImprimirTexto(orNormal, '0', 1, 1, 3, 3, 'BISCOITO MARILAN RECH 335G', 0, True);
            ImprimirTexto(orNormal, '0', 1, 1, 8, 3, 'CHOC BRANCO');
            ImprimirBarras(orNormal, barEAN13, 2, 2, 13, 5, '7896003701685', 10, becSIM);
            ImprimirTexto(orNormal, 'A', 1, 1, 18, 32, 'R$');
            ImprimirTexto(orNormal, 'A', 1, 1, 15, 50, '20,59');
          end;

     

  15. @Juliana Tamizou estou utilizando o ACBrLib + delphi7, o gap que vc diz é o espaço entre uma etiqueta é a outra? 

     

    a bobina que estou utilizando é parecida com essa, no caso da argox pelo que eu li seria o tipo do papel, podem eu fiz um teste com o zebra design e funcionou corretamente. Na segunda eu vou analisar o sensor da zebra aonde fica para ver se está pegando corretamente a distancia entre as etiquetas, dai eu posto novamente aqui.

    image.jpeg.257b26d4cc941a94bd5f635e083c6513.jpeg

     

    por enquanto obrigado.

    • Curtir 1
  16. Boa tarde

     

        estou estudando sobre o componente ACBrETQ (https://acbr.sourceforge.io/ACBrLib/ACBrLibETQ.html) para impressão em zebra, porém não estou encontrando a forma de definir o tamanho da etiqueta ou o salto da impressão que a impressora irá pular para próxima etiqueta, pois estou tentando fazer um para imprimir em uma zebra tlp2844 , a etiqueta será em paisagem (23,1x10 cm) porém nos meus teste ela está imprimindo em uma etiqueta pulando outra etiqueta em branco.

       Somente para verificar se minha lógica está correta, se a orientação no comando ImprimirTexto, vai definir se as coordenadas verifical e horizontal irá começar to topo, base, direito ou esquerdo! Exemplo seu eu colocar um orientação or90 significa q meu horizontal será do topo para base e vertical será da esquerda para direita?

     aproveitando o gancho para que serve na ImprimirTexto as variáveis MultiplicadorH e MultiplicadorV que não ficou claro no manual.

     

    segue o código gerado para impressora.

     

    JF
    R0,0
    N
    D10
    ZB
    S1
    A40,1199,1,1,1,1,N,"BISCOITO MARILAN RECH 335G"
    A56,1199,1,1,1,1,N,"90 90 90 90 90 90 90 90 90 90 "
    P1
    N

     

    código usado ate o momento

      with ACBrETQ1 do
      begin
         Desativar;
    
         //ArqLOG :;
         Porta         := ifthen(trim(Edit1.Text) = '', 'lpt1',Edit1.text); //cbPorta.Text;
         Temperatura   := 10; //StrToInt(eTemperatura.Text);
         Velocidade    := 1; //StrToInt(eVelocidade.Text);
         //Avanco        := 0; // avanco entre etiquetas padrão 0
         MargemEsquerda:= 0 ; //padrão 0
         LimparMemoria := true; //ckMemoria.Checked;
         //Ativo         := true;
         Modelo        := etqPplb; //TACBrETQModelo(cbModelo.ItemIndex);       modelo zebra tlp2844
         Unidade       := etqMilimetros;
         BackFeed      := bfOn; //TACBrETQBackFeed(cbBackFeed.ItemIndex);
         Origem        := ogNone; //origem da impressão
         DPI           := dpi203; //  TACBrETQDPI(cbDPI.ItemIndex);
    
         Ativar;
         if Modelo in [etqPpla, etqPplb] then
          begin
            ImprimirTexto(or90,                               // Orientacao
                          1,                                   //Fonte
                          1,                                   //MultiplicadorH
                          1,                                   //MultiplicadorV
                          150,                                   //Vertical
                          5,                                   //Horizontal
                          'BISCOITO MARILAN RECH 335G',        //Texto
                          0,                                   //SubFonte
                          false);                               //ImprimirReverso
            ImprimirTexto(or90,                               // Orientacao
                          1,                                   //Fonte
                          1,                                   //MultiplicadorH
                          1,                                   //MultiplicadorV
                          150,                                   //Vertical
                          7,                                   //Horizontal
                          '90 90 90 90 90 90 90 90 90 90 ',        //Texto
                          0,                                   //SubFonte
                          false);                               //ImprimirReverso
          end
         else  //if Modelo = etqZPLII then
          begin
            ImprimirTexto(orNormal, '0', 60, 60, 3, 3, 'BISCOITO MARILAN RECH 335G', 0, True);
            ImprimirTexto(orNormal, '0', 60, 60, 8, 3, 'CHOC BRANCO');
            ImprimirBarras(orNormal, barEAN13, 2, 2, 13, 5, '7896003701685', 10, becSIM);
            ImprimirTexto(orNormal, 'A', 100, 100, 18, 32, 'R$');
            ImprimirTexto(orNormal, 'A', 120, 120, 15, 50, '20,59');
          end;
         //FinalizarEtiqueta();
         Imprimir(1, 0);
         Desativar;
      end;

     

  17. Bom dia

     

         estou realizando teste com o ACBrCIOT, porem não estou conseguindo transmitir com o eFrete , pelo post do @Italo Jurisato Junior está homologado 

    porém pelo exemplo não estou conseguindo está retornando erro

    image.png.6d30ecc98111447d65c1e78798bd801a.png

     

    gostaria de saber alguém está conseguindo realizar as transmissão. 

    somente para mostrar como estou transmitindo, usando certificado digital.

    image.png.144fad63f55f4c9c5081d106c5d95f3f.png

  18. Boa noite

    na homologação do santander, foi exigido que na linha digitável seja informado a carteira porem analisando o fonte, não encontrei parâmetro que posa ser alterado para o mesmo atenda a essa exigência, não quero alterar o fonte devido que outros usuários utilizam esses mesmo e foram homologados. gostaria de saber se há alguma outra maneiro de atender ao santander já pronta. 

     

    image.png.3ec33a1260269914621f0ca3c76de4c0.png

    image.png.772576e1ffe87938bd983a8d2096c22e.png
     
     
    Outra questão que no boleto exigiram que não apareça o digito verificar há possibilidade de não aparecer 
     
     

    20170106_Layout de Código de Barras Santander Janeiro 2017v 31.pdf

  19. Boa tarde @Jonas Ponciano Rosnieski

     

         você não precisa fazer essa mudança no componente.

        quando vocês estiver atribuindo o titulo no componente coloque para taxa mensal

    Titulo.CodigoMora := '2';

    Titulo.ValorMoraJuros := taxa do juros mensal

     

    ou valor por dia 

     

    Titulo.CodigoMora := '1';

    Titulo.ValorMoraJuros := valor_doc * (taxa_juros_mes / 30) / 100

    • Curtir 1
  20. Boa tarde @Juliana Tamizou

     

       conforme havia sugerido, coloquei para passar automático para o campo EspecieDoc, não sei se é a melhor forma ou se é a forma que vocês utilizam no componente. segue os fontes para sua avaliação.

     

       criei o SetEspecieDoc para setar os valores nos campos EspecieDoc e tpEspecieDoc, deixei somente no Sicoob pois eu possuo atualizado somente este manual atualizado.

    ACBrBoleto.pas

    ACBrBancoBancoob.pas

    ACBrBoletoFCFortesFr.pas

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.