Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Como Atribuir Uma Pergunta Só Na Hora Que Inclui E Sa


robinhocne

Pergunta

Olá para todos.

Bom, na hora que eu faço um cadastro e salvo ele eu coloquei essa pergunta para que ele possa imprimir o contrato do aluno, mas o erro é o seguinte, aki se eu escolho a opção não ele não salva, outro dois pontos é que só queria que aparecesse a opção de imprimir o contrato só na hora que eu faço o cadastro, mas não na hora que eu edito ele não aparece a opção, e o outro ponto, queria colocar para imprimir o contrato e uma ficha, quer dizer quando usuario clicasse em sim ai aparecesse para imprimir os dois!

Esses são os codigos que eu coloquei, só não consiguo concluir espero ajuda!

if (not pergunta('Deseja Imprimir o Contrato de Prestação de Serviço?')) then exit;

   With DtmIza.qryIza do
     Begin
        ConsultaRegistros ('Empresa', 'Empresa, Endereco, Numero, Cnpj, Bairro, Cidade',
        'Codigo>=' + txtMat.Text);
           With TFrmRelContrato.Create (Application) do
        try
           QuickRep1.Preview;
        finally
           free;
          end;
     End;    
  Inherited;

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Bom, na hora que eu faço um cadastro e salvo ele eu coloquei essa pergunta para que ele possa imprimir o contrato do aluno, mas o erro é o seguinte, aki se eu escolho a opção não ele não salva (...)

if (not pergunta('Deseja Imprimir o Contrato de Prestação de Serviço?')) then exit;

   With DtmIza.qryIza do
     Begin
        ConsultaRegistros ('Empresa', 'Empresa, Endereco, Numero, Cnpj, Bairro, Cidade',
        'Codigo>=' + txtMat.Text);
           With TFrmRelContrato.Create (Application) do
        try
           QuickRep1.Preview;
        finally
           free;
          end;
     End;    
  Inherited;

robinhocne, não seria porque a pergunta deveria estar depois da sua chamada a Consulta Registros?

(...) outro dois pontos é que só queria que aparecesse a opção de imprimir o contrato só na hora que eu faço o cadastro, mas não na hora que eu edito ele não aparece a opção, (...)
Você quer dizer apenas quando está incluindo?

Se for, como você não utiliza os métodos convencionais (datasets em modo inserção/edição), então sugiro que você utilize uma variável em algum lugar (só você vai saber qual o melhor) para indicar quando o registro está sendo incluído ou quando está sendo alterado. Daí você só chama o procedimento para o relatório após verificar esta variável.

(...) e o outro ponto, queria colocar para imprimir o contrato e uma ficha, quer dizer quando usuario clicasse em sim ai aparecesse para imprimir os dois!
se você utiliza QuickReport, a dica é utilizar o TQRComposite, veja este post e veja se você consegue utilizá-lo em seu relatório (é bem simples, principalmente se os dois QuickReps estiverem no mesmo form).

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Micheus, eu coloquei a pergunta no final do codigo mas quando salvo ele já aparece o contrato e quando depois que fecho ai sim que aparece a pergunta:

With DtmIza.QryRelEmp do
     Begin
        Close;
        Sql.Clear;
        Sql.Add('SELECT * FROM Empresa');
        Open;
     end;
   With DtmIza.QryRelAlu do
     Begin
        Close;
        Sql.Clear;
        Sql.Add('SELECT * FROM Alunos');
        Open;
     End;
   With DtmIza.QryRelCid do
     Begin
        Close;
        Sql.Clear;
        Sql.Add('SELECT * FROM Cidades');
        Open;
     End;
   With TFrmRelContrato.Create (Application) do
        try
           QuickRep1.Preview;
        finally
           free;
  end;

     if (not pergunta('Deseja Imprimir o Contrato de Prestação de Serviço?')) then exit;

(...) outro dois pontos é que só queria que aparecesse a opção de imprimir o contrato só na hora que eu faço o cadastro, mas não na hora que eu edito ele não aparece a opção, (...)
Você quer dizer apenas quando está incluindo?

