Ir para conteúdo
Fórum Script Brasil

Geomar Canjundo

Membros
  • Total de itens

    74
  • Registro em

  • Última visita

Posts postados por Geomar Canjundo

  1. Jhonas, Obrigado pelas dicas.

    Ficou apenas uma dúvidas que penso que me poderás ajudar.

    O meu formulário chama o procedimento para Salvar a Compra duas Vezes, antes de Salvar os itens da compra ao fechar o formulário. Nesse caso, fazendo as transacções apenas nno procedimento de Salvar a compra ele também fará rollback a itens caso cancele, ou tenho usar em ambos os casos?

  2. Olá pessoal,

    Tenho num formulário na qual tenho dois AdoQuery (Master x Detail). Para inserir o primeiro registo relacionado a tabela pai na tabelha detail, tenho de salvar inicialmente o registo da tabela pai, até ai tudo bem. Acontece que se eventualmente eu desejar cancelar alguma acção na tabela pai a minha é que também seja cancelada as mesmas feitas a tabela detail na naquela sessão exacta de edição da tabela.

    Ou seja caso eu eu já tenha peoduto adicionado a aquela compra, caso na sessao actual eu tenha adicionado algum dadoa a tabela filho e cancelar na tabela pai o sistema faz um rollback transaction nas duas tabelas.

    Tem como fazer isso?!?!

  3. erro E1026 File not Found: 'Controls.res'

    esse erro ocorre quando alguma unit do seu projeto foi renomeada ... o arquivo Controls.res é gerado durante a compilação do programa, portanto, se o programa não foi compilado, voce não vai encontrar esse arquivo

    abraço

    Jhonas acontece que esse erro está a ser gerado em qualquer projecto que tento fazer no Delphi.

  4. while registo <RecordCount do
       begin
           Perfil(ModuloDados.QryPerfilPRIVILEGIO.Text); // Função contendo o código que será escrito, armazenado na tabela
           next;
           Inc(registo, 1)
       end;

    amigo, quando falo para detalhar é detalhar mesmo .... observe:

    voce disse que quer usar uma função...

    depois que esse código está armazenado num dos campos da tabela em que é feita a consulta.

    se eu entendi direito, voce quer colocar um codigo ( por exemplo: FormClientes.visible:=False/True que esta num campo da tabela ) e depois tentar adicionar esse código ao código já existente ( ou seja o seu programa executavel )

    se for isso não é possivel, pois se fosse, seria uma farra para os hackers

    o que voce pode fazer é criar dlls externas ( que contenham as funções ) que podem ser chamadas pelo seu programa

    abraço

    Jhonas o seu entendimento foi perfeito, e sua explicação mais clara ainda, obrigado pela ajuda. Vou criar as DLL e tentar usa-las

    Obrigado pela ajuda,

    Valeu

  5. Alguém sabe como faço para adicionar código em tempo de Execucao, se for possível fazer isso

    amigo, voce tem que ser mais claro quanto ao que quer fazer...

    a que tipo de código voce esta se referindo ? delphi ? assembler ? Php ? Script ?

    quanto mais detalhada a sua dúvida, mais rapido terá uma resposta .. ok ?

    abraço

    Viva Jhonas,

    Obrigado pela dica.

    O código que quero adicionar é delphi. Esse código está armazenado num dos campos da tabela em que é feita a consulta. Eu quero antes da abertura do FormPrincipal, o sistema adicione esse conteudo armazenado na tabela (FormClientes.visible:=False/True) no código fonte já existente.

    Espero ter sido mais claro...

  6. Olá Pessoal,

    Alguém sabe como faço para adicionar código em tempo de Execucao, se for possível fazer isso. A minha ideia é, após o inicio do Programa, ele escreva o conteudo armazenado num variável O meu codigo vai abaixo:

    with ModuloDados.QryPerfil do
       begin
         Close;
         Sql.Add(' AND P.CODIGO_GRUPO = :GRUPO AND E.NOME_EMPRESA = :EMPRESA ');
         Parameters.ParamByName('GRUPO').Value:=grupo;
         Parameters.ParamByName('EMPRESA').Value:=empresa;
         open;
         if IsEmpty then
          begin
            FormPrincipal.rbMenu.Destroy;
          end
          else
           begin
           registo:=0;
             First;
             while registo <RecordCount do
             begin
                  Perfil(ModuloDados.QryPerfilPRIVILEGIO.Text); // Função contendo o código que será escrito, armazenado na tabela
                  next;
                  Inc(registo, 1)
             end;
           end;
            FormPrincipal.empresa:=ModuloDados.QryPerfilCODIGO_EMPRESA.AsInteger;
            FormPrincipal.utilizador:=ModuloDados.QryUtilizadoresUTILIZADOR.Text;
            FormPrincipal.ShowModal;
       end;

    Aguardo o vosso parecer,

    Obrigado.

  7. Olá Geomar,

    tente fazer assim:

    procedure AdicionaAoStockLoja(produto:Integer);
      begin
         With ModuloDados.QryStockLoja do
       begin
         Close;
         SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L ,  OFI_CATEGORIAS C,');
         SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = '+''''+IntToStr(produto)+''''+'');
         SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND');
         SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO ');
         Open;
    end;
    ou assim:
    SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L ,  OFI_CATEGORIAS C,');
         SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = :produto');
         SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND');
         SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO ');
         Parameters.ParamValues['produto'] := produto;
         Open;
    end;

    Abs. Progr'amador

    Progr'amador,

    Tentei as duas opções e continuo recebendo o mesmo erro.

  8. "EOleException with Message: sp_cursoropen/sp_cursorprepare: The statement can only be a batch or a stored procedure with a single select, without FOR BROWSE, COMPUTE BY, or variable assignements "

    Erro: sp_cursoropen/sp_cursorprepare: A declaração só pode ser um lote ou um procedimento armazenado com uma única escolha, sem FOR BROWSE, COMPUTE BY, ou variável atribuida

    reveja a sua declaração ... e atente para a mensagem de erro

    abraço

    Jhonas, Confesso-te sinceramente que percebi nada da sua explicação.

  9. Olá Pessoal,

    Estou tentando fazer uma consulta (AdoQuery e SQL SERVER) na qual me vai gerando a o seguinte erro:

    "EOleException with Message: sp_cursoropen/sp_cursorprepare: The statement can only be a batch or a stored procedure with a single select, without FOR BROWSE, COMPUTE BY, or variable assignements "

    A consulta é a seguinte

    procedure AdicionaAoStockLoja(produto:Integer);
      begin
         With ModuloDados.QryStockLoja do
       begin
         Close;
         SQL.Add('SELECT L.*, C.DESCRICAO AS DS_CATEGORIA FROM COM_STOCK_LOJA L ,  OFI_CATEGORIAS C,');
         SQL.Add(' COM_PECAS P, SYS_EMPRESAS E WHERE L.CODIGO = '+ IntToStr(produto));
         SQL.Add(' AND L.CODIGO_CATEGORIA = P.CODIGO_CATEGORIA AND P.CODIGO_CATEGORIA = C.CODIGO AND');
         SQL.Add(' L.CODIGO_EMPRESA = E.CODIGO ORDER BY L.DESCRICAO ');
         Open;
    end;

  10. Geomar,

    Comente as linhas abaixo no seu código e tente novamente:

    dataGridView1.AutoGenerateColumns = false;
    DataGridViewColumn coluna = new DataGridViewColumn();
    coluna.HeaderText = "Codigo";
    coluna.Name = "Codigo";
    coluna.Visible = true;
    coluna.Width = 40;
    dataGridView1.Columns.Add(coluna);

    Lembrando que você deve definir as colunas do seu grid no modo designer.

    Em resumo, você precisa ter a sua list<> e alimentar o grid (com o for que informei anteriormente). Conseguindo fazer esses passos, você pode começar a configurar seu grid conforme sua preferência.

    Abraço,

    Bruno,

    Obrigado pela ajuda, funcionou na perfeição...

    Valeu, mano...

  11. Olá Geomar,

    Eu tenho um código parecido com este seu, porém apenas coloquei no DataGridView (modo designer) as colunas que ele terá, depois utilizei o código parecido com o abaixo para acrescentar os dados:

    for (int i = 0; i < lista.Count; i++)
        dgvGrupoProd.Rows.Add(lista[i].Atributo1, lista[i].Atributo2);

    No exemplo acima utilizei DataGridView com 2 colunas.

    Espero ter ajudado.

    Abraço,

    Bruno, Obrigado pela ajuda, tentei usar o teu código, mas gerou o seguinte erro: "Pelo menos uma das colunas do controle DataGridView não tem nenhum modelo de célula."

  12. Ola pessoal,

    Estou desenvolvendo um sistema Windows em camadas (3), na qual possui, uma class DAO, uma DTO BLL e as Interface. Nas DTO alem de declarar as Entidades também criei Listas Genericas (List<>) para carregar consultas com mais de um registo. O Meu problema surge no seguinte:

    1. Quanto tenho de fazer consultas master/detail o DTO tras e preenche o Dataset da Gridview com todos os campos da table detail.

    O que eu quero e ter uma forma percorrer a Colecao e poder aceder aos dados, por formar poder altera-los. Abaixo vai o codigo:

    DTO.Inventario.ModeloDTO dto = new DTO.Inventario.ModeloDTO();
    DTO.Inventario.ColeccaoModelosDTO lista = new DTO.Inventario.ColeccaoModelosDTO(); 
    lista = InventarioBLL.ObterModeloPorFiltro(dto);
    dataGridView1.AutoGenerateColumns = false;
    DataGridViewColumn coluna = new DataGridViewColumn();
    coluna.HeaderText = "Codigo";
     coluna.Name = "Codigo";
     coluna.Visible = true;
    coluna.Width = 40;
    dataGridView1.Columns.Add(coluna);
    for (int i = 0; i < lista.Count; i++)
     {
    
     // Aqui esta o probema como acessar os objetos da lista e poder formar as celulas do grid. 
    }

    Aguardo vossa Ajuda.

    Geomar

  13. Ola Pessoal,

    Estou desenvolvimento um sistema web que deve fazer a leitura de dados de uma planilha excel. acontece que ao iniciar a leitura o apache gera o seguinte erro abaixo.

    Ocorreu um erro no Sistema:

    Mensagem:Bad version number in .class file

    java.lang.UnsupportedClassVersionError: Bad version number in .class file

    at java.lang.ClassLoader.defineClass1(Native Method)

    at java.lang.ClassLoader.defineClass(Unknown Source)

    at java.security.SecureClassLoader.defineClass(Unknown Source)

    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815)

    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:869)

    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1322)

    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)

    at java.lang.ClassLoader.loadClassInternal(Unknown Source)

    at java.lang.Class.getDeclaredMethods0(Native Method)

    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)

    at java.lang.Class.privateGetPublicMethods(Unknown Source)

    at java.lang.Class.getMethods(Unknown Source)

    at BaseAjax.BaseAjaxServletAB.ExecuteMethod(BaseAjaxServletAB.java:42)

    at BaseAjax.BaseAjaxServletAB.getXmlContent(BaseAjaxServletAB.java:30)

    at org.ajaxtags.servlets.AjaxActionHelper.invoke(Unknown Source)

    at org.ajaxtags.servlets.BaseAjaxServlet.doGet(Unknown Source)

    at org.ajaxtags.servlets.BaseAjaxServlet.doPost(Unknown Source)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

    at java.lang.Thread.run(Unknown Source)

  14. Ola pessoal,

    Estou querendo que o meu sistema restrinja o acesso de usuarios, ou seja fazer com os usuarios apenas visualizem e facam apenas as operacoes(salvar ou editar, ou excluir) nos modulos que lhes dizem respeito.

    Para tal pensei em criar as tabelas, Usuarios (login, senha, grupo, estado) e outra Grupos (codigo, descricao, Modulo, criar, alterar, excluir, vizualizar).

    Preciso de ajuda primeiro para saber se a abordagem das tabelas esta correcta e depois, como materializar ao nivel do Delphi.

    Obrigado.

    Geomar

  15. Valeu pela Ajuda Denis.

    Ainda no mesmo Banco de Dados, eu devo ter tabelas para a gestao de stock.

    Eu criei uma tabela Produtos (codigo, sigla, descricao, categoria), uma tabela entrada (codigo, numfactura, fornecedor, dataCompra, valorFactura, qtdprodutos) e uma de detalhes (codigoEntrada, codigoProduto, Qtd, PrecoUnitario, PrecoCusto, precoTransporte, precoCarregamento, Despesa1, despesa2).

    A minha duvida preende-se em como modelar a tabela responsavel pela gestao de Stock sabendo, que em termos de saida podem ser por (requisicao da oficina, e venda por encomenda)

    Sera possivel me dar uma ajuda?

  16. 'Geomar Canjundo'

    Já que você não entendeu vamos tentar denovo.

    Imagine os lançamentos via papel.

    Você tem um bloco de marcações e cada folha do bloco pode entrar somente um carro.

    No bloco de marcações entram dados relativos somente as marcações, certo? Até porque~se o carro não vier, o cliente pode remarcar. Então você deve ter, neste bloco um marcador dizendo se o cliente compareceu ou não. Certo?

    Não há mais o que fazer aqui.

    Agora o carro chegou. O que você usará como referência para esta ordem de serviço que está iniciando? Os dados aqui devem ser pertinentes somente a este tipo de trabalho, certo? (outro bloco, ou seja, outro formulário, o que implica em outra tabela)

    Pelo que você descreveu até aqui eu vejo Uma tabela para clientes

    uma tabela para veiculos já que um cliente pode ter mais de um veículo.

    Uma tabela para marcador (agenda) cada marcador pode ter um veículo

    Uma tabela para serviço (check list e outros atributos) cada serviço deve vir de um marcador.

    Correcto Denis,

    O meu Sistema tem mesmo as tabelas (clientes, veiculos, agenda"marcacao") a minha duvida prendia-se justamente na tabela checklist. Mas agora com sua explicacao, ficou bem claro, que devo criar mais uma tabela(checklist) que representara igualmente a tabela de Ordens de servico.

    Do que percebo de sua frase "Uma tabela para serviço (check list e outros atributos) cada serviço deve vir de um marcador." implica dizer que o codigo da marcacao, sera um atributo da tabela servico, certo?

  17. Ola pessoal estou desenvolvendo um sistema par oficinas e me surgiram algumas duvidas que gostaria que me ajudasse a debelar.

    Quando o cliente que fazer uma revisão, ele deve fazer a marcação(reserva). Quando o carro entra para a oficina, e gerada a folha de obra e checklist e da-se baixa da entrada da viatura. Eu fiz o seguinte para o meu sistema:

    Criei a tabela marcacao e com os seguintes campos: (Codigo, Data_marcacao, Data_Revisao, Cliente, Placa_Viatura, Tipo_Revisao, Data_Ultima_Revisao), assumindo que somente se pode fazer uma marcacao por cliente;

    Aqui começa a minha duvida: Ao receber o carro, devo gerar uma nova tabela de Registo de Entrada na Oficina e outra de Folha de Obra, ou mantenho a tabela marcação e nos formulário altero o Rotulo do código da marcação para (Nro do checkin, Nro da folha de obra respectivamente)

    Ou seja eu devo criar 3 tabelas ou apenas uma?

    Aguardo retorno,

    Obrigado

    Geomar Canjundo

  18. Ola Pessoal,

    Estou desenvolvendo um sistema de Gestao de Oficinas e na tabela cliente, defini como o chaves o codigo e o Identificacao do cliente.

    Acontece que ao salvar gera o seguinte erro:

    Se a tabela estiver em modo de Insercao o processo é pacifico salva tranquilo, se a identificacao for repetida ela informa.

    O problema esta a edicao de dados, eu quero que o sistema verifique se a identificacao foi alterada e caso tenha sido alterada impedir a edicao de dados.

    o codigo do Metodo esta abaixo

    procedure SalvarClientes;
    begin
    if FormClientes.EditIdentificacao.Text='' then
         begin
          ShowMessage('Digite a Identificacao do Cliente');
          FormClientes.EditIdentificacao.SetFocus;
          Exit;
         end
         else
          begin
                With ModuloDados.QryAuxiliar do
                  begin
                   Close;
                   Sql.Clear;
                   SQl.Text:='Select * from clientes where identificacao="'+
                   ModuloDados.QryClientesIDENTIFICACAO.Text+'"';
                   Open;
                   if IsEmpty then
                   else
                     begin
                      if ModuloDados.DsClientes.state in [dsInsert] then
                       begin
                       ShowMessage('A Identificação já existe');
                       FormClientes.EditIdentificacao.SetFocus;
                       Exit;
                       end
                       else
                       ???????
                     end;
                  end;
    
               end;
         end;
    If Mensagem('Deseja Salvar o Cadastro?')= Idyes then
            begin
            FormClientes.BarraEstado.Panels[0].Text:= 'A Salvar Registo...';
            if ModuloDados.DsClientes.state in [dsInsert] then
            begin
            ModuloDados.QryClientes.Post;
            ModuloDados.QryClientes.Last;
            ShowMessage('Cliente Cadastrado com Sucesso!!!');
            FormClientes.BarraEstado.Panels[0].Text:= 'Dados do Cliente Adicionados ao Sistema...';
            end
            else
             begin
             ModuloDados.QryClientes.UpdateRecord;
             ModuloDados.QryClientes.Last;
             ShowMessage('Cliente Alterados com Sucesso!!!');
             FormClientes.BarraEstado.Panels[0].Text:= 'Dados do Cliente Adicionado ao Sistema...';
             end;
             FormClientes.ButNovo.Enabled:=True;
             FormClientes.ButFechar.Enabled:=True;
            end;
    end;
    
    alguém pode me ajudar?

    OBS: Procure usar as tags de identação de código para facilitar a leitura

×
×
  • Criar Novo...