Jump to content
Fivewin Brasil

giovanyvecchi

Membros
  • Posts

    791
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by giovanyvecchi

  1. Se quer o nome da variavel Get que esta em focus é assim define dialog memvar->dl_det_nf3 from 00,01 TO 37,120 ; title memvar->te_cab2 ; font memvar->rec_for @ linha,00 say "it " of dl_det_nf3 pixel @ linha,coluna+(sal_col*3) say "Descricao" of dl_det_nf3 pixel @ linha,coluna+(sal_col*45) say "Largura" of dl_det_nf3 pixel @ linha,coluna+(sal_col*55) say "Comprim" of dl_det_nf3 pixel @ linha,coluna+(sal_col*65) say "altura." of dl_det_nf3 pixel @ linha,coluna+(sal_col*75) say "Peso " of dl_det_nf3 pixel @ linha,coluna+(sal_col*85) say "Sem Peso" of dl_det_nf3 pixel linha += sal_lin coluna = sal_col for i = 1 to 10 te_desc := "desc_"+strzero(i,2) te_larg := "larg_"+strzero(i,2) te_comp := "comp_"+strzero(i,2) te_altu := "altu_"+strzero(i,2) te_peso := "peso_"+strzero(i,2) te_tem := "tem_"+strzero(i,2) te_l_tl := "lintel_"+strzero(i,2) te_c_tl := "lintel_"+strzero(i,2) &te_desc := space(50) &te_larg := 0 &te_comp := 0 &te_altu := 0 &te_peso := i &te_tem := .f. &te_l_tl := "oget"+strzero(i,2) @ linha,00 say strzero(i,2) size sal_col*03,10 of dl_det_nf3 pixel @ linha,coluna+(sal_col*03) get &te_desc picture "@!" size sal_col*40,10 of dl_det_nf3 pixel @ linha,coluna+(sal_col*45) get &te_larg picture "@E 9999.999" size sal_col*09,10 of dl_det_nf3 pixel @ linha,coluna+(sal_col*55) get &te_comp picture "@E 9999.999" size sal_col*09,10 of dl_det_nf3 pixel @ linha,coluna+(sal_col*65) get &te_altu picture "@E 9999.999" size sal_col*09,10 of dl_det_nf3 pixel @ linha,coluna+(sal_col*75) get &te_l_tl var &te_peso picture "@E 9999.999" size sal_col*09,10 of dl_det_nf3 pixel @ linha,coluna+(sal_col*85) checkbox &te_tem prompt "Sem Peso" size sal_col*10,sal_lin of dl_det_nf3 pixel linha += sal_lin*2 next memvar->lin_mar = linha+sal_lin*23 memvar->col_mar = coluna*155 @ linha,coluna+(sal_col*15) button "&Finaliza" of dl_det_nf3 pixel size sal_col*10,10 action grav_ped() dl_det_nf3:bkeydown := <|nkey| Local _cNameVarRet := "" if nkey == VK_F5 AEval(dl_det_nf3:aControls,<|_aCtrl| If _aCtrl:ClassName() == "TGET" If _aCtrl:lFocused _cNameVarRet := _aCtrl:oGet:nAme EndIf EndIf Return Nil >) ? _cNameVarRet EndIf Return Nil > //cEnd activate dialog dl_det_nf3 centered Return nil
  2. Voce esta com a lógica procedural do clipper em DOS. passa o código de onde começa o DEFINE DIALOG até o ACTIVATE DIALOG
  3. Apresente sua rotina onde os gets estão dentro da DIALOG que ja faço a checagem.
  4. Dependendo do proposito há varias maneiras de verificar. Vou passar um exemplo: If oBtn1:lFocused ? "Botão 1" ElseIf oBtn2:lFocused ? "Botão 2 bla bla bla
  5. Ola, se quiser colocar em uma coluna do xBrowse com botão do lado faz assim lc_aColunaDtImagem := ::oBrw3161_AgentesDocImgs:AddCol() With Object lc_aColunaDtImagem :bStrData := {||::oDsTmp_AgenteCNHImgs:N_AGE_CNHIMGS_dImagemData} :cHeader := "Dt. Foto " //:cToolTip := "" :nWidth := 118 :nDataStrAlign := AL_RIGHT :nHeadStrAlign := AL_RIGHT // Propriedades Inicio :nEditType := EDIT_BUTTON :AddResource("B16_NADA") // Bitmaps :AddResource("B16_NOVO") // Bitmaps :AddResource("B16X_AGENTEFOTOUP") // Bitmaps :AddResource("B16_BORRACHA") // Bitmaps :AddResource("B16_NADA") // Bitmaps :AddResource("B16_NADA") // Bitmaps :AddResource("B16_SETABAIXO") :nBtnBmp := 7 :nBtnWidth := 20 :bEditBlock := <|nHandle,nHWnd,oSelfBtn| Local _oMenuFotos, _aCursorPosicao := {20,12} //Linha, Coluna Local _lTmp := .F., _aMenuItem := Array(4) MENU _oMenuFotos POPUP 2015 If ::oDsTmp_AgenteCNHImgs:N_AGE_CNHIMGS_nSeqAuto > 0 MENUITEM _aMenuItem[1] Prompt "Marcar imagem do documento para exclusão" OF _oMenuFotos Resource "B16M_DELETE" _aMenuItem[1]:bAction := <|| If MsgNoYes("O registro da imagem da CNH será marcada para exclusão após "+; "a confirmação do procedimento."+CRLF+CRLF+; "Deseja marcar a imagem da CNH para exclusão ?",; "Atenção, Responda.") ::oDsTmp_AgenteCNHImgs:VarPut("nFlagProcess",4) EndIf ::oBrw3161_AgentesDocImgs:Refresh() ::oBrw3161_AgentesDocImgs:SetFocus() Return Nil > //cEnd If !::oDsTmp_AgenteCNHImgs:N_AGE_CNHIMGS_lCCN_Enviar MENUITEM _aMenuItem[2] Prompt "Colocar na fila para envio ao CCN" OF _oMenuFotos Resource "B16M_AgenteFotoUp" _aMenuItem[2]:bAction := <|| If MsgYesNo("Deseja incluir na fila para a imagem da CNH ser enviada para o CCN ?",; "Atenção, Responda.") ::oDsTmp_AgenteCNHImgs:VarPut("N_AGE_CNHIMGS_lCCN_Enviar",.T.) EndIf ::oBrw3161_AgentesDocImgs:Refresh() ::oBrw3161_AgentesDocImgs:SetFocus() Return Nil > //cEnd else MENUITEM _aMenuItem[3] Prompt "Tirar da fila de envio ao CCN" OF _oMenuFotos Resource "B16M_BORRACHAREMOVE" _aMenuItem[3]:bAction := <|| If MsgYesNo("Deseja desmarcar o envio da imagem da CNH para o CCN ?",; "Atenção, Responda.") ::oDsTmp_AgenteCNHImgs:VarPut("N_AGE_CNHIMGS_lCCN_Enviar",.F.) EndIf ::oBrw3161_AgentesDocImgs:Refresh() ::oBrw3161_AgentesDocImgs:SetFocus() Return Nil > //cEnd EndIf EndIf If ::oDsTmp_AgenteCNHImgs:N_AGE_CNHIMGS_nSeqAuto == -1 MENUITEM _aMenuItem[2] Prompt "Excluir a imagem recém incluída" OF _oMenuFotos Resource "B16M_BORRACHA" _aMenuItem[2]:bAction := <|| If MsgYesNo("Deseja excluir a imagem recém incluída ?",; "Atenção, Responda.") ::oDsTmp_AgenteCNHImgs:Delete() ::oBrw3161_AgentesDocImgs:GoUp() EndIf ::oBrw3161_AgentesDocImgs:Refresh() Eval(::oBrw3161_AgentesDocImgs:bChange) ::oBrw3161_AgentesDocImgs:SetFocus() Return Nil > //cEnd EndIf ENDMENU ACTIVATE POPUP _oMenuFotos AT _aCursorPosicao[1], _aCursorPosicao[2] ; OF oSelfBtn:oBtnElip Return Nil > //cEnd :bBmpData := <|| Local nLedBmp := 1 If ::oDsTmp_AgenteCNHImgs:nFlagProcess == 2 // Inclusão nLedBmp := 2 ElseIf ::oDsTmp_AgenteCNHImgs:nFlagProcess == 4 // Exclusão nLedBmp := 4 EndIf Return nLedBmp > //cEnd // Propriedades Final End With
  6. Para impressão de cupons fiscais eu fiz com FastReport. Desta maneira imprimo em qualquer impressora ja que a impressão é gráfica e não por comandos especificos da impressora. e gero pdf se for nescessário.
  7. Como trabalho com sistemas para Cartórios as informações exigidas foram as seguintes. 1-Tipo do servidor de rede (dedicado ou não) com acesso restrico com senha por um funcionário da própria empresa que tem que ter certificado emitido pela Sebrae https://sebrae.com.br/sites/PortalSebrae/cursosonline/lgpd-a-sua-empresa-esta-preparada,368d00cac30a5710VgnVCM1000004c00210aRCRD 2-Exigencia de backup em mídia externa (hd externo) com frequencia de pelo menos 24 horas 3-Exigencia de backup nuvem com frequencia de pelo menos 24 horas 4-Servidor reserva caso o primeiro falhe. Até ai é facil. conforme o ramo não sei se é nescessário outras exigencias tipo banco de dados com auditoria Os relatórios e documentos que não pertencem exclusivamente ao portador das informações pessoais contidas nestes documentos, relatórios, rascunhos etc não podem ser apresentados de forma integra (cpf completo, endereço, e-mail etc). Somente documentos de importancia financeira e juridica onde o portador adquire para validade exclusiva à sua necessidade. Quem monta o documento de regularização é o contador da empresa que pede as informações do sistema para a softhouse. A softhouse apenas tem que adaptar o sistema para efetuar as restrições da LGPD.
  8. Tenho sistema de postos de combustiveis 24hora que o sistema ja chegou a ficar carregado mais de 90 dias e não tive problemas.
  9. Não tenho problemas com recursos em nenhuma ocasião. Os erros podem aparecer se você não chamar algum controle não registrado dentro do dialogo.
  10. Se você contruir um arquivo .rc que é texto e não é compilado para .RES no PellesC, você tem que gerar o .RES por ele mesmo porque as definições das variaveis são diferentes do BCC que usa o BRC32 para gerar o .RES do arquivo .RC. Ou você usa o PellesC e edita o arquivo .RES diretamente e ja compilado, ou edita em .RC e na compilação usa o comando que citei acima. A vantagem de usar .RC é que voce terá controle de versão caso use Github. Eu faço desta maneira. O padrão de definições das variaveis do PellesC são as mesmas da Microsoft Visual C (MSVC) para quem usa Visual Studio para gerar o programa como eu. Neste caso você pode contruir os arquivos .RC no pellesC que o CVTRES.EXE é chamado automaticament pelo CL.EXE gerando os arquivos .RES compativeis ao MSVC para geração do seu executavel. Os arquivos .RES já compilados pelo Workshop ou outro editor de recursos do padrã Borland não são incorporados no executavel gerado pelo MSVC. O mesmo causa um erro no Link. Baixe um demonstrativo que postei no forum internacional que no programinha que fiz tem um arquivo .RC feito no PellesC e compilado com MSVC. https://github.com/FiveTechSoft/FWH_tools/blob/master/giovany_tsttheme.zip
  11. No Bat para compilar o programa gere o res pelo pellesc. C:\PELLESC\BIN\PORC.EXE -r -iC:\PELLESC\INCLUDE\WIN -iC:\PELLESC\INCLUDE SeuRc.rc
  12. Primeiramente você vai ter que aprender a usar o postman https://www.postman.com/ Ele pode gerar as estruturas da api que você deseja. É complicado, mais vale a pena aprender.
  13. Se quiser esconder a segunda aba seria assim oFld:aVisible := {.T.,.F.,.T.,.T.}
  14. Tenta assim: oXbrw:lGDIP := .T. oXbrw:lTransparent := .T.
  15. Uma pergunta: Estas imagens estão no xBrowse de fivewin ?
  16. Funciona igual um leitor de código de barras, ele simula o teclado.
  17. Leitor RFid é barato Tenho sistema de postos de combustiveis que usa tb. https://produto.mercadolivre.com.br/MLB-2747444333-leitor-rfid-mifare-125khz-com-interface-usb-_JM#position=1&search_layout=stack&type=item&tracking_id=56f3c28d-ab80-45d9-8d2a-002f4ca42656
  18. Eu que tenho sistemas para cartórios a responsabilidade dos usuários é bem complicada. Tenho 4 métodos para gerenciar senhas 1-O usuário loga com a senha no sistema e tudo fica registrado no seu login. Porem se ele deixar o programa aberto outro pode fazer qualquer coisa em nome dele. 2-Todos os procedimentos de lançamentos, inclusões, alterações etc pede a senha novamente. Isto serve para os computadores onde varios usuarios acessam. 3-Todos os procedimentos nescessitam que passe o cartão RFid registrado para cada usuário. 4-Logon e reconhecimento do serial de um pendrive pessoal do usuario. O programa funcionara somente se o PenDrive estiver conectado no micro. (Veja em \Samples protect.prg) Na minha opnião o melhor método é o cartão RFid quando varias pessoas acessam o mesmo micro.
  19. Ola. Testa estas funções aqui #define LEVEL_L 0 // 7% #define LEVEL_M 1 // 15% #define LEVEL_Q 2 // 25% #define LEVEL_H 3 // 30% #define ENC_ALPHA 0 // encodes alphanumeric characters (digits 0 - 9; upper case letters A -Z; nine other characters: space, $ % * + - . / : ); ) #define ENC_BYTE 1 // encodes binary values ( 8-bit data) #define ENC_NUMERIC 2 // encodes numeric values only (digits 0-9) #define ENC_KANJI 3 // encodes Kanji characters. Kanji characters in QR Code can have values 8140 -9FFC and E040 - EBBF #define ENC_AUTO 4 // automatic seleccion of the encoding algorithm /////////////////////////////////////////////////////////////////////////////// FUNCTION QR_CODE_FULL_PNG(f_cString, f_cFileRoot, f_nSizePixel, f_nLevel) Local lc_cFileOut := "", lc_oImage Default f_nSizePixel := 180, f_nLevel := 0 if File(f_cFileRoot) fErase(f_cFileRoot) EndIf lc_cFileOut := TXT_CHAR_CLEAN(f_cFileRoot,{".bmp",".BMP","Bmp"})+".png" FullQRCodeMy(.T.,; .f.,; CLR_WHITE,; // backColor CLR_BLACK,; // barColor f_cString,; // Texto f_nLevel,; // correctionLevel ENC_AUTO,; // encoding 2,; // marginpixels 2,; // moduleWidth f_nSizePixel ,; // Height f_nSizePixel ,; // Witdh f_cFileRoot) lc_oImage := tImage():Define(,f_cFileRoot) lc_oImage:SaveImage( lc_cFileOut, 13,0 ) lc_oImage:End() fErase(f_cFileRoot) RETURN lc_cFileOut /////////////////////////////////////////////////////////////////////////////// DLL32 Function FullQRCodeMy(autoConfigurate AS BOOL,; AutoFit AS BOOL ,; backColor AS _INT ,; barColor AS _INT ,; Texto AS LPSTR ,; correctionLevel AS _INT,; // Pode ser Low, Medium, High e VeryHigh encoding AS _INT, ; marginpixels AS _INT,; moduleWidth AS _INT,; Height AS _INT,; Width AS _INT,; FileName AS LPSTR ) AS LONG PASCAL FROM "FullQRCode" LIB "QRCodelib.dll" /////////////////////////////////////////////////////////////////////////////// FUNCTION TXT_CHAR_CLEAN(f_cTxt,f_aCaracteresRetira) Local cTxtRetorno := f_cTxt, iFor := 0 For iFor := 1 To Len(f_aCaracteresRetira) cTxtRetorno := StrTran(cTxtRetorno,f_aCaracteresRetira[iFor],"") Next RETURN cTxtRetorno
  20. Kapi, usa a classe tMail do Fivewin _oMailMapi := tMail():New(/*cSubject*/,; ::cTxtPassWord,; /*cMsgType*/,; /*cConversationID*/,; Date(),; Time(),; /*lReceipt*/,; .T./*lFromUser*/,; /*aOrigin*/,; /*aRecipients*/,; ::aFilesAnexoOutlook /*aFiles*/) _oMailMapi:Activate() _oMailMapi:End()
  21. Ola. Primeiramente vc tem que gerar os arquivos binários do recurso. De RC para RES Use este comando: C:\PELLESC\BIN\PORC.EXE -r -iC:\PELLESC\INCLUDE\WIN -iC:\PELLESC\INCLUDE SeuArquivo.rc e no arquivo make aponte o arquivo binário .RES Caso você use HbMake você terá que usar 2 arquivos .HBP. Um para recursos e outro para PRGS e arquivos RES
  22. Estes problemas de e-mail sempre acontecem. Ja faz 4 anos que uso o thunderbird. É só configurar ele e depois usar o MAPI do Fivewin Ex: _oMailMapi := tMail():New(/*cSubject*/,; ::cTxtPassWordsPdfs,; /*cMsgType*/,; /*cConversationID*/,; Date(),; Time(),; /*lReceipt*/,; .T./*lFromUser*/,; /*aOrigin*/,; /*aRecipients*/,; ::aFilesAnexoOutlook /*aFiles*/) _oMailMapi:Activate() _oMailMapi:End() O chato é ficar instalando no cliente, mais depois de configurar nunca mais vão encher o saco dnovo. Para baixar o ThunderBird é aqui: https://www.thunderbird.net/pt-BR/
  23. Aconselho compactar o arquivo. Depois de trazer o arquivo compactado descompactar o arquivo original com a data e hora de criação.
  24. João, inclua o prg tMetro.prg no seu projeto e comente uma linha que faz fechar. ACTIVATE WINDOW ::oWnd MAXIMIZED //; //ON CLICK ::oWnd:End() Não sei o porque fizeram assim, não tem sentido fechar se clicar fora de algum controle.
  25. Tem que ver se a lib é referente a linguagem que você esta tentando gerar o programa. Quando este erro aparece, provavelmente a lib não pertence ao compilador escolhido. Exemplo: Uma lib para MSVC não compila para BCC Se a lib é para BCC e esta aparecendo esta mensagem, ai tem que ver a versão, Bcc5.5 com Bcc7.3 exemplo.
×
×
  • Create New...