Вы находитесь на странице: 1из 4

http://blog.oaxrom.

com
SomosBinnizaLosHombresdeLasNubes

Phylevn

Bsqueda
Buscaren

GenerandoreportesenPHPusandoplantillas
creadasconOpenOffice(WYSIWYG).

Todo
Buscar

Haceunosdasdesarrollandounsistemaelculrequieregenerarfacturas,estuve
NubedeEtiquetas
buscandounamaneradepoderhacerloprctico,estoyaquelafacturasemandaraa
unformatopreimpreso,porloquelainformacindeberacoincidirconelformato,lo
basesdedatos
primeroquemerecomendaronesusarFPDFelculesunalibreraquefuncionaen
cine
@Twitter
PHPyqueesrelativamentefcildeusar,digorelativamenteporquhayqueusar
deportes
@Facebook
coordenadasparapodergenerareldocumentoloquelavuelvealgocomplicada,ms
dispositivosmviles
aunsisequieredejarlibertadalusuarioquegeneresuspropiosformatos.
entretenimiento
#ContraElSilencio ImaginabaquesepodahaceralgoconOpenOffice(OO),yaqueusaODF(Open
eventos
DocumentFormat)elculesunformatoabiertoenXML.Losarchivosgenerados
fotografia
porOpenOfficevienencomprimidosenformato.zip,aldescomprimirlosgenera
#ContraElSilencio
gastronomia
variosarchivos,delosculeselprincipalescontent.xml,elculcontienela
general
informacinquehemoscapturadoenelarchivo,estoaplicaparaarchivosdeHojasde
libros
Calculo,ProcesadordeTextosounapresentacindeOO.
naturaleza
DespuesdedesmenuzarlosarchivosdeOpenOfficesemeocurrieronvarias
oaxrom
mafufadasquenotienecasocomentaraqu,peroloculmellevaencontraruna
pensandoenvozalta
LibreraAbiertallamadaTinyButStrong[http://www.tinybutstrong.com/],lacul
personal
tieneunpluginparaOpenOfficellamadaTinyDoc[http://tinydoc.unesolution.fr/]que
politica
permiterellenarunaplantilladeOpenOfficefcilmenteyenunascuantaslneas,lo
programacion
quenosahorramuchotrabajoalgenerarreportes.
redes
Elconceptoesmuyfcil,definirvariablesennuestrodocumentoqueluegoseran
seguridad
sustiudas.PorejemplosiennuestrodocumentodeOpenOfficepusiramosen
software
algunaparte:
softwarelibre
[factura.fecha]
tecnologa
EnTinyDoctendramosquetenerunarregloquecontengalallavefechaparaquela
trabajoyproyectos
sustituyaenOpenOffice
viajes
$_factura=array("fecha"=>"20090101");
vozsobreip
Noalasupresindelalibertad
deexpresineninternetque
Detalformaqueesearregloloasignamosal"parser"deplantillasdeTinyDoc,algo
pretenderealizarelgobierno
comoloquesehaceenlostemplatesdesmarty
Comentarios
arbitrariodeEnriquePea
$doc>mergeXmlField('factura',$_factura);

Recientes
NietoenMxico
OaxRomMobileComputing Siqueremoslistarinformacinporejemploeldetalledeunafactura(productos)
usaramoselmtodo
AlejandroenComohacer
$doc>mergeXmlBlock('detalle',$_detalle);
llamadasenautomtico

usandoAMIyel
EnOpenOfficeusaramos[detalleblock=table:tablerow]paraindicarqueesun
comandooriginateen
bloquededatos,yluegoponerenalgunapartedeldocumento[detalle.cantidad]
AsteriskPBX
TerminalesPorttiles
[detalle.descripcion][detalle.preciounitario][detalle.importe]paraquelisteel
LuisenComocompilar
ConmutadoresdeVoIP
contenidodelarreglodearreglos,dndeelarreglodedetalleseraunarreglocomola
FestivalenWindowsXP
AplicacionesWeb
siguientemanera
fabioenOpenVPNpara
array(
AsesorayConsultora
Android,Yano
array(
CursosdeAsterisk
'cantidad'=>2,
necesitasrooteartu
DesarrollodeSoftware
'descripcion'=>'AdaptadorSPA3102',
dispositivo!
Servicios
'preciounitario'=>1450.00,
SixtoRomeroenPrinting
Yms..
'importe'=>2900
withZebraTechnologies
),
www.oaxrom.com
RW420Printerand
array(
Avisode
'cantidad'=>3,
SymbolMotorolaMC70
Privacidad
'descripcion'=>'ModulosFXO',
MobileTerminalusing
'preciounitario'=>1400.00,
Bluetoothconnections..
'importe'=>4200.00
PhylevnenComo
),
configurarservidorPunto
array(
'cantidad'=>1,
Multipuntocon
'descripcion'=>'RouterInalambricoWRT54G',
OpenVPNyclienteen
'preciounitario'=>650,
WindowsLinux.
'importe'=>650
PaulenComoconfigurar
),
servidorPunto
array(
'cantidad'=>1,
Multipuntocon

'descripcion'=>'TarificadorWebAsterisk',
'preciounitario'=>2500,
'importe'=>2500
),
)

YconestosesustituiralainformacinenOpenOffice,respetandoelestilo,posicin,
etc.,porloquetendramosunreporteadorWYSIWYG(WahtYouSeeIsWhatYou
GetLoquevesesloqueobtienes).
PorejemploaqumuestrocomoseraelarchivoplantillaenOpenOfficeusandola
"sintaxis"deTinyButStrong,DeLadoderechovemoscomoquedaraelarchivode
OpenOfficedespuesdequeseparseoconTinyButStrong.

PostsRecientes
InstalacinyConfiguracin
deOpenSourceOaxRomDialer
Comoperderseenla
montaa,dormirenellay
sobrevivir.
TravesaSanRafael
AyolocoCumbreIztaccihuatl
LaJoya
Aplicacionesparamonitoreo,
rastreoyespionajede
(Clickparaverlaimagenmsgrande)
dispositivosmviles.
UncdigodeejemplodecomoprocesararchivosdeOpenOfficeconPHPy
Comopermitir
TinyButStrongsera:
temporalmenteintroducir
<?php
valoresnoestndaren
//llamamosalaslibreriasdeformateodeplantillasdeOpenOffice
configuracindetroncalesSIP include('lib/tinyButStrong.class.php');
include('lib/tinyDoc.class.php');
deFreePBX?
//CreamosunObjetodelaClase
Quellevarenunamochila
$doc=newtinyDoc();
paraacamparenlamontaa
//IndicamosqueOpenOfficeestaenformato.zip,enlinuxhayqueverificar
ActualizandoFreePBXybug quetengamosinstaladounzip:sudoaptgetinstallunzip
enlagrabacindellamadas.
$doc>setZipMethod('ziparchive');
//IndicamosqueeldirectoriotemporaldndedescomprimiraelarchivoOD*de
OpenVPNvsIPSec
OpenOffice
HechoenMxico
$doc>setProcessDir('./tmp');
documentalquetodomexicano //LeindicamoselarchivodeOpenOfficequecreamoscomoplantilla
debever
$doc>createFrom('formato_factura.odp');
Comoleermsrpidoen7
//Indicamoselarchivoqueescribir,OpenOfficeguardaencontent.xmlla
informacincapturadaenelarchivo
dasPDF
$doc>loadXml('content.xml');
//FuncionqueformatearalaplantilladeOpenOffice
crea_factura($doc);
//Indicamosquegenereuandescargadelarchivoparaelusuario
$doc>sendResponse();
//Eliminatodalainformacinquefucreadatemporalmente
$doc>remove();

functioncrea_factura($doc)
{
//Enelarchivoplantilladedeopenofficetenemos[factura.fecha],
[factura.subtotla],[factura.iva],[factura.total],[factura.totaltext]
//Loquehacelaclaseescambiarlainformacinporlaqueasinemosaqu,
sivemosasignamoselarregloafacturayelmtodousadoesmergeXmlField
$doc>mergeXmlField('factura',
array(
'id'=>'1',
'fecha'=>date('Ymd'),
'subtotal'=>10250,
'iva'=>1537.5,
'total'=>10787.5,
'totaltext'=>'DiezMilSetecientosPesosCincuentaCentavos',
)
);
//Aligualqueenfacturaaclienteleasignamoselarreglodeclienteque
tienelasllavesqueseransustituidasenlaplantilla
//usamoselmetodomergeXmlFieldyaqueesunarreglounidimensional
$doc>mergeXmlField('cliente',

OpenVPNyclienteen
WindowsLinux.
UrgeenRockolaWeb
2.0enLinux..
PhylevnenConfigurando
Asteriskparaguardarlos
registrosdelCDRen
MySQL
JoseenConfigurando
Asteriskparaguardarlos
registrosdelCDRen
MySQL
albertoenVentajasy
Desventajasdeun
ConmutadorTelefnico
IPVirtual(PBX)
lisaenInstalando
Postgresqlconsoportede
UUIDparausarcon
OpenBravo
noelenLlamadesde
InternetGratisusandoun
WebPhone
IGNACIODJenComo
instalarLinuxFamiliar
8.4conOPIEcomo
entornodeescritorioen
iPaqRX3715
julianhusenComo
configurarservidorPunto
Multipuntocon
OpenVPNyclienteen
WindowsLinux.
AlejandroenSistema
AbiertoparaVotacin
Telefnica
misseybreeenComo
implementarunAGIcon
PHPenunconmutador
deVoIPsobreAsterisk
SectorenMostrando
fuentesTTFconPHPy
GDenLinux
LuluenModificarel
FormdeCallCenterde
Elastixparadarms
tiempoalacaptura
JosLuis
AguilarenComoinstalar
LinuxFamiliar8.4con
OPIEcomoentornode
escritorioeniPaq
RX3715
PhylevnenInstalando
manualmentelosreportes
deFreePBX2.10&
Asterisk1.8

array(
'id'=>'1001',
'nombre'=>'OaxRomSAdeCV',
'direccion'=>'Encuentranosenhttp://www.oaxrom.com',
'rfc'=>'OAX090101C45'
)
);
//Estemtodoesinteresante,yaquenospermitirmostrarlistadosenla
plantilla
//Enlaplantillatenemos[detalle.cantida][detalle.descripcion]
[detalle;block=table:tablerow][detalle.preciounitario][detalle.importe]
//UsandolafuncionmergeXmlBlock,podremoslistarinformacindeunarreglo
dearreglosenformadelistas,estoesprcticocundoseintenta
//mostrarinformaciondeproductosenunafacturaporejemplo,dondeel
numerodeproductospuedeser1ovarios,estoloquecomunmentesellama
detalle
$doc>mergeXmlBlock('detalle',
array(
array(
'cantidad'=>2,
'descripcion'=>'AdaptadorSPA3102',
'preciounitario'=>1450.00,
'importe'=>2900
),
array(
'cantidad'=>3,
'descripcion'=>'ModulosFXO',
'preciounitario'=>1400.00,
'importe'=>4200.00
),
array(
'cantidad'=>1,
'descripcion'=>'RouterInalambricoWRT54G',
'preciounitario'=>650,
'importe'=>650
),
array(
'cantidad'=>1,
'descripcion'=>'TarificadorWebAsterisk',
'preciounitario'=>2500,
'importe'=>2500
),
)
);
//Yaquelaclaseasignalosvalores,guardalainformacin
$doc>saveXml();
/*
$doc>loadXml('styles.xml');
$doc>mergeXmlField('header',
array(
'title'=>'madewithtinyDocand',
'img'=>'images/samples/openofficebybenjaminbois.png',
)
);
$doc>mergeXmlField('footer',
array(
'signature'=>'imagecredit:BenjaminBois',
)
);
$doc>saveXml();
*/
//cerramoselarchivo
$doc>close();
}
?>

Hesubidounproyectodeejemploahttp://files.mexrom.net
entraconlogin:invitadoypassword:invitado
EntraalacarpetaTinyButStrongydescargaelarchivofactura.zip
Descomprimelacarpetaenalgndirectoriodetservidorwebydesdetunavegador
abreporejemplo:
http://localhost/factura/formato_factura.php
YestodeberagenerarteunarchivodeOpenOfficecomomuestroenlapartederecha
delaimagendearriba.
ContinyDocesfcilcrearreportesenPHPyobteniendodatosdeMySQL,soloes
cuestindecrearlaplantillaylisto..
Puedesobtenermsinformacinen:
http://tinydoc.unesolution.fr/
Phylevn|15September,3:03am|Programacion,Software,TrabajoyProyectos,
SoftwareLibre,BasesdeDatos|2comentarios
Lahistoriadeuntroyano..Ataquedesecuenciadecomandos(XSS)

http://www.ViaLibros.netunabuenaopcinparaencontrarlibrosantiguos..

#1Re:GenerandoreportesenPHPusandoplantillascreadascon
OpenOffice(WYSIWYG).
Flavio,<EMail>/18January,7:02am
avatar

graciasporelaporte.
hayotraformadedescargarelejemplofactura.zip?
Muchasgracias
[Responder(0)]

#2Re:GenerandoreportesenPHPusandoplantillascreadascon
OpenOffice(WYSIWYG).
EdgarR.M.(POWER),<EMail>/26March,3:04pm
avatar

Graciasmuybuenaporte
Saludos
[Responder(0)]
Agregauncomentario...
PublicartambinenFacebook

PublicarcomoJonaGtz

Comentar

RafaOccelliCastellndelaPlana
factura.zip,noestadisponibleestadesatualizado
ResponderMegustaSeguirpublicacin27dejuliode2014ala(s)5:48
PluginsocialdeFacebook

Emblemas

PoweredbyJaws

Вам также может понравиться