ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

Move entire DS into a varchar

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Move entire DS into a varchar

    Hi All,

    I have to work with Nested array, but since I can't declare a vardim ds, I put into my first Ds a varchar field, and then I want to move the part of my nested Dim Ds valorized into this varchar field, I tried this:

    Code:
    **free
    Ctl-Opt
    DftName(TESTDS)
    dftactgrp(*no) actgrp('QILE')
    option(*nounref :*srcstmt :*nodebugio)
    datfmt(*iso) timfmt(*iso)
    debug
    Text('Test Ds')
    alwnull(*usrctl);
    Dcl-Ds DsDetail LikeDs(Detail_Template) dim(10);
    Dcl-Ds DsResult Qualified;
      DetailChar VarChar(1000);
    End-Ds DsResult;
    Dcl-ds Detail_Template Qualified Template;
      ContractGroup Varchar(100);
      MarketRisk Float(8);
      EntryNum Int(10);
      EntryChar Varchar(1000);
    End-ds Detail_Template;
    Dcl-Ds DsEntry Qualified ;
      Arr LikeDs(Entry_Template) dim(10);
    End-Ds DsEntry ;
    Dcl-ds Entry_Template Qualified Template;
      key Varchar(30);
      Value Varchar(30);
    End-ds Entry_Template;
    Dcl-s Idx Int(10);
    Dcl-s WorkField Varchar(1000);
    //
    DsDetail(1).ContractGroup = 'pippo';
    DsDetail(2).ContractGroup = 'pluto';
    DsDetail(3).ContractGroup = 'paperino';
    DsDetail(1).Entrynum = 2;
    DsDetail(1).MarketRisk = 8.12903;
    DsDetail(2).MarketRisk = 9.12903;
    DsDetail(3).MarketRisk = 10.12903;
    DsEntry.Arr(1).Key = 'key1';
    DsEntry.Arr(2).Key = 'key2';
    DsEntry.Arr(1).Value = 'value2';
    DsEntry.Arr(2).Value = 'Value3';
    WorkField = DsEntry;
    WorkField = %Subarr(DsEntry.Arr :1 :DsDetail(1).Entrynum);
    //DsDetail(1).EntryChar = %SubArr(DsEntry.Arr : 1 :DsDetail(1).EntryNum);
    *inlr = *on;
    But the compiler sayd me: *RNF5343 30 1 Array has too many omitted indexes; specification is ignored.
Working...
X