[delphi-br] Qual o melhor maneira de Cancelar a Nota Fiscal?

2010-02-25 Por tôpico ademir.mossane
Cancelamento de Notas tem 2 maneiras

Exemplo usando a Chave e Protocolo da NFe:
ACBrNFe1.WebServices.Cancelamento.NFeChave:= chNFe;
ACBrNFe1.WebServices.Cancelamento.Protocolo := Protocolo;
ACBrNFe1.WebServices.Cancelamento.Justificativa := AJustificativa;
Dessa forma, tem  que fechar a nota carregada antes de cancelar.

Após o envio do cancelamento, o componente salva o xml do cancelamento 
automáticamente ou tenho que salvar enviando algum comando:
  if ACBrNFe.WebServices.Cancelamento.cStat = 101 then begin
{ Autorizado o cancelamento. .. }
  end;
- 
Exemplo carregando um XML
ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.Add.XML.LoadFromFile(cPathArquivo);
if not(InputQuery('WebServices Cancelamento', 'Justificativa', vAux)) then
exit;
ACBrNFe1.Cancelamento(vAux);
O ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.cStat
é alterado, ou permanece como 100?
--
Minha Dúvida é a seguinte:
Qual o melhor maneira de Cancelar a Nota Fiscal? 
Quais os comandos pra salvar se existir, pois quando gerar
o Speed esse cancelamento será obrigatório informar...

Desde já Agradeço a quem puder me ajudar
Abraços
Ademir Mossane







[delphi-br] Re: Acesso Rapido

2009-10-14 Por tôpico ademir.mossane


Olá Pessoal
Posso dar minha dica...
mesmo não podendo ai vai
eu uso o tag de cada menu, coloco valor 
1 para vendas
2 para estoque
3 para financeiro
4 para gerencial
e ainda uso o 5 e o nove, esse só abrem menu pra quando eu logar
 
Assim cada usuário é determinado o nível de acesso e quando abro o sistema
faço uma varredura nos componentes e se for TMenu ou Tbutton, ele habilita
conforme a tag e o nivel de acesso do usuário.
isso se furarem a senha de acesso, o que é possível, propositadamente, o 
sistema só habilita 
os menus de saídas...
e ainda tenho permissões, mas isso já é pra cada local de acesso, tipo caixa, 
receber, pagar, cheques etc..
ai verifica as permissões daquele usuário...
Espero ter contribuído de alguma forma...
Abraços a tds.
Mossane




[delphi-br] Re: Componete para Gerar Relatórios no WORD

2009-08-14 Por tôpico ademir.mossane
Você não precisa componentes para criar documentos Word
veja uma rotina completa, adapte as suas necessidades

adcione ao uses Comobj 

procedure TF_ProcessosAcomp.SpeedButton36Click(Sender: TObject);
var
  NewWord,Document, Range: Variant;
  nome:string;
  i:integer;
begin
//tenho um modelo de documento do word com o cabeçalho e logomarca da empresa
CopyFile(Pchar(ExtractFilePath(Application.ExeName)+'modeloWord.doc'),Pchar(nome),false);
  except end;
  NewWord:= CreateOleObject('Word.Basic');
  NewWord.AppShow; //mostra o word
  newWord.FileOpen(nome);
  newWord.FontSize(8); newWord.bold; NewWord.LeftPara;
  newWord.insert('CLIENTE'+#9+#9+': ');
  newWord.FontSize(9); newWord.bold(false); NewWord.LeftPara;
  newWord.insert(trim(RxDBLookupCombo1.Text));
  newWord.FontSize(8); newWord.bold; NewWord.LeftPara;
  newWord.insert(#13+'AUTOR'+#9+#9+#9+': ');
  AutorProcesso.First;
  newWord.FontSize(9); newWord.bold(false); NewWord.LeftPara;
  newWord.insert(trim(AutorProcessoLAUTOR.AsString));
  AutorProcesso.Next;
  while not AutorProcesso.Eof do begin
newWord.FontSize(9); newWord.bold(false); NewWord.LeftPara;
newWord.insert(#13+#9+#9+#9+': ');
newWord.insert(trim(AutorProcessoLAUTOR.AsString));
AutorProcesso.Next;
  end;
  newWord.FontSize(8); newWord.bold; NewWord.LeftPara;
  newWord.insert(#13+'RÉU'+#9+#9+#9+': ');
  REUS_PROCESSO.First;
  newWord.FontSize(9); newWord.bold(false); NewWord.LeftPara;
  newWord.insert(trim(REUS_PROCESSOLREUS.AsString));
  REUS_PROCESSO.Next;
  while not REUS_PROCESSO.Eof do begin
newWord.insert(#13+#9+#9+#9+': ');
newWord.FontSize(9); newWord.bold(false); NewWord.LeftPara;
newWord.insert(trim(REUS_PROCESSOLREUS.AsString));
REUS_PROCESSO.Next;
  end;
  newWord.insert(#13+ '');
  newWord.FontSize(8);  newWord.bold;   NewWord.LeftPara;
  newWord.insert('PROCESSO N.'+#9+#9 +': ');
  newWord.FontSize(9);  newWord.bold(false);   NewWord.LeftPara;
  newWord.insert(trim(ProcessosNUMERO_PROCESSO.AsString));
  newWord.insert(#13+ '');
  newWord.FontSize(8);  newWord.bold; NewWord.LeftPara;
  newWord.insert('AÇÃO'+#9+#9+#9 +': ');
  newWord.FontSize(9);  newWord.bold(false); NewWord.LeftPara;
  newWord.insert(trim(RxDBLookupCombo2.Text));
  newWord.insert(#13+ '');
  newWord.FontSize(8);  newWord.bold;   NewWord.LeftPara;
  newWord.insert('DATA DE DISTRIB.'+#9': ');
  newWord.FontSize(9);  newWord.bold(false);   NewWord.LeftPara;
  newWord.insert(DBDateEdit1.Text);
  newWord.insert(#13+ '');
  newWord.FontSize(8);  newWord.bold;  NewWord.LeftPara;
  newWord.insert('COMARCA/TRIBUNAL'+#9+': ');
  newWord.FontSize(9);  newWord.bold(false);  NewWord.LeftPara;
  newWord.insert(trim(RxDBLookupCombo3.Text));
  newWord.insert(#13+ '');
  newWord.FontSize(8);  newWord.bold;  NewWord.LeftPara;
  newWord.insert('ÓRGÃO JULGADOR'+#9+': ');
  newWord.FontSize(9);  newWord.bold(false);  NewWord.LeftPara;
  newWord.insert(trim(RxDBLookupCombo4.Text));
  newWord.insert(#13+ '');
  newWord.FontSize(8);  newWord.bold;  NewWord.LeftPara;
  newWord.insert('VALOR DA CAUSA'+#9+': ');
  newWord.FontSize(9);  newWord.bold(false);  NewWord.LeftPara;
  newWord.insert(tamanho_V(ProcessosVALOR_CAUSA.AsFloat,15));
  newWord.FontSize(8);  newWord.bold;  NewWord.LeftPara;
  newWord.insert('   -   GRAU DE RISCO DO PROCESSO'+#9+': ');
  newWord.FontSize(9);  newWord.bold(false);  NewWord.LeftPara;
  if Grau_risco.Eof then newWord.insert('INDEFINIDO')
  else newWord.insert(trim(Grau_riscoDESCRICAO.AsString));
  newWord.insert(#13+ '');
  newWord.FontSize(9);  newWord.bold;  NewWord.LeftPara;
  newWord.insert(#13+'ANDAMENTOS DO PROCESSO');
  newWord.insert(#13+'');
  newWord.FontSize(9);  newWord.bold(false);  NewWord.JustifyPara;
  
newWord.insert('--');
  AndamentoProcesso.first;
  while not AndamentoProcesso.Eof do begin
newWord.FontSize(9);newWord.bold;  NewWord.LeftPara;
newWord.insert(#13+DateToStr(AndamentoProcessoDATA.AsDateTime)+
   ' - '+TRIM(AndamentoProcessoDESCRICAO.AsString));
newWord.FontSize(9);newWord.bold(false);NewWord.JustifyPara;
newWord.insert(#13+trim(DBMemo4.Text));
newWord.FontSize(9);newWord.bold(false);NewWord.JustifyPara;

newWord.insert(#13+'--');
AndamentoProcesso.Next
  end;
end;