Clipper On Line • Ver Tópico - Agendamento de Visitas, incrementar a hora

Agendamento de Visitas, incrementar a hora

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Agendamento de Visitas, incrementar a hora

Mensagempor Kapiaba » 16 Mar 2015 10:22

Agendamento de Visitas, incrementar a hora.

Senhore, bom dia, como eu faço, conforme a imagem abaixo, ir incrementando em um WHILE... ENDDO, a hora da agenda, de 30 em 30 minutos, 8:00 + 30 + 30 + 30... Nunca fiz, alguém tem um exemplinho:

Imagem

Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Agendamento de Visitas, incrementar a hora

Mensagempor Vander » 16 Mar 2015 11:22

Uso esta rotina em agenda de atendimento médico com intervalos que pode ser de 15, 30 ou 45 minutos.
Com esta rotina pode-se definir intervalos diferentes para os dias.

//------------------------------ MONTAR AGENDA
#INCLUDE "FiveWin.ch"
#Include "VOGET.ch"
FUNCTION MONTAR()
   CLOSE DATABASE
   ABRIRAR()
   SELECT DEFIN1
   IF RECCOUNT() = 0
      APPE BLAN
   ENDIF
   //------------------- INTERVALO
   SELECT DEFIN1
   xINTERVALO := INTERVALO1
   //------------------- MANHÃ
   xSEGINICMA := SEGINICMA1
   xSEGFINAMA := SEGFINAMA1
   xTERINICMA := TERINICMA1
   xTERFINAMA := TERFINAMA1
   xQUAINICMA := QUAINICMA1
   xQUAFINAMA := QUAFINAMA1
   xQUIINICMA := QUIINICMA1
   xQUIFINAMA := QUIFINAMA1
   xSEXINICMA := SEXINICMA1
   xSEXFINAMA := SEXFINAMA1
   //------------------- TARDE
   xSEGINICTA := SEGINICTA1
   xSEGFINATA := SEGFINATA1
   xTERINICTA := TERINICTA1
   xTERFINATA := TERFINATA1
   xQUAINICTA := QUAINICTA1
   xQUAFINATA := QUAFINATA1
   xQUIINICTA := QUIINICTA1
   xQUIFINATA := QUIFINATA1
   xSEXINICTA := SEXINICTA1
   xSEXFINATA := SEXFINATA1
   //-------------------
   DEFINE FONT oFontAC1 NAME "LUCIDA CONSOLE"  SIZE 0,-(12*1.33)
   DEFINE DIALOG TECL21 RESOURCE "DEFICAO1" TITLE "# DEFINIÇÕES DA AGENDA #"
   //------------------- INTERVALO
   REDEFINE GET zINTERVALO VAR xINTERVALO ID 101  PICTURE "@E 99"     FONT oFontAC1 VALID VERINTERV(xINTERVALO,"xINTERVALO","zINTERVALO")      // VALID xINTERVALO > 0 .AND. xINTERVALO < 61
   //------------------- MANHÃ
   REDEFINE GET zSEGINICMA VAR xSEGINICMA ID 102  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xSEGINICMA,"xSEGINICMA","zSEGINICMA")
   REDEFINE GET zSEGFINAMA VAR xSEGFINAMA ID 103  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xSEGFINAMA,"xSEGFINAMA","zSEGFINAMA")
   REDEFINE GET zTERINICMA VAR xTERINICMA ID 104  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xTERINICMA,"xTERINICMA","zTERINICMA")
   REDEFINE GET zTERFINAMA VAR xTERFINAMA ID 105  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xTERFINAMA,"xTERFINAMA","zTERFINAMA")
   REDEFINE GET zQUAINICMA VAR xQUAINICMA ID 106  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xQUAINICMA,"xQUAINICMA","zQUAINICMA")
   REDEFINE GET zQUAFINAMA VAR xQUAFINAMA ID 107  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xQUAFINAMA,"xQUAFINAMA","zQUAFINAMA")
   REDEFINE GET zQUIINICMA VAR xQUIINICMA ID 108  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xQUIINICMA,"xQUIINICMA","zQUIINICMA")
   REDEFINE GET zQUIFINAMA VAR xQUIFINAMA ID 109  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xQUIFINAMA,"xQUIFINAMA","zQUIFINAMA")
   REDEFINE GET zSEXINICMA VAR xSEXINICMA ID 110  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xSEXINICMA,"xSEXINICMA","zSEXINICMA")
   REDEFINE GET zSEXFINAMA VAR xSEXFINAMA ID 111  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMIMA(xSEXFINAMA,"xSEXFINAMA","zSEXFINAMA")
   //------------------- TARDE
   REDEFINE GET zSEGINICTA VAR xSEGINICTA ID 112  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xSEGINICTA,"xSEGINICTA","zSEGINICTA")
   REDEFINE GET zSEGFINATA VAR xSEGFINATA ID 113  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xSEGFINATA,"xSEGFINATA","zSEGFINATA")
   REDEFINE GET zTERINICTA VAR xTERINICTA ID 114  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xTERINICTA,"xTERINICTA","zTERINICTA")
   REDEFINE GET zTERFINATA VAR xTERFINATA ID 115  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xTERFINATA,"xTERFINATA","zTERFINATA")
   REDEFINE GET zQUAINICTA VAR xQUAINICTA ID 116  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xQUAINICTA,"xQUAINICTA","zQUAINICTA")
   REDEFINE GET zQUAFINATA VAR xQUAFINATA ID 117  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xQUAFINATA,"xQUAFINATA","zQUAFINATA")
   REDEFINE GET zQUIINICTA VAR xQUIINICTA ID 118  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xQUIINICTA,"xQUIINICTA","zQUIINICTA")
   REDEFINE GET zQUIFINATA VAR xQUIFINATA ID 119  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xQUIFINATA,"xQUIFINATA","zQUIFINATA")
   REDEFINE GET zSEXINICTA VAR xSEXINICTA ID 120  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xSEXINICTA,"xSEXINICTA","zSEXINICTA")
   REDEFINE GET zSEXFINATA VAR xSEXFINATA ID 121  PICTURE "@E 99.99"  FONT oFontAC1 VALID VERHOMITA(xSEXFINATA,"xSEXFINATA","zSEXFINATA")
   REDEFINE BUTTON ID 124 cancel ACTION TECL21:End()
   ACTIVATE DIALOG TECL21 CENTERED
   oFontAC1:END()
