Jump to content
Fivewin Brasil

rubensma

Membros
  • Posts

    455
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by rubensma

  1. rubensma

    VS CODE

    Boa noite Obrigado Emotta por compartilhar
  2. rubensma

    VS CODE

    emotta, não entendo quando fala de GIT ou repositório, poderia dar uma aula pra ajudar a entrarmos no VSCODE, não sei como começar e acredito que muitos aqui também querem usar, acho.
  3. rubensma

    VS CODE

    Boa tarde. Estava procurando também outra IDE para os projetos, vou sair da xDev que é fantástica como disse, muita gratidão mesmo ao Vailton. Grato por compartilhar os links, vou ver o que consigo. Quem tiver algumas dicas, por favor postar aqui. Abraços
  4. Boa tarde. Resgatei esse tópico antigo somente para registrar que hoje tive esse erro E0032 porque no projeto novo que criei, que copiei de outro programa tinha um arquivo xxx.c que estava sendo direcionado a uma pasta \obj que não exestia. Foi só criar a pasta que voltou ao normal. Procurei pelo erro e só achei esse tópico. Fica a dica ai. Obrigado
  5. Olá, boa tarde. Uso dessa forma para importar planilhas xls, e vai muito bem sem muita demora, se quiser tentar tem dois modelos ai #include "fivewin.ch" #include "Fileio.ch" #include "Inkey.ch" #define SW_NORMAL 1 #define SW_RESTORE 9 //-------------------------------------------------------------------- // Importar a planilha do excel - cadastro de funcionários function importacad() cMod := "ARQUIVOS DE APOIO" cSer := "Entrada no módulo de importação dos cadastros de funcionários" registra( cMod , cSer ) MsgMeter( {|oMeter,oText|LerXLScadastro(1,oMeter,oText)}," ", "Importando arquivo do Excel" ) return nil ************************************************************************** * Montagem de arquivos de apoio - importação do cadastro direto do excel * ************************************************************************** Function LerXLScadastro(vTot,oMeter,oText) Local vEsc := .f. // teste se foi teclado esc if !msgNoYes("Será importado do Excel o arquivo cadastro de funcionários!"+; chr(13)+chr(13)+"Deseja continuar?","..: Atenção :..") Return nil Endif cArq1 := cGetFile32("cadast*.X*","Escolha o arquivo a importar") If !File(cArq1) .or. ! "cadastro" $ cArq1 msginfo("Arquivo inválido ou não disponível."+chr(13)+; "Verifique o nome do arquivo !","Informação") Return nil Endif oExcel:=TOleAuto():New("Excel.Application") oBook := oExcel:Workbooks:Open(cArq1) oHoja := oExcel:Get( "ActiveSheet" ) nTotRowCount := oHoja:UsedRange:Rows:Count() // TOTAL DE LINHAS DO ARQUIVO dbSelectArea( "cad" ) // zerar o arquivo base cad->( dbzap() ) // arquivo foi aberto com uso exclusivo oMeter:nTotal := nTotRowCount - 2 // descontar o cabeçalho nCount := 0 FOR Q = 3 TO nTotRowCount // começa na linha cad->( dbAppend() ) cad->( rlock() ) cad->filial := iif(oHoja:Cells( Q, 1 ):Value == nil,"",oHoja:Cells( Q, 1 ):Value) cad->matricula := iif(oHoja:Cells( Q, 2 ):Value == nil,0,oHoja:Cells( Q, 2 ):Value) cad->nome := iif(oHoja:Cells( Q, 3 ):Value == nil,"",oHoja:Cells( Q, 3 ):Value) cad->datadm := iif(oHoja:Cells( Q, 4 ):Value == nil,ctod(" / / "),oHoja:Cells( Q, 4 ):Value) //oHoja:Cells( Q, 4 ):Value cad->situacao := iif(oHoja:Cells( Q, 5 ):Value == nil,"",oHoja:Cells( Q, 5 ):Value) cad->ccusto := iif(oHoja:Cells( Q, 6 ):Value == nil,"",oHoja:Cells( Q, 6 ):Value) cad->tipo := iif(oHoja:Cells( Q, 7 ):Value == nil,"",oHoja:Cells( Q, 7 ):Value) cad->gerencia := iif(oHoja:Cells( Q, 8 ):Value == nil,"",oHoja:Cells( Q, 8 ):Value) cad->area := iif(oHoja:Cells( Q, 9 ):Value == nil,"",oHoja:Cells( Q, 9 ):Value) cad->(Dbunlock() ) oMeter:Set(++nCount) oText:SetText("Importando cadastro de funcionários!"+chr(13)+; "Processando Registro : "+str(nCount,6)+"/"+str(oMeter:nTotal,6) ) if lastkey() = 27 vEsc := .t. exit endif NEXT oExcel:WorkBooks:Close() oExcel:Application:Quit() RELEASE oHoja RELEASE oExcel if vEsc msginfo("Importação interrompida pelo usuário") else msginfo("Arquivo importado com sucesso!") endif cad->( dbGoTop() ) browse() Return nil Outro, com campos numéricos *************************************************************************** * Montagem de arquivos de apoio - importação da tabela de código do excel * *************************************************************************** Function LerXLStabela(vTot,oMeter,oText) Local vEsc := .f. // teste se foi teclado esc if ! msgNoYes("Será importado do Excel o arquivo tabela de códigos!"+; chr(13)+chr(13)+"Deseja continuar?","..: Atenção :..") Return nil Endif cArq2 := cGetFile32("Tabela de códigos|Tabe*.XL*|","Escolha o arquivo a importar") If ! File(cArq2) .or. ! "Tabela" $ cArq2 msginfo("Arquivo inválido ou não disponível."+chr(13)+; "Tente novamente !","Informação") Return nil Endif oExcel:=TOleAuto():New("Excel.Application") oBook := oExcel:Workbooks:Open(cArq2) oHoja := oExcel:Get( "ActiveSheet" ) nTotRowCount := oHoja:UsedRange:Rows:Count() // TOTAL DE LINHAS DO ARQUIVO dbSelectArea( "tab" ) // zerar o arquivo base tab->( dbzap() ) // arquivo foi aberto com uso exclusivo oMeter:nTotal := nTotRowCount - 1 // descontar o cabeçalho *::: Formato de Columnas //oHoja:Columns( 22 ):Set("NumberFormat","@") // formatar a coluna para texto //oHoja:Columns( 23 ):Set("NumberFormat","@") // formatar a coluna para texto nCount := 0 FOR Q = 2 TO nTotRowCount // começa na linha tab->( dbAppend() ) tab->( rlock() ) tab->cod := iif(oHoja:Cells( Q, 1 ):Value == nil, 0,oHoja:Cells( Q, 1 ):Value) tab->desc := iif(oHoja:Cells( Q, 2 ):Value == nil,"",oHoja:Cells( Q, 2 ):Value) tab->in := iif(oHoja:Cells( Q, 3 ):Value == nil,"",oHoja:Cells( Q, 3 ):Value) tab->ir := iif(oHoja:Cells( Q, 4 ):Value == nil,"",oHoja:Cells( Q, 4 ):Value) tab->fg := iif(oHoja:Cells( Q, 5 ):Value == nil,"",oHoja:Cells( Q, 5 ):Value) tab->br := iif(oHoja:Cells( Q, 6 ):Value == nil,"",oHoja:Cells( Q, 6 ):Value) tab->de := iif(oHoja:Cells( Q, 7 ):Value == nil,"",oHoja:Cells( Q, 7 ):Value) tab->lq := iif(oHoja:Cells( Q, 8 ):Value == nil,"",oHoja:Cells( Q, 8 ):Value) tab->es := iif(oHoja:Cells( Q, 9 ):Value == nil,"",oHoja:Cells( Q, 9 ):Value) tab->dp := iif(oHoja:Cells( Q,10 ):Value == nil,"",oHoja:Cells( Q, 10 ):Value) tab->ra := iif(oHoja:Cells( Q,11 ):Value == nil, 0,oHoja:Cells( Q, 11 ):Value) tab->un := iif(oHoja:Cells( Q,12 ):Value == nil,"",oHoja:Cells( Q, 12 ):Value) tab->di := iif(oHoja:Cells( Q,13 ):Value == nil,"",oHoja:Cells( Q, 13 ):Value) tab->vig := iif(oHoja:Cells( Q,14 ):Value == nil,"",oHoja:Cells( Q, 14 ):Value) tab->un1 := iif(oHoja:Cells( Q,15 ):Value == nil,"",oHoja:Cells( Q, 15 ):Value) tab->un2 := iif(oHoja:Cells( Q,16 ):Value == nil,"",oHoja:Cells( Q, 16 ):Value) tab->fx := iif(oHoja:Cells( Q,17 ):Value == nil,"",oHoja:Cells( Q, 17 ):Value) tab->val_ := iif(oHoja:Cells( Q,18 ):Value == nil,"",oHoja:Cells( Q, 18 ):Value) tab->dup := iif(oHoja:Cells( Q,19 ):Value == nil,"",oHoja:Cells( Q, 19 ):Value) tab->rend := iif(oHoja:Cells( Q,20 ):Value == nil, 0,oHoja:Cells( Q, 20 ):Value) tab->t1 := iif(oHoja:Cells( Q,21 ):Value == nil, 0,oHoja:Cells( Q, 21 ):Value) tab->cont := iif(oHoja:Cells( Q,22 ):Value == nil, 0,oHoja:Cells( Q, 22 ):Value) tab->t2 := iif(oHoja:Cells( Q,23 ):Value == nil, 0,oHoja:Cells( Q, 23 ):Value) if ValType( oHoja:Cells( Q,24 ):Value ) = "N" // se for campo numérico tab->deb := iif(oHoja:Cells( Q,24 ):Value == nil,0,str(oHoja:Cells( Q, 24 ):Value)) else tab->deb := iif(oHoja:Cells( Q,24 ):Value == nil,"",oHoja:Cells( Q, 24 ):Value) endif if ValType( oHoja:Cells( Q,25 ):Value ) = "N" // se for campo numérico tab->cre := iif(oHoja:Cells( Q,25 ):Value == nil,0,str(oHoja:Cells( Q, 25 ):Value)) else tab->cre := iif(oHoja:Cells( Q,25 ):Value == nil,"",oHoja:Cells( Q, 25 ):Value) endif tab->dg := iif(oHoja:Cells( Q,26 ):Value == nil, 0,oHoja:Cells( Q, 26 ):Value) tab->(Dbunlock() ) oMeter:Set(++nCount) oText:SetText("Importando tabela de códigos!"+chr(13)+; "Processando Registro : "+str(nCount,6)+"/"+str(oMeter:nTotal,6) ) if lastkey() = 27 vEsc := .t. exit endif NEXT oExcel:WorkBooks:Close() oExcel:Application:Quit() RELEASE oHoja RELEASE oExcel if vEsc msginfo("Importação interrompida pelo usuário") else msginfo("Arquivo importado com sucesso!") endif tab->( dbGoTop() ) //browse() Return nil
  6. Bom-dia! Simplesmente parou de funcionar enviar dados para o Excel no mesmo Windows 10 que estava funcionando, acho que depois de uma atualização Segue parte do PRG e Log de erro function gerarlote(vTot,oMeter,oText,nOption,numlote) LOCAL oExcel, oHoja dbSelectArea( "con" ) // seleciona arquivo contábil con->( dbGoTop() ) vNomenum := "Lote_"+"&numlote."+".txt" // usando macro precisa por ponto if nOption = 2 // foi selecionado arquivo texto copy to &vNomenum delimited // separado por virgula WinExec("Notepad &vNomenum",1) // 1 = diretorio corrente return nil endif nRow := 1 // reinicia a linha da planilha nCount := 0 // Zerar o total do meter oExcel := TOleAuto():New( "Excel.Application" ) <======== AQUI O ERRO oExcel:WorkBooks:Add() oHoja := oExcel:Get( "ActiveSheet" ) *::: Seleciona a guia BOLETINS para preenchimento //oExcel:Sheets("Planilha1"):Name := "Boletins" // nomear a 1ª guia //oExcel:Sheets("Boletins"):Select() // selecionar a guia nomeada oMeter:cCaption := "Lote dos Boletins" oHoja := oExcel:Get( "ActiveSheet" ) FOR nCol := 1 TO FCOUNT() // percorrer todas as colunas oHoja:Cells( nRow, nCol ):Value := FieldName( nCol ) // linhadegrade(oHoja,nRow,nCol) NEXT Error.log Application =========== Path and name: C:\Boletim\boletim.EXE (32 bits) Size: 4,255,744 bytes Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20180715) FiveWin version: FWH 18.05 C compiler version: Borland/Embarcadero C++ 7.3 (32-bit) Windows version: 6.2, Build 9200 Time from start: 0 hours 2 mins 45 secs Error occurred at: 02/02/2020, 22:31:06 Error description: Error TOleAuto/65535 : TOLEAUTO:NEW Args: [ 1] = C Excel.Application Stack Calls =========== Called from: => THROW( 0 ) Called from: source\rtl\win32ole.prg => TOLEAUTO:NEW( 0 ) Called from: C:\Boletim\excel_bol.prg => GERARLOTE( 584 ) Called from: C:\Boletim\excel_bol.prg => (b)ENVIA_BOLETIM( 556 ) Called from: C:\Boletim\excel_bol.prg => (b)MSGMETER( 216 ) Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG( 94 ) Called from: => TDIALOG:DISPLAY( 0 ) Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1037 ) Called from: => DIALOGBOXINDIRECT( 0 ) Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 287 ) Called from: C:\Boletim\excel_bol.prg => MSGMETER( 219 ) Called from: C:\Boletim\excel_bol.prg => ENVIA_BOLETIM( 556 ) Called from: C:\Boletim\excel_bol.prg => (b)MONTARLOTE( 285 ) Called from: .\source\classes\BUTTON.PRG => TBUTTON:CLICK( 179 ) Called from: .\source\classes\CONTROL.PRG => TBUTTON:HANDLEEVENT( 1686 ) Called from: .\source\classes\WINDOW.PRG => _FWH( 3451 ) Called from: => SENDMESSAGE( 0 ) Called from: .\source\classes\DIALOG.PRG => TDIALOG:COMMAND( 409 ) Called from: => TWINDOW:HANDLEEVENT( 0 ) Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1050 ) Called from: => DIALOGBOX( 0 ) Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 287 ) Called from: C:\Boletim\excel_bol.prg => MONTARLOTE( 290 ) Called from: C:\Boletim\BOLETIM.PRG => (b)MAIN( 186 ) Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:CLICK( 693 ) Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:LBUTTONUP( 970 ) Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1722 ) Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:HANDLEEVENT( 1953 ) Called from: .\source\classes\WINDOW.PRG => _FWH( 3451 ) Called from: => WINRUN( 0 ) Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1052 ) Called from: C:\Boletim\BOLETIM.PRG => MAIN( 267 ) System ====== CPU type: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz 2195 Mhz Hardware memory: 8095 megs Free System resources: 90 % GDI resources: 90 % User resources: 90 % Windows total applications running: 6 1 , 2 , C:\Boletim\boletim.EXE 3 , C:\WINDOWS\System32\shcore.dll 4 , C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.914_none_4d607d8 5 DDE Server Window, C:\WINDOWS\System32\OLE32.DLL 6 G, C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.17763.914_none_7e4b706e762fa5c Variables in use ================ Procedure Type Value ========================== THROW Param 1: O Class: ERROR Local 1: U Local 2: U TOLEAUTO:NEW Param 1: C "Excel.Application" Local 1: U Local 2: U Local 3: O Class: TOLEAUTO Local 4: O Class: ERROR Local 5: C "C" GERARLOTE Param 1: N 1 Param 2: O Class: TMETER Param 3: O Class: TSAY Param 4: N 1 Param 5: C " " Local 1: U Local 2: U (b)ENVIA_BOLETIM Param 1: O Class: TMETER Param 2: O Class: TSAY Param 3: O Class: TDIALOG Param 4: L .F. Param 5: O Class: TBUTTON (b)MSGMETER Param 1: U (b)TDIALOG:TDIALOG Param 1: O Class: TDIALOG TDIALOG:DISPLAY TDIALOG:HANDLEEVENT Param 1: N 15 Param 2: N 0 Param 3: N 0 Local 1: O Class: TDIALOG DIALOGBOXINDIRECT Param 1: N 4194304 Param 2: C "€ È€ &ÿ·ÿŸ E E x p o r t a n d o o a r q u i v o c o n t a b i l P , v S T A T I C P # — w T M E T E R P > 4 ! x B U T T O N & C a n c e l a " Param 3: N 855676 Param 4: O Class: TDIALOG TDIALOG:ACTIVATE Param 1: U Param 2: U Param 3: U Param 4: L .T. Param 5: B {|| ... } Param 6: L .T. Param 7: U Param 8: U Param 9: U Param 10: U Param 11: U Local 1: O Class: TDIALOG Local 2: N 855676 Local 3: U Local 4: U Local 5: U Local 6: O Class: TDIALOG MSGMETER Param 1: B {|| ... } Param 2: C " " Param 3: C "Exportando o arquivo contabil" Local 1: O Class: TDIALOG Local 2: O Class: TMETER Local 3: O Class: TSAY Local 4: O Class: TBUTTON Local 5: O Class: TFONT Local 6: L .F. Local 7: L .F. Local 8: N 0 ENVIA_BOLETIM (b)MONTARLOTE Param 1: O Class: TBUTTON TBUTTON:CLICK Local 1: O Class: TBUTTON TBUTTON:HANDLEEVENT Param 1: N 2048 Param 2: N 0 Param 3: N 0 Local 1: O Class: TBUTTON Local 2: U _FWH Param 1: N 0 Param 2: N 2048 Param 3: N 0 Param 4: N 0 Param 5: N 28 Local 1: O Class: TBUTTON SENDMESSAGE Param 1: N 3736930 Param 2: N 2048 Param 3: N 0 Param 4: N 0 TDIALOG:COMMAND Param 1: N 302 Param 2: N 3736930 Local 1: O Class: TDIALOG Local 2: O Class: TBUTTON Local 3: N 0 Local 4: N 302 Local 5: N 3736930 Local 6: U TWINDOW:HANDLEEVENT Param 1: N 273 Param 2: N 302 Param 3: N 3736930 TDIALOG:HANDLEEVENT Param 1: N 273 Param 2: N 302 Param 3: N 3736930 Local 1: O Class: TDIALOG DIALOGBOX Param 1: N 4194304 Param 2: C "montalote" Param 3: N 5244362 Param 4: O Class: TDIALOG TDIALOG:ACTIVATE Param 1: U Param 2: U Param 3: U Param 4: L .T. Param 5: U Param 6: L .T. Param 7: U Param 8: U Param 9: U Param 10: U Param 11: U Local 1: O Class: TDIALOG Local 2: N 5244362 Local 3: U Local 4: U Local 5: U Local 6: O Class: TDIALOG MONTARLOTE Local 1: O Class: TDIALOG Local 2: U Local 3: O Class: TBUTTON Local 4: U Local 5: U Local 6: U Local 7: U Local 8: U Local 9: U (b)MAIN Param 1: O Class: TBTNBMP TBTNBMP:CLICK Local 1: O Class: TBTNBMP TBTNBMP:LBUTTONUP Param 1: N 36 Param 2: N 37 Param 3: O Class: TBTNBMP Local 1: U Local 2: L .T. Local 3: N 0 TCONTROL:HANDLEEVENT Param 1: N 514 Param 2: N 0 Param 3: N 2359333 Local 1: O Class: TBTNBMP Local 2: U TBTNBMP:HANDLEEVENT Param 1: N 514 Param 2: N 0 Param 3: N 2359333 Local 1: O Class: TBTNBMP _FWH Param 1: N 2359333 Param 2: N 514 Param 3: N 0 Param 4: N 2359333 Param 5: N 7 Local 1: O Class: TBTNBMP WINRUN Param 1: N 5244362 TWINDOW:ACTIVATE Param 1: C "MAXIMIZED" Param 2: U Param 3: U Param 4: U Param 5: U Param 6: U Param 7: U Param 8: B {|| ... } Param 9: U Param 10: U Param 11: U Param 12: U Param 13: U Param 14: U Param 15: U Param 16: U Param 17: U Param 18: U Param 19: U Param 20: L .F. Local 1: O Class: TWINDOW Local 2: U Local 3: U MAIN Linked RDDs =========== DBF DBFFPT DBFBLOB DBFCDX DBFNTX DataBases in use ================ 1: SENHAS RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 7 .F. .F. Indexes in use TagName => upper(senhas->usuari) USUARI Relations in use 2: SIS RddName: DBFCDX ============================== RecNo RecCount BOF EOF 2808 2808 .F. .F. Indexes in use TagName Relations in use 3: DIA RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 0 .T. .T. Indexes in use TagName Relations in use 4: NUM RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 1194 .F. .F. Indexes in use TagName Relations in use 5: LTS RddName: DBFCDX ============================== RecNo RecCount BOF EOF 186 186 .F. .F. Indexes in use TagName Relations in use 6: FUN RddName: DBFCDX ============================== RecNo RecCount BOF EOF 580 1998 .F. .F. Indexes in use TagName => fun->matricula FUN Relations in use 7: CAD RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 1996 .F. .F. Indexes in use TagName => cad->matricula CAD Relations in use 8: TAB RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 763 .F. .F. Indexes in use TagName => tab->cod TAB Relations in use 9: ERR RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 0 .T. .T. Indexes in use TagName Relations in use 10: BIN RddName: DBFCDX ============================== RecNo RecCount BOF EOF 3319 3318 .F. .T. Indexes in use TagName Relations in use 11: LHO RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 16 .F. .F. Indexes in use TagName Relations in use 12: => CON RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 8 .F. .F. Indexes in use TagName => con->histor HISTOR Relations in use 13: PAR RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 0 .T. .T. Indexes in use TagName Relations in use 14: IND RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 5 .F. .F. Indexes in use TagName Relations in use 15: MEM RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 1 .F. .F. Indexes in use TagName Relations in use 16: CACF RddName: DBFCDX ============================== RecNo RecCount BOF EOF 1 9 .F. .F. Indexes in use TagName Relations in use Classes in use: =============== 1 ERROR 2 HASHENTRY 3 HBCLASS 4 HBOBJECT 5 TINI 6 TFONT 7 TWINDOW 8 TCONTROL 9 TICON 10 TBRUSH 11 TMENU 12 TREG32 13 TMENUITEM 14 TBAR 15 TRECT 16 TBTNBMP 17 TMSGBAR 18 TMSGITEM 19 TTIMER 20 TBITMAP 21 TDIALOG 22 TGET 23 GET 24 TCLIPGET 25 TBUTTON 26 TWBROWSE 27 TSCROLLBAR 28 TRADMENU 29 TRADIO 30 TCHECKBOX 31 TSAY 32 TMETER 33 TOLEAUTO 34 TSTRUCT Memory Analysis =============== 1200 Static variables Dynamic memory consume: Actual Value: 0 bytes Highest Value: 0 bytes
  7. Valeu Kapi, grato por responder
  8. Bom-dia! Não achei bitmaps (pode ser 16x16 ou pouco maior) das fases da lua, para imprimir num calendário Aqui tenho restrições de procura na internet, então se alguém tiver ai agradeço.
  9. Nesse seu exemplo, não seria: dDATA := oFolha:oExcel:Cells(n,2):Value
  10. No meu caso a célula esta formatada no excel para "dd/mm/yy"
  11. Ola, Veja se ajuda, faço assim FOR nCol := 1 TO FCOUNT() if ValType( FieldGet( nCol ) ) = "D" // se for campo data converte p/string oHoja:Cells( nRow, nCol ):Value := dtoc(FieldGet( nCol )) else if ValType( FieldGet( nCol ) ) = "N" // se for campo numérico oHoja:Cells( nRow, 7 ):NumberFormat = "###.##0,00" // FORMATAR numerico else oHoja:Cells( nRow, nCol ):NumberFormat = "@" // FORMATAR TEXTO endif oHoja:Cells( nRow, nCol ):Value := FieldGet( nCol ) // OUTRO FORMATO endif NEXT
  12. Valeu João, muito importante, já havia perdido um .RES, não tinha essa informação. Obrigado pela dica. Abs
  13. Uma dúvida, qual a diferença de arquivo RES e RC, sempre usei RES
  14. Tive algumas dificuldades com atribuições tempos atrás tendo que dar voltas para acertar, e talvez seria esse método a solução. Valew Valdir, compartilhando conhecimento, obrigado. Abraços
  15. Valdir, o que faz esse comando ::Assign()
  16. Meus sinceros sentimentos a família, também o conheci no primeiro encontro que foi na Ana Rosa (Vila Mariana). Contribuiu muito aqui no fórum, fica a minha gratidão pelo que pude aprender com sua ajuda.
  17. Quer uma solução bem arcaica, fiz pra quebrar o galho e ainda está lá. Coloquei botões falsos no meio, sem nada, dá até vergonha de postar isso, mas DEFINE BUTTON oBtn3 FILE "source.BMP" OF oBar ; ACTION imprimir() ; // relboletim.prg TOOLTIP "Imprimir os boletins." ; MESSAGE oemtoansi("Imprimir os boletins gravados") ; GROUP ; NOBORDER DEFINE BUTTON oBtn11 FILE "" OF oBar ; ACTION nil ; //calend() ; TOOLTIP "" ; MESSAGE "" ; NOBORDER DEFINE BUTTON oBtn12 FILE "" OF oBar ; ACTION nil ; //calend() ; TOOLTIP "" ; MESSAGE "" ; NOBORDER DEFINE BUTTON oBtn4 FILE "exit.bmp" OF oBar ; ACTION msgYesNo("Deseja sair do programa ?","Informacao", sair(oWnd) , oWnd:End(.t.) ) ; //oWnd:End(.t.) TOOLTIP "Finalizar" ; MESSAGE "Finalizar o aplicativo" ; NOBORDER
  18. Assim também retorna caracter oINI:= TIni():New(cIniFile) gerabol := oINI:GET("config" , "gerabol") deixei o valor de 3,40 mas ficou caracter não numérico [config] gerabol=3.40
  19. No Crome está baixando normal, obrigado pela disponibilização.
  20. O Google liberou um novo conjunto de recursos de detecção de objetos inteligentes para a comunidade de código aberto como parte do desenvolvimento contínuo de sua estrutura TensorFlow. A API de Detecção de Objeto TensorFlow fornece aos cientistas de dados e aos desenvolvedores acesso à mesma tecnologia que o Google usa para seus próprios sistemas, como o Nest Cam, itens similares na Pesquisa de imagens e identificação de número de rua no Street View. O sistema que o Google lançou ganhou o desafio de detecção de objetos da Microsoft Common Objects in Context (COCO) no ano passado, superando outras 23 equipes. A primeira versão de código aberto do Google inclui um conjunto de modelos treináveis que são criados para detecção de objetos. Também estão incluídos um conjunto de parâmetros para os modelos que foram treinados no conjunto de dados do COCO, de modo que é possível que os usuários comecem com a API sem tomar o tempo para treinar os modelos. Um notebook incluído da Jupyter encaminhará os usuários interessados para testar as novas capacidades. Para aqueles desenvolvedores e cientistas de dados que querem treinar seus próprios modelos, o Google incluiu scripts para fazê-lo localmente, bem como no conjunto de serviços de nuvem da empresa. A intenção do Google é trazer as ferramentas de Inteligência Artificial para as massas e pode ajudar a acelerar a criação de sistemas inteligentes mais avançados, permitindo que outros cientistas de dados e desenvolvedores se desenvolvam no topo do trabalho existente da Google. Esses recursos também podem ajudar a dar ao TensorFlow uma vantagem quando se trata de compartilhar entre pessoas que usam diferentes estruturas de aprendizagem de máquinas . O Google não é o único: a Microsoft oferece o seu Cognitive Toolkit , enquanto a Amazon está apoiando o Apache MXNet e o Facebook derrubou o Caffe2 e PyTorch. Um dos principais benefícios desta versão é que o Google lançou um sistema de detecção de objetos que pode ser executado em dispositivos móveis como parte deste projeto. Baseia-se nos modelos de reconhecimento de imagens do MobileNets que o gigante tecnológico abriu anteriormente. Fonte: https://venturebeat.com/2017/06/16/google-open-sources-object-detection-tech-that-powers-nest-cam-image-search-and-street-view/
  21. Sim Jorge, com certeza daria erro, também não sei acho que modifiquei no tópico, mas agora está assim e funcionando, // definição do número do boletim e registro no arquivo dbSelectArea( "num" ) // registro dos numeros dos boletins num->( dbGoBottom() ) // capturar o ultimo boletim registrado nNumbol := num->numero + 1 // proxino numero cSay1 := strzero(nNumbol,4)+str(year(date()),4) // nro. sequencial dos boletins num->( dbAppend() ) num->( rLock() ) num->data := date() num->hora := time() num->numero := val(substr(cSay1,1,4)) // guarda o numero gerado num->tipo := STR(nRad,1) // boletim de inclusao ou exclusão num->status := "L" // boletim gerado pelo programa num->usuario := cUsuario // usuario que logou num->( dbUnlock() ) // captura o numero inicial e final dos boletins para impressão do case case w = 1 boleini := cValToChar(nNumbol) //strzero(nNumbol,4) boleano := year(date()) case w = 3 bolefim := cValToChar(nNumbol) //strzero(nNumbol,4) boleano := year(date()) endcase Bem observado, tá ligado heim Abraços
  22. Boa noite, Valeu o cValToChar() resolveu. Toda vida usei o STR() para mudar de numero para caracter, mas nesse não deu, depois vou tentar descobrir o que houve. Obrigado pelas respostas parceiros. // captura o numero inicial e final dos boletins para impressão do case case w = 1 boleini := cValToChar(nNumbol) //str(nNumbol) boleano := year(date()) case w = 3 bolefim := cValToChar(nNumbol) //str(nNumbol) boleano := year(date()) endcase
  23. O "W" é um FOR w = 1 to 3 NEXT que está sendo executado. O que eu quero é passar uma variável que é numerica para caracter, mas o STR() não está fazendo isso, ela continua numérica boleini := str(cNumbol) // passar para caracter cNumbol é numérica e boleini continua numérica na linha seguinte
  24. Também não deu certo, o STR() não muda de numerica para caracter, ela continua sendo numérica
  25. Boa-tarde // definição do número do boletim e registro no arquivo dbSelectArea( "num" ) // registro dos numeros dos boletins num->( dbGoBottom() ) // capturar o ultimo boletim registrado cNumbol := num->numero + 1 // proxino numero <---------- aqui é numerérica cSay1 := strzero(val(cNumbol),4)+str(year(date()),4) // nro. sequencial dos boletins num->( dbAppend() ) num->( rLock() ) num->data := date() num->hora := time() num->numero := val(substr(cSay1,1,4)) // guarda o numero gerado num->tipo := STR(nRad,1) // boletim de inclusao ou exclusão num->status := "L" // boletim gerado pelo programa num->usuario := cUsuario // usuario que logou num->( dbUnlock() ) // captura o numero inicial e final dos boletins para impressão do case case w = 1 boleini := str(cNumbol) // passar para caracter boleano := year(date()) case w = 3 bolefim := str(cNumbol) boleano := year(date()) endcase ? type(boleini),boleini,bolefim Estou passando a variável "boleini" para caracter porém continua numérica e o type() diz "N". Elas são publicas Alguém saberia dizer o que acontece
×
×
  • Create New...