FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Tdolphin y dudas
Posts: 84
Joined: Tue Jul 26, 2016 09:52 PM
Tdolphin y dudas
Posted: Tue Sep 26, 2017 03:13 PM
Estimados amigos, estoy en el paso de pasar, de dbf a mysql, pero estoy pasando por no entender algunas cosas, favor de poder guiarme o ayudarme,, he revisado los ejemplos.. me he leido el listado del foro de consulta y no pude ver esto...

a) como puedo imprimir una query, usando esta misma opci贸n,

Function Print_Cco(cEmpresa)
Local oRepFam
LOCAL AFont1, AFont2, Afont3

DEFINE FONT AFont1 NAME "ARIAL" SIZE 0,-10

PrinterSetup()
REPORT oRepFam ;
FONT AFONT1, AFONT2, AFONT3;
CAPTION "Tabla/Archivo Maestro de Departamentos.. " ;
TITLE " ",;
"Tabla/Archivo Maestro de Departamentos.. ",;
" ";
CENTER;
HEADER cEmpresa[1]

Go top
COLUMN TITLE "C贸digo" DATA Tab_Cco->Cod_Cco; intente cambiar la dbf por tab_cco:cod_cco donde tab_cco es la query pero no me arrojo nada
FONT 1;
GRID
COLUMN TITLE "Descripci贸n" DATA Tab_Cco->Nom_Cco;
FONT 1;
GRID

END REPORT
oRepFam:lPrvModal := .T.
ACTIVATE REPORT oRepFam
AFont1:End()
RETURN NIL

A lo anterior, como deberia hacerlo de DBF a mysq, usando Tdolphin

FUNCTION Imp_Egreso()
Local Estado, oPrn, oFntMedia, oFntPeque, oFntNormal, oFntNegrita, oFntGrande, II
LOCAL lPrint := .F.
LOCAL nFila := 0
LOCAL nDoc := 0
LOCAL Pinicial := 0
LOCAL Pfinal := 0
LOCAL fila := 0
Local aTop := Array(02), aTam := Array(02)
For II = 1 to 2
aTop [II]:=0
aTam [II]:=0
Next II

PrinterSetup()
PRINTER oPrn Preview Modal

PageBegin()

oPrn:CmSay( 2.5,05.5, "COMPROBANTE DE EGRESO N潞", oFntGrande )
oPrn:Cmsay( 2.5,14.5, TRANSFORM(cNro_Egr,"@Z 99-99-999"),oFntGrande)

oPrn:CmSay( 3.5,01.0, "Fecha :"+Dtoc(cFec_Egr) , oFntNormal)
oprn:Cmsay( 3.5,04.0, "Glosa :"+Alltrim(cGlo_Egr),oFntNegrita)

Oprn:Cmsay( 4.0,01.0, "---------------------------------------------------------------------------------------------------------------------------------------------------------------------",oFntNormal)
Oprn:Cmsay( 4.5,01.0, " Cuenta Nombre Cuenta Sub-Cuenta Folio Numero Debe Haber ",oFntNormal)
Oprn:Cmsay( 5.0,01.0, "---------------------------------------------------------------------------------------------------------------------------------------------------------------------",oFntNormal)
go top
fila:=5.5

Do While .Not. eof()
if !Empty((Archi)->Nro_Cta)
oPrn:Cmsay( fila,01.0, (Archi)->Nro_Cta, oFntMedia)
oPrn:Cmsay( fila,17.2, TRANSFORM((Archi)->Deb_Cta,"@E 9,999,999,999"),oFntMedia,,,,2) /// aca cambio... deberia usar egreso:deb_cta que es la query...
oPrn:Cmsay( fila,19.5, TRANSFORM((Archi)->Hab_Cta,"@E 9,999,999,999"),oFntMedia,,,,2)
fila:=fila+0.5
ENDIF
Endif
skip
Enddo
Oprn:Cmsay( fila,01.0, "---------------------------------------------------------------------------------------------------------------------------------------------------------------------",oFntNormal)
fila++
PageEnd()
ENDPRINT
RETURN NIL

y por ultimo... la misma historia por excel...