RETURN .T.
//--------------------- VALIDAR INTERVALO
FUNCTION VERINTERV(HORMIN,_CAMPO,_ATUALI)
   IF  xINTERVALO <> 15 .AND. xINTERVALO <> 30 .AND. xINTERVALO <> 45
       MSGSTOP("O intervalo deve ser de 15, 30 ou 45 minutos.","# Erro no intervalo #")
      RETURN .F.
   ENDIF
   SELECT DEFIN1
   REPLACE INTERVALO1 WITH HORMIN
   &_CAMPO := HORMIN
   &_ATUALI:VARPUT(&_CAMPO)
   &_ATUALI:REFRESH()
RETURN .T.
//--------------------- VALIDAR HORA / MINUTOS MANHÃ
FUNCTION VERHOMIMA(HORMIN,_CAMPO,_ATUALI)
   IF HORMIN = 0
      HORMIN := 0
      GRAVADEF()
      HORA1 := SUBSTR(STR(HORMIN),1,2)
      HORA2 := VAL(HORA1)
      MINU1 := SUBSTR(STR(HORMIN),4,2)
      MINU2 := VAL(MINU1)
      &_CAMPO := HORMIN     // STRZERO(HORA2,2)+":"+STRZERO(MINU2,2)
      &_ATUALI:VARPUT(&_CAMPO)
      &_ATUALI:REFRESH()
      RETURN .T.
   ENDIF
   HORA1 := SUBSTR(STR(HORMIN),1,2)
   HORA2 := VAL(HORA1)
   IF HORA2 < 6 .OR. HORA2 > 12
      MSGSTOP("A hora deve estar entre 6 e 12.","# Erro na hora #")
      RETURN .F.
   ENDIF
   MINU1 := SUBSTR(STR(HORMIN),4,2)
   MINU2 := VAL(MINU1)
   IF MINU2 < 0 .OR. MINU2 > 59
      MSGSTOP("Os mimutos devem estar entre 0 e 59.","# Erro nos minutos #")
      RETURN .F.
   ENDIF
   GRAVADEF()
   &_CAMPO := VAL(STRZERO(HORA2,2)+"."+STRZERO(MINU2,2))
   &_ATUALI:VARPUT(&_CAMPO)
   &_ATUALI:REFRESH()
RETURN .T.
//--------------------- VALIDAR HORA / MINUTOS TARDE
FUNCTION VERHOMITA(HORMIN,_CAMPO,_ATUALI)
   IF HORMIN = 0
      HORMIN := 0
      GRAVADEF()
      HORA1 := SUBSTR(STR(HORMIN),1,2)
      HORA2 := VAL(HORA1)
      MINU1 := SUBSTR(STR(HORMIN),4,2)
      MINU2 := VAL(MINU1)
      &_CAMPO := HORMIN //STRZERO(HORA2,2)+":"+STRZERO(MINU2,2)
      &_ATUALI:VARPUT(&_CAMPO)
      &_ATUALI:REFRESH()
      RETURN .T.
   ENDIF
   HORA1 := SUBSTR(STR(HORMIN),1,2)
   HORA2 := VAL(HORA1)
   IF HORA2 < 13 .OR. HORA2 > 20
      MSGSTOP("A hora deve estar entre 13 e 20.","# Erro na hora #")
      RETURN .F.
   ENDIF
   MINU1 := SUBSTR(STR(HORMIN),4,2)
   MINU2 := VAL(MINU1)
   IF MINU2 < 0 .OR. MINU2 > 59
      MSGSTOP("Os mimutos devem estar entre 0 e 59.","# Erro nos minutos #")
      RETURN .F.
   ENDIF
   GRAVADEF()
   &_CAMPO := VAL(STRZERO(HORA2,2)+"."+STRZERO(MINU2,2) )
   &_ATUALI:VARPUT(&_CAMPO)
   &_ATUALI:REFRESH()
RETURN .T.
//------------------------------ GRAVAR DEFINIÇOES
FUNCTION GRAVADEF()
   SELECT DEFIN1
   //------------------- MANHÃ
   REPLACE SEGINICMA1 WITH xSEGINICMA
   REPLACE SEGFINAMA1 WITH xSEGFINAMA
   REPLACE TERINICMA1 WITH xTERINICMA
   REPLACE TERFINAMA1 WITH xTERFINAMA
   REPLACE QUAINICMA1 WITH xQUAINICMA
   REPLACE QUAFINAMA1 WITH xQUAFINAMA
   REPLACE QUIINICMA1 WITH xQUIINICMA
   REPLACE QUIFINAMA1 WITH xQUIFINAMA
   REPLACE SEXINICMA1 WITH xSEXINICMA
   REPLACE SEXFINAMA1 WITH xSEXFINAMA
   //------------------- TARDE
   REPLACE SEGINICTA1 WITH xSEGINICTA
   REPLACE SEGFINATA1 WITH xSEGFINATA
   REPLACE TERINICTA1 WITH xTERINICTA
   REPLACE TERFINATA1 WITH xTERFINATA
   REPLACE QUAINICTA1 WITH xQUAINICTA
   REPLACE QUAFINATA1 WITH xQUAFINATA
   REPLACE QUIINICTA1 WITH xQUIINICTA
   REPLACE QUIFINATA1 WITH xQUIFINATA
   REPLACE SEXINICTA1 WITH xSEXINICTA
   REPLACE SEXFINATA1 WITH xSEXFINATA
RETURN .T.

//---------------------------- CRIAR AGENDA
FUNCTION CRIAR()
   CLOSE DATABASE
   ABRIRAR()
   SELECT DEFIN1
   tore:=RECCOUNT()
   IF tore = 0
      MSGSTOP("NÃO HÁ DEFINIÇÕES PARA MONTAR ESTA AGENDA."," # AVISO #")
      RETURN .T.
   ENDIF
   SELECT DEF_TEM
   ZAP
   APPE BLAN
   REPLACE INTERVALOT WITH DEFIN1->INTERVALO1                                                                  // INTERVALO
  //------------------- MANHÃ
   REPLACE SEGINICMAT WITH DEFIN1->(SUBSTR(STRZERO(SEGINICMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(SEGINICMA1),4,2))  // HORA INICIO MANHA
   REPLACE SEGFINAMAT WITH DEFIN1->(SUBSTR(STRZERO(SEGFINAMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(SEGFINAMA1),4,2))  // HORA FINAL  MANHA
   REPLACE TERINICMAT WITH DEFIN1->(SUBSTR(STRZERO(TERINICMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(TERINICMA1),4,2))  // HORA INICIO MANHA
   REPLACE TERFINAMAT WITH DEFIN1->(SUBSTR(STRZERO(TERFINAMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(TERFINAMA1),4,2))  // HORA FINAL  MANHA
   REPLACE QUAINICMAT WITH DEFIN1->(SUBSTR(STRZERO(QUAINICMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(QUAINICMA1),4,2))  // HORA INICIO MANHA
   REPLACE QUAFINAMAT WITH DEFIN1->(SUBSTR(STRZERO(QUAFINAMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(QUAFINAMA1),4,2))  // HORA FINAL  MANHA
   REPLACE QUIINICMAT WITH DEFIN1->(SUBSTR(STRZERO(QUIINICMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(QUIINICMA1),4,2))  // HORA INICIO MANHA
   REPLACE QUIFINAMAT WITH DEFIN1->(SUBSTR(STRZERO(QUIFINAMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(QUIFINAMA1),4,2))  // HORA FINAL  MANHA
   REPLACE SEXINICMAT WITH DEFIN1->(SUBSTR(STRZERO(SEXINICMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(SEXINICMA1),4,2))  // HORA INICIO MANHA
   REPLACE SEXFINAMAT WITH DEFIN1->(SUBSTR(STRZERO(SEXFINAMA1),1,2))+":"+DEFIN1->(SUBSTR(STR(SEXFINAMA1),4,2))  // HORA FINAL  MANHA
   //------------------- TARDE
   REPLACE SEGINICTAT WITH DEFIN1->(SUBSTR(STR(SEGINICTA1),1,2))+":"+DEFIN1->(SUBSTR(STR(SEGINICTA1),4,2))  // HORA INICIO TARDE
   REPLACE SEGFINATAT WITH DEFIN1->(SUBSTR(STR(SEGFINATA1),1,2))+":"+DEFIN1->(SUBSTR(STR(SEGFINATA1),4,2))  // HORA FINAL  TARDE
   REPLACE TERINICTAT WITH DEFIN1->(SUBSTR(STR(TERINICTA1),1,2))+":"+DEFIN1->(SUBSTR(STR(TERINICTA1),4,2))  // HORA INICIO TARDE
   REPLACE TERFINATAT WITH DEFIN1->(SUBSTR(STR(TERFINATA1),1,2))+":"+DEFIN1->(SUBSTR(STR(TERFINATA1),4,2))  // HORA FINAL  TARDE
   REPLACE QUAINICTAT WITH DEFIN1->(SUBSTR(STR(QUAINICTA1),1,2))+":"+DEFIN1->(SUBSTR(STR(QUAINICTA1),4,2))  // HORA INICIO TARDE
   REPLACE QUAFINATAT WITH DEFIN1->(SUBSTR(STR(QUAFINATA1),1,2))+":"+DEFIN1->(SUBSTR(STR(QUAFINATA1),4,2))  // HORA FINAL  TARDE
   REPLACE QUIINICTAT WITH DEFIN1->(SUBSTR(STR(QUIINICTA1),1,2))+":"+DEFIN1->(SUBSTR(STR(QUIINICTA1),4,2))  // HORA INICIO TARDE
   REPLACE QUIFINATAT WITH DEFIN1->(SUBSTR(STR(QUIFINATA1),1,2))+":"+DEFIN1->(SUBSTR(STR(QUIFINATA1),4,2))  // HORA FINAL  TARDE
   REPLACE SEXINICTAT WITH DEFIN1->(SUBSTR(STR(SEXINICTA1),1,2))+":"+DEFIN1->(SUBSTR(STR(SEXINICTA1),4,2))  // HORA INICIO TARDE
   REPLACE SEXFINATAT WITH DEFIN1->(SUBSTR(STR(SEXFINATA1),1,2))+":"+DEFIN1->(SUBSTR(STR(SEXFINATA1),4,2))  // HORA FINAL  TARDE
   SELECT AGEND1
   ORDSETFOCUS( "CONS101" )  // DATA
   GO BOTT
   IF AGECONS = CTOD("")
      din:=DATE()
     else
      DIN := AGECONS + 1
   ENDIF
   adin:=din+1
   DFI := DIN + 180
   TDM:=0
   RTR:= DFI - DIN
   DEFINE FONT oFontAC1 NAME "LUCIDA CONSOLE"  SIZE 0,-(12*1.33)
   DEFINE DIALOG TECL1 RESOURCE "MONTAG1" TITLE "# MONTAR AGENDA #"
   REDEFINE SAY oSAY2 PROMPT "Total de "+STRZERO(TDM,4)+" dias incluídos na agenda de "+STRZERO(RTR,4) ID 3  FONT oFontAC1 Update
   REDEFINE GET zDIN VAR DIN ID 101                      FONT oFontAC1
   REDEFINE GET zDFI VAR DFI ID 102 VALID VERPO(DFI,DIN) FONT oFontAC1
   REDEFINE BUTTON oBOTAS1   ID 103 cancel ACTION (MONTARA(DIN,DFI),TECL1:End())
   REDEFINE BUTTON           ID 104 cancel ACTION TECL1:End()
   ACTIVATE DIALOG TECL1 CENTERED ON INIT oBOTAS1:HIDE()
   oFontAC1:END()
   CLOSE DATABASE
RETURN .T.
//-------------------
FUNCTION VERPO(DFI,DIN)
   IF DFI < DIN
      RETURN .T.
   ENDIF
   IF DFI > DATE()
      oBOTAS1:SHOW()
     ELSE
      oBOTAS1:HIDE()
   ENDIF
RETURN .T.
//---------------------- MONTAR
FUNCTION MONTARA(DI,DF)
   RTR  := DF - DI
   MDIA := "   "
   AGEND  := "AGEND1"
   di := di-1
   df := df-1
   DO WHILE DI-1 <> DF
      DI++
      IF DOW(DI) = 1 .or. DOW(DI) = 7
         LOOP
      ENDIF
//----------------- SEGUNDA
      IF DOW(DI) = 2
         if val(DEF_TEM->SEGINICMAT) <> 0
            SELECT &AGEND
            APPE BLAN
            //-------------- MANHA - PRIMEIRA
            REPLACE AGE_DIA WITH "SEG"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH DEF_TEM->SEGINICMAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- MANHA - DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "SEG"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->SEGFINAMAT,1,2)+"."+SUBSTR(DEF_TEM->SEGFINAMAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
            cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
            APPE BLAN
            REPLACE AGE_DIA WITH "SEG"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH cNovo
            REPLACE AGEPACI WITH "******* HORÁRIO DE ALMOÇO ******"
         endif
         if val(DEF_TEM->SEGINICTAT) <> 0
         //-------------- TARDE - PRIMEIRA
            APPE BLAN
            REPLACE AGE_DIA WITH "SEG"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH DEF_TEM->SEGINICTAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- TARDE - DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "SEG"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->SEGFINATAT,1,2)+"."+SUBSTR(DEF_TEM->SEGFINATAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
         endif
      ENDIF
      //----------------- TERÇA
      IF DOW(DI) = 3
         if val(DEF_TEM->TERINICMAT) <> 0
            SELECT &AGEND
            APPE BLAN
            //-------------- MANHA PRIMEIRA
            REPLACE AGE_DIA WITH "TER"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH DEF_TEM->TERINICMAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- MANHA DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "TER"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->TERFINAMAT,1,2)+"."+SUBSTR(DEF_TEM->TERFINAMAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
            cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
            APPE BLAN
            REPLACE AGE_DIA WITH "TER"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH cNovo
            REPLACE AGEPACI WITH "******* HORÁRIO DE ALMOÇO ******"
         endif
         if val(DEF_TEM->TERINICTAT) <> 0
            //-------------- TARDE - PRIMEIRA
            APPE BLAN
            REPLACE AGE_DIA WITH "TER"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH DEF_TEM->TERINICTAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- TARDE - DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "TER"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->TERFINATAT,1,2)+"."+SUBSTR(DEF_TEM->TERFINATAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
         endif
      ENDIF
      //----------------- QUARTA
      IF DOW(DI) = 4
         if val(DEF_TEM->QUAINICMAT) <> 0
            SELECT &AGEND
            APPE BLAN
            REPLACE AGE_DIA  WITH "QUA"
            REPLACE AGECONS  WITH DI
            //-------------- MANHA PRIMEIRA
            REPLACE AGEHORA  WITH DEF_TEM->QUAINICMAT
            REPLACE AGEPACI  WITH "LIVRE"
            //-------------- MANHA DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "QUA"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->QUAFINAMAT,1,2)+"."+SUBSTR(DEF_TEM->QUAFINAMAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
            cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
            APPE BLAN
            REPLACE AGE_DIA WITH "QUA"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH cNovo
            REPLACE AGEPACI WITH "******* HORÁRIO DE ALMOÇO ******"
         endif
         //-------------- TARDE - PRIMEIRA
         if val(DEF_TEM->QUAINICTAT) <> 0
            APPE BLAN
            REPLACE AGE_DIA WITH "QUA"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH DEF_TEM->QUAINICTAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- TARDE - DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "QUA"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->QUAFINATAT,1,2)+"."+SUBSTR(DEF_TEM->QUAFINATAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
         endif
      ENDIF
      //----------------- QUINTA
      IF DOW(DI) = 5
         if val(DEF_TEM->QUIINICMAT) <> 0
            SELECT &AGEND
            APPE BLAN
            REPLACE AGE_DIA WITH "QUI"
            REPLACE AGECONS WITH DI
            //-------------- MANHA PRIMEIRA
            REPLACE AGEHORA WITH DEF_TEM->QUIINICMAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- MANHA DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "QUI"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->QUIFINAMAT,1,2)+"."+SUBSTR(DEF_TEM->QUIFINAMAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
            cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
            APPE BLAN
            REPLACE AGE_DIA WITH "QUI"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH cNovo
            REPLACE AGEPACI WITH "******* HORÁRIO DE ALMOÇO ******"
         endif
         if val(DEF_TEM->QUIINICTAT) <> 0
         //-------------- TARDE - PRIMEIRA
            APPE BLAN
            REPLACE AGE_DIA WITH "QUI"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH DEF_TEM->QUIINICTAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- TARDE - DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "QUI"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->QUIFINATAT,1,2)+"."+SUBSTR(DEF_TEM->QUIFINATAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
         endif
      ENDIF
      //----------------- SEXTA
      IF DOW(DI) = 6
         if val(DEF_TEM->SEXINICMAT) <> 0
            SELECT &AGEND
            APPE BLAN
            REPLACE AGE_DIA WITH "SEX"
            REPLACE AGECONS WITH DI
           //-------------- MANHA PRIMEIRA
            REPLACE AGEHORA WITH DEF_TEM->SEXINICMAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- MANHA DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "SEX"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->SEXFINAMAT,1,2)+"."+SUBSTR(DEF_TEM->SEXFINAMAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
            cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
            APPE BLAN
            REPLACE AGE_DIA WITH "SEX"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH cNovo
            REPLACE AGEPACI WITH "******* HORÁRIO DE ALMOÇO ******"
         endif
         if val(DEF_TEM->SEXINICTAT) <> 0
         //-------------- TARDE - PRIMEIRA
            APPE BLAN
            REPLACE AGE_DIA WITH "SEX"
            REPLACE AGECONS WITH DI
            REPLACE AGEHORA WITH DEF_TEM->SEXINICTAT
            REPLACE AGEPACI WITH "LIVRE"
            //-------------- TARDE - DEMAIS
            DO WHILE .T.
               cNovo := SomaTempo(AGEHORA,DEF_TEM->INTERVALOT)
               APPE BLAN
               REPLACE AGE_DIA WITH "SEX"
               REPLACE AGECONS WITH DI
               REPLACE AGEHORA WITH cNovo
               REPLACE AGEPACI WITH "LIVRE"
               FIMMAN := VAL(SUBSTR(DEF_TEM->SEXFINATAT,1,2)+"."+SUBSTR(DEF_TEM->SEXFINATAT,4,2))
               ULTMHO := VAL(SUBSTR(cNovo,1,2)+"."+SUBSTR(cNovo,4,2))
               IF FIMMAN > ULTMHO
                  LOOP
                 ELSE
                  EXIT
               ENDIF
            ENDDO
         endif
      ENDIF
      TDM++
      atutxt(TDM,oSAY2,RTR)
      WaitSeconds(0.01)
   ENDDO
RETURN .T.
//------------------------ ATUALIZAR
function atutxt(TDM,o2,RTR)
   o2:SetText("Total de "+STRZERO(TDM,4)+" dias incluídos na agenda de "+STRZERO(RTR,4)) ; o2:Refresh()
   sysRefresh()
RETURN .T.
//------------------------ CALCULAR PRÓXIMO HORÁRIO
Function SomaTempo( cTempo,_PULA )
   nNovo := Secs(cTempo) + (_PULA*60)
   If nNovo > (24*60*60)
      nNovo -= (24*60*60)
   End
   cNovo := TString( nNovo )
Return cNovo



DBF
AGENDA01

   AGE_PAS','C',004,000 // PASTA DO PACIENTE
   AGE_DIA','C',003,000 // DIA DA SEMANA
   AGEHORA','C',005,000) // HORA DA CONSULTA
   AGECONS','D',008,000 // DATA DA CONSULTA
   AGEPACI','C',050,000 // NOME DO PACIENTE
   AGECONV','C',010,000 // CONVENIO
   AGENUCO','C',020,000 // NUMERO DO CONVENIO
   AGETEFI','C',009,000 // TELEFONE FIXO
   AGETECE','C',015,000 // TELEFONE CELULAR
   AGEMARC','D',008,000 // DATA DA MARCAÇÃO
   AGEMOTI','C',003,000 // MOTIVO
   AGEBLOC','C',001,000 // DIA BLOQUEADO
   AGEDAMO','D',008,000 // DATA DE CRIAÇÃO
   AGECONF','C',003,000 // CONFIRMOU

DEFINI01

   //------------------- MANHÃ
   SEGINICMA1','N',005,002 // HORA INICIO MANHA
   SEGFINAMA1','N',005,002 // HORA FINAL  MANHA
   //
   TERINICMA1','N',005,002 // HORA INICIO MANHA
   TERFINAMA1','N',005,002 // HORA FINAL  MANHA
   //
   QUAINICMA1','N',005,002 // HORA INICIO MANHA
   QUAFINAMA1','N',005,002 // HORA FINAL  MANHA
   //
   QUIINICMA1','N',005,002 // HORA INICIO MANHA
   QUIFINAMA1','N',005,002 // HORA FINAL  MANHA
   //
   SEXINICMA1','N',005,002 // HORA INICIO MANHA
   SEXFINAMA1','N',005,002 // HORA FINAL  MANHA
   //------------------- TARDE
   SEGINICTA1','N',005,002 // HORA INICIO TARDE
   SEGFINATA1','N',005,002 // HORA FINAL  TARDE
   //
   TERINICTA1','N',005,002 // HORA INICIO TARDE
   TERFINATA1','N',005,002 // HORA FINAL  TARDE
   //
   QUAINICTA1','N',005,002 // HORA INICIO TARDE
   QUAFINATA1','N',005,002 // HORA FINAL  TARDE
   //
   QUIINICTA1','N',005,002 // HORA INICIO TARDE
   QUIFINATA1','N',005,002 // HORA FINAL  TARDE
   //
   SEXINICTA1','N',005,002 // HORA INICIO TARDE
   SEXFINATA1','N',005,002 // HORA FINAL  TARDE
   //------------------- INTERVALO
  INTERVALO1','N',002,000 // INTERVALO


Vander
HbMake v1.17
xHarbour build 0.99.70 Intl. (SimpLex)
Borland C++ 5.5.1
fivewin 6.12 (FREE)
Workshop 4.5
MEdit
Avatar de usuário

Vander
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 212
Data de registro: 23 Jul 2004 01:43
Cidade/Estado: João Monlevade - MG
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Agendamento de Visitas, incrementar a hora

Mensagempor Kapiaba » 16 Mar 2015 14:36

Boa tarde Vander, se não for pedir muito, podeis postar o .RC do dialogo:

Assim, fica fácil fazer um demo e testar.

DEFINE DIALOG TECL21 RESOURCE "DEFICAO1" TITLE "# DEFINIÇÕES DA AGENDA #"


Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Agendamento de Visitas, incrementar a hora

Mensagempor Kapiaba » 16 Mar 2015 14:59

Tarde Vander, se eu entendi seu fonte, na realidade, você criou uma tela para que o usuário digite as horas.

Achei interessante, mas não é isso que eu quero. Explico:

Botão: <Gerar Agenda Diária>

ACTION( Gerar_Agenda() )

FUNCTION Gerar_Agenda()

   Hora := 8:00

   WHILE DataInicial < DataFinal

      Hora := Hora + .30  // 30 minutos

      // Como eu somo 30 minutos em 8:00 - 8:30, 9:00
      // em um intervalo de 30 dias de agenda
      // exemplo: DataInicial := 01/03/2015 a 31/03/2015

   ENDDO


Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Agendamento de Visitas, incrementar a hora

Mensagempor Vander » 16 Mar 2015 15:35

Vídeo da rotina em funcionamento em um sistema que estou concluíndo.

http://youtu.be/DaoEHZkjQK8

.RC
Agenda 

AGENDA0 DIALOG 6, 15, 680, 378
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
FONT 8, "MS Sans Serif"
{
CTEXT "Marcar da fila", -1, 259, 335, 90, 12
CTEXT "Desmarcar consulta", -1, 259, 360, 90, 10
CTEXT "Incluir horário", -1, 368, 360, 90, 10
CTEXT "Marcar falta", -1, 477, 360, 90, 10
CTEXT "Imprimir dia", -1, 586, 335, 90, 12
LTEXT "F2 = Cadastrar consulta.", 1, 6, 356, 142, 8
LTEXT "ENTER = Marcar ou alterar uma consulta. ", 2, 6, 336, 142, 8
LTEXT "2 cliques = Confirmar a consulta.", 3, 6, 346, 142, 8
RTEXT "Localizar", -1, 2, 5, 38, 8
LISTBOX IDC_LISTBOX3, 2, 19, 676, 322, LBS_STANDARD
PUSHBUTTON "&Bloquear dia", IDC_PUSHBUTTON14, 368, 331, 90, 18
PUSHBUTTON "&Desbloquear dia", IDC_PUSHBUTTON15, 368, 331, 90, 18
PUSHBUTTON "Localizar &vaga", IDC_PUSHBUTTON18, 477, 331, 90, 18
PUSHBUTTON "&Imprimir dia", IDC_PUSHBUTTON19, 586, 331, 90, 18
PUSHBUTTON "D&esmarcar  consulta", IDC_PUSHBUTTON20, 259, 356, 90, 18
PUSHBUTTON "Inclui&r horário", IDC_PUSHBUTTON21, 368, 356, 90, 18
PUSHBUTTON "&Marcar falta", IDC_PUSHBUTTON22, 477, 356, 90, 18
PUSHBUTTON "Marcar da &fila", IDC_PUSHBUTTON23, 259, 331, 90, 18
PUSHBUTTON "&Fechar janela", IDC_PUSHBUTTON24, 586, 356, 90, 18
CONTROL "113", IDC_EDIT29, "EDIT", ES_UPPERCASE | WS_BORDER | WS_TABSTOP, 45, 3, 297, 12
CONTROL "114", IDC_EDIT30, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 348, 3, 69, 12
AUTORADIOBUTTON " Paciente", IDC_RADIOBUTTON9, 541, 3, 50, 12
AUTORADIOBUTTON " Data", IDC_RADIOBUTTON10, 614, 3, 34, 12
CTEXT "Legenda (MOT)", -1, 153, 335, 91, 43, SS_CENTER | WS_BORDER | WS_GROUP
LTEXT "CON = Consulta", -1, 155, 344, 86, 8
LTEXT "RET = Retorno", -1, 155, 352, 86, 7
LTEXT "FAL = Faltou", -1, 155, 360, 86, 8
LTEXT "CJL = consulta já lançada", -1, 155, 368, 86, 8
LTEXT "F3 - Remarcar consulta", -1, 6, 366, 142, 8
}

Definições

DEFICAO1 DIALOG 14, 15, 306, 132
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "DIALOG_1"
FONT 8, "MS Sans Serif"
{
CTEXT "Dia ", -1, 83, 30, 52, 9
CTEXT "Primeiro horário", -1, 141, 20, 36, 19
CTEXT "Último horário", -1, 180, 20, 36, 19
RTEXT "Segunda feira", -1, 83, 44, 52, 8
RTEXT "Terça feira", -1, 83, 61, 52, 8
RTEXT "Quarta feira", -1, 83, 78, 52, 8
RTEXT "Quinta feira", -1, 83, 96, 52, 8
RTEXT "Sexta feira", -1, 83, 112, 52, 8
CTEXT "Intervalo entre as consultas em minutos", -1, 2, 16, 78, 38, SS_CENTER | WS_BORDER | WS_GROUP
CTEXT "Primeiro horário", -1, 227, 16, 36, 19
CTEXT "Último horário", -1, 266, 16, 36, 19
CONTROL "101", IDC_EDIT31, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 30, 37, 22, 12
CONTROL "102", IDC_EDIT32, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 141, 42, 36, 12
CONTROL "103", IDC_EDIT33, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 180, 42, 36, 12
CONTROL "112", IDC_EDIT42, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 226, 42, 36, 12
CONTROL "113", IDC_EDIT43, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 265, 42, 36, 12
CONTROL "104", IDC_EDIT34, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 141, 59, 36, 12
CONTROL "105", IDC_EDIT35, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 180, 59, 36, 12
CONTROL "114", IDC_EDIT44, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 226, 59, 36, 12
CONTROL "115", IDC_EDIT45, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 265, 59, 36, 12
CONTROL "106", IDC_EDIT36, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 141, 76, 36, 12
CONTROL "107", IDC_EDIT37, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 180, 76, 36, 12
CONTROL "116", IDC_EDIT46, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 226, 76, 36, 12
CONTROL "117", IDC_EDIT47, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 265, 76, 36, 12
CONTROL "108", IDC_EDIT38, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 141, 94, 36, 12
CONTROL "109", IDC_EDIT39, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 180, 94, 36, 12
CONTROL "118", IDC_EDIT48, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 226, 94, 36, 12
CONTROL "119", IDC_EDIT49, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 265, 94, 36, 12
CONTROL "110", IDC_EDIT40, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 141, 110, 36, 12
CONTROL "111", IDC_EDIT41, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 180, 110, 36, 12
CONTROL "120", IDC_EDIT50, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 226, 110, 36, 12
CONTROL "121", IDC_EDIT51, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 265, 110, 36, 12
GROUPBOX " Tarde ", IDC_GROUPBOX1, 222, 4, 82, 123, BS_GROUPBOX
GROUPBOX " Manhã ", IDC_GROUPBOX2, 138, 4, 82, 123, BS_GROUPBOX
PUSHBUTTON "&Fechar janela", IDC_PUSHBUTTON16, 2, 109, 78, 18
}

Informar data inicial e final

MONTAG1 DIALOG 6, 15, 315, 66
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "DIALOG_1"
FONT 8, "MS Sans Serif"
{
RTEXT "Data inicial :", -1, 12, 10, 50, 8
RTEXT "Data final :", -1, 12, 27, 50, 8
LTEXT "REGISTOR DE 3", 3, 137, 6, 171, 29
CONTROL "101", IDC_EDIT52, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 63, 5, 70, 12
CONTROL "102", IDC_EDIT53, "EDIT", ES_CENTER | WS_BORDER | WS_TABSTOP, 63, 22, 70, 12
PUSHBUTTON "&Iniciar", IDC_PUSHBUTTON17, 149, 44, 72, 18
PUSHBUTTON "&Cancelar", IDC_PUSHBUTTON25, 236, 44, 72, 18
}



Vander
HbMake v1.17
xHarbour build 0.99.70 Intl. (SimpLex)
Borland C++ 5.5.1
fivewin 6.12 (FREE)
Workshop 4.5
MEdit
Avatar de usuário

Vander
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 212
Data de registro: 23 Jul 2004 01:43
Cidade/Estado: João Monlevade - MG
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Agendamento de Visitas, incrementar a hora

Mensagempor Kapiaba » 16 Mar 2015 16:02

Show() de bola Vander, é desse jeito mesmo que eu quero gerar.

Excelente!! Acho que assim, já resolve meu problema, Agradecimento a você ao TheoTokos do Fivewin Brasil.

#include "FiveWin.ch"

FUNCTION Main()

   SET CENTURY ON                // 4 DIGITOS PARA O ANO
   SET DATE BRITISH              // FORMATO DD/MM/AAAA
   SET EPOCH TO YEAR( DATE() ) - 50

   Gerar_Agenda()

RETURN NIL

FUNCTION Gerar_Agenda()

   LOCAL cDataIni := CTOD( "01/03/2015" )
   LOCAL cDataFin := CTOD( "10/03/2015" )
   LOCAL cIntervalo, aAgenda, cTime, cHoraInicial, cHoraFinal

   cIntervalo   := '30'  // intervalo entre os horarios 30 min
   cHoraInicial := "8:00"
   cTime        := cHoraInicial
   aAgenda      := { }

   While cDataIni < cDataFin  //.t.

      IF cDataIni > cDataFin
         EXIT
      ENDIF
     
      cTime := SecToTime( Secs( cTime ) + (Val( cIntervalo )*60) )  // Aqui soma o ultimo horario com o intervalo

      ? cTime, cDataIni
     
      // AQUI SERA O REPLACE... NO BD.
      // AADD(aAgenda, { cTime, .... }

      /* // AQUI A CONDICAO E POR DATA INICIAL E FINAL.
      If cTime = cHoraFinal
         exit
      EndIf
      */

      ++cDataIni

   EndDo

RETURN NIL


obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro