Clipper/FiveWin - Error en Listbox al mostrar un Recordset vacio

 
Vista:

Error en Listbox al mostrar un Recordset vacio

Publicado por Juan Morales (38 intervenciones) el 24/05/2015 15:13:53
Buen dia amigos del foro tengo un problema al mostrar a travez de un folder un recordset de todo un año con 12 pestañas que representas los meses, funciona bien pero cuando selecciono un mes que no tiene movimiento de da
error al mostrar el listbox, dejo parte del fuente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
HallaDH := { || oRv:= TOLEAUTO():New("adodb.recordset"),;
                  oRv:LockType := adLockOptimistic ,;
                  oRv:CursorType := adOpenKeyset   ,;
                  oRv:CursorLocation := adUseClient,;
                  oRv:ActiveConnection(oApp:oCon)  ,;
                  oRv:Source :="SELECT * FROM COD030 WHERE ANOF= '" + AllTrim(STR(VANOF)) + "'  AND MESF= '" + ALLTRIM(STR(ZMESF)) + "' ORDER BY COSLUG,TCOMP,COMP " ,;
                  oRv:Open() }
 
 
   RECALTOT := { || vtdeb:=Tvale(vanof,zMesf,1),vthab:=Tvale(vanof,zMesf,2),vRega:=Tvale(vAnof,zMesf,4),;
               vReg:=Tvale(vanof,zMesf,3),otdeb:Refresh(),othab:Refresh(),oRega:Refresh(),oReg:Refresh() }
 
   ActoRv   := { || IF (zMesf <> 99,(oFld:aDialogs[zMesf]:Refresh(),oFld:aDialogs[oRv:Fields("MESF"):Value]:Setfocus(),oLbx:Refresh(),oFld:Refresh()) ,  ) }
 
 
   DEFINE DIALOG oDlg RESOURCE "Con100" OF oWnd
 
   REDEFINE FOLDER oFld ID 100 OF oDlg    ;
       PROMPT NM[1],NM[2],NM[3],NM[4],NM[5],NM[6],NM[7],NM[8],NM[9],NM[10],NM[11],NM[12] ;
       DIALOGS "Con100_FL","Con100_FL","Con100_FL","Con100_FL","Con100_FL","Con100_FL" , ;
               "Con100_FL","Con100_FL","Con100_FL","Con100_FL","Con100_FL","Con100_FL"  ;
      ON CHANGE( oRv:Close(),zMesf:=nOption,Eval(HallaDH),;
                 EVAL(RECALTOT),oFld:aDialogs[nOption]:Refresh(),oLbx:Refresh(),oDlg:Refresh())
 
 
    // Caja de Di logo -----------------------------------------------------
 
    ************************************************************
 
 
    ** SI Existe
    IF oRv:BOF() .AND. oRv:EOF()
    ELSE
 
    REDEFINE LISTBOX oLbx FIELDS DTOC(oRv:Fields("Fecha"):Value)     ,;
                                 STR(oRv:Fields("TCOMP"):Value)      ,;
                                 STR(oRv:Fields("COMP"):Value)       ,;
                                 oRv:Fields("COSLUG"):Value          ,;
                                 TransForm (oRv:Fields("TDEBE"):Value, "@Z 999,999,999,999.99"),;
                                 TransForm (oRv:Fields("THABER"):Value,"@Z 999,999,999,999.99"),;
                                 oRv:Fields("DESTCO"):Value       ,;
                                 oRv:Fields("FLAG"):Value         ,;
                                 oRv:Fields("Orig"):Value         ,;
                                 STR(oRv:Fields("NROCHE"):Value)  ,;
                                 oRv:Fields("NRIF"):Value     ;
                        HEADERS "Fecha", "Tcomp", "Comp", "Clugar", "T.Debe", "T.Haber","Concepto","Status","Ori","Nroche","Nrif" ;
                        FIELDSIZES 70, 40, 60,40,100,100,150, 20,80,80 ;
                        COLOR CLR_BLUE , CLR_HCYAN  ;
                        ID 110    ;
                        OF oFld:aDialogs[ 1 ]
 
        oLbx:aJustify := {.F., .F., .F., .F., .T., .T., .F., .F., .F., .T., .F. }
        oLbx:bLogicLen = { || oRv:RecordCount() }
        oLbx:bGoTop = { || oRv:MoveFirst() }
        oLbx:bGoBottom = { || oRv:MoveLast() }
        oLbx:bSkip = { | nSkip | Skipper( oRv, nSkip ) }
 
    ENDIF

invclusive al cambiar el mes ejecuto un eval para cerrar y abrir el recordset nuevamente y chequear si esta vacio
coloco un if verificando pero al mostrar el listbox me da error. agradezo cualquier orientacion..

muchas gracias..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder