
William - TI
Membros-
Total de itens
133 -
Registro em
-
Última visita
Tudo que William - TI postou
-
Caro amigo para apenas marcar no sistema como não logado. é simples usando o exemplo que te dei em cima id |data---------|Maquina-- |hora -----| status |Usuario 1 |10/06/2009 | Servidor--| 12:00:00| 1 -----|William 2 |10/06/2009 | est001 ---| 13:00:00 | 1 ------|William 3 |10/06/2009 | est002 ---| 14:00:00 | 1 ------|William 4 |10/06/2009 | Servidor--| 15:00:00| 0 ------|William no select vai aprarecer que esta logado correto 4 |10/06/2009 | Servidor--| 15:00:00| 0 ------|William ai é só você verificar se hora atual é maior que hora da tabela + 00:05:00 caso for de um update tabela set status=1 where status =0 e logar no sistema caso contrario de a menssagem "você esta logado na maquia tal". para isso é só. agora em questão de segurança como nosso amigo churc sitou, para resolver em partes basta você nunca pegar a hora do micro local e sim do servidor como uso mysql eu pego a hora do mysql, pois usuarios normais geralmente não tem acesso ao servidor, isto deve resolver. qualquer coisa posta ai.
-
amigo é so você no mysql na sua tabela colocar o compo codigo como integer, auto increment, not null, primary já deve resolver seu problema.
-
Isto é bem simples, vou te dar um exempolo em mysql e delphi que é o que estou mais abtuado tabela id |data |Maquina |hora | status |Usuario 1 |10/06/2009 | Servidor| 12:00:00 | 1 |William 2 |10/06/2009 | est001 | 13:00:00 | 1 |William 3 |10/06/2009 | est002 | 14:00:00 | 1 |William 4 |10/06/2009 | Servidor| 15:00:00 | 0 |William o que eu faço na hora de entrar no sistema eu pesquisao apnas se a registro no mesmo dia com status 0 para o meu usuario assim Select * from TABELA where data="10/06/2006" and usuario="william" ans status=0 este select me me retornara apenas o que esta em aperto id |data |Maquina |hora | status |Usuario 4 |10/06/2009 | Servidor| 15:00:00 | 0 |William então saberei que no servidor estou logado no meu nome. caso não retorne nada não estou logado em lugar nem um. qualquer coisa posta ai.
-
Isto vai do que você quiser fazer se voce criar uma tabela como sugeri você automaticamente terá um log de acesso. caso queira usar a propia tabela de usuario funcionará perfeitamente tb, você só não terá o log de acesso, mais sem problemas. até mais abraço.
-
via codigo eu não sei mais se ele tiver ficando por traz ecomo você fez não funcionou basta você recortar e colar o msmo vicará sobreposto ao outro componente.
-
Amigo para pegar o nome local da maqui é esta funcão abaixo function NomeComputador : String; var lpBuffer : PChar; nSize : DWord; const Buff_Size = MAX_COMPUTERNAME_LENGTH + 1; begin nSize := Buff_Size; lpBuffer := StrAlloc(Buff_Size); GetComputerName(lpBuffer,nSize); Result := tiramascara(String(lpBuffer)); StrDispose(lpBuffer); end; agora para fazer oque você esta querendo o ideal é criar uma tabela acesso_sistema. quando o usuario logar você salva nesta tabela a data hora minuto segundo que ele logou o nome da maquina e o nome ou codigo do usuario esta tabela deverá conter o campo status onde 0 será logado e 1 será não logado, ao fechar o sistema você deve muda o status do registro para 1. toda vez que o usuario tentar acessar o sistema você faz uma busca na base de dados pegando o dia atual e verificando se tem status 0 se tiver é so mostrar a menssagem você esta logado na maqina TAL. imagino que isso resolva seu problema. qualquer duvida estamos aqui para te ajudar.
-
caso não tenha campos na query apenas nas pesquisa faça assim no onAfterOpen da query digite o codigo TNumericField(QUERY.FieldByName('CAMPO')).DisplayFormat:='###,###,##0.00'; assim tb funciona.
-
Ajuda por favor.. onde esta o erro (RESOLVIDO)
pergunta respondeu ao maudozo01 de William - TI em Delphi, Kylix
Amigo vamos lá como os nossos dois colegas falaram quando se da um append o registro vai para um novo correto e zera todos os valores, execto o da variavel pois esta armazenado, o problema se você entrar no campo e sair dele ele irá zerar a varialvel ao invés de atualizar temta este codigo que postei abaixo e ve se resolve. primeiramente crie a variavel como global ao invés de ser encapsulada. procure no .pas e acrescente = abaixo. var FMVendas : TFMVendas; conta:integer; valor:real; Depois no on actvate do form ou quando iniciar uma nova venda coloque assim procedure FMVendas.FormActivate(Sender: TObject); begin conta :=0; valor :=0l; end; e agora no onexit do DBEdit5Exit coloque assim procedure TFMVendas.DBEdit5Exit(Sender: TObject); begin dmvendas.SimpleDataSetvendas.FieldByName('data_vnd').AsDateTime:= (datetimepicker1.DateTime); dmvendas.SimpleDataSetitens.FieldByName('data_itens').AsDateTime:= (datetimepicker1.DateTime); dmvendas.SimpleDataSetItens.FieldByName('adicional').AsString:= dmvendas.SimpleDataSetItens.FieldByName('nomeproduto').AsString; conta:= conta + dmvendas.SimpleDataSetitens.fieldByname('codigo_itens').asinteger + 1; //o + 1 que esta ai em cima imagino que não precisa mais deixei pois já estava no seu codigo dmvendas.SimpleDataSetitens.FieldByName('codigo_pro').AsFloat:= dmvendas.SimpleDataSetitens.FieldByName('codigoproduto').AsFloat; dmvendas.SimpleDataSetitens.FieldByName('valor_pro').Asfloat:= dmvendas.SimpleDataSetitens.FieldByName('valorproduto').Asfloat * dmvendas.SimpleDataSetitens.FieldByName('qtda_itens').Asfloat; valor:= valor + dmvendas.SimpleDataSetItens.fieldbyname('valor_pro').asfloat; dmvendas.SimpleDataSetitens.Append; dmvendas.SimpleDataSetitens.fieldByname('codigo_itens').asfloat:= conta; dmvendas.SimpleDataSetitens.FieldByName('totalvendas').Asfloat:= dmvendas.SimpleDataSetitens.FieldByName('totalvendas').Asfloat + valor; dbedit4.SetFocus; end; imagino que agora resolva mais qualquer coisa posta ai que estaremos aqi para te ajudar. -
Converter Time (tempo) em float (Resolvido)
pergunta respondeu ao William - TI de William - TI em Delphi, Kylix
Daniel muito obrigado, testei a função e deu certinho como precisava. valeu. problema resolvido. -
Boa tarde Mais uma vez estou presisando da ajuda de vocês. agora preciso converter time em float ex. tenho o totais de horas trabalhadas. 09:00:00 09:00:00 09:00:00 09:00:00 08:00:00 ________ 44:00:00 porem quando somo normal com o tipo timer ele me da um total de 20:00:00 ao invés de 44:00:00 alguém tem ideia de como faz a soma de horas podendo ultrapasar a 24h ou converter time em float? mais uma vez grato pela atenção.
-
Indexar em orden decrecente no dbCrid
pergunta respondeu ao William - TI de William - TI em Delphi, Kylix
Amigo pior que não tem. agradeço a atenção. tb estou buscando alternativa caso ache posto aqui. -
Indexar em orden decrecente no dbCrid
pergunta respondeu ao William - TI de William - TI em Delphi, Kylix
Caros amigo ainda não consegui. aqui vai minha duvida. como uso Zeues auterei o codigo assim. procedure OrdenaDataSetGrid( var CDS: TZMySqlQuery; Column: TColumn; var dbgPrin: TDBGrid); auterei de TClientDataSet; para TZMySqlQuery; porem me da um erro nesta parte if bolUsed then CDS.DeleteIndex(Column.Field.FieldName); (Aqui da erro) try CDS.AddIndex(Column.Field.FieldName, Column.Field.FieldName,idOptions, '', '', 0); (aqui da erro) strColumn := Column.Field.FieldName; imagino que o erro esta por na query não deve exixtir DeleteIndex e nem AddIndex gostaria de saber por qual eu substituo. mais uma vez grato pela atenção. -
Indexar em orden decrecente no dbCrid
pergunta respondeu ao William - TI de William - TI em Delphi, Kylix
Amigo estou tendo uma certa dificuldade para usar o codigo pois uso o componente Zeus, componente query. você tem exemplo para para o query do zeus? muito grato pela resposta. -
Bom dia. E ai galera mais uma vez estou aqui com um problema, preciso indexar de orden inversa ao clicar no titulo do Grid. so que não quero usar a pesquisa com order by campo desc ordenar normal eu consigo fazendo assim no ontitleclick do dbgrid. qryQuery.IndexFieldNames:= dbgrid1.Columns[Column.index].FieldName; agora inverso não faço nem ideia de como fazer. mais uma vez grato pela atenção.
-
(Resolvido) Select com 2 order by (mysql)
pergunta respondeu ao William - TI de William - TI em Delphi, Kylix
estou passando para avisar que já esta certo. Consegui fazer. seria + ou - assim select * from tabela order by idade, nome -
Caros amigos preciso fazer um select que nele preciso agrupor por dois criterios tabela: codigo nome idade 1 aaaa 12 2 bbbb 11 3 aaaa 11 pra entender preciso de um select que organize por idade e depos por ordem alfabética. teria de ficar assim. codigo nome idade 3 aaaa 11 2 bbbb 11 1 aaaa 12 só que não consigo fazer por nada neste mundo. Postei aqui por que não achei tópico relacionado ao mysql mais uma vez grato pela atenção.
-
(Resolvido) Imprimrir o que esta no Webborwser
pergunta respondeu ao William - TI de William - TI em Delphi, Kylix
Amigão é isso mesmo problema resolvido muito obrigado. -
Amigo estive dando uma olhada já tive esta duvida o que resolvel para o meu sistema foi espalhar este codigo pelas linhas de codigos Application.ProcessMessages; tipo : while not query1.eof do begin //funcoes.. query1.next; Application.ProcessMessages; end; isto deve resolver seu problema.
-
Caros amigos, mais uma vez estou presisando da ajuda de vocês. fiz um mini navegador porém gostaria de saber se tem como imprimir na impressora o que esta no webbrowser. grato pela atenção... abraços.
-
(Resolvido) Processo muito longo
pergunta respondeu ao William - TI de William - TI em Delphi, Kylix
Muito obrigado amigo espalhei pelo processo o Application.ProcessMessages; e tudo resolvido muito obrigado mesmo... falow abraços -
Boa tarde. mais uma vez preciso da ajuda de vocês. fiz um processo muito longo, porém quando o sistema esta executando este precesso da impressã que tava, tipo congela a tela fica branco... só que o sistemacontinua percorrendo normalmente, tem algum comando que espalho no processo para não congelar a tela? mais uma vez grato pela ajuda.
-
Muito obrigado Jhonas. abraço.
-
Caros amigos não sei se o correto seria postar aqui porém não achei outro tópico relacionado, meu mysql esta criando 3 databases sozinho já procurei pelo nome das database porem não achei nada a respeito o nome delas são: Fd545720 Fd652056 Fd587555 elas não atrapalha em nada e tb não tem nada dentro (tabelas nada) porém se eu excluilas e dar reflesh elas voltam sozinhas alguém tem ideia do que é?
-
abrir query com vários dados depois de um while
pergunta respondeu ao flavioavilela de William - TI em Delphi, Kylix
Boa tarde amigo o ideal neste caso é você ir pesquisando e inserindo em uma tabela temporaria depois só dar um select * from temporario e mostrar no grid. pois da maneira que você esta fazendo você pesquisa e depois pesquisa outra coisa na mesma query ai só irá mostrar o último mesmo. caso você ainda não sabe como criar temporario e inserir dados ne posta ai que nos te ajudamos .. abraços -
Caro amigo Boa tarde não sei se entendi direito mais vamos la. para saber data de 3 meses atras é so fazer assim label1.caption :=FormatDateTime('dd-mm-yyyy',date - 90); 6meses label1.caption :=FormatDateTime('dd-mm-yyyy',date - 180); agora para obter a media depende da consulta que você vai fazer dos valores. por exemplo você teve 10 vendas qeu totalizaram 10.000,00 basta dividir 10.000,00 por 10 que data a media de 1.000,00 para entender so dividir o valor pela quantidade de vendas.. caso alguma coisa não ficou claro posta ai.. abraços.