Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 597 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

----- Olá eu uso esse código para montar o txt antes de enviar para a impressora.

E o código seguinte para acionar a impressão. O ACBrPosPrinter não está acionando a guilhotina, qual será o problema?

 

procedure TF_Menu.Pedido40Cols(T_VENDAS : TT_VENDAS);
const
  cINegrito = #27#71;
  cFNegrito = #27#72;

  cIItalico = #27#52;
  cFItalico = #27#53;

  c10cpi = #18;
  c12cpi = #27#77;
  c17cpi = #15;

var
  char12, ImpDesbloq: Boolean;
  ped: TStrings;
  qtdeimp,ii: Integer;
  peso, totpro, des, totven: Currency;
  _ende, _comp, _bair, _cep, _cida, _uf, _pref, _cnpj, _iest, _fone,
    obsitem: string;
  cdcli, decli, detpg, emissao, przent, defpg, deven, sepa, obsven, cdfpg,
    codcautela, empcli: String;
  FANTEMP, endemp, numemp, baiemp, cidemp, estemp, fonemp: String;
  ConsFinal: Boolean;
  percentualdesconto, valopedido, valorpraticado: double;
  sistema: string;
  Conn: iSimpleQuery;
  DAOT_ENDENT: iSimpleDAO<TT_ENDENT>;
  DAOT_VENDAS: iSimpleDAO<TT_VENDAS>;
  DAOT_ITSVEN: iSimpleDAO<TT_ITSVEN>;
  DAOT_CLI: iSimpleDAO<TT_CLI>;
  DAOT_VENDE: iSimpleDAO<TT_VENDE>;
  DAOT_TPGTO: iSimpleDAO<TT_TPGTO>;
  DAOT_FPGTO: iSimpleDAO<TT_FPGTO>;
  DAOT_EMP: iSimpleDAO<TT_EMP>;
  DAOT_SEPCON : iSimpleDAO<TT_SEPCON>;
  T_SEPCON : TT_SEPCON;
  T_EMP: TT_EMP;
  T_FPGTO: TT_FPGTO;
  T_TPGTO: TT_TPGTO;
  T_VENDE: TT_VENDE;
  T_CLI: TT_CLI;
  T_ITSVEN: TT_ITSVEN;
  T_ENDENT: TT_ENDENT;
  itsven: TObjectList<TT_ITSVEN>;
  obj_itsven: TT_ITSVEN;
  endent: TObjectList<TT_ENDENT>;
  obj_endent: TT_ENDENT;
  _cel: string;
  RichEdit1, RichEdit2: TRichEdit;
  sSql: string;
begin

  dm.ACBrPosPrinter1.ColunasFonteNormal := 48;
  dm.ACBrPosPrinter1.EspacoEntreLinhas := 20;

  Conn := TSimpleQueryFiredac.New(dm.fdfoxbeta);
  DAOT_ENDENT := TSimpleDAO<TT_ENDENT>.New(Conn);
  DAOT_VENDAS := TSimpleDAO<TT_VENDAS>.New(Conn);
  DAOT_ITSVEN := TSimpleDAO<TT_ITSVEN>.New(Conn);
  DAOT_CLI := TSimpleDAO<TT_CLI>.New(Conn);
  DAOT_VENDE := TSimpleDAO<TT_VENDE>.New(Conn);
  DAOT_FPGTO := TSimpleDAO<TT_FPGTO>.New(Conn);
  DAOT_TPGTO := TSimpleDAO<TT_TPGTO>.New(Conn);
  DAOT_EMP := TSimpleDAO<TT_EMP>.New(Conn);
  DAOT_SEPCON := TSimpleDAO<TT_SEPCON>.New(conn);
  T_SEPCON := TT_SEPCON.create;;
  T_ENDENT := TT_ENDENT.Create;
  T_ITSVEN := TT_ITSVEN.Create;
  T_CLI := TT_CLI.Create;
  T_VENDE := TT_VENDE.Create;
  T_EMP := TT_EMP.Create;
  T_FPGTO := TT_FPGTO.Create;
  T_TPGTO := TT_TPGTO.Create;

  RichEdit1 := TRichEdit.Create(nil);
  RichEdit1.Width := 219;
  RichEdit1.Visible := false;
  RichEdit1.Parent := Application.MainForm;
  RichEdit1.Text := trim(T_VENDAS.obslongped);

  endent := TObjectList<TT_ENDENT>.Create;
  DAOT_ENDENT.sql.where('NRVEN = ' + #39 + T_VENDAS.NRVEN_V.ToString + #39)
    .&End.Find(endent);
  try
    for obj_endent in endent do
    begin
      T_ENDENT := DAOT_ENDENT.Find(obj_endent.regendent);
    end;
  finally
    endent.Free;
  end;

  T_EMP := DAOT_EMP.Find(T_VENDAS.CDEMP_V);
  T_CLI := DAOT_CLI.Find(T_VENDAS.cdcli_v);
  T_VENDE := DAOT_VENDE.Find(T_VENDAS.cdven_v);
  T_FPGTO := DAOT_FPGTO.Find(T_VENDAS.CDFPG_V);
  T_TPGTO := DAOT_TPGTO.Find(T_VENDAS.CDTPG_V);
  T_SEPCON := DAOT_SEPCON.find(T_VENDAS.CODCONF_V);

  sistema := 'Sistema Raposa';

  // espelho do pedido
  ImpDesbloq := false;
  if T_VENDAS.NRVEN_V < 0 then
  begin
    T_VENDAS.NRVEN_V := T_VENDAS.NRVEN_V * -1;
    ImpDesbloq := true;
  end;

  codcautela := IntToStr(ConfiguracaoGeral.codcautela);
  itemcomple_iv := ConfiguracaoGeral.itemcomple_iv = 'S';
  empcli := T_CLI.cdemp.ToString;
  qtdeimp := T_VENDAS.QTDIMPRES;
  _cel := T_CLI.CELCLI;
  _fone := iif(trim(T_CLI.DDDCLI)='',T_EMP.DDDEMP,T_CLI.DDDCLI) + T_CLI.FONECLI;
  cdfpg := T_VENDAS.CDFPG_V.ToString;
  cdcli := T_CLI.cdcli.ToString;
  decli := iif((trim(T_ENDENT.nome) <> '') and
    (trim(T_ENDENT.nome) <> trim(T_CLI.decli)), trim(T_ENDENT.nome),
    trim(T_CLI.decli));

  detpg := T_TPGTO.detpg;
  emissao := FormatDateTime('dd/mm/yyyy', T_VENDAS.EMISVEN_V);
  przent := FormatDateTime('dd/mm/yyyy', T_VENDAS.PRZENT_V);
  defpg := T_FPGTO.defpg;
  deven := T_VENDE.deven;

  sepa := 'IMEDIATA';

  if T_VENDAS.TPENT = 'D' then
    sepa := 'DELIVERY';

  if T_VENDAS.TPENT = 'V' then
    sepa := 'VEM BUSCAR';

  if ((T_VENDAS.TPENT = 'E') or (T_VENDAS.TPENT = 'F')) then
    sepa := 'ENTREGAR';

  obsven := T_VENDAS.OBSVEN_V;
  peso := T_VENDAS.PESOVOL_V;
  totpro := T_VENDAS.totpro_v;
  des := T_VENDAS.VDESC_V;
  totven := T_VENDAS.TOTVEN_V;

  ped := Tstringlist.Create;

  char12 := T_EMP.SALTARPAGPED = 'S';
  FANTEMP := trim(T_EMP.FANTEMP);
  endemp := trim(T_EMP.endemp);
  numemp := trim(T_EMP.numemp);
  baiemp := trim(T_EMP.baiemp);
  cidemp := trim(T_EMP.cidemp);
  estemp := trim(T_EMP.estemp);
  fonemp := trim(T_EMP.fonemp);

  // Registra se é venda para Consumidor Final
  codcons := T_CONFIG.getCodcons;
  codcheque := T_CONFIG.getCodche;
  if IntToStr(T_CONFIG.getCodcons) = cdcli then
    ConsFinal := true
  else
    ConsFinal := false;
  if trim(T_ENDENT.ENDE) = '...' then
  begin
    T_ENDENT.ENDE := '';
    T_ENDENT.COMPLEM := '';
    T_ENDENT.BAIR := '';
    T_ENDENT.CEP := '';
    T_ENDENT.CIDA := '';
    T_ENDENT.UF := '';
    T_ENDENT.PREF := '';
  end;

  if trim(T_ENDENT.ENDE) <> '' then
     _ende := trim(T_ENDENT.ENDE);

  if _ende = ''  then
     if T_CLI.ENDENT <> '' then
        _ende := T_CLI.ENDENT
     else
        if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
           _ende := T_CLI.ENDCLI;

   if trim(T_ENDENT.BAIR) <> '' then
     _bair := trim(T_ENDENT.BAIR);
  if _bair = ''  then
     if T_CLI.BAIENT <> '' then
        _bair := T_CLI.BAIENT
     else
        if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
           _bair := T_CLI.BAICLI;


   if trim(T_ENDENT.PREF) <> '' then
     _pref := trim(T_ENDENT.PREF);
  if _pref = ''  then
     if T_CLI.PREFCLI <> '' then
        _pref := T_CLI.PREFCLI
     else
        _pref := T_CLI.OBSCLI1;


   if trim(T_ENDENT.COMPLEM) <> '' then
     _comp := trim(T_ENDENT.COMPLEM);
  if _comp = ''  then
     if T_CLI.COMENT <> '' then
        _comp := T_CLI.COMENT
     else
        if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
           _comp := T_CLI.COMPCLI;

  if trim(T_ENDENT.CEP) <> '' then
     _cep := trim(T_ENDENT.CEP);
  if _cep = ''  then
     if T_CLI.CEPENT <> '' then
        _cep := T_CLI.CEPENT
     else
        if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
           _cep := T_CLI.CEPCLI;

  if trim(T_ENDENT.CIDA) <> '' then
     _cida := trim(T_ENDENT.CIDA);
  if _cida = ''  then
     if T_CLI.cident <> '' then
        _cida := T_CLI.cident
     else
        if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
           _cida := T_CLI.CIDCLI;

  if trim(T_ENDENT.uf) <> '' then
     _uf := trim(T_ENDENT.uf);
  if _uf = ''  then
     if T_CLI.ESTent <> '' then
        _uf := T_CLI.ESTent
     else
        if T_CLI.CDCLI <> ConfiguracaoGeral.CODCONS then
           _uf := T_CLI.ESTCLI;


  _cnpj := FormatarCPFCNPJ(T_CLI.CNPJ_CPFCLI);
  _iest := trim(T_CLI.INSC_RGCLI);

  if (T_CLI.cdcli = ConfiguracaoGeral.codcons) then
  begin
    _cel := '';
    _fone := '';
  end;

  ped.add('</zera>');
  ped.add('<n>'+Centraliza('DOCUMENTO NAO FISCAL',46));
  //  ped.add('</fn></ce><n>DOCUMENTO NAO FISCAL</N>');
  ped.add(Centraliza(T_EMP.FANTEMP,46));
  //  ped.add('<n>' + T_EMP.FANTEMP + '</N>');
  ped.add(Centraliza(FormatarCPFCNPJ(T_EMP.CNPJEMP),46));
  //  ped.add('<n>' + FormatarCPFCNPJ(T_EMP.CNPJEMP) + '</N>');
  ped.add(Centraliza( T_EMP.endemp + ', ' + T_EMP.numemp,46));
  //  ped.add('<n>' + T_EMP.endemp + ', ' + T_EMP.numemp + '</N>');
  ped.add(Centraliza(T_EMP.baiemp + ', ' + T_EMP.cidemp + '/' + estemp,46));
  //  ped.add('<n>' + T_EMP.baiemp + ', ' + T_EMP.cidemp + '/' + estemp + '</N>');
  ped.add(Centraliza('TELEFONE: ' + '('+T_EMP.DDDEMP+')' + ' '+ formatarFone(T_EMP.fonemp),46)+'</n>');
  //  ped.add('<n>TELEFONE: ' + '('+T_EMP.DDDEMP+')' + ' '+ formatarFone(T_EMP.fonemp) + '</N>');

  ped.add(concatstr('-','-','R',46));
  //  ped.add('</fn><n></linha_simples></N>');

  ped.add('<n>' + concatstr('PEDIDO: ' + formatfloat('0000000', T_VENDAS.NRVEN_V), ' ',
    'R', 15) + concatstr('DATA: ' + FormatDateTime('DD/MM/YYYY HH:MM',
    T_VENDAS.EMISVEN_V), ' ', 'L', 29) + '</N>');

  ped.add(concatstr('-','-','R',46));
  //ped.add('</fn><n></linha_simples></N>');

  ped.add('<n>'+concatstr('CLIENTE: '+Copy(decli,1,38),' ','R',46)+'</N>');
  if trim(_ende) <> '' then
  begin
    ped.add('<n>'+concatstr('END.   : '+Copy(_ende,1,38),' ','R',46)+'</N>');
    if length(_ende) > 38 then
      ped.add('<n>'+concatstr('         ' + Copy(_ende,39,38),' ','R',46)+'</N>');
    ped.add('<n>'+concatstr('BAIRRO : '+Copy(_bair+', '+_cida+'/'+_uf,1,38),' ','R',46)+'</N>');
    ped.add('<n>'+concatstr('COMPLEMENTO: '+Copy(_comp,1,34),' ','R',46)+'</N>');
    if length(_comp) > 34 then
      ped.add('<n>'+'             '+concatstr(Copy(_comp,35,47),' ','R',46)+'</N>');
    if _pref <> '' then
      ped.add('<n>'+concatstr('PONTO REF.: '+Copy(_pref, 1, 35),' ','R',46)+'</N>');
    if length(_pref) > 35 then
      ped.add('<n>'+'            '+concatstr(Copy(_pref, 36, 47),' ','R',46)+'</N>');

    ped.add('<n>' + concatstr('FONE: ' + formatarFone(_fone), ' ', 'R', 46) + '</N>');
    ped.add('<n>' + concatstr('OBS.: ' + Copy(T_VENDAS.OBSVEN_V, 1, 46), ' ', 'R',
    40) + '</N>');
  end;

  if T_VENDAS.NRCOMAN <>  '' then
  begin
    ped.add(' ');
    ped.add('<n>'+Centraliza('REF. COMANDA NR.: ' + T_VENDAS.NRCOMAN, 46)+'</N>');
    ped.add(' ');
  end;

  ped.add(concatstr('-','-','R',46));
  //ped.add('</fn><n></linha_simples></N>');

  ped.add('<n>' + concatstr('PAGTO: ' + trim(T_FPGTO.defpg), ' ', 'R', 18)+
                  concatstr('CONSULTOR: ' +Copy(trim(T_VENDE.DEVEN), 1, 12),
                  ' ','L',26)+'</N>');
  ped.add('<n>' + concatstr('       '+trim(T_TPGTO.detpg), ' ', 'R', 18) +
                  concatstr('FONE: '+ Copy(trim(T_VENDE.RAMAL), 1, 12),
                  ' ','L',26)+'</N>');

  ped.add(concatstr('=','=','R',46));
  //ped.add('</fn><n></linha_dupla></N>');

  ped.add('<n>' + concatstr('CODIGO DESCRICAO   QTDE  UN   PRECO',
    ' ', 'R', 35) +
    concatstr('TOTAL',
    ' ', 'L', 9) + '</N>');

  ped.add(concatstr('=','=','R',46));
  //ped.add('</fn><n></linha_dupla></N>');

  if qtdeimp >= 1 then
  begin
    ped.add(' ');
    ped.add('</fn>'+Centraliza('*** IMPRESSAO NR: ' + IntToStr(qtdeimp + 1) +
      ' ***',46)+'</N>');
    ped.add(' ');
  end;

  itsven := TObjectList<TT_ITSVEN>.Create;
  DAOT_ITSVEN.sql.fields('registro,cdemp_iv,cditem_iv,qtdesol_iv,' +
    ' unditem_iv,deitem_iv,' + ' qtdesol_iv,marca_iv, ' +
    ' precpra_iv, precven_iv,precopig, ' +
    ' perdes_iv,pesobr_iv,Numserie,obs,obs2,' +
    ' MP,EntImed_SN,t_itsven.mp,temform')
    .where(' isnull(t_itsven.st,''S'') = ''S'' ' +
    iif(empresa.IMPMPNOPV='S','',' and isnull(t_itsven.MP,''N'') = ''N'' ')+
    ' and  nrven_iv = ' + #39 +
    T_VENDAS.NRVEN_V.ToString + #39 + ' and empven =  ' + #39 +
    T_VENDAS.CDEMP_V.ToString + #39).OrderBy('registro').&End.Find(itsven);

  try
    for obj_itsven in itsven do
    begin
      T_ITSVEN := DAOT_ITSVEN.Find(obj_itsven.registro);

      // ****************************************************************************
      with ped do
      begin
        add('</fn><n>' + concatstr(formatfloat('000000', T_ITSVEN.cditem_iv) +
          ' ' + Copy(T_ITSVEN.deitem_iv, 1, 40), ' ', 'R', 46) + '</N>');

        if length(T_ITSVEN.deitem_iv) > 40 then
          add('<n>' + concatstr('      ' + iif(Copy(T_ITSVEN.deitem_iv, 41,
            1) = ' ', ' ' + trim(Copy(T_ITSVEN.deitem_iv, 41, 40)),
            trim(Copy(T_ITSVEN.deitem_iv, 42, 41))), ' ', 'R', 46) + '</N>');

        add('<n>' + concatstr(
                    concatstr(formatfloat(',0.####', T_ITSVEN.QtdeSol_iv),' ','L',12) + // 12
                    concatstr(T_ITSVEN.unditem_iv,' ','L',3) +                         // 3
                    concatstr('X ',' ','L',3) +                                         //3
                    concatstr(formatfloat(',0.00',
                              iif(T_ITSVEN.MP = 'S',
                                  iif(((T_EMP.ImpMPnoPV = 'S') and
                                       (T_EMP.VerPrcMp = 'S')),
                                        T_ITSVEN.precpra_iv, 0),
                                  iif(((T_EMP.ImpMPnoPV = 'S') and
                                       (T_EMP.VerPrcMp = 'S')), 0,
                                        T_ITSVEN.precpra_iv))),' ','L',9)+            //9
                    concatstr('= ',' ','L',3) +                                        //3
                    concatstr(formatfloat(',0.00',
                                   iif(T_ITSVEN.MP = 'S',
                                   iif(((T_EMP.ImpMPnoPV = 'S') and
                                        (T_EMP.VerPrcMp = 'S')),
                                         T_ITSVEN.precpra_iv, 0),
                                   iif(((T_EMP.ImpMPnoPV = 'S') and
                                        (T_EMP.VerPrcMp = 'S')), 0,
                                         T_ITSVEN.precpra_iv)) *
                                         T_ITSVEN.QtdeSol_iv), ' ', 'L', 9), ' ', 'L', 45) + '</N>'); //9
      end;

    end;
  finally
    itsven.Free;
  end;

  // ****************************************************************************
  with ped do
  begin
    if ImpDesbloq then
      ped.add('<n><i>' + concatstr('PEDIDO ' + IntToStr(T_VENDAS.NRVEN_V) +
        ' DESBLOQUEADO POR ' + UsuarioLogado.CDUSU, ' ', 'R', 44) + '</i></N>');
    ped.add(' ');

    ped.add(concatstr('-','-','R',46));
    //ped.add('</fn><n></linha_simples></N>');

    if qtdeimp >= 1 then
    begin
      ped.add(' ');
      ped.add('<n>'+Centraliza('ENTREGA SOMENTE C/ GERENCIA *REIMPRESSAO*',46)
        + '</N>');
      ped.add(' ');
    end;

    if cdfpg = codcautela then
      ped.add('</fn></ce><n><i>CAUTELA FATURADA ANTES DO FIM DO MES!!!' +
        '</i></N>');

    ped.add('<n>' + concatstr('TOTAL DOS PRODUTOS --> ',' ','L',25) +
      concatstr(formatfloat(',0.00', T_VENDAS.totpro_v), ' ', 'L', 19) + '</N>');
    ped.add('<n>' + concatstr('DESCONTO --> ',' ','L',25) +
            concatstr(formatfloat(',0.00',T_VENDAS.VDESC_V), ' ', 'L', 19) + '</N>');
    if T_VENDAS.VLR_ACRESC > 0 then
      ped.add('<n>' + concatstr('TAXA DE ENTREGA --> ',' ','L',25) +
           concatstr(formatfloat(',0.00',T_VENDAS.VLR_ACRESC), ' ', 'L', 19) + '</N>');
    ped.add('<n>' + concatstr('----------------', ' ', 'L', 46) + '</N>');
    ped.add('<n>' + concatstr('VALOR A PAGAR --> ',' ','L',25) +
                    concatstr(formatfloat(',0.00',
             T_VENDAS.TOTVEN_V + T_VENDAS.VLR_ACRESC), ' ', 'L', 19) + '</N>');


    if T_VENDAS.VLRTROCO > 0  then
    begin
      ped.add('');

      ped.add(concatstr('-','-','R',46));
      //ped.add('</fn><n></linha_simples></N>');

      ped.add('<n>' + concatstr('FORMA DE PAGAMENTO: ', ' ', 'R', 20)+
                               concatstr('VALOR R$',' ','L',24)+ '</N>');
      ped.add('<n>' + concatstr('DINHEIRO' , ' ', 'R', 20)+
                               concatstr(formatfloat(',0.00',T_VENDAS.VLRPGDINH)
                                         ,' ','L',24)+ '</N>');
      ped.add('<n>' + concatstr('TROCO' , ' ', 'R', 20)+
                         concatstr(formatfloat(',0.00',T_VENDAS.VLRTROCO)
                                   ,' ','L',24)+ '</N>');

    end;
    ped.add(' ');
    ped.add(' ');

    ped.add('<n>' + concatstr(':.' + sistema,' ','L', 40) + '</N>');
    ped.add(' ');
    ped.add(' ');
    ped.add(' ');
    ped.add(' ');

    if (copy(Empresa.TipoEmp, 1, 2) = '05') or // Oficina Mecânica
      (copy(Empresa.TipoEmp, 1, 2) = '03') then //PetShop
    begin
      dm.FDAgenda.close;
      dm.FDAgenda.sql.Text := 'Select placa,modelo,marcaveic,anofab, ' +
        ' anomod,autrepet,idchassi,cidorig,uforig,ciddest,ufdest,td,cdemp, ' +
        ' DataNasc,cdcli,empcli from t_veiculos ' + '  where numdoc = ' +
        QuotedStr(T_VENDAS.NRVEN_V.ToString) + '   and empdoc = ' +
        QuotedStr(Empresa.cdemp.ToString);
      dm.FDAgenda.open;

      if (copy(Empresa.TipoEmp, 1, 2) = '03') then
      begin
        if trim(dm.FDAgenda.fieldbyname('placa').Text)<>'' then
        begin
            ped.add('<n>DADOS E OBSERVACOES DO PET: </N>');

            ped.add(concatstr('-','-','R',46));
            //ped.add('</fn><n></linha_simples></N>');

            ped.add(' ');
            ped.add('</fn></ce><n>Nome: ' +
              uppercase(Copy(dm.FDAgenda.fieldbyname('placa').Text, 1, 44))
              + '</N>');
            ped.add('</fn><n>Raca: ' +
              fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('modelo').Text, 1, 34)
              ), ' ', 34) + '</N>');
            ped.add('<n>Resp: ' +
              fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('marcaveic').Text, 1,
              34)), ' ', 34) + '</N>');
            ped.add(' ');
            if length(dm.FDAgenda.fieldbyname('idchassi').Text) > 35 then
            begin
              ped.add('<n>' + 'Obs: ' +
                fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 1,
                35)), ' ', 35) + '</N>');
              ped.add('<n>' + '     ' +
                fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 36,
                35)), ' ', 35) + '</N>');
            end
            else
              ped.add('<n>' + 'Obs: ' +
                fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 1,
                35)), ' ', 35) + '</N>');
            ped.add(fullFil('<n>' + 'Aniversario: ' +
              uppercase(Copy(FormatDateTime('DD/MM/YYYY',
              dm.FDAgenda.fieldbyname('Datanasc').AsDatetime), 1, 35)), ' ', 35)
              + '</N>');
            ped.add(' ');

            ped.add(concatstr('-','-','R',46));
            //ped.add('</fn><n></linha_simples></N>');

            dm.FDAgenda.close;
            ped.add(' ');
            ped.add(' ');
            ped.add(' ');
        end;
      end;


      if (copy(Empresa.TipoEmp, 1, 2) = '05') then
      begin
        if trim(dm.FDAgenda.fieldbyname('placa').Text)<>'' then
        begin

          ped.add('<n>DADOS DO VEICULO: </N>');

          ped.add(concatstr('-','-','R',46));
          //ped.add('</fn><n></linha_simples></N>');
          ped.add('</fn></ce><n>Placa: ' +
            uppercase(Copy(dm.FDAgenda.fieldbyname('placa').Text, 1, 40))
            + '</N>');
          ped.add('</fn><n>Modelo: ' +
            fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('modelo').Text, 1, 34)
            ), ' ', 34) + '</N>');
          ped.add('<n>Marca: ' +
            fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('marcaveic').Text, 1,
            34)), ' ', 34) + '</N>');

          if trim(dm.FDAgenda.fieldbyname('idchassi').Text)<>'' then
          begin
            if length(dm.FDAgenda.fieldbyname('idchassi').Text) > 35 then
            begin
              ped.add('<n>' + 'Chassi: ' +
                fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 1,
                35)), ' ', 35) + '</N>');
              ped.add('<n>' + '     ' +
                fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 36,
                35)), ' ', 35) + '</N>');
            end
            else
              ped.add('<n>' + 'Chassi: ' +
                fullFil(uppercase(Copy(dm.FDAgenda.fieldbyname('idchassi').Text, 1,
                35)), ' ', 35) + '</N>');

            ped.add(' ');
          end;

          ped.add(concatstr('-','-','R',46));
          //ped.add('</fn><n></linha_simples></N>');

          dm.FDAgenda.close;
          ped.add(' ');
        end;
      end;

    end;

    if trim(RichEdit1.Text) <> '' then
    begin
      ped.add('</fn><n>' + 'OBSERVACOES:'+'</N>');

      ped.add(concatstr('-','-','R',46));
      //ped.add('</fn><n></linha_simples></N>');

      FOR ii := 0 TO RichEdit1.Lines.Count - 1 do
      begin
        ped.add('<n>'+RichEdit1.Lines[ii]+'</N>');
      end;
      ped.add(' ');
      ped.add(' ');
      ped.add('<n>' + 'EM: ' + datetostr(date())+'</N>');
      ped.add(' ');
      ped.add(' ');
      ped.add('<n>' + concatstr('ASS. CLIENTE:_________________________'
                                ,' ', 'L', 44)+'</N>');

      ped.add('');
      ped.add('');
      ped.add('');
      ped.add('');
      ped.add('');
      ped.add('');
      ped.add('');
      ped.add('');
      ped.add('');
      ped.add('');
      ped.add('');
    end;

    RichEdit1.free;

    if (F_Menu.impressora_modo = 'MODO TEXTO 40 cols') and
      (T_EMP.CONSULTARFONE = 'S') then
    begin

      if trim(_ende) <> '' then
      begin
        ped.add(concatstr('-','-','R',46));
        ped.add('<n>' + concatstr('CLIENTE  : ' + Copy(decli, 1, 36), ' ', 'R',
          47) + '</N>');
        ped.add('<n>' + concatstr('ENDERECO.: ' + Copy(trim(_ende), 1, 36), ' ',
          'R', 47) + '</N>');
        if length(_ende) > 36 then
          ped.add('<n>' + '           ' + concatstr(Copy(_ende, 36, 46), ' ', 'R',
            46) + '</N>');
        ped.add('<n>' + concatstr('BAIRRO: ' + Copy(_bair, 1, 46), ' ', 'R', 46)
          + '</N>');
        ped.add('<n>' + concatstr('FONE: ' + formatarFone(_fone), ' ', 'R', 22) +
          concatstr('CELULAR: ' + formatarFone(_cel), ' ', 'L', 22) + '</N>');

        if (_comp <> '') then
          ped.add('<n>' + concatstr('COMPLEMENTO: ' + Copy(_comp, 1, 34), ' ',
            'R', 24) + '</N>');
        if (length(_comp) > 34) then
          ped.add('<n>' + '             ' + concatstr(Copy(_comp, 35, 46), ' ',
            'R', 24) + '</N>');

        if (_pref <> '') then
          ped.add('<n>' + concatstr('PONTO REF.: ' + Copy(_pref, 1, 35), ' ', 'R',
            24) + '</N>');
        if (length(_pref) > 35) then
          ped.add('<n>' + '            ' + concatstr(Copy(_pref, 36, 46), ' ',
            'R', 47) + '<n>');

        ped.add(' ');
        ped.add('<n>' + concatstr('OBS.: ' + Copy(T_VENDAS.OBSVEN_V, 1, 41), ' ',
          'R', 46) + '</N>');

        ped.add(concatstr('-','-','R',46));
        ped.add('<n>' + concatstr('PRE-VENDA: ' + IntToStr(T_VENDAS.NRVEN_V), ' ', 'R', 24)
          + concatstr('VALOR: R$ ' + formatfloat(',0.00',
          roundx(T_VENDAS.TOTVEN_V + T_VENDAS.VLR_ACRESC, 3)), ' ', 'L', 20)+'</N>');
        ped.add('<n>' + concatstr('EMISSAO: ' + DateTimeToStr(now), ' ', 'R', 46)
          + '</N>');

        ped.add(concatstr('-','-','R',46));
        if T_VENDAS.CODCONF_V > 0  then
        ped.add('<n>' + concatstr('MOTORISTA: ',' ','R',10) +
                        concatstr(T_SEPCON.DESEP,' ','L',33)+ '</N>');

        ped.add(' ');
        ped.add(' ');
        ped.add(' ');
        ped.add('<n>' + concatstr('ENTREGA NO DIA: ______/______/__________', ' ',
          'R', 46) + '</N>');
        ped.add(' ');
        ped.add('<n>' + concatstr('POR..:__________________________________', ' ',
          'R', 46) + '</N>');

        add('');
        add('');
        add('');
        add('');
        add('');
        add('');
      end;

    end;
    ped.add('</corte_total>');

    Application.createform(Timprimir, imprimir);
    imprimir.Caption := 'Impressão Pedido Nº ' + IntToStr(T_VENDAS.NRVEN_V);
    if imprimir.execute(ped) then
    begin
      qtdeimp := qtdeimp + 1;

      sSql := ' update t_vendas ';
      sSql := sSql + ' set DTSTAT_V = getdate() ';
      sSql := sSql + '    ,QTDIMPRES = '+#39+IntToStr(qtdeimp)+#39;
      sSql := sSql + ' where autocod_v = '+#39+IntToStr(T_VENDAS.AUTOCOD_V)+#39;
      dm.FDFoxbeta.ExecSQL(sSQL);
    end;
    imprimir.destroy;
  end;

  T_SEPCON.free;
  T_FPGTO.Free;
  T_TPGTO.Free;
  T_EMP.Free;
  T_ENDENT.Free;
  T_ITSVEN.Free;
  T_CLI.Free;
  T_VENDE.Free;
  ped.Free;

end;


---------------------------------------------------------------------------

 

procedure TImprimir.BitBtn1Click(Sender: TObject);
var
  f: TextFile;
  Alias, servidor, bancodedados: String;
  registro: TRegistry;
  itenstxt: TStrings;
begin

  if Imprimir.Caption = 'Identifique o servidor de Banco de Dados' then
  begin

    if lb.ItemIndex < 0 then
    begin
      aviso('Identifique o servidor de Banco de Dados');
      exit;
    end;

    itenstxt := TStringList.create;
    itenstxt.LoadFromFile(ExtractFilePath(Application.ExeName) +
      'servidor.txt');

    Alias := uppercase(trim(Copy(itenstxt[lb.ItemIndex], 1, 30)));
    servidor := uppercase(trim(Copy(itenstxt[lb.ItemIndex], 31, 30)));
    bancodedados := uppercase(trim(Copy(itenstxt[lb.ItemIndex], 61, 30)));
    f_menu.LogoFundo :=
      trim(uppercase(trim(Copy(itenstxt[lb.ItemIndex], 91, 50))));

    itenstxt.Destroy;

    if dm.FDFoxBeta.Connected then
    begin
      try
        begin
          dm.FDFoxBeta.Connected := false;
          dm.FDFoxBeta.Connected := true;
        end;
      except
        aviso('Ocorreu um problema na conexão com o servidor, favor entrar em contato com o suporte técnico!');
        Application.terminate;
      end;
    end;
    dm.FDFoxBeta.Connected := false;
    retorno := false;
    close;
    exit;
  end;

  if lb.ItemIndex < 0 then
  begin
    aviso('Informar a Impressora!');
    exit;
  end;

  processando.msg.Caption := 'Imprimindo em ' + portas[lb.ItemIndex] + '...';
  processando.Show;
  processando.Update;

  if FileExists(ExtractFilePath(Application.ExeName) + 'DefPrn.txt') then
    deletefile(ExtractFilePath(Application.ExeName) + 'DefPrn.txt');

  AssignFile(f, ExtractFilePath(Application.ExeName) + 'DefPrn.txt');
  rewrite(f);
  writeln(f, portas[lb.ItemIndex]);
  writeln(f, #27 + #109);
  system.closefile(f);

  if FileExists(ExtractFilePath(Application.ExeName) + 'UltimaImp.txt') then
    deletefile(ExtractFilePath(Application.ExeName) + 'UltimaImp.txt');

  if F_Menu.impressora_modo = 'MODO TEXTO 40 cols' then
  begin
      dm.ACBrPosPrinter1.Desativar;
      dm.ACBrPosPrinter1.ColunasFonteNormal := 48;
      dm.ACBrPosPrinter1.EspacoEntreLinhas := 20;
      dm.ACBrPosPrinter1.Device.Porta := portas[lb.ItemIndex];
      dm.ACBrPosPrinter1.Ativar;
      dm.ACBrPosPrinter1.Buffer.Text := TEXTO.Text;
      dm.ACBrPosPrinter1.Imprimir;
      dm.ACBrPosPrinter1.CortarPapel(true);
      dm.ACBrPosPrinter1.Desativar;
      retorno := true;
      processando.hide;

      AssignFile(f, ExtractFilePath(Application.ExeName) + 'UltimaImp.txt');
      rewrite(f);
      writeln(f, texto[0]);
      writeln(f, #27 + #109);
      system.closefile(f);

      texto.Clear;
      exit;
  end;

  if trim(texto[0]) <> '' then
  begin
      AssignFile(f, ExtractFilePath(Application.ExeName) + 'UltimaImp.txt');
      rewrite(f);
      writeln(f, texto[0]);
      writeln(f, #27 + #109);
      system.closefile(f);

      AssignFile(f, portas[lb.ItemIndex]);
      rewrite(f);
      writeln(f, texto[0]);
      writeln(f, #27 + #109);
      system.closefile(f);
  end;

  retorno := true;
  processando.hide;

end;

  • Este tópico foi criado há 597 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.