Hello Jayant Balraj Madavi, Noel,
Well, the initial problem was about pure C++-UNO. It is not clear to me
why OOo Basic is involved. So please rephrase the exact problem again.
BTW: dumping an uno::Any, you can use comphelper/anytostring.hxx (resp.
comphelper::anyToString()).
regards,
-Daniel
> * The getValue and setValue is working perfectly fine wrt single Value
> OUString or long. Its the third type uno::Sequence<
> uno::Sequence<uno::Any> > that is not working :(
>
> * The >>= and <<= is working perfectly fine for uno::Sequence<
> uno::Sequence<uno::Any> > in the code sc/..../unoobj/cellsuno.cxx
> --function--> getDataArray() (also check
> ScRangeToSequence::FillMixedArray ).
>
> * As Noel suggested, there is a possibility that something is going
> wrong in "basic" module. "Any" to "OUString" conversion etc.
>
> * One interesting fact is that, I had put printf in the code for
> operator overloading ">>=" and "<<="
> cppu/..../Any.hxx.
>
> const Type & rType = getCppuType( &value ); //and also
> rAny
> rtl::OUString aName = rType.getTypeName();
> print_oustring(aName); //my local function
>
> and the printf gave proper result :) ie "[ ][ ] any" for both get and
> set. I could not veryfy the data part of the
> cppu/..../assign.hxx b'se it is bit complex.
>
>
> * In the getValue() the values are filled properly ? Here is the test
> code snippert that I had written before posting the query.
>
> uno::Sequence< uno::Sequence< uno::Any > > aSeq =
> xData->getDataArray();
> uno::Any test = aSeq[0][0];
> print_String_from_any(test); //my local function
>
> aAny <<= aSeq; //Fill the data to Any
>
> //testing the setValue scenario
> uno::Sequence< uno::Sequence< uno::Any > > aSeqNew;
>
> if (aAny >>= aSeqNew) {
> uno::Any test = aSeqNew[0][0];
> print_string_from_any(test); //my local
> function
> }
> else print_error();
>
> works as expected :)
>
> Regards,
> Jayant (aZEN_JM)
>
>
>>>>[EMAIL PROTECTED] 08/25/05 6:20 PM >>>
>
>
> Hello Jayant Balraj Madavi,
>
> just tried the following which works like specified:
>
> uno::Any a( static_cast<sal_Int32>(42) );
> uno::Sequence<uno::Any> seq( &a, 1 );
> typedef uno::Sequence< uno::Sequence<uno::Any> > seqseqT;
> seqseqT seqseq( &seq, 1 );
> uno::Any a2;
> a2 <<= seqseq;
> seqseqT dest;
> bool succ = (a2 >>= dest);
> sal_Int32 n = dest[0][0].get<sal_Int32>();
>
> This leads me to the assumption that the Any is not filled with data
> at
> all in getValue().
>
> regards,
> -Daniel
>
>
>>Hi stephan,
>>
>>Let me put clear code/query, The actual code is with reference to
>
> the
>
>>VBA interop work that we are doing for OOo
>>so if a user writer a VBA script like this on OOo
>>Activesheet.Range("A1:A3").value = Activesheet.Range("A4:A5").Value
>>
>>The above macro breaks down to ==>>
>>
>>MyClass obj1,obj2;
>>
>>obj.setValue (obj2.getValue());
>>
>>//the function getValue and setValue are described below.
>>I always get the printf ERROR in the setValue :(
>>
>>The same function works properly if I directly work with
>>[uno::Sequence< uno::Sequence< uno::Any > >] instead of return type
>>[uno::Any]
>>but I have to use any b'se there are cases when I require return
>
> value
>
>>as [OUString or long etc ..]
>>
>>//Simple functions
>>uno::Any
>>MyClass::getValue() throw (::com::sun::star::uno::RuntimeException)
>>{
>> uno::Any aAny;
>>
>> uno::Reference< sheet::XCellRangeData>
>>xData(mxRange,uno::UNO_QUERY);
>> if (xData.is())
>> {
>> uno::Sequence< uno::Sequence< uno::Any > > aSeq =
>>xData->getDataArray();
>> aAny <<= aSeq;
>> }
>>
>> return aAny;
>>}
>>
>>void
>>MyClass::setValue( const uno::Any& aValue ) throw
>>(uno::RuntimeException)
>>{
>> uno::Sequence< uno::Sequence< uno::Any > > aSeq;
>> if ((aValue >>= aSeq)) //FAILING FOR ME
>> {
>> fprintf(stderr, "Setting the correct Data \n");
>> uno::Reference< sheet::XCellRangeData>
>>xData(mxRange,uno::UNO_QUERY);
>> xData->setDataArray(aSeq);
>> }
>> else
>> fprintf(stderr, "ERROR \n");
>>
>>
>>Sorry for top posting :( My evolution client is not working .
>>
>>Regards,
>>Jayant
>>
>>
>>>>>[EMAIL PROTECTED] 08/24/05 8:38 PM >>>
>>
>>Hi Jayant,
>>
>>
>>
>>>Any suggestion ?
>>
>>
>>according to cppu/inc/com/sun/star/uno/Any.hxx the statement (aAny
>>
>>>=
>>
>>aSeq) will be true when aAny could be assigned to aSeq and since you
>
>
>>just assigned aSec to aAny I'd suppose that the statement will
>
> always
>
>>be
>>true in your code.
>>
>>What do you hope to achieve with the statement in your "setValue"
>>method ?
>>
>>Regards
>>
>>Stephan
>>
>>
>>
>
> ---------------------------------------------------------------------
>
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]