d@rk Posted May 24, 2006 at 02:22 PM Report Share #29307 Posted May 24, 2006 at 02:22 PM Boas..... Peço k m ajudem urgentemente é k preciso de fazer um projecto e tou empancado lá com uma cena, tipo tenho de fazer uma aplicação tipo relogio de ponto (akele relogio k há a entrada das empresas onde as pessoas picam o ponto, mas tenho de fazer em aplicação tipo ñ precisa de nenhum hardware extra nem cartoes), onde a aplicação tem de pedir ao utilizador k faça login depois de o utilizador fazer login a aplicaçã regista essa hora na base de dados e ao fim do dia o utilizador faz logout e essa aplicação regista essa hora novamente, isto tudo numa base de dados, k é uma cena k tb ñ consigo... peço ajuda é mt urgente..... agradeço a kem m ajude... Link to comment Share on other sites More sharing options...
vaurdan Posted May 24, 2006 at 06:49 PM Report Share #29331 Posted May 24, 2006 at 06:49 PM olha nao fassas topicos como "ajuda urgente" mas sim especifica o que queres na ajuda tipo " relogio de ponto"...epro que nao leves a mal este topico 👍 http://www.neopt.org <- O meu blog xD Link to comment Share on other sites More sharing options...
Asgorath Posted May 25, 2006 at 10:00 AM Report Share #29433 Posted May 25, 2006 at 10:00 AM Já que estas intalado numa coisa tao simples de fazer vou te dar umas dicas. Isso o script de criacao da tabela Ponto que usamos na minha empresa, é MS SQL 2000 e nao access. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ponto]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[ponto] GO CREATE TABLE [dbo].[ponto] ( [movimento] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [Trabalhador] [numeric](3, 0) NOT NULL , [inicio] [smalldatetime] NULL , [Fim] [smalldatetime] NULL , [infim] [bit] NOT NULL , [delta] [numeric](6, 2) NULL , [deltah] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [tipo] [numeric](1, 0) NULL ) ON [PRIMARY] GO Campos : O movimento é necessario para poderes fazer alteracoes aos dados. Trabalhador : num de trabalhador , vais a buscar o numero a tabela de trabalhador Inicio : Hora de abertura do ponto Fim : hora de fecho de ponto Infim : 0 : movimento aberto, 1 movimento fechado Delta : diferenca em minutos entra a hora inicial e final DeltaH: diferenca em minutos entra a hora inicial e final em formato texto : hh:mm Tipo : tipo de horario. A minha empresa considera os seguintes tipos de horarios : 1 Normal 2 Extra. 3 Faltas Injustificadas 4 Faltas Just. s/ Retribuição 5 Faltas Just. c/ Retribuição 6 Férias 7 Doença 8 Compensação A seguir o script do inicia_ponto que recebe o numero de trabalhador e tipo de horario CREATE PROCEDURE Inicia_ponto -- Versão 1 - dia 04-01-98 -- Inicia um movimento de um trabalhador -- Tipos : -- 1 Normal -- 2 Extra. -- 3 Faltas Injustificadas -- 4 Faltas Just. s/ Retribuição -- 5 Faltas Just. c/ Retribuição -- 6 Férias -- 7 Doença -- 8 Compensação @trabalhador numeric(3,0), -- numero de trabalhador @tipo numeric (1,0) -- tipo de horario AS Insert into ponto values(@trabalhador, getdate(),null,1,0,'',@tipo) return 1 /* ok */ GO A funcao getdate() devolve a hora do servidor onde esta instaldo o sql server A seguir o script o Fecha_Ponto que recebe o numero de trabalhador CREATE PROCEDURE dbo.Fecha_ponto -- Versao 1 -- Dia 04-01-98 -- Fecha o ponto aberto de um trablhador @trabalhador numeric(3,0) -- numero do trabalhador AS declare @delta numeric(15,5) -- diferenca declare @Inicio smalldatetime -- inicio declare @data smalldatetime -- data actual declare @mov numeric(18,0) -- numero de movimento If exists (select * from ponto where trabalhador = @trabalhador and infim = 1 ) begin select @Inicio=Inicio, @mov = movimento from ponto where trabalhador = @trabalhador and infim = 1 select @data = getdate() select @delta = (datediff(mi,@Inicio,@data)) update ponto set infim = 0, fim = @data, delta = @delta where trabalhador = @trabalhador and infim = 1 and movimento = @mov update ponto set delta = delta/60 where trabalhador = @trabalhador and movimento = @mov update ponto set deltah = rtrim(convert(char(2),floor(delta))) + ':' + rtrim(convert(char(2),convert(int,((delta-floor(delta)))*60))) where trabalhador = @trabalhador and movimento = @mov return 1 end else return 0 GO O datediif devolve a diferenca em minutos entre as duas datas. Asumo que sabes chamar stored procedures a partir do vb 6? Jorge "The Dark Side Clouds Everthing. Impossible To See The Future Is."My rig: Intel Core 2 Quad Q9450 | abit IP35P | 4G Kingston 800 Mhz | XFX GeForce 9800 GX2 1G ddr3 | 2X WD5000AAJS 500Gb Sata 2 | PSU 600W || Caixa El-Diablo | Creative XMod Link to comment Share on other sites More sharing options...
Crack Posted May 27, 2006 at 09:27 PM Report Share #29740 Posted May 27, 2006 at 09:27 PM é facil fazer isso, simplesmente explicar aqui tudo é que é dificil Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now