Pergunte aqui
1

Retornar campo data de dialog para célula

perguntadas 2018-07-27 22:15:54 +0100

imagem do gravatar de Conrado

updated 2018-07-30 18:15:03 +0100

Pessoal, estou tentando colocar um valor de data dentro de um dialog para uma célula no Calc.

Estou usando este comando:

REM  *****  BASIC  *****

Dim oDialog1 As Object

Sub Dialog1Show
DialogLibraries.LoadLibrary( "Standard" )
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
oDialog1.Execute()
End Sub

Sub ReadNSaveDialog1 ()

    txtTeste = oDialog1.GetControl("txtTeste")
    Data_RNC = oDialog1.GetControl("Data_RNC")

    lastrow = LastRowNumber()
    ThisComponent.Sheets(3).getCellByPosition(0, lastrow).setString( txtTeste.Text)
    'ThisComponent.Sheets(3).getCellByPosition(1, lastrow) = CDateFromIso(Data_RNC)

    txtTeste.Text = ""
    'Data_RNC.Date = ""

End Sub


Function LastRowNumber () as Long

    Dim oDoc        as Object
    Dim lastRow     as Long
    Dim oSheet      as Object
    Dim oCol, rd, find, aray

    oDoc = ThisComponent
    oSheet = oDoc.Sheets().getByName("Lancamento")
    oCol = oSheet.getColumns().getByIndex(0)
    rd = oCol.createReplaceDescriptor
    rd.searchRegularExpression = true
    rd.setSearchString(".")
    find = oCol.FindAll(rd)
    aray = Split(find.AbsoluteName, "$")
    LastRowNumber = aray(ubound(Aray))
    'Print LastRowNumber
End Function

E esta Tela

Descrição da imagem

Consigo Colocar o valor do textfield, mas o valor do datafield já esgotei minhas possibilidades de pesquisa e tentativas.

Segue arquivo para apreciação corrigido

C:\fakepath\Controle_RNC_Materia_Prima_LibreOffice.ods

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2018-07-27 22:34:56 +0100 )editar

@Gilberto Schiavinatto , obrigado. A minha planilha surgiu desta que você mencionou. Coloquei o arquivo no post desta pergunta. Se quiser, use-a no seu site.

imagem do gravatar de ConradoConrado ( 2018-07-30 18:16:02 +0100 )editar

1 Resposta

2

respondidas 2018-07-28 03:45:34 +0100

imagem do gravatar de Grafeno

Boa noite

A propriedade Text do Datefield, diferente do que acontece com Textfield, fica "escondida" no seu Model. Então você deve usar a seguinte linha para colocar a data (valor) na célula:

ThisComponent.Sheets(3).getCellByPosition(1, lastrow).setValue(CDate(Data_RNC.Model.Text))

E para limpar o Datefield use:

Data_RNC.Model.Text = ""

Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

1

@Grafeno, agradeço a ajuda. Coloquei a informação que pediu, e tinha retornado um erro, mas vi depois que eu havia digitado um ponto a mais na linha. Deu certinho aqui.

imagem do gravatar de ConradoConrado ( 2018-07-30 13:17:09 +0100 )editar
1

@Conrado, que bom que no final de certo!

imagem do gravatar de GrafenoGrafeno ( 2018-07-31 01:48:17 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2018-07-27 22:15:54 +0100

Lidas: 47 vezes

Última atualização: Jul 30