Function Def_Horario()
Local oDlg, oBrw, oFont1,oFont2, oCol,oTitu1,oTitu2,oFont3,aStruc,oSay1,oSay2,oSay5,oFont4,oFont5
local oDlg33, oFont, otitu,oFont7,oBrw2,oDlg4,oBot1,oBot2
Local oSay6,otitu6
Public aDias:= {{"1","Lunes"},{"2","Martes"},{"3","Miercoles"},{"4","Jueves"},{"5","Viernes"},{"6","Sabado"},{"7","Domingo"}}
cTemp:="c:"
If !File(cTemp+"HoraBase.DBF") // Calendario del Mes
DbCreate(cTemp+"HoraBase.DBF", {{ "Cod_Pro" ,"C", 4, 0 },; // Codigo Profesional
{ "Cod_Esp" ,"C", 4, 0 },; // Codigo Especialidad
{ "Cod_Dia" ,"C", 1, 0 },; // Codigo del Dia de la Semana
{ "Hor_Ini" ,"C", 5, 0 },; // Hora de Inicio
{ "Hor_Fin" ,"C", 5, 0 },; // Hora de Termino
{ "Frecu" ,"N", 3, 0 },; // Frecuencia de Atencion en Minutos
{ "Can_Pac" ,"N", 3, 0 },; // Cantidad de Pacientes Por Dia
{ "Est_Dia" ,"C", 1, 0 }; // Estado de Atencion, Permite Marcar dia Bloqueado por no Aistencia
} ,"DBFCDX")
Endif
Abre_dbf("Profesio",1,.f.,"Profe")
Set inde to Profesio
DbSetorder(2)
If !file("HoraBase.CDX")
Abre_dbf("HoraBase",1,.t.,"")
inde on Cod_Pro tag hr1 To HoraBase
DbClosearea()
Endif
Abre_dbf("HoraBase",2,.f.,"HoraB")
Set inde to HoraBase
Sele a
SET RELATION TO Cod_Pro INTO HoraB SCOPED
/*
Abre_dbf("Especia",1,.f.,"Espe")
Set inde to Especia
*/
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
DEFINE FONT oFont1 NAME 'TAHOMA' SIZE 0,24 BOLD
DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0,-12 BOLD
DEFINE FONT oFont7 NAME "TAHOMA" SIZE 0,-14 BOLD
DEFINE DIALOG oDlg1 SIZE 895,570 PIXEL FONT oFont3 STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )
@ 35,10 XBROWSE oBrw SIZE 200,-35 PIXEL OF oDlg1 DATASOURCE "Profe" ;
HEADERS 'Nombre del Profesional','Especialidad';
COLUMNS 'Nom_Pro','Tip_Esp';
PICTURES "@!","@!" ;
COLSIZES 280, 70;
CELL LINES AUTOSORT NOBORDER;
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLWIN7
oBrw:nColDividerStyle := LINESTYLE_INSET
oBrw:nRowDividerStyle := LINESTYLE_INSET
oBrw:bClrHeader := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }
oBrw:nOpacity := 230
oBrw:nHeaderHeight := 35
oBrw:nFreeze := 2
oBrw:bClrStd := { || If( Eval( oBrw:bKeyNo,,oBrw1) % 2 == 0, { CLR_BLACK, RGB( 198, 255, 198 ) },;
{ CLR_BLACK, RGB( 232, 255, 232 ) } ) } // Efecto Cebra
oBrw:aCols[ 1 ]:oDataFont := oFont7
oBrw:bClrStd := {|| { nRGB( 0, 0, 0), nRGB(255,248,220) } }
oBrw:bClrSelFocus := {|| { nRGB( 255, 255, 255), nRGB(102, 178, 255) } }
oBrw:bClrSel := {|| { nRGB( 0, 0,255), nRGB(241,222,088) } } // para barra de linea selecc cuando el control no tiene el foco
oBrw:lAutoSort := .t.
oBrw:lFooter := .f.
oBrw:lHScroll := .f.
oBrw:lIncrFilter := .F.
oBrw:lSeekWild := .F. && .T. Busca Contenido, .F. Que comience con lo que digita
oBrw:SetStyle( 2018)
oBrw:nColorPen := CLR_RED
oBrw:bChange := {|| oBrw:Refresh() }
WITH OBJECT oBrw
:bChange := { || oBrw2:GoTop(), oBrw2:Refresh() }
:CreateFromCode()
END
@ 35,216 XBROWSE oBrw2 SIZE -10,-35 PIXEL OF oDlg1 DATASOURCE "HoraB" ;
HEADERS 'Día','Inicio','Término','Frecu','N. Paci','Estado';
COLUMNS NomDia( HoraB->COD_DIA ), 'Hor_Ini','Hor_Fin','Frecu','Can_Pac','Est_Dia';
COLSIZES 120, 60, 60, 45, 60, 60;
PICTURES '@!','##:##','##:##','999','999','!';
CELL LINES AUTOSORT NOBORDER;
oBrw2:nMarqueeStyle := MARQSTYLE_HIGHLWIN7
oBrw2:nColDividerStyle := LINESTYLE_INSET
oBrw2:nRowDividerStyle := LINESTYLE_INSET
oBrw2:bClrHeader := {|| { nRGB(000,000,000), nRGB(128,255,128) } }
oBrw2:bClrStd := { || If( Eval( oBrw2:bKeyNo,,oBrw2) % 2 == 0, { CLR_BLACK, RGB( 198, 255, 198 ) },;
{ CLR_BLACK, RGB( 232, 255, 232 ) } ) } // Efecto Cebra
oBrw2:nOpacity := 230
oBrw2:nHeaderHeight := 35
oBrw2:nFreeze := 6
oBrw2:lAutoSort := .t.
oBrw2:lFooter := .f.
oBrw2:lHScroll := .f.
oBrw2:SetStyle( 2007)
oBrw2:nColorPen := CLR_RED
oBrw2:CreateFromCode()
/*
REDEFINE BTNBMP ID 4003 PROMPT "ELIMINAR" OF oDlg33 2007 FONT oFont7 C;
ToolTip "ELIMINA REGISTRO";
ACTION (delrow( oBrw2,@Can_Cod1,@Val_Tot1 ), oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh())
*/
ACTIVATE DIALOG oDlg1 CENTERED
RELEASE FONT oFont,oFont1,oFont7
Return nil
Function NomDia(cCod)
?cCod
If Val(cCod) = 0
Return .f.
Endif
nDia:= aScan(aDias, { | array | array[1] == cCod} )
cNomDia:=aDias[nDia][2] // <--- Obtener Nombre del Dia del Array
Return cNomDia