Página 3 de 3
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 12:59
por Itamar M. Lins Jr.
Ola!
Começa a integrar com HTML seu sistema. Faz algum relatório.
Código: Selecionar todos
cArq := CriaArqImpressao('estoque001.html')
? '<html><head>'
? '</head><title>ESTOQUE POR GRUPO</title>'
?? '<meta http-equiv = "Content-Type" content="text/html; charset=iso-8859-1">'
? '<STYLE type=text/css>'
? 'table,th,td{'
? ' FONT: 8pt "Courier New";'
? ' border:none ' //1px solid #888;'
? ' border-collapse:collapse;'
? ' color:#000000;'
? '}'
? '<font face="Arial" size=3 color=#000000><b>'+em->empresa+'</b></Font>'
? '<br><font size=3> Estoque Por Ordem De Grupo </font>'
? '<br>'+trim(cidade_)+' '+str(day(date()),2)+" de "+cmonth(date())+' de '+str(year(date()),4)+' '+ampm(time())
? '<table border="0" bgcolor=#000000 cellpadding=1 cellspacing="1">'
? '<tr bgcolor="#FFCCCC"><td colspan=5 align=center> Grupo: '+eq->cod_grupo+' Grupo Não Localizado'+'</tr>'
? '<tr bgcolor="#FFCCCC">'
?? '<td> Referência'
?? '<td> Mercadoria'
?? '<td> Quantidade'
?? '<td> A Vista'
?? '<td> A Prazo </tr>'
Do while !eq->(eof())
? '<tr bgcolor="#FFFFCC"><td>'+eq->cod_mercad
?? '<td>'+pad(eq->mercadoria,30)
?? '<td align=right>'+transform(eq->quantidade,PictQuan())
?? '<td align=right>'+transform(eq->avista,'@E 99,999,999.99')
?? '<td align=right>'+transform(eq->prazo,'@E 99,999,999.99')+'</tr>'
eq->(dbskip())
enddo
FecharImpres()
eq->(dbgotop())
hwg_Shellexecute(cArq,"open",nil,cDirSist,1)
return nil
*******************************
Function CriaArqImpressao(cArq)
*******************************
*
*
IF File(cArq)
DO WHILE !Empty(fErase(cArq))
hwg_msgyesno("Falha apagando o arquivo: "+cArq)
ENDDO
ENDIF
set printer to &cArq
set print on
set console off
set Printer on
Return cArq
*********************
Function FecharImpres
*********************
*
*
set margin to 0
set print off
set printer to
set console on
set Printer off
return .t.
Com HTML vc pode até simular o velho relatório da época do clipper usando a fonte COURIER 8 80,132 colunas.
Isso na tela! e impresso também.
Destrava ai o pensamento, com HTML vc tem TODAS as possibilidades de tamanho, fonte, cores, "designer" sem limites. Nos relatórios e não ficará velho os comandos, não tem como HTML deixar de existir.
Saudações,
Itamar M. Lins Jr.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 13:48
por JoséQuintas
Achei interessante
O Bedi usa minha classe de PDF no aplicativo dele via web.
Ele gera o relatório em PDF pelo aplicativo e abre o link via navegador.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 14:55
por Itamar M. Lins Jr.
Ola!
Até a Microsoft já fez a "MEA CULPA" com o código livre.
PDF tem dono. HTML é do mundo. Do HTML para PDF são alguns cliques ai no mouse, na ora de que precisar.
A vantagem do Html sob o PDF que vc tem todo o poder do HTML fazer diversos relatórios ligar um com outro pelo hiperlink... É coisa demais para pensar.
Pode até misturar tudo com mod_harbour, jogar na net via apache, interagir com dispositivos, pegar o OK do cliente/fornecedor salvar no seu banco de dados...
Não perdemos o que já sabemos. Não jogamos fora todo esse conhecimento xBase.
Percebam que o HTML é o caminho para a independência.
Hoje se for procurar as ferramentas mais modernas, todas as principais IDE´s estão na internet, não instalamos NADA no nosso desktop, usamos tudo "solto", nada fica no nosso computador, até as cópias dos fontes estão em algum lugar, GIT etc...
Os navegadores são o GATE, o portal, entre esses mundos.
Saudações,
Itamar M. Lins Jr.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 15:11
por asimoes
Itamar,
Não tem como testar o seu exemplo, tem algumas tags faltantes, o ideal seria anexar o arquivo com o exemplo.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 15:33
por Itamar M. Lins Jr.
Ola!
Não tem como testar o seu exemplo, tem algumas tags faltantes, o ideal seria anexar o arquivo com o exemplo.
Blz, vou fazer um exemplo usável! rsrsrs ai foi só para mostrar como eu faço os relatórios.
Saudações,
Itamar M. Lins Jr.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 15:46
por MSDN
Curioso pra ver !
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 16:57
por Itamar M. Lins Jr.
Ola!
Rodar na pasta do harbour \tests, não precisa compilar.
>hbrun htmlrel.prg
Tem um dbf lá usado para esses testes.
htmlrel.prg
Código: Selecionar todos
Function Main
use test.dbf
set printer to "pessoas.html"
set print on
set console off
set Printer on
? '<!DOCTYPE html>'
? '<html>'
? '<head>'
? '<title>Page Title</title>'
//Estilo do BROWSE! tabela com linha sem linha cor letra etc... Centenas milhares de opções.
? '<STYLE type=text/css>'
? 'table,th,td{'
? ' FONT: 8pt "Courier New";'
? ' border:none ' //1px solid #888;'
? ' border-collapse:collapse;'
? ' color:#000000;'
? '}'
? '</STYLE>'
? '</head>'
? '<body>'
? '<table border="0" bgcolor=#000000 cellpadding=1 cellspacing="1">'
? '<tr bgcolor="#FFCCCC">'
?? '<td> Primeiro Nome </td>'
?? '<td> Ultimo Nome </td>'
?? '<td> Rua </td>'
?? '<td> Cidade </td>'
?? '<td> UF </td>'
?? '<td> CEP </td>'
?? '<td> Contratado Em: </td>'
?? '<td> Casado: </td>'
?? '<td> Idade: </td>'
?? '<td> Salário: </td></tr>'
Do while .not. eof()
? '<tr bgcolor="#FFFFCC"><td>' + field->first + '</td>'
?? '<td>' + field->last + '</td>'
?? '<td>' + field->street + '</td>'
?? '<td>' + field->city + '</td>'
?? '<td>' + field->state + '</td>'
?? '<td>' + field->zip + '</td>'
?? '<td>' + dtoc(field->hiredate) + '</td>'
?? '<td>' + iif(field->married,"SIM","NÃO") + '</td>'
?? '<td>' + hb_ntos(field->age) + '</td>'
?? '<td>' + transform( field->salary, "@e 999,999.99") + '</td></tr>'
skip
Enddo
//Fechando as tags do HTML
? '</table></body></html>'
close all
set print off
set printer to
set console on
set Printer off
!'start pessoas.html'
//wapi_ShellExecute( 0, 'open', 'pessoas.html', , , 3 )
return nil
Se mandar imprimir não sai as linhas. Uma técnica com a tag <table> só mostrar as linhas no navegador, faça preview para constatar.
Saudações,
Itamar M. Lins Jr.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 20:19
por MSDN
Itamar, vc teria o link de algo mais elaborado ? Não é o fonte, só algo pronto para ver as funcionalidades, tipo um menu com várias opções, um grid, botões, um dashboard.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 20:46
por Itamar M. Lins Jr.
Ola!
Não entendi.
Quer isso em qual linguagem ?
Saudações,
Itamar M. Lins Jr.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 21:51
por MSDN
Em HTML5 + CSS com JS por exemplo.
Ou usando o que vc já mostrou aqui nas postagens, de transformar um site para APP.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 19 Mai 2020 22:59
por Itamar M. Lins Jr.
Ola!
De novo ? Fiz até apk! Tá purai no forum, nem lembro onde coloquei.
Tudo que faço em HTML é copiando e colando da internet.
Quer ver Menus, etc...
Pego daqui por exemplo.
https://www.w3schools.com/css/css_navbar.asp
Não tenho dashboard pq que ainda não precisei. Meus ensaios, estão em uma maquina LINUX.
Tô ligando ela...
Saudações,
Itamar M. Lins Jr.
Quais segmentos do mercado não serão afetados com a crise ?
Enviado: 26 Mai 2020 22:23
por Itamar M. Lins Jr.
Ola!
Código: Selecionar todos
function Main()
local cTitle := "MyApp"
local aMenuItems := { { "Tables", { "Customers", "Invoices", "Stock" } },;
{ "Invoices", { "Browse", "Print" } },;
{ "Reports", { "Clients", "Invoices", "Stock" } },;
{ "Help", { "Index", "Search", "-", "About" } } }
TEMPLATE PARAMS cTitle, aMenuItems
<html lang="en">
<head>
<title><?prg return cTitle ?></title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://fivetechsoft.github.io/xcloud/source/js/xcloud.js"></script>
<link rel="stylesheet" href="https://fivetechsoft.github.io/xcloud/source/css/xcloud.css">
</head>
<body>
<div class="container-fluid" style="overflow:hidden;">
<nav class="navbar navbar-inverse">
<div class="navbar-header">
<a class="navbar-brand"><span class="glyphicon glyphicon-menu-hamburger" aria-hidden="true"></span></a>
<a class="navbar-brand" onclick="MsgInfo( 'my mod_harbour app', 'Information' )" style="cursor:pointer;"><?prg return cTitle ?></a>
<a class="navbar-brand"></a>
<a class="navbar-brand"></a>
<a class="navbar-brand"></a>
<a class="navbar-brand"></a>
<a class="navbar-brand"></a>
</div>
<ul class="nav navbar-nav">
<?prg local n, m, cItems := ""
for n = 1 to Len( aMenuItems )
cItems += '<li class="dropdown">'
cItems += ' <a class="dropdown-toggle" data-toggle="dropdown" style="cursor:pointer;">' + aMenuItems[ n ][ 1 ]
cItems += ' <span class="caret"></span></a>'
cItems += ' <ul class="dropdown-menu">'
for m = 1 to Len( aMenuItems[ n ][ 2 ] )
if aMenuItems[ n ][ 2 ][ m ] == "-"
cItems += ' <li class="divider"></li>'
else
cItems += ' <li><a onclick="MsgInfo(' + "'" + aMenuItems[ n ][ 2 ][ m ] + "'" + ;
')" style="cursor:pointer;">' + aMenuItems[ n ][ 2 ][ m ] + "</a></li>"
endif
next
cItems += ' </ul>'
cItems += '</li>'
next
return cItems ?>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
<li><a onclick='MsgGet( "username:", "Please identify" );' style="cursor:pointer;"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
</ul>
</nav>
<div class="row" style="margin-right:0px">
<div class="col-sm-2">
<nav class="navbar navbar-expand-lg navbar-inverse">
<a class="navbar-brand">Dashboard</a>
</nav>
<ul style="background-color:silver;height:89%;margin-bottom:0px;">
<li>Clients
<ul>
<li style="color:white;">New</li>
<li style="color:white;">Edit</li>
<li style="color:white;">Delete</li>
</ul>
</li>
<li>Invoices
<ul>
<li style="color:white;">New</li>
<li style="color:white;">Edit</li>
<li style="color:white;">Delete</li>
</ul>
</li>
</ul>
</div>
<div class="col-sm-10">
<nav class="navbar navbar-expand-lg navbar-inverse">
<a class="navbar-brand">Main</a>
</nav>
</div>
</div>
</div>
<body>
</body>
</html>
ENDTEXT
return nil
O pessoal postou isso no grupo de usuários... Esse mesmo exemplo tem na pasta samples do mod_harbour... é que tem tanta informação agora para estudar...
Saudações,
Itamar M. Lins Jr.