DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

mariodosreis

Respostas no Fórum

Visualizando 15 posts - 1 até 15 (de 20 do total)
  • Autor
    Posts
  • em resposta a: Componente UCControlHistorico #5329
    mariodosreis
    Participante

    Bem pior do que isso é aquando do registo no histórico de apenas os campos alterados! Na maioria das vezes, não dá para perceber a que registo da tabela/ficheiro pertence a alteração. Falta o elemento de identificação unívoca PKey ou outro. Tabém parece que no unit UCHist_Form este código ou semelhante ajudaria muito; deixo ao V/criterio a sua implementação “Oficial” ou não:
    procedure TFrmHistorico.StringGrid1DrawCell(Sender: TObject; ACol,
    ARow: Integer; Rect: TRect; State: TGridDrawState);
    Var sa, sb:string;
    begin
    // 1.º evolui sobre a coluna depois sobre a linha
    if ACol=1 then
    sa:=Trim(StringGrid1.Cells[ACol,ARow])
    else
    if ACol>1 then
    sa:=Trim(StringGrid1.Cells[ACol-1,ARow]);

    if ACol=2 then
    sb:=Trim(StringGrid1.Cells[ACol,ARow]) ;

    if ACol =2 then
    if ARow>1 then
    if ( sb <> sa ) then
    begin
    StringGrid1.Canvas.Brush.Color := $00940A4B;
    StringGrid1.Canvas.Font.Style := [fsBold];
    StringGrid1.Canvas.Font.Color := clYellow; // clHighlightText;

    StringGrid1.Canvas.FillRect(Rect);
    StringGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top+2,StringGrid1.Cells[ACol, ARow]);
    end ;
    end;

    Abraço
    Mário

    em resposta a: Falta ZLibExGZ na pasta Terceiros #5020
    mariodosreis
    Participante

    Por favor, alguém pode dizer-me qual é a última versão do UC-sd? Obrigado

    em resposta a: Erro ao validar login #5014
    mariodosreis
    Participante

    Peço desculpa pela insistência e obviamente que este não será o lugar
    mais indicado para esta questão, digo eu! Porém à falta de melhor..
    Verifico que o pessoal está usando versões avançadas do Delphi …
    só que ainda vou no XE7 e dá para fazer tudo o que necessito, pelo menos até hoje.
    A questão que a últma versão do UC Swdelphi não compila e na que tenho 2.2o Firedac tem problemas não vê u UC e vice versa se não estiver no mesmo form?
    Como faço alguém me ajuda a compila-lo para XE7? Obrigado

    em resposta a: UserControl Delphi XE2 #5002
    mariodosreis
    Participante

    Estou há 2/3 dias a tentar instalar a última versão do UserControl no Delphi XE7 e não instala, por mais voltas que lhe
    dê, são só erros; seja a partir do Instalador seja manualmente!
    Francamente não compreendo! Obrigado

    em resposta a: Como atribuir a propriedade DataConnector na execução #4995
    mariodosreis
    Participante

    Como você resolveu? E, qual o connector que está tentando usar?

    em resposta a: UserControl com controle por FILIAL #3808
    mariodosreis
    Participante

    Narba. Diga-me se as cenas que te facultei ajudaram ou não.Qq coisa estamos ai.

    em resposta a: UserControl com controle por FILIAL #3803
    mariodosreis
    Participante

    Exemplo de Pesquisa:

    procedure TFEdtCadastro.btnProcurarClick(Sender: TObject );
    var IPessoa_ID, iCCMenor, iCCMaior: integer;
    SlqFiltra:Boolean ;
    begin

    // Faço um Range para fazer fetch de apenas
    // um registo para a Horta e para AH;
    // para cá trago todos mas posso trazer tb apenas 1.
    (* ***
    São carregada duas variaveis Ci e CF logo a seguir a validar
    *** o user e estão visiveis todo o programa
    *** *)
    // MainForm.cCustosI ; MainForm.cCustosF ;
    iCCMenor := StrToIntDef(IbRtvCfg(36),0) ;
    iCCMaior := StrToIntDef(IbRtvCfg(37),0) ;

    SlqFiltra:=(MainForm.cCustosF>=iCCMenor) OR (MainForm.cCustosF<=iCCMaior);

    if (MainForm.cCustosF=9999999) then // Administrador vê tudo
    SlqFiltra:=False;

    //’ Select * From Pessoas ‘;
    If SlqFiltra Then
    FSelect:=’ Select * From Pessoas P ‘+
    ‘ LEFT OUTER JOIN DISTRITO_CCUSTO CC ON CC.SOCIOS_ID=P.PESSOA_ID ‘
    Else
    FSelect:=’ Select * From Pessoas P ‘;

    If Localizar(IPessoa_ID) then
    begin
    //Sec. Geral Não Há Filtro==Rede Local
    If SlqFiltra Then
    FWhere := ‘ P.PESSOA_ID = ‘ + IntToStr(IPessoa_ID) + ‘ ‘ +
    ‘ AND CC.C_CUSTOS BETWEEN ‘+IntToStr(MainForm.cCustosI)+’ AND ‘+
    IntToStr(MainForm.cCustosF)
    Else
    FWhere := ‘ P.PESSOA_ID = ‘ + IntToStr(IPessoa_ID) ;

    AbrirDataSet;

    end;
    end;
    ====================
    eX:TABELA DISTRITO RELACIONA-SE COM TODOS OS cc
    ====================
    DD DESIG C_CUSTOS
    1 Aveiro 9 999
    2 Beja 9 999
    3 Braga 9 999
    4 Bragança 9 999
    5 Castelo Branco 9 999
    6 Coimbra 9 999
    7 Évora 9 999
    8 Faro 9 999
    9 Guarda 9 999
    10 Leiria 9 999
    11 Lisboa 9 999
    12 Portalegre 9 999
    13 Porto 9 999
    14 Santarém 9 999
    15 Setúbal 9 999
    16 Viana do Castelo 9 999
    17 Vila Real 9 999
    18 Viseu 9 999
    31 Ilha da Madeira 3 100
    32 Ilha de Porto Santo 3 100
    41 Ilha de Santa Maria 4 100
    42 Ilha de Sao Miguel 4 100
    43 Ilha Terceira 4 300
    44 Ilha da Graciosa 4 300
    45 Ilha de Sao Jorge 4 300
    46 Ilha do Pico 4 600
    47 Ilha do Faial 4 600
    48 Ilha das Flores 4 600
    49 Ilha do Corvo 4 600
    99 Angola 9 999
    98 Moçambique 9 999
    97 Brasil 9 999
    96 Estados Unidos America 9 999
    95 Canadá 9 999
    94 Bermudas 9 999
    93 Alemanha 9 999
    92 França 9 999
    91 Espanha 9 999
    90 Macau 9 999
    89 Cabo Verde 9 999
    88 Ucrânia 9 999
    ====================
    c/ESTA VISTA ESTABELEÇO AS RELAÇOES TODAS EXISTENTE
    ====================
    CREATE VIEW DISTRITO_CCUSTO(
    CLIENTE_ID,
    NOCLI_ID_ID,
    CC,
    DD,
    DESIG,
    C_CUSTOS)
    AS
    SELECT C.CLIENTE_ID, C.NOCLI_ID, M.CC , D.DD, D.DESIG, D.C_CUSTOS FROM CLIENTES S
    INNER JOIN MORADAS M ON M.MORADA_ID=C.CLIENTE_ID
    INNER JOIN DISTRITO D ON D.DD=M.DD
    INNER JOIN CONCELHO C ON C.DD=D.DD AND (C.DD=M.DD AND C.CC=M.CC)
    WHERE M.TPMORA=1;

    Eu comecei por falr no CEP mas o CEP é apenas para alimentar os Distritos e por ai adiante porque a tabela de Codigos postais ofial é publica e tem essa informação (distritos e Conclehos) associada ao códigos postais. Então seleccionamos o Codigo Postal e ele traz a restante infomração DD=Distrito e CC=Concelho.
    Não sei em que mais te possa ajudar está praticamente tudo dito.
    Abraço. Vou dormir
    E, POR AQUI É TUDO VALIDADO O LIMITE É O CÉU

    em resposta a: UserControl com controle por FILIAL #3802
    mariodosreis
    Participante

    Correcção:
    quando digo acima” Todas as tabelas do sistema tem de gravar o Campo CCustos…” quero dizer todas as tabelas master, por exemplo Clientes, Fornecedores, Moradas é aqui que tenho o CEP. Depois ligo cliente ou fornecedor com moradas, saco o CEP e com ele vou à tabela de relação intermédia ver se corresponde ao range do meu user.
    Qualquer duvida disponha

    em resposta a: UserControl com controle por FILIAL #3801
    mariodosreis
    Participante

    Eu já fiz uma coisa semelhante. Os meus utilizadores só vêm informação por “Centro de Custos”. Mas depois dentro do programa V. tem igualmente que criar uma tabela de relação dos cliente com os centros de custos.
    Vou deixar-lhe a ideia:
    Tenho 3 centos de custo “A” “B” e “C” mas poderia ser um cento. E, na tabela user do userscontrolo dois campos CCInicial e CCFinal. Então crio um Range indexado a áreas geográficas. Por exemplo “A” vai do 1000 -a- 2000 “B”=2001 -a- 3000 e “C”=3001 a 4000 por exemplo. Todas as tabelas do sistema tem de gravar o Campo CCustos ou outro por exemplo o CEP e alimentar uma tabela intermédia que faça a ligação coerente entre regiões:1 Região Norte, 2 Região Nordeste, 3 Região Centro-Oeste 4 Região Sudeste 5 Região Sul, estas e os Estados as Cidades dos estados os locais das cidades e assim por diante dependendo do nível de detalhe que precisa.
    Eu vivo em Portugal, pais administrativamente dividido Distritos/Ilhas, com Concelhos, cidades, Vilas e freguesias. Com codigos postai distintos ai V. chamam de CEP (Código de Endereçamento Postal) e sempre que aparece um novo que ainda não existe ainda na tal tabela intermédia registo. Depois sempre que alguém quer ver/mexer e não está no range do user não deixo; mas depois à users que têm missões de contrlo e têm de ver tudo ou dois ou tres, então digo CcInicial=1000 e o CCFinal=2000 ou
    ao 3300 ou 4000 se é de um só o CCinicial=3000 e o CCfinal=3000(é o mesmo) e fica ali contido. Mas haverá outra forma de fazer. Esta foi a mais simples e mais rápida que encontrei.

    em resposta a: UserControl com controle por FILIAL #3799
    mariodosreis
    Participante

    O que pretende significar com “Control por Filial”?

    em resposta a: Encontrei Memory Leak’s #3702
    mariodosreis
    Participante

    Prezado Amigo,Aqui, onde diz: “Devido a implementação da classe TUCCurrentUser acima o método TUserControl.RegistraCurrentUser(Dados: TDataSet; Pass: String) ficou assim”:
    Significa exctamente que já não precisamos mais usar o codigo que começo por implementar método no inicio(?) designadamente, quando fazia:    if Assigned(FPerfilUsuario) then
         FreeAndNil(FPerfilUsuario);
    —     if Assigned(FPerfilGrupo) then
            FreeAndNil(FPerfilGrupo);

    percebi bem? é isso mesmo? Obirgado

    em resposta a: Encontrei Memory Leak’s #3663
    mariodosreis
    Participante

    Bom, não expliquei que ainda estou a usar o Delphi XE7; tentei com a função FreeAndNil e não compilou, mas com LFieldList.Free correu bem.
    Enquanto isso verifiquei talvez me falte incluir na
    interface
    uses
    Classes,

    System

    , UCSettings;
    porque causa do “System.SysUtils.FreeAndNil” ou talvez nem seja necessário já que fazem o mesmo.

    De qualquer forma muito Obrigado. Agora é só trabalho de sapa e uns testes e voltarei aqui a dizer se funciona bem só assim.
    Obrigado mesmo.

    em resposta a: Usercontrol Erro EAccessViolation #3656
    mariodosreis
    Participante

    Não se repararam que o Vagner corrigiu o memoty leaks. Pedi k ele partilhasse o código, mas ele, ou não viu ainda ou só quer fazê-lo by the book(Como manda o livrinho)!?
    Não sei é. Às tantas se houver mais gente a pedir o mesmo, pode ser que se apresse a partilhá-lo.

    em resposta a: Encontrei Memory Leak’s #3651
    mariodosreis
    Participante

    Enquanto isso, não poderia partilhar connosco como resolveu o problema para aqueles entre nós que têm o mesmo problema o corrijam sem estar à espera que seja corrigido e republicado no site, pois isso provavelmente irá demorar.
    Já agora pergunto se você usa o UCHISTORIC, é que com esse então não se fala. São só problemas. Obrigado

    em resposta a: Utilização do componente de Histórico #3579
    mariodosreis
    Participante

    Sim há uma forma. Eu fiz isso não lembro exactamento como ; mas a questão
    é que o componente faz simplesmente commit [fecha a tabela] (e eu faço) CommitRetaining para manter os dados visiveis

Visualizando 15 posts - 1 até 15 (de 20 do total)

Ir ao topo
© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados