// Programa : BRLICCONACT2
// Fecha/Hora : 17/09/2015 17:24:00
// Propósito : "Licencias con Servicios de Actualización Remota"
// Creado Por : Automáticamente por BRWMAKER
// Llamado por: <DPXBASE>
// Aplicación : Gerencia
// Tabla : <TABLA>
PROCE MAIN(cWhere,cCodSuc,nPeriodo,dDesde,dHasta,cTitle)
LOCAL aData,aFechas,cFileMem:="USER\BRLICCONACT.MEM",V_nPeriodo:=4,cCodPar
LOCAL V_dDesde:=CTOD(""),V_dHasta:=CTOD("")
LOCAL cServer:=oDp:cRunServer
LOCAL lConectar:=.F.
oDp:cRunServer:=NIL
IF !Empty(cServer)
MsgRun("Conectando con Servidor "+cServer+" ["+ALLTRIM(SQLGET("DPSERVERBD","SBD_DOMINI","SBD_CODIGO"+GetWhere("=",cServer)))+"]",;
"Por Favor Espere",{||lConectar:=EJECUTAR("DPSERVERDBOPEN",cServer)})
IF !lConectar
RETURN .F.
ENDIF
ENDIF
cTitle:="Licencias con Servicios de Actualización Remota" +IF(Empty(cTitle),"",cTitle)
oDp:oFrm:=NIL
IF FILE(cFileMem) .AND. nPeriodo=NIL
RESTORE FROM (cFileMem) ADDI
nPeriodo:=V_nPeriodo
ENDIF
DEFAULT cCodSuc :=oDp:cSucursal,;
nPeriodo:=4
// Obtiene el Código del Parámetro
IF !Empty(cWhere)
cCodPar:=ATAIL(_VECTOR(cWhere,"="))
IF TYPE(cCodPar)="C"
cCodPar:=SUBS(cCodPar,2,LEN(cCodPar))
cCodPar:=LEFT(cCodPar,LEN(cCodPar)-1)
ENDIF
ENDIF
IF .T. .OR. (!nPeriodo=10 .OR. (Empty(dDesde) .OR. Empty(dhasta)))
aFechas:=EJECUTAR("DPDIARIOGET",nPeriodo)
dDesde :=aFechas[1]
dHasta :=aFechas[2]
ENDIF
IF .F.
IF nPeriodo=10
dDesde :=V_dDesde
dHasta :=V_dHasta
ELSE
aFechas:=EJECUTAR("DPDIARIOGET",nPeriodo)
dDesde :=aFechas[1]
dHasta :=aFechas[2]
ENDIF
aData :=LEERDATA(HACERWHERE(dDesde,dHasta,cWhere),NIL,cServer)
ELSEIF (.T.)
aData :=LEERDATA(HACERWHERE(dDesde,dHasta,cWhere),NIL,cServer)
ENDIF
IF Empty(aData)
MensajeErr("no hay "+cTitle,"Información no Encontrada")
RETURN .F.
ENDIF
ViewData(aData,cTitle,oDp:cWhere)
oDp:oFrm:=oLICCONACT
RETURN .T.
FUNCTION ViewData(aData,cTitle,cWhere_)
LOCAL oBrw,oCol,aTotal:=ATOTALES(aData)
LOCAL oFont,oFontB
LOCAL aPeriodos:=ACLONE(oDp:aPeriodos)
LOCAL aCoors:=GetCoors( GetDesktopWindow() )
DEFINE FONT oFont NAME "Arial" SIZE 0, -12
DEFINE FONT oFontB NAME "Arial" SIZE 0, -12 BOLD
// DPEDIT():New(cTitle,"BRLICCONACT.EDT","oLICCONACT",.F.)
DpMdi(cTitle,"oLICCONACT","BRCOMLICDET.EDT")
oLICCONACT:Windows(0,0,aCoors[3]-160,aCoors[4]-10,.T.) // Maximizado
// oLICCONACT:CreateWindow(NIL,NIL,NIL,550,850+58)
oLICCONACT:cCodSuc :=cCodSuc
oLICCONACT:lMsgBar :=.F.
oLICCONACT:cPeriodo :=aPeriodos[nPeriodo]
oLICCONACT:cCodSuc :=cCodSuc
oLICCONACT:nPeriodo :=nPeriodo
oLICCONACT:cNombre :=""
oLICCONACT:dDesde :=dDesde
oLICCONACT:cServer :=cServer
oLICCONACT:dHasta :=dHasta
oLICCONACT:cWhere :=cWhere
oLICCONACT:cWhere_ :=cWhere_
oLICCONACT:cWhereQry:=""
oLICCONACT:cSql :=oDp:cSql
oLICCONACT:oWhere :=TWHERE():New(oLICCONACT)
oLICCONACT:cCodPar :=cCodPar // Código del Parámetro
oLICCONACT:oBrw:=TXBrowse():New( oLICCONACT:oDlg )
oLICCONACT:oBrw:SetArray( aData, .T. )
oLICCONACT:oBrw:SetFont(oFont)
oLICCONACT:oBrw:lFooter := .T.
oLICCONACT:oBrw:lHScroll := .F.
oLICCONACT:oBrw:nHeaderLines:= 2
oLICCONACT:oBrw:nDataLines := 1
oLICCONACT:oBrw:nFooterLines:= 1
oLICCONACT:aData :=ACLONE(aData)
AEVAL(oLICCONACT:oBrw:aCols,{|oCol|oCol:oHeaderFont:=oFontB})
oCol:=oLICCONACT:oBrw:aCols[1]
oCol:cHeader :='Producto'
oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 180
oCol:=oLICCONACT:oBrw:aCols[2]
oCol:cHeader :='Compuesto'
oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 250
oCol:=oLICCONACT:oBrw:aCols[3]
oCol:cHeader :='Fecha'
oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 70
oCol:=oLICCONACT:oBrw:aCols[4]
oCol:cHeader :='Fecha Vencimiento'
oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 70
oCol:=oLICCONACT:oBrw:aCols[5]
oCol:cHeader :='Versión'
oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 48
oCol:nDataStrAlign:= AL_RIGHT
oCol:nHeadStrAlign:= AL_RIGHT
oCol:nFootStrAlign:= AL_RIGHT
oCol:bStrData :={|nMonto|nMonto:= oLICCONACT:oBrw:aArrayData[oLICCONACT:oBrw:nArrayAt,5],FDP(nMonto,'999,999,999.99')}
oCol:cFooter :=FDP(aTotal[5],'999,999,999.99')
oCol:=oLICCONACT:oBrw:aCols[6]
oCol:cHeader :='Cliente'
oCol:bLClickHeader:= {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 60
oCol:=oLICCONACT:oBrw:aCols[7]
oCol:cHeader :='Nombre'
oCol:bLClickHeader:= {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 480
oCol:=oLICCONACT:oBrw:aCols[8]
oCol:cHeader :="Cod."+CRLF+"Int"
oCol:bLClickHeader:= {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 80
oCol:=oLICCONACT:oBrw:aCols[9]
oCol:cHeader :='Nombre del Integrador'
oCol:bLClickHeader:= {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 380
oCol:=oLICCONACT:oBrw:aCols[10]
oCol:cHeader :="Cod."+CRLF+"Vend"
oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 60
oCol:=oLICCONACT:oBrw:aCols[11]
oCol:cHeader :='Nombre del Ejecutivo de Cuenta'
oCol:bLClickHeader := {|r,c,f,o| SortArray( o, oLICCONACT:oBrw:aArrayData ) }
oCol:nWidth := 380
oLICCONACT:oBrw:aCols[1]:cFooter:=" #"+LSTR(LEN(aData))
oLICCONACT:oBrw:bClrStd := {|oBrw,nClrText,aData|oBrw:=oLICCONACT:oBrw,aData:=oBrw:aArrayData[oBrw:nArrayAt],;
nClrText:=0,;
{nClrText,iif( oBrw:nArrayAt%2=0, 15790320, 14671839 ) } }
oLICCONACT:oBrw:bClrHeader := {|| {0,14671839 }}
oLICCONACT:oBrw:bClrFooter := {|| {0,14671839 }}
oLICCONACT:oBrw:bLDblClick:={|oBrw|oLICCONACT:oRep:=oLICCONACT:RUNCLICK() }
oLICCONACT:oBrw:bChange:={||oLICCONACT:BRWCHANGE()}
oLICCONACT:oBrw:CreateFromCode()
oLICCONACT:oWnd:oClient := oLICCONACT:oBrw
oLICCONACT:Activate({||oLICCONACT:ViewDatBar(oLICCONACT)})
RETURN .T.
/*
// Barra de Botones
*/
FUNCTION ViewDatBar(oLICCONACT)
LOCAL oCursor,oBar,oBtn,oFont,oCol
LOCAL oDlg:=oLICCONACT:oDlg
LOCAL nLin:=0
oLICCONACT:oBrw:GoBottom(.T.)
oLICCONACT:oBrw:Refresh(.T.)
IF !File("FORMS\BRLICCONACT.EDT")
oLICCONACT:oBrw:Move(44,0,850+50,460)
ENDIF
DEFINE CURSOR oCursor HAND
DEFINE BUTTONBAR oBar SIZE 52-15,60-15 OF oDlg 3D CURSOR oCursor
DEFINE FONT oFont NAME "Arial" SIZE 0, -10 BOLD
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\CLIENTE.BMP";
ACTION oLICCONACT:VERCLIENTE()
oBtn:cToolTip:="Generar Correspondencia Masiva"
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\EMAIL.BMP";
ACTION oLICCONACT:GENMAIL()
oBtn:cToolTip:="Generar Correspondencia Masiva"
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\EMAILX.BMP";
ACTION oLICCONACT:GEN_MAILHTML()
oBtn:cToolTip:="Correspondencia Masiva"
IF Empty(oLICCONACT:cServer) .AND. !Empty(SQLGET("DPBRWLNK","EBR_CODIGO","EBR_CODIGO"+GetWhere("=","LICCONACT")))
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\XBROWSE.BMP";
ACTION EJECUTAR("BRWRUNBRWLINK",oLICCONACT:oBrw,"LICCONACT",oLICCONACT:cSql,oLICCONACT:nPeriodo,oLICCONACT:dDesde,oLICCONACT:dHasta)
oBtn:cToolTip:="Ejecutar Browse Vinculado(s)"
oLICCONACT:oBtnRun:=oBtn
oLICCONACT:oBrw:bLDblClick:={||EVAL(oLICCONACT:oBtnRun:bAction) }
ENDIF
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\XFIND.BMP";
ACTION EJECUTAR("BRWSETFIND",oLICCONACT:oBrw)
oBtn:cToolTip:="Buscar"
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\FILTRAR.BMP";
ACTION EJECUTAR("BRWSETFILTER",oLICCONACT:oBrw)
oBtn:cToolTip:="Filtrar Registros"
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\OPTIONS.BMP",NIL,"BITMAPS\OPTIONSG.BMP";
ACTION EJECUTAR("BRWSETOPTIONS",oLICCONACT:oBrw);
WHEN LEN(oLICCONACT:oBrw:aArrayData)>1
oBtn:cToolTip:="Filtrar según Valores Comunes"
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\REFRESH.BMP";
ACTION oLICCONACT:BRWREFRESCAR()
oBtn:cToolTip:="Refrescar"
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\CRYSTAL.BMP";
ACTION EJECUTAR("BRWTODBF",oLICCONACT)
oBtn:cToolTip:="Visualizar Mediante Crystal Report"
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\EXCEL.BMP";
ACTION (EJECUTAR("BRWTOEXCEL",oLICCONACT:oBrw,oLICCONACT:cTitle,oLICCONACT:cNombre))
oBtn:cToolTip:="Exportar hacia Excel"
oLICCONACT:oBtnXls:=oBtn
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\html.BMP";
ACTION (EJECUTAR("BRWTOHTML",oLICCONACT:oBrw))
oBtn:cToolTip:="Generar Archivo html"
oLICCONACT:oBtnHtml:=oBtn
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\PREVIEW.BMP";
ACTION (EJECUTAR("BRWPREVIEW",oLICCONACT:oBrw))
oBtn:cToolTip:="Previsualización"
oLICCONACT:oBtnPreview:=oBtn
IF ISSQLGET("DPREPORTES","REP_CODIGO","BRLICCONACT")
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\XPRINT.BMP";
ACTION oLICCONACT:IMPRIMIR()
oBtn:cToolTip:="Imprimir"
oLICCONACT:oBtnPrint:=oBtn
ENDIF
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\QUERY.BMP";
ACTION oLICCONACT:BRWQUERY()
oBtn:cToolTip:="Imprimir"
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\xTOP.BMP";
ACTION (oLICCONACT:oBrw:GoTop(),oLICCONACT:oBrw:Setfocus())
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\xSIG.BMP";
ACTION (oLICCONACT:oBrw:PageDown(),oLICCONACT:oBrw:Setfocus())
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\xANT.BMP";
ACTION (oLICCONACT:oBrw:PageUp(),oLICCONACT:oBrw:Setfocus())
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\xFIN.BMP";
ACTION (oLICCONACT:oBrw:GoBottom(),oLICCONACT:oBrw:Setfocus())
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME "BITMAPS\XSALIR.BMP";
ACTION oLICCONACT:Close()
oLICCONACT:oBrw:SetColor(0,15790320)
EVAL(oLICCONACT:oBrw:bChange)
oBar:SetColor(CLR_BLACK,15724527)
AEVAL(oBar:aControls,{|o,n|o:SetColor(CLR_BLACK,15724527)})
oLICCONACT:oBar:=oBar
nLin:=690
//
// Campo : Periodo
//
@ 10, nLin COMBOBOX oLICCONACT:oPeriodo VAR oLICCONACT:cPeriodo ITEMS aPeriodos;
SIZE 100,NIL;
PIXEL;
OF oBar;
FONT oFont;
ON CHANGE oLICCONACT:LEEFECHAS()
ComboIni(oLICCONACT:oPeriodo )
@ 10, nLin+103 BUTTON oLICCONACT:oBtn PROMPT " < " SIZE 27,24;
FONT oFont;
PIXEL;
OF oBar;
ACTION (EJECUTAR("PERIODOMAS",oLICCONACT:oPeriodo:nAt,oLICCONACT:oDesde,oLICCONACT:oHasta,-1),;
EVAL(oLICCONACT:oBtn:bAction))
@ 10, nLin+130 BUTTON oLICCONACT:oBtn PROMPT " > " SIZE 27,24;
FONT oFont;
PIXEL;
OF oBar;
ACTION (EJECUTAR("PERIODOMAS",oLICCONACT:oPeriodo:nAt,oLICCONACT:oDesde,oLICCONACT:oHasta,+1),;
EVAL(oLICCONACT:oBtn:bAction))
@ 10, nLin+170 BMPGET oLICCONACT:oDesde VAR oLICCONACT:dDesde;
PICTURE "99/99/9999";
PIXEL;
NAME "BITMAPS\Calendar.bmp";
ACTION LbxDate(oLICCONACT:oDesde ,oLICCONACT:dDesde);
SIZE 76,24;
OF oBar;
WHEN oLICCONACT:oPeriodo:nAt=LEN(oLICCONACT:oPeriodo:aItems);
FONT oFont
oLICCONACT:oDesde:cToolTip:="F6: Calendario"
@ 10, nLin+252 BMPGET oLICCONACT:oHasta VAR oLICCONACT:dHasta;
PICTURE "99/99/9999";
PIXEL;
NAME "BITMAPS\Calendar.bmp";
ACTION LbxDate(oLICCONACT:oHasta,oLICCONACT:dHasta);
SIZE 80,23;
WHEN oLICCONACT:oPeriodo:nAt=LEN(oLICCONACT:oPeriodo:aItems);
OF oBar;
FONT oFont
oLICCONACT:oHasta:cToolTip:="F6: Calendario"
@ 10, nLin+335 BUTTON oLICCONACT:oBtn PROMPT " > " SIZE 27,24;
FONT oFont;
OF oBar;
PIXEL;
WHEN oLICCONACT:oPeriodo:nAt=LEN(oLICCONACT:oPeriodo:aItems);
ACTION oLICCONACT:HACERWHERE(oLICCONACT:dDesde,oLICCONACT:dHasta,oLICCONACT:cWhere,.T.)
RETURN .T.
/*
// Evento para presionar CLICK
*/
FUNCTION RUNCLICK()
RETURN .T.
/*
// Imprimir
*/
FUNCTION IMPRIMIR()
LOCAL oRep,cWhere
oRep:=REPORTE("BRLICCONACT",cWhere)
oRep:cSql :=oLICCONACT:cSql
oRep:cTitle:=oLICCONACT:cTitle
RETURN .T.
FUNCTION LEEFECHAS()
LOCAL nPeriodo:=oLICCONACT:oPeriodo:nAt,cWhere
oLICCONACT:nPeriodo:=nPeriodo
IF oLICCONACT:oPeriodo:nAt=LEN(oLICCONACT:oPeriodo:aItems)
oLICCONACT:oDesde:ForWhen(.T.)
oLICCONACT:oHasta:ForWhen(.T.)
oLICCONACT:oBtn :ForWhen(.T.)
DPFOCUS(oLICCONACT:oDesde)
ELSE
oLICCONACT:aFechas:=EJECUTAR("DPDIARIOGET",nPeriodo)
oLICCONACT:oDesde:VarPut(oLICCONACT:aFechas[1] , .T. )
oLICCONACT:oHasta:VarPut(oLICCONACT:aFechas[2] , .T. )
oLICCONACT:dDesde:=oLICCONACT:aFechas[1]
oLICCONACT:dHasta:=oLICCONACT:aFechas[2]
cWhere:=oLICCONACT:HACERWHERE(oLICCONACT:dDesde,oLICCONACT:dHasta,oLICCONACT:cWhere,.T.)
oLICCONACT:LEERDATA(cWhere,oLICCONACT:oBrw,oLICCONACT:cServer)
ENDIF
oLICCONACT:SAVEPERIODO()
RETURN .T.
FUNCTION HACERWHERE(dDesde,dHasta,cWhere_,lRun)
LOCAL cWhere:=""
DEFAULT lRun:=.F.
IF !Empty(dDesde)
cWhere:=GetWhereAnd('DPINV.INV_FCHACT',dDesde,dHasta)
ELSE
IF !Empty(dHasta)
cWhere:=GetWhereAnd('DPINV.INV_FCHACT',dDesde,dHasta)
ENDIF
ENDIF
IF !Empty(cWhere_)
cWhere:=cWhere + IIF( Empty(cWhere),""," AND ") +cWhere_
ENDIF
IF lRun
IF !Empty(oLICCONACT:cWhereQry)
cWhere:=cWhere + oLICCONACT:cWhereQry
ENDIF
oLICCONACT:LEERDATA(cWhere,oLICCONACT:oBrw,oLICCONACT:cServer)
ENDIF
RETURN cWhere
FUNCTION LEERDATA(cWhere,oBrw,cServer)
LOCAL aData:={},aTotal:={},oCol,cSql,aLines:={}
LOCAL oDb
DEFAULT cWhere:=""
IF !Empty(cServer)
IF !EJECUTAR("DPSERVERDBOPEN",cServer)
RETURN .F.
ENDIF
oDb:=oDp:oDb
ENDIF
cSql:=" SELECT MOV_CODIGO,MOV_CODCOM,MOV_FECHA,MOV_FCHVEN,MOV_DESCUE,CLI_CODIGO,CLI_NOMBRE,SUC_CODIGO,SUC_DESCRI,CLI_CODVEN,VEN_NOMBRE "+;
" FROM DPMOVINV "+;
" INNER JOIN DPINV ON MOV_EXPRES=INV_CODIGO "+;
" LEFT JOIN DPMEMO ON INV_NUMMEM=MEM_NUMERO "+;
" LEFT JOIN DPCLIENTES ON MOV_DOCUME=CLI_CODIGO "+;
" LEFT JOIN DPVENDEDOR ON CLI_CODVEN=VEN_CODIGO "+;
" INNER JOIN VIEW_LICFACTURADA ON MOV_CODIGO=LIF_CODIGO AND MOV_CODCOM=LIF_SERIAL "+;
" LEFT JOIN VIEW_RESCLIXSUC ON CLI_CODIGO=RXC_CODIGO "+;
" LEFT JOIN DPSUCURSAL ON SUC_CODIGO=RXC_CODSUC "+;
" WHERE "+cWhere+IIF(Empty(cWhere),""," AND ")+" MOV_APLORG='L' AND MOV_TIPO='C' AND INV_CODIGO='ACT' "+;
" "+;
" "+;
""
IF Empty(cWhere)
cSql:=STRTRAN(cSql,"<WHERE>","")
ELSE
cSql:=STRTRAN(cSql,"<WHERE>"," WHERE "+cWhere)
ENDIF
cSql:=EJECUTAR("WHERE_VAR",cSql)
aData:=ASQL(cSql,oDb)
oDp:cWhere:=cWhere
IF EMPTY(aData)
aData:=EJECUTAR("SQLARRAYEMPTY",cSql)
// AADD(aData,{'','',CTOD(""),CTOD(""),0,'',''})
ENDIF
IF ValType(oBrw)="O"
oLICCONACT:cSql :=cSql
oLICCONACT:cWhere_:=cWhere
aTotal:=ATOTALES(aData)
oBrw:aArrayData:=ACLONE(aData)
oBrw:nArrayAt :=1
oBrw:nRowSel :=1
oCol:=oLICCONACT:oBrw:aCols[5]
oCol:cFooter :=FDP(aTotal[5],'999,999,999.99')
oLICCONACT:oBrw:aCols[1]:cFooter:=" #"+LSTR(LEN(aData))
oBrw:Refresh(.T.)
AEVAL(oLICCONACT:oBar:aControls,{|o,n| o:ForWhen(.T.)})
oLICCONACT:SAVEPERIODO()
ENDIF
RETURN aData
FUNCTION SAVEPERIODO()
LOCAL cFileMem:="USER\BRLICCONACT.MEM",V_nPeriodo:=oLICCONACT:nPeriodo
LOCAL V_dDesde:=oLICCONACT:dDesde
LOCAL V_dHasta:=oLICCONACT:dHasta
SAVE TO (cFileMem) ALL LIKE "V_*"
RETURN .T.
/*
// Permite Crear Filtros para las Búquedas
*/
FUNCTION BRWQUERY()
EJECUTAR("BRWQUERY",oLICCONACT)
RETURN .T.
/*
// Ejecución Cambio de Linea
*/
FUNCTION BRWCHANGE()
RETURN NIL
/*
// Refrescar Browse
*/
FUNCTION BRWREFRESCAR()
LOCAL cWhere
IF Type("oLICCONACT")="O" .AND. oLICCONACT:oWnd:hWnd>0
cWhere:=" "+IIF(!Empty("oLICCONACT":cWhere_),"oLICCONACT":cWhere_,"oLICCONACT":cWhere)
cWhere:=STRTRAN(cWhere," WHERE ","")
oLICCONACT:LEERDATA(oLICCONACT:cWhere_,oLICCONACT:oBrw,oLICCONACT:cServer)
oLICCONACT:oWnd:Show()
oLICCONACT:oWnd:Maximize()
ENDIF
RETURN NIL
/*
// Genera Correspondencia Masiva
*/
FUNCTION GENMAIL()
? "GENMAIL"
RETURN NIL
/*
// VerClientes
*/
FUNCTION VERCLIENTE()
LOCAL cCodCli:=oLICCONACT:oBrw:aArrayData[oLICCONACT:oBrw:nArrayAt,6]
RUNLIC("DPCLIENTESCON",NIL,cCodCli)
RETURN NIL
FUNCTION GEN_MAILHTML()
LOCAL cFileSql:="TEMP\"+LSTR(SECONDS())+".SQL",cSql
LOCAL aData :=ACLONE(oLICENCIAS:oBrw:aArrayData)
AEVAL(aData,{|a,n|aData[n]:=a[5]})
cSql:="SELECT CLI_CODIGO,CLI_NOMBRE,CLI_EMAIL FROM DPCLIENTES WHERE "+GetWhereOr("CLI_CODIGO",aData)+" AND CLI_EMAIL"+GetWhere("<>","")
DPWRITE(cFileSql,cSql)
DPLBX("DPCLICORRESPOND.LBX",NIL,"CLC_HTML=1",NIL,NIL,NIL,{cFileSql})
RETURN NIL
// EOF
// EOF