Se for, como você não utiliza os métodos convencionais (datasets em modo inserção/edição), então sugiro que você utilize uma variável em algum lugar (só você vai saber qual o melhor) para indicar quando o registro está sendo incluído ou quando está sendo alterado. Daí você só chama o procedimento para o relatório após verificar esta variável.

Aqui será que você me poderia me ajudar!

Link para o comentário
Compartilhar em outros sites

  • 0

robinhocne, quando falei sobre perguntar apenas antes da impressão, naquele seu exemplo, era no sentido de que ficasse algo mais ou menos assim:

With DtmIza.qryIza do
Begin
  ConsultaRegistros ('Empresa', 'Empresa, Endereco, Numero, Cnpj, Bairro, Cidade', 'Codigo>=' + txtMat.Text);

  if (not pergunta('Deseja Imprimir o Contrato de Prestação de Serviço?')) then exit;
  With TFrmRelContrato.Create (Application) do
  try
    QuickRep1.Preview;
  finally
    free;
  end;
End;

ao menos era como eu tinha entendido: você faz a tal consulta/alteração no registro e depois (após gravada) fazer a pergunta se deseja imprimir ou não o tal contrato.

Quanto a 2ª questão, acho que a sugestão é fácil de entender, a implementação não deveria ser problema, mas eu conseguir ajudar pode ficar meio extenso.

Em algum momento você coloca os dados em seus edits (em uma alteração) ou inicia o form com os edits vazios (em uma inclusão). É neste ponto que você vai poder saber quando está incluindo ou alterando para, então, inicializar uma variável (booleana por exemplo) declarada no form de onde você faz a chamada para os respectivos procedimentos e que você irá utilizar para em seu retorno (saída do procedimento, provavelmente quando o cara gravou os dados) imprimir.

Muito provavelmente você deve ter um procedimento similar ao que você postou há algum tempo (post).

Nele aparece a chamada a um procedimento IncluirRegistro( 'Praticas', vCpo, vVlr ), imagino que você tem algo parecido para Empresas. Assim, neste momento você saberá que está fazendo uma inclusão e deve haver um outro procedimento em que você sabe que está alterando.

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, Micheus mas tive que fazer umas outras alterações nessa consulta:

if (not pergunta('Deseja Imprimir o Contrato de Prestação de Serviço?')) then exit;

   With DtmIza.QryRelEmp do
     Begin
        Close;
        Sql.Clear;
        Sql.Add('SELECT * FROM Empresa');
        Open;
     end;
   With DtmIza.QryRelAlu do
     Begin
        Close;
        Sql.Clear;
        Sql.Add('SELECT * FROM Alunos');
        Open;
     End;
   With DtmIza.QryRelCid do
     Begin
        Close;
        Sql.Clear;
        Sql.Add('SELECT * FROM Cidades');
        Open;
     End;
   With TFrmRelContrato.Create (Application) do
        try
           QuickRep1.Preview;
        finally
           free;
  end;
End;
Então modifiquei do jeito que você colocou e ele da erro na consulta. Sobre a segunda questão eu tenho sim um procedimento, eu inicio os forms com todos os edits em branco, apartir disso eu localizo ou faço uma inclusão do registro.
procedure incluirregistro (ptabela:string;pcampos, pvalores:tstringlist);
var a:integer;instrucaosql:string;
begin
instrucaosql:='insert into ' + ptabela + ' (';
for a :=0 to (pcampos.Count-1) do

   begin
      instrucaoSQL := instrucaosql+pcampos [a] + ', ';
   end;
   instrucaosql:= copy (instrucaosql,1,length (instrucaosql)-2) + ') values (';

for a :=0 to (pvalores.Count-1) do

   begin
      instrucaoSQL := instrucaosql+pvalores [a] + ', ';
   end;
   instrucaosql:= copy (instrucaosql,1,length (instrucaosql)-2) + '); ';
   //showmessage (instrucaosql);
   with dtmiza.qryiza do
      begin
         close;
         sql.Clear;
         sql.add (instrucaosql);
         execsql;
      end;


end;

procedure alterarregistro (ptabela:string;pcampos, pvalores:tstringlist;pcondicao:string);
var a:integer;instrucaosql:string;
begin
   instrucaosql:='update ' + ptabela + ' set ';
   for a :=0 to (pcampos.Count-1) do
      begin
         instrucaoSQL := instrucaosql+pcampos [a]+ '='+ pvalores [a] + ', ';
      end;
         instrucaosql:= copy (instrucaosql,1,length (instrucaosql)-2);

      if (pcondicao<>'') then
      begin
         instrucaosql := instrucaosql + ' where ' + pcondicao;
      end;
   // showmessage (instrucaosql);
   with dtmiza.qryiza do
      begin
         close;
         sql.Clear;
         sql.add (instrucaosql);
         execsql;
      end;

end;

Link para o comentário
Compartilhar em outros sites

  • 0
Então modifiquei do jeito que você colocou e ele da erro na consulta.
bom, acho que isto você tem que ver, você nem menciona que erro ocorre, mas acho que você deve conseguir resovê-lo.

Sobre a segunda questão eu tenho sim um procedimento, eu inicio os forms com todos os edits em branco, apartir disso eu localizo ou faço uma inclusão do registro.
com isso, e o que eu já comentei, acho que você já responde a este seu questionamento inicial:
(...) outro dois pontos é que só queria que aparecesse a opção de imprimir o contrato só na hora que eu faço o cadastro, mas não na hora que eu edito ele não aparece a opção, (...)

ou seja, você já sabe quando chamou uma inclusão ou edição.

Link para o comentário
Compartilhar em outros sites

  • 0

Micheus Obrigado por tudo, mas consegui fazer deste jeito

Resolvido

procedure Tfrmalunos.spbsalClick(Sender: TObject);

   procedure imprimeFicha();
   begin
      if (not pergunta('Deseja Imprimir o Contrato de Prestação de Serviço?')) then exit;

      With DtmIza.QryRelAlu do
      Begin
         Close;
         Sql.Clear;
         Sql.Add ('Select A.Codigo, A.Nome, A.Rg, I.Nome From Alunos A, ' +
                  'Alunos I Where A.Codigo=' + TxtMat.Text );
         Open;
      End;

      With DtmIza.QryRelEmp do
      Begin
         Close;
         Sql.Clear;
         Sql.Add ('Select A.Empresa, A.Cnpj, A.Endereco, A.Numero, A.Bairro From Empresa A');
         Open;
      end;

      With DtmIza.QryRelCid do
      Begin
         Close;
         Sql.Clear;
         Sql.Add( 'SELECT * FROM Cidades' );
         Open;
      End;

      With TFrmRelContrato.Create (Application) do
      try
         QuickRep1.Preview;
      finally
         free;
      end;

   end;
var
  szBuff: String;
begin
   with vcpo do
      begin
         clear;
         add ('dtcadastro');
         add ('servicos');
         add ('categoria');
         add ('nome');
         add ('rg');
         add ('uf_rg');
         add ('emissor');
         add ('cpf');
         ...................................
   with vvlr do
      begin
     clear;
         Add ('Current_Date');
         if (rdbhab.checked) then
         add ('1')
         else if (rdbalt.checked) then
         add('2')
         else if (rdbren.checked) then
         add('3');
         add (#39 + txtcth.Text + #39);
         add (#39 + txtnom.Text + #39);
         add (#39 + txtrg.Text + #39);
         add (#39 + txtuf2.Text + #39);
         add (#39 + cboorg.Text + #39);
         Add (TiraMascara (TxtCPF.Text));

          .....................
         

end;

     If (Editar) Then
     begin
        AlterarRegistro ('alunos', vCpo, vVlr, 'codigo =' + txtmat.Text)
     end
     else
     begin
        IncluirRegistro('alunos', vCpo, vVlr);
        imprimeFicha();
     end;

     Inherited;
End;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...