Function Exe_Hora()
local oFileXLS
Local lIni := .t., nReg := RecNo()
local nFormat1, nFormat2
local nFont1, nFont2, nFont3, nFont4

Local nRow, nRowActividad
DEFINE XLS FONT nFont1 NAME "Arial" HEIGHT 12 BOLD
DEFINE XLS FONT nFont2 NAME "Arial" UNDERLINE BOLD
DEFINE XLS FONT nFont3 NAME "Times New Roman" HEIGHT 8

XLS oFileXLS FILE ".\PLANILLA\Tab_Hora.Xls" AUTOEXEC

XLS COL 1 WIDTH 10 OF oFileXLS
XLS COL 2 WIDTH 25 OF oFileXLS
nRow := 2
@ nRow,2 XLS SAY "Tabla/Archivo Valor Hora Hombre... " FONT nfont1 OF oFileXLS
nRow += 2

@ nRow,1 XLS SAY "CODIGO" FONT nfont3 OF oFileXLS ;
BORDER BORDER_ALL;
ALIGNAMENT ALING_CENTER

@ nRow,2 XLS SAY "NOMBRE" FONT nfont3 OF oFileXLS ;
BORDER BORDER_ALL;
ALIGNAMENT ALING_CENTER

nRow += 1

GO TOP
DO WHILE .NOT.EOF()

@ nRow,01 XLS SAY Trim(Tab_Hora->Cod_Hora) FONT nFont3 OF oFileXLS //COMO REEMPLAZO ESTO EN DBF POR LA CONSULTA EN TDOLPHIN... ??
@ nRow,02 XLS SAY Trim(Tab_Hora->Nom_Hora) FONT nFont3 OF oFileXLS

nRow++
SKIP
ENDDO

nRow++
GOTO nReg

XLS PAGE BREAK AT nRow OF oFileXLS

SET XLS TO DISPLAY ;
NOGRIDLINES ;
OF oFileXLS

SET XLS TO PRINTER ;
HEADER "&DP谩gina N潞 &P" ;
FOOTER "" ;
TOP MARGIN 0.6 ;
BOTTOM MARGIN 0.8 ;
LEFT MARGIN 0 ;
OF oFileXLS

ENDXLS oFileXLS
Return nil
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Tdolphin y dudas
Posted: Tue Sep 26, 2017 08:47 PM
Code (fw): Select all Collapse
Function Print_Cco(cEmpresa)
Local oRepFam
LOCAL AFont1, AFont2, Afont3

DEFINE FONT AFont1 NAME "ARIAL" SIZE 0,-10

PrinterSetup()
REPORT oRepFam ;
FONT AFONT1, AFONT2, AFONT3;
CAPTION "Tabla/Archivo Maestro de Departamentos.. " ;
TITLE " ",;
"Tabla/Archivo Maestro de Departamentos.. ",;
" ";
CENTER;
HEADER cEmpresa[1]

tab_cco:GoTop()
COLUMN TITLE "C贸digo" DATA tab_cco:cod_cco FONT 1;
GRID
COLUMN TITLE "Descripci贸n" DATA tab_cco:Nom_Cco;
FONT 1;
GRID

END REPORT
oRepFam:oDevice:lPrvModal := .T.
oRepFam:bInit := {|| tab_cco:GoTop() }
oRepFam:bSkip := {|| tab_cco:Skip() }
ACTIVATE REPORT oRepFam WHILE !tab_cco:EOF()
AFont1:End()
RETURN NIL

Segunda funcion
Code (fw): Select all Collapse
FUNCTION Imp_Egreso()
Local Estado, oPrn, oFntMedia, oFntPeque, oFntNormal, oFntNegrita, oFntGrande, II
LOCAL lPrint := .F.
LOCAL nFila := 0
LOCAL nDoc := 0
LOCAL Pinicial := 0
LOCAL Pfinal := 0
LOCAL fila := 0
Local aTop := Array(02), aTam := Array(02)
For II = 1 to 2
aTop [II]:=0
aTam [II]:=0
Next II

PrinterSetup()
PRINTER oPrn Preview Modal

PageBegin()

oPrn:CmSay( 2.5,05.5, "COMPROBANTE DE EGRESO N潞", oFntGrande )
oPrn:Cmsay( 2.5,14.5, TRANSFORM(cNro_Egr,"@Z 99-99-999"),oFntGrande)

oPrn:CmSay( 3.5,01.0, "Fecha :"+Dtoc(cFec_Egr) , oFntNormal)
oprn:Cmsay( 3.5,04.0, "Glosa :"+Alltrim(cGlo_Egr),oFntNegrita)

Oprn:Cmsay( 4.0,01.0, "---------------------------------------------------------------------------------------------------------------------------------------------------------------------",oFntNormal)
Oprn:Cmsay( 4.5,01.0, " Cuenta Nombre Cuenta Sub-Cuenta Folio Numero Debe Haber ",oFntNormal)
Oprn:Cmsay( 5.0,01.0, "---------------------------------------------------------------------------------------------------------------------------------------------------------------------",oFntNormal)
egreso:GoTop()
// Suponiendo que oQry es la query que trajiste y que viene bien cargada
fila:=5.5

Do While !egreso:End()
if !Empty(egreso:Nro_Cta)
oPrn:Cmsay( fila,01.0, egreso:Nro_Cta, oFntMedia)
oPrn:Cmsay( fila,17.2, TRANSFORM(egreso:Deb_Cta,"@E 9,999,999,999"),oFntMedia,,,,2) 
oPrn:Cmsay( fila,19.5, TRANSFORM(egreso:Hab_Cta,"@E 9,999,999,999"),oFntMedia,,,,2)
fila:=fila+0.5
ENDIF
Endif
skip
Enddo
Oprn:Cmsay( fila,01.0, "---------------------------------------------------------------------------------------------------------------------------------------------------------------------",oFntNormal)
fila++
PageEnd()
ENDPRINT
RETURN NIL


Code (fw): Select all Collapse
Function Exe_Hora()
local oFileXLS
Local lIni := .t., nReg := RecNo()
local nFormat1, nFormat2
local nFont1, nFont2, nFont3, nFont4

Local nRow, nRowActividad 
DEFINE XLS FONT nFont1 NAME "Arial" HEIGHT 12 BOLD
DEFINE XLS FONT nFont2 NAME "Arial" UNDERLINE BOLD
DEFINE XLS FONT nFont3 NAME "Times New Roman" HEIGHT 8

XLS oFileXLS FILE ".\PLANILLA\Tab_Hora.Xls" AUTOEXEC

XLS COL 1 WIDTH 10 OF oFileXLS
XLS COL 2 WIDTH 25 OF oFileXLS
nRow := 2
@ nRow,2 XLS SAY "Tabla/Archivo Valor Hora Hombre... " FONT nfont1 OF oFileXLS
nRow += 2

@ nRow,1 XLS SAY "CODIGO" FONT nfont3 OF oFileXLS ;
BORDER BORDER_ALL;
ALIGNAMENT ALING_CENTER

@ nRow,2 XLS SAY "NOMBRE" FONT nfont3 OF oFileXLS ;
BORDER BORDER_ALL;
ALIGNAMENT ALING_CENTER

nRow += 1
// Supongamos que la query se llama oQry
oQry:goTop()
DO WHILE !oQry:EOF()

@ nRow,01 XLS SAY Trim(oQry:Cod_Hora) FONT nFont3 OF oFileXLS 
@ nRow,02 XLS SAY Trim(oQry:Nom_Hora) FONT nFont3 OF oFileXLS

nRow++
oQry:SKIP()
ENDDO

nRow++
oQry:Goto(nReg)

XLS PAGE BREAK AT nRow OF oFileXLS

SET XLS TO DISPLAY ;
NOGRIDLINES ;
OF oFileXLS

SET XLS TO PRINTER ;
HEADER "&DP谩gina N潞 &P" ;
FOOTER "" ;
TOP MARGIN 0.6 ;
BOTTOM MARGIN 0.8 ;
LEFT MARGIN 0 ;
OF oFileXLS

ENDXLS oFileXLS
Return nil


No verifique todas las funciones, pero creo que esta la idea.
Para moverte de registro oQry:Skip()
Para ir al principio oQry:GoTop()
Etc...
Fijate en el foro que hay muchisima documentacion.
Espero te sirva

Continue the discussion