Meu modo de trabalho
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Aproveitando...
Hoje sim, emiti as duas primeiras notas, com XML gerado totalmente pelo MySQL.
Até agora era parcial, hoje foi total.
Esse fuso horário foi um dos problemas, que eu me esqueci dele.
Hoje sim, emiti as duas primeiras notas, com XML gerado totalmente pelo MySQL.
Até agora era parcial, hoje foi total.
Esse fuso horário foi um dos problemas, que eu me esqueci dele.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Código: Selecionar todos
SELECT
CPNOME,
ze_ContabilSaldoExercicio( IDCTCONTA, '2021-12-31', '2021-12-31' ) AS SDANT,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-01-01','2022-01-31') AS DEB01,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-01-01','2022-01-31') AS CRE01,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-01-31','2021-12-31' ) AS ACU01,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-01-31', '2021-12-31' ) AS EXE01,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-02-01','2022-02-28') AS DEB02,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-02-01','2022-02-28') AS CRE02,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-02-28','2021-12-31' ) AS ACU02,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-02-28', '2021-12-31' ) AS EXE02,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-03-01','2022-03-31') AS DEB03,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-03-01','2022-03-31') AS CRE03,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-03-31','2021-12-31' ) AS ACU03,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-03-31', '2021-12-31' ) AS EXE03,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-04-01','2022-04-30') AS DEB04,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-04-01','2022-04-30') AS CRE04,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-04-30','2021-12-31' ) AS ACU04,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-04-30', '2021-12-31' ) AS EXE04,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-05-01','2022-05-31') AS DEB05,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-05-01','2022-05-31') AS CRE05,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-05-31','2021-12-31' ) AS ACU05,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-05-31', '2021-12-31' ) AS EXE05,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-06-01','2022-06-30') AS DEB06,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-06-01','2022-06-30') AS CRE06,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-06-30','2021-12-31' ) AS ACU06,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-06-30', '2021-12-31' ) AS EXE06,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-07-01','2022-07-31') AS DEB07,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-07-01','2022-07-31') AS CRE07,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-07-31','2021-12-31' ) AS ACU07,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-07-31', '2021-12-31' ) AS EXE07,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-08-01','2022-08-31') AS DEB08,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-08-01','2022-08-31') AS CRE08,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-08-31','2021-12-31' ) AS ACU08,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-08-31', '2021-12-31' ) AS EXE08,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-09-01','2022-09-30') AS DEB09,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-09-01','2022-09-30') AS CRE09,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-09-30','2021-12-31' ) AS ACU09,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-09-30', '2021-12-31' ) AS EXE09,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-10-01','2022-10-31') AS DEB10,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-10-01','2022-10-31') AS CRE10,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-10-31','2021-12-31' ) AS ACU10,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-10-31', '2021-12-31' ) AS EXE10,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-11-01','2022-11-30') AS DEB11,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-11-01','2022-11-30') AS CRE11,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-11-30','2021-12-31' ) AS ACU11,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-11-30', '2021-12-31' ) AS EXE11,
ze_ContabilSaldoDebito( IDCTCONTA, '2022-12-01','2022-12-31') AS DEB12,
ze_ContabilSaldoCredito( IDCTCONTA, '2022-12-01','2022-12-31') AS CRE12,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-12-31','2021-12-31' ) AS ACU12,
ze_ContabilSaldoExercicio( IDCTCONTA,'2022-12-31', '2021-12-31' ) AS EXE12
FROM JPCTCONTA
WHERE IDCTCONTA = 5
O MySQL faz tudo.
balancete, balanço patrimonial, demonstração de resultado, vém tudo pronto.
Esse acima é pra consulta de saldos mensais.
Sei lá se compensa pegar um de cada vez....
Retorna tudo em menos de 1 segundo.
No HeidiSQL mostra 0.016 segundos
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Código: Selecionar todos
/*
PCONTSALDO - CONSULTA AOS VALORES DO PLANO DE CONTAS
1991.04 - José Quintas
*/
#include "inkey.ch"
#include "josequintas.ch"
PROCEDURE pContSaldo
LOCAL nIdCtConta := 0, nCont, nAnoAtual, GetList := {}, cnSQL := ADOLocal(), dInicial, dFinal
LOCAL nFechaMes, nFechamento, dFechamento, dFechaExe
@ 2, 2 SAY "Ano. . . .:"
@ 4, 2 SAY "Conta. . .:"
@ 6, 2 SAY "--mes--"
@ 6, 10 SAY " " + Padc( "Débitos", 21, "-" )
@ 6, 32 SAY " " + Padc( "Créditos", 21, "-" )
@ 6, 54 SAY " " + Padc( "Saldo Exercício", 21, "-" )
@ 6, 76 SAY " " + Padc( "Saldo Período", 21, "-" )
@ 7, 2 SAY "DEZ/"
@ 9, 2 SAY "JAN/"
@ 11, 2 SAY "FEV/"
@ 13, 2 SAY "MAR/"
@ 15, 2 SAY "ABR/"
@ 17, 2 SAY "MAI/"
@ 19, 2 SAY "JUN/"
@ 21, 2 SAY "JUL/"
@ 23, 2 SAY "AGO/"
@ 25, 2 SAY "SET/"
@ 27, 2 SAY "OUT/"
@ 29, 2 SAY "NOV/"
@ 31, 2 SAY "DEZ/"
nAnoAtual := 0
DO WHILE .T.
Mensagem( "F9 pesquisa, ESC sai" )
@ 2, 13 GET nAnoAtual PICTURE "9999" VALID nAnoAtual > 2000
@ 4, 13 GET nIdCtConta PICTURE "999999" VALID JPCTCONTAClass():New():Valida( @nIdCtConta )
READ
Mensagem()
IF LastKey() == K_ESC
EXIT
ENDIF
Altd()
WITH OBJECT cnSQL
:Execute( "SELECT EMFECHA FROM JPEMPRESA WHERE IDEMPRESA=1" )
nFechamento := :Number( "EMFECHA" )
:CloseRecordset()
dFechaExe := Stod( StrZero( nAnoAtual - 1, 4 ) + "1231" )
:cSQL := "SELECT CPNOME," + ;
"ze_ContabilSaldoExercicio( IDCTCONTA, " + DateSQL( dFechaExe ) + ", " + DateSQL( dFechaExe ) + " ) AS SDANT," + hb_Eol()
FOR nCont = 1 TO 12
dInicial := Stod( StrZero( nAnoAtual, 4 ) + StrZero( nCont, 2 ) + "01" )
dFinal := Last_Day( dInicial )
nFechaMes := Int( ( nCont - 1 ) / nFechamento )
IF nFechaMes == 0
dFechamento := Stod( StrZero( nAnoAtual - 1, 4 ) + "1231" )
ELSE
dFechamento := Last_Day( Stod( StrZero( nAnoAtual, 4 ) + StrZero( nCont, 2 ) + "01" ) )
ENDIF
:cSQL += "ze_ContabilSaldoDebito( IDCTCONTA, " + DateSQL( dInicial ) + "," + DateSQL( dFinal ) + ") AS DEB" + StrZero( nCont, 2 ) + "," + ;
"ze_ContabilSaldoCredito( IDCTCONTA, " + DateSQL( dInicial ) + "," + DateSQL( dFinal ) + ") AS CRE" + StrZero( nCont, 2 ) + "," + ;
"ze_ContabilSaldoExercicio( IDCTCONTA," + DateSQL( dFinal ) + "," + DateSQL( dFechaExe ) + " ) AS ACU" + StrZero( nCont, 2 ) + "," + ;
"ze_ContabilSaldoExercicio( IDCTCONTA," + DateSQL( dFinal ) + ", " + DateSQL( dFechamento ) + " ) AS EXE" + StrZero( nCont, 2 ) + ;
iif( nCont == 12, "", "," ) + hb_Eol()
NEXT
:cSQL += " FROM JPCTCONTA" + ;
" WHERE IDCTCONTA = " + NumberSQL( nIdCtConta )
:Execute()
@ 7, 6 SAY StrZero( nAnoAtual - 1, 4 )
@ 7, 52 SAY :Number( "SDANT" ) PICTURE PicVal(14,2)
@ 7, 74 SAY :Number( "SDANT" ) PICTURE PicVal(14,2)
FOR nCont = 1 TO 12
@ nCont * 2 + 7, 0 SAY ""
@ Row(), 6 SAY StrZero( nAnoAtual, 4 )
@ Row(), 10 SAY :Number( "DEB" + StrZero( nCont, 2 ) ) PICTURE PicVal(14,2)
@ Row(), 32 SAY :Number( "CRE" + StrZero( nCont, 2 ) ) PICTURE PicVal(14,2)
@ Row(), 52 SAY :Number( "ACU" + StrZero( nCont, 2 ) ) PICTURE PicVal(14,2)
@ Row(), 74 SAY :Number( "EXE" + StrZero( nCont, 2 ) ) PICTURE PicVal(14,2)
NEXT
ENDWITH
ENDDO
CLOSE DATABASES
RETURN
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Atualizando aqui.
Seguindo os avanços, executando STORED PROCEDUREs, e pegando retorno de STORED FUNCTIONs
Detalhe nesse último: TODOS os cálculos do pedido no MySQL e não no Harbour.
Seguindo os avanços, executando STORED PROCEDUREs, e pegando retorno de STORED FUNCTIONs
Código: Selecionar todos
:ExecuteProcedure( "ze_ContabilBalancete", dInicial, dFinal, iif( nOpcResultado == 1, 0, 12 ), nOpcGrau, iif( nOpcResultado == 3, 1, 0 ) )
Código: Selecionar todos
nIdPedido := cnSQL:ReturnFunction( "ze_PedidoDuplica", nIdPedido, Date(), LogInfo() )
Código: Selecionar todos
cnSQL:ExecuteProcedureNoReturn( "ze_PedidoCalculo", nIdPedido )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Meu modo de trabalho
Bom dia a todos.
Quintas, então aquela função naquele Select enorme não está no programa e sim numa Stored Procedure do BD?
Poderoso mesmo...
Saudações,
Mario.
Quintas, então aquela função naquele Select enorme não está no programa e sim numa Stored Procedure do BD?
Poderoso mesmo...
Saudações,
Mario.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Tenho de tudo um pouco.Mario Mesquita escreveu:Quintas, então aquela função naquele Select enorme não está no programa e sim numa Stored Procedure do BD?
Poderoso mesmo...
No caso do balancete contábil, tem rotina que cria tudo no MySQL e trás pronto em uma tabela.
Minha geração de XML de nota fiscal está toda no MySQL.
São várias rotinas, uma chamando a outra.
O aplicativo apenas pede o XML de uma nota, e vém pronto.
E é muito rápido isso tudo, de um modo geral, menos de 1 segundo tá tudo pronto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Uia
Agora com "dialog" dá pra brincar um pouco mais.
Ainda falta ajustar os controles, referente a cores e tamanho de fonte.
No harbour 3.4 funcionava melhor.
Como nunca usei, nem me preocupei com os detalhes.
Agora com "dialog" dá pra brincar um pouco mais.
Ainda falta ajustar os controles, referente a cores e tamanho de fonte.
No harbour 3.4 funcionava melhor.
Como nunca usei, nem me preocupei com os detalhes.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Sei lá....
De ontem pra hoje o EXE reduziu 8 MB.
E comparando com 23/02/2023 reduziu 245 MB
Nem perguntem, só olhei de curiosidade.
backupd\ é backup, tá faltando atualizar o backup kkkk
wwwjpa\arquivos, é o último que fiz upload pra internet, assim que fizer upload passa a ser o atual.
Foi só coincidência ter os 3 por aqui ainda.
De ontem pra hoje o EXE reduziu 8 MB.
E comparando com 23/02/2023 reduziu 245 MB
Nem perguntem, só olhei de curiosidade.
backupd\ é backup, tá faltando atualizar o backup kkkk
wwwjpa\arquivos, é o último que fiz upload pra internet, assim que fizer upload passa a ser o atual.
Foi só coincidência ter os 3 por aqui ainda.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Sei lá pra que... reduziu um pouco mais.
Só retirando lixo.
Sped fiscal por exemplo, nunca usei, pra que manter no aplicativo...
Só retirando lixo.
Sped fiscal por exemplo, nunca usei, pra que manter no aplicativo...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Tava revendo aqui.
Por coincidência, está complementando DOIS ANOS que passei a gerar XML de NFE no próprio MySQL.
E por coincidência hoje dividi um pouco mais, pra não ficar muito grande.
Apenas uma parte:
Por coincidência, está complementando DOIS ANOS que passei a gerar XML de NFE no próprio MySQL.
E por coincidência hoje dividi um pouco mais, pra não ficar muito grande.
Apenas uma parte:
Código: Selecionar todos
CREATE FUNCTION ze_XmlNfeProduto( nIdItPed INT(11), nNumItem INT(11) )
RETURNS TEXT CHARSET latin1
PRODUTO: BEGIN
DECLARE cXml TEXT;
DECLARE nIdProduto, nSomenteIcms INT(11);
DECLARE nQtde DECIMAL(16,4);
DECLARE nValFre, nValSeg, nValDes, nValOut, nImpVal DECIMAL(16,2);
DECLARE nPreNot DECIMAL(16,5);
DECLARE cNome VARCHAR(60);
DECLARE cPedCom, cUnid, cGtin, cGtinTri, cNcm, cCest, cPedCli, cCfop VARCHAR(20);
SET cXml := '';
SELECT IPPRODUTO, IPQTDE, IPPRENOT, IPVALFRE, IPVALSEG, IPVALDES, IPVALOUT + IPVALEXT, IPCFOP, ze_SoNumeros( IPPEDCOM ), IPIMPVAL,
IENOME, IEUNID, IEGTIN, IEGTINTRI, IENCM, IECEST,
PDPEDCLI
FROM JPITPED
LEFT JOIN JPPEDIDO ON IDPEDIDO = IPPEDIDO
LEFT JOIN JPNOTFIS ON NFPEDIDO = IDPEDIDO
LEFT JOIN JPITEM ON IDPRODUTO = IPPRODUTO
WHERE IDITPED = nIdItPed
INTO nIdProduto, nQtde, nPreNot, nValFre, nValSeg, nValDes, nValOut, cCfop, cPedCom, nImpVal,
cNome, cUnid, cGtin, cGtinTri, cNcm, cCest, cPedCli;
SET nSomenteIcms := IF( cCfop = '1.604' OR INSTR( cNome, ' DE ICMS' ) != 0, 1, 0 );
SET cXml := CONCAT( cXml,
'<det nItem="', nNumItem, '">',
'<prod>',
ze_XmlTag( 'cProd', LPAD( nIdProduto, 6, '0' ) ),
ze_XmlTag( 'cEAN', ze_XmlNfeGtin( cGtin ) ),
ze_XmlTag( 'xProd', cNome ),
ze_XmlTag( 'NCM', cNcm ),
IF( LENGTH( cCest ) = 0, '', ze_XmlTag( 'CEST', cCest ) ),
ze_XmlTag( 'CFOP', ze_SoNumeros( cCFOP ) ),
ze_XmlTag( 'uCom', LEFT( CONCAT( cUnid, '.' ), 6 ) ),
ze_XmlTag( 'qCom', nQtde ),
ze_XmlTag( 'vUnCom', IF( nSomenteIcms = 1, 0.00, nPreNot ) ),
ze_XmlTag( 'vProd', IF( nSomenteIcms = 1, 0.00, ROUND( nQtde * nPreNot, 2 ) ) ),
ze_XmlTag( 'cEANTrib', ze_XmlNfeGtin( cGtinTri ) ),
ze_XmlTag( 'uTrib', LEFT( CONCAT( cUnid, '.' ), 6 ) ),
ze_XmlTag( 'qTrib', nQtde ),
ze_XmlTag( 'vUnTrib', IF( nSomenteIcms = 1, 0.00, nPreNot ) ),
IF( nValFre = 0, '', ze_XmlTag( 'vFrete', nValFre ) ),
IF( nValSeg = 0, '', ze_XmlTag( 'vSeg', nValSeg ) ),
IF( nValDes = 0, '', ze_XmlTag( 'vDesc', nValDes ) ),
IF( nValOut = 0, '', ze_XmlTag( 'vOutro', nValOut ) ),
ze_XmlTag( 'indTot', '1' ) );
PRODUTOIMPORTACAO: BEGIN
SET cXml := CONCAT( cXml, '' );
END PRODUTOIMPORTACAO;
SET cXml := CONCAT( cXml,
IF( LENGTH( cPedCli ) = 0, '', ze_XmlTag( 'xPed', cPedCli ) ),
IF( LENGTH( cPedCom ) = 0, '', ze_XmlTag( 'nItemPed', cPedCom ) ),
IF( 1 = 1, '', ze_XmlTag( 'cBenef', '' ) ) );
SET cXml := CONCAT( cXml, ze_xmlnfeprodutoveiculo( nIdItPed ) );
SET cXml := CONCAT( cXml, ze_xmlnfeprodutomedicamento( nIdItPed ) );
SET cXml := CONCAT( cXml, ze_xmlnfeprodutoarmamento( nIdItPed ) );
SET cXml := CONCAT( cXml, ze_xmlNfeprodutocombustivel( nIdItPed ) );
SET cXml := CONCAT( cXml, '</prod>' );
SET cXml := CONCAT( cXml, '<imposto>', IF( nImpVal = 0, '', ze_XmlTag( 'vTotTrib', nImpVal ) ) );
SET cXml := CONCAT( cXml, ze_xmlnfeprodutoicms( nIdItPed ) );
SET cXml := CONCAT( cXml, ze_xmlnfeprodutoipi( nIdItPed ) );
SET cXml := CONCAT( cXml, ze_xmlnfeprodutoii( nIdItPed ) );
SET cXml := CONCAT( cXml, ze_xmlnfeprodutopis( nIdItPed ) );
SET cXml := CONCAT( cXml, ze_xmlnfeprodutocofins( nIdItPed ) );
SET cXml := CONCAT( cXml, ze_XmlNfeProdutoISS( nIdItPed ) );
SET cXml := CONCAT( cXml, '</imposto>', '</det>' );
RETURN cXml;
END PRODUTO;
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Código: Selecionar todos
FUNCTION LoadBoletoSetup( oBolSetup, nIdPortador )
LOCAL cnSQL := ADOLocal()
WITH OBJECT cnSQL
:Execute( "SELECT * FROM JPTABFINPOR WHERE IDFINPOR=" + NumberSQL( nIdPortador ) + ;
" UNION ALL SELECT * FROM JPTABFINPOR WHERE FINPORBANCO=" + NumberSQL( nIdPortador ) )
oBolSetup:nBanco := :Number( "FINPORBANCO" )
oBolSetup:nJuros := :Number( "FINPORJUROS" )
oBolSetup:nAgencia := :Number( "FINPORAGENCIA" )
oBolSetup:nConta := :Number( "FINPORCONTA" )
oBolSetup:nCarteira := :Number( "FINPORCARTEIRA" )
oBolSetup:nMulta := :Number( "FINPORMULTA" )
oBolSetup:nBancario := :Number( "FINPORBANCARIO" )
oBolSetup:nRemessa := :Number( "FINPORREMESSA" ) + 1
oBolSetup:nEspecie := :Number( "FINPORNESPECIE" )
oBolSetup:cBolEspecie := :String( "FINPORCESPECIE", 2 )
nIdPortador := :Number( "IDFINPOR" )
:CloseRecordset()
ENDWITH
IF nIdPortador == 0
oBolSetup:nBanco := 341
oBolSetup:nBancario := Val( LeCnf( "BOLETO NOSSO" ) )
oBolSetup:nJuros := Val( LeCnf( "BOLETO JUROS" ) )
oBolSetup:nAgencia := Val( LeCnf( "BOLETO AGENCIA" ) )
oBolSetup:nConta := Val( LeCNf( "BOLETO CONTA" ) )
oBolSetup:nCarteira := Val( LeCnf( "BOLETO CARTEIRA" ) )
oBolSetup:nCarteira := iif( oBolSetup:nCarteira == 0, 109, oBolSetup:nCarteira )
oBolSetup:nRemessa := 1
ENDIF
oBolSetup:nBancario += 1
RETURN nIdPortador
Depois foi pelo banco.
E agora é pelo portador.
Código: Selecionar todos
:Execute( "SELECT * FROM JPTABFINPOR WHERE IDFINPOR=" + NumberSQL( nIdPortador ) + ;
" UNION ALL SELECT * FROM JPTABFINPOR WHERE FINPORBANCO=" + NumberSQL( nIdPortador ) )
Se não encontrar por aí, vai no geral.
Isso resolve questão de cliente que não fez atualização.
Após atualização de todos os clientes, sei lá quando, é remover tudo alternativo.
Assim não tem pressa, não tem correria, não tem esquecimento, é só deixar acontecer.
Pra que deixar pra acertar manual, se dá pra fazer automático ?
É assim que vamos eliminando trabalho extra.
Eliminar trabalho extra significa mais tempo pra melhorar outras coisas.
Não precisa de recursos avançados, conhecimentos avançados, ou inteligência artificial.
É só usar a cabeça.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Pequena grande alteração....
Ainda em fase de testes.
Expandindo o uso de DIALOG MODAL na GTWVG.
Só pra reduzir fonte:
A dialog modal é ruim em qualquer lib.....
Pelo menos em multithread prende só a janela anterior.
E na GTWVG, muito melhor do que em qualquer LIB, dá pra clicar na janela bloqueada pra voltar o foco à janela modal.
Nas outras LIBs tem que tirar aplicativos da frente pra poder clicar.
Pois é... duas coisas ruins em outras LIBs.
A primeira janela é o menu.
A segunda janela é tabela de preços mostrando clientes.
A terceira janela é MODAL, o detalhamento das "filiais" da tabela selecionada, acionada pelo posicionamento e clique no button.
A quarta janela é MODAL, a opção de cadastros que podem ser adicionados à lista, acionada pelo clique no button.
Se clicar na primeira, ok, tá liberada, volta pra ela.
Se clicar em qualquer outra, volta pra quarta que é modal com relação às outras.
Então... criando dialog pra sub-opção, não preciso save/restore screen, e nem ficar tratando a parte gráfica.
Fica igual qualquer dialog de qualquer lib.
Ainda em fase de testes.
Código: Selecionar todos
CREATE CLASS frmGuiClass
...
METHOD CreateModal( cTitle ) CLASS frmGuiClass
hb_Default( @cTitle, "" )
CTitle := AppEmpresaApelido() + " (" + AppUserName() + " ) " + cTitle
::oCrt := CrtModal( 0, 0, MaxRow() + 1, MaxCol() + 1, cTitle, 2 )
RETURN Nil
Só pra reduzir fonte:
Código: Selecionar todos
STATIC FUNCTION RotinaPreco( cnSQLGeral, dDatRef )
LOCAL nKey := LastKey()
DO CASE
CASE nkey == K_F4 // filiais
//wSave()
//Atail( AppForms() ):GuiHide()
pPreComb_Filiais( cnSQLGeral )
//wRestore()
//Atail( AppForms() ):GuiShow()
cnSQLGeral:ReQuery()
RETURN 0
CASE nkey == K_ENTER
//wSave()
//Atail( AppForms() ):GuiHide()
pPreComb_Preco( ;
dDatRef, ;
cnSQLGeral:Number( "IDPRECO" ), ;
cnSQLGeral:Number( "PCCADASTRO" ), ;
cnSQLGeral:Number( "PCPRODUTO" ), ;
cnSQLGeral:Number( "PCFORPAG" ), ;
cnSQLGeral:Number( "PCURGENTE" ) )
//wRestore()
//Atail( AppForms() ):GuiShow()
cnSQLGeral:ReQuery()
ENDCASE
RETURN 0
Pelo menos em multithread prende só a janela anterior.
E na GTWVG, muito melhor do que em qualquer LIB, dá pra clicar na janela bloqueada pra voltar o foco à janela modal.
Nas outras LIBs tem que tirar aplicativos da frente pra poder clicar.
Pois é... duas coisas ruins em outras LIBs.
A primeira janela é o menu.
A segunda janela é tabela de preços mostrando clientes.
A terceira janela é MODAL, o detalhamento das "filiais" da tabela selecionada, acionada pelo posicionamento e clique no button.
A quarta janela é MODAL, a opção de cadastros que podem ser adicionados à lista, acionada pelo clique no button.
Se clicar na primeira, ok, tá liberada, volta pra ela.
Se clicar em qualquer outra, volta pra quarta que é modal com relação às outras.
Então... criando dialog pra sub-opção, não preciso save/restore screen, e nem ficar tratando a parte gráfica.
Fica igual qualquer dialog de qualquer lib.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
E começou a nova fase do aplicativo.
Mesmos fontes, mesma multithread, mesmo ADO, mesma classe ADO....
Mas começam os browses FIVEWIN.
Tem HWGUI também no aplicativo, mas uma GUI já dá trabalho suficiente.
Mesmos fontes, mesma multithread, mesmo ADO, mesma classe ADO....
Mas começam os browses FIVEWIN.
Tem HWGUI também no aplicativo, mas uma GUI já dá trabalho suficiente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
E tem gente que não compila um fontezinho....
PATH do harbour e compilador C.
É fácil, mas tem gente que não sabe fazer.
Isto normalmente seria o suficiente.
Mas tem as LIBs, e os defaults.
Só colocar em harbour\bin\hbmk.hbc
Acho que ninguém usa isso, nem as LIBs.
Pronto pra qualquer lib.
Mas aqui não termina por aí....
Estou usando fivewin de forma não convencional.
Parece que só dois usuários usam mingw com fivewin, eu e mais um.
Aí vém o \github\fivewin\fivewin.hbc
Aqui ainda não parou por aí. Tem a dummy.lib (dummy.a) indicada aí na lista
Isso é pra remover o que não me interessa do fivewin, e deixar o EXE menor.
Tamanho do EXE no momento pra mim é importante.
Também é pra adicionar funções ao fivewin que acusa falta ao usar mingw.
Ela é gerada a partir deste fonte
Tá bom até aqui ?
Mas ainda não acabou.
Agora é no projeto
Funções do fivewin modificadas.
Achou que acabou ?
Ainda não.
Acusa duplicidade de funções.
Deixo opcional isto, pra lembrar quais estão duplicadas, e ver se não apareceu nenhuma nova duplicada
Fica igual BLINKER, aceita coisa repetida.
E o projeto completo, ficou assim:
Tem também o debug do harbour, adicionado a força, eliminando qualquer outro debug
Tem também minha errorsys entrando a força, eliminando qualquer outra.
Tem também minha hb_gtsys entrando a força, eliminando qualquer outra.
Complicado ? Porque ?
Eu só digito C <ENTER> pra compilar... o que tem de complicado nisso ?
Eu faço o que EU QUERO, e não o que as LIBs querem.
NÃO É TESTE, É REAL.
Já está rodando assim nos clientes.
Minha classe ADO, minha classe sefazclass, emails, ftp, webservice, zip, WVG, FIVEWIN, HWGUI, tudo junto no mesmo EXE.
O harbour que eu quiser, com o compilador mingw da versão que eu quiser.
Sei lá... pra mim qualquer programador deveria conseguir fazer a mesma coisa.
Aliás, esse sempre foi o diferencial de programadores Clipper: se o Clipper não fazia, dávamos um jeito de conseguir fazer.
Depois que virou harbour/xharbour.... sei lá... parece que a maioria desaprendeu...
PATH do harbour e compilador C.
É fácil, mas tem gente que não sabe fazer.
Isto normalmente seria o suficiente.
Código: Selecionar todos
PATH=d:\harbour\bin;d:\harbour\comp\mingw32\bin
Só colocar em harbour\bin\hbmk.hbc
Acho que ninguém usa isso, nem as LIBs.
Código: Selecionar todos
mt=yes
gui=yes
strip=yes
fullstatic=yes
PRGFLAGS=-m -n -w3 -es2 -ge1 -DMT_EXPERIMENTAL -DHB_NO_GTGUI=YES
libpaths=d:/fontes/integra/libjpa
libpaths=d:/fontes/integra/boletoclass
libpaths=d:/fontes/integra/sefazclass
libpaths=d:/github/rmchartclass
libpaths=d:/github/wvgtest
libpaths=d:/github/hwgui
libpaths=d:/github/oohg
libpaths=d:/github/hmge
libpaths=d:/github/hmg3
libpaths=d:/github/fivewin
#harbour 3.4 only
#autohbcs=fivewin.ch:fivewin.hbc
#autohbcs=hwgui.ch:hwgui.hbc
#autohbcs=oohg.ch:oohg.hbc
#autohbcs=gtwvg.ch:gtwvg.hbc
Mas aqui não termina por aí....
Estou usando fivewin de forma não convencional.
Parece que só dois usuários usam mingw com fivewin, eu e mais um.
Aí vém o \github\fivewin\fivewin.hbc
Código: Selecionar todos
incpaths=include
libpaths=lib
{mingw}libs=dummy
{mingw}libs=fivehg
{mingw}libs=fivehgc
{mingw}libs=user32 winspool kernel32 comctl32 comdlg32 gdi32 gdiplus ole32
{mingw}libs=oleaut32 psapi oledlg mfcuia32 msimg32 win32k stdc++ version
{mingw}libs=uuid winmm vfw32 wsock32
{mingw}libs=uxtheme
libs=hbwin.hbc
libs=xhb.hbc
libs=hbct.hbc
libs=hbmzip.hbc
libs=hbziparc.hbc
Isso é pra remover o que não me interessa do fivewin, e deixar o EXE menor.
Tamanho do EXE no momento pra mim é importante.
Também é pra adicionar funções ao fivewin que acusa falta ao usar mingw.
Ela é gerada a partir deste fonte
Código: Selecionar todos
FUNCTION GDIP_Zoom(); RETURN Nil
FUNCTION GDIP_Crop(); RETURN Nil
FUNCTION GDIP_Rotate(); RETURN Nil
FUNCTION GDIP_RingGrad(); RETURN Nil
FUNCTION ADODefault(); RETURN Nil
FUNCTION Tscintilla(); RETURN Nil
FUNCTION fw_DateToSql(); RETURN Nil
FUNCTION fwAdoStruct(); RETURN Nil
FUNCTION RsGetRows(); RETURN Nil
FUNCTION AdoNull(); RETURN Nil
FUNCTION Fw_RdbmsName(); RETURN Nil
FUNCTION fwAdoFieldStruct(); RETURN Nil
FUNCTION fw_ShowAdoError(); RETURN Nil
FUNCTION fw_OpenAdoConnection(); RETURN Nil
FUNCTION fw_OpenRecordset(); RETURN Nil
FUNCTION fw_ValToSql(); RETURN Nil
FUNCTION fw_AdoFieldUpdateAble(); RETURN Nil
FUNCTION fwAdoMemoSizeThreShold(); RETURN Nil
FUNCTION FieldTypeAdoToDbf(); RETURN Nil
FUNCTION TRichedit5(); RETURN Nil
FUNCTION MnuColors(); RETURN Nil
FUNCTION RPreview(); RETURN Nil
FUNCTION TRichedit(); RETURN Nil
FUNCTION WordPDF(); RETURN Nil
FUNCTION fwSavePreviewToPdf(); RETURN Nil
FUNCTION fw_I2PDF(); RETURN Nil
FUNCTION fwpg_Structure(); RETURN Nil
FUNCTION fwpg_Skipper(); RETURN Nil
FUNCTION fwpg_xbrSeek(); RETURN Nil
FUNCTION fwpg_FieldGet(); RETURN Nil
FUNCTION fwpg_xbrSaveData(); RETURN Nil
FUNCTION fwpg_QuerySetOrder(); RETURN Nil
FUNCTION fwpg_Execute(); RETURN Nil
FUNCTION fwpg_GoToKeyVal(); RETURN Nil
Mas ainda não acabou.
Agora é no projeto
Funções do fivewin modificadas.
Código: Selecionar todos
d:\github\dlgauto\source\lib_fivewin.prg
d:\github\fivewin\source\classes\xbrowse.prg
d:\github\fivewin\source\function\checkres.prg
Ainda não.
Acusa duplicidade de funções.
Deixo opcional isto, pra lembrar quais estão duplicadas, e ver se não apareceu nenhuma nova duplicada
Fica igual BLINKER, aceita coisa repetida.
Código: Selecionar todos
SET HB_USER_LDFLAGS=-Wl,--allow-multiple-definition -s -static
Código: Selecionar todos
*.prg
libjpa/prg/*.prg
#d:\github\fivewin\source\winapi\instance.c
#PostQuitMessage(0) on errorsys
jpa.rc
topnfe/*.prg
-ojpa
#force harbour debug
-lforcedebug
## force libjpa
-Llibjpa
libjpa.hbc
-llibjpa
-DDLGAUTO_AS_LIB
-DDLGAUTO_AS_SQL
-Id:\github\dlgauto\source
d:\github\dlgauto\source\frm*.prg
d:\github\dlgauto\source\test.prg
d:\github\dlgauto\source\test_loadsetup.prg
d:\github\dlgauto\source\lib_hwgui.prg
hwgui.hbc
d:\github\dlgauto\source\lib_fivewin.prg
d:\github\fivewin\source\classes\xbrowse.prg
d:\github\fivewin\source\function\checkres.prg
fivewin.hbc
#d:\github\dlgauto\source\lib_hmge.prg
#hmge.hbc
#d:\github\dlgauto\source\lib_hmg3.prg
#hmg3.hbc
#d:\github\dlgauto\source\lib_oohg.prg
#oohg.hbc
Tem também minha errorsys entrando a força, eliminando qualquer outra.
Tem também minha hb_gtsys entrando a força, eliminando qualquer outra.
Complicado ? Porque ?
Eu só digito C <ENTER> pra compilar... o que tem de complicado nisso ?
Eu faço o que EU QUERO, e não o que as LIBs querem.
NÃO É TESTE, É REAL.
Já está rodando assim nos clientes.
Minha classe ADO, minha classe sefazclass, emails, ftp, webservice, zip, WVG, FIVEWIN, HWGUI, tudo junto no mesmo EXE.
O harbour que eu quiser, com o compilador mingw da versão que eu quiser.
Sei lá... pra mim qualquer programador deveria conseguir fazer a mesma coisa.
Aliás, esse sempre foi o diferencial de programadores Clipper: se o Clipper não fazia, dávamos um jeito de conseguir fazer.
Depois que virou harbour/xharbour.... sei lá... parece que a maioria desaprendeu...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Situação atual em vídeo
https://www.youtube.com/watch?v=B0GZRwtNPJA
Dá pra ver os browses em fivewin.
De quebra, dlgauto em fivewin, e dlgauto em hwgui.
Tá tudo no aplicativo.
Legal né.
Livre pra usar qualquer coisa.
https://www.youtube.com/watch?v=B0GZRwtNPJA
Dá pra ver os browses em fivewin.
De quebra, dlgauto em fivewin, e dlgauto em hwgui.
Tá tudo no aplicativo.
Legal né.
Livre pra usar qualquer coisa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/