Генератор
Проектов

Проект docexampl

Перечень файлов проекта

Файл docexample.gen:

project docexample
  /version="01.001"

package doc

utility doctest

Файл doc.package:

package doc

type t_orgname : char8[100];
type t_addr : char8[100];
type t_phone : char8[30];
type t_empname : char8[100];
type orgs : dqueue
(
  record org
  ( t_orgname orgname,
    t_addr addr,
    t_phone phone
  );
  record emp
  ( t_empname empname1,
    t_empname empname2,
    t_empname empname3,
    t_addr addr,
    t_phone phone
  );
  set orgs_org member org;/oper=(mem,next)
  set org_emp owner org member emp;/oper=(mem,next)
);

procdecl fill(orgs porgs);

implementation

procdecl fill(orgs porgs)
{ var
    int iorg;

  rand.init();

  for ( iorg := 0; iorg < 6; iorg += 1 )
  { var
      org xorg,
      int iemp;

    org_cre(porgs,xorg);
    rand_test.firm8(xorg.orgname);
    rand_test.addr8(false,xorg.addr);
    rand_test.phone(xorg.phone);
    orgs_org_ins(porgs,xorg,-1);

    for ( iemp := 0; iemp < 8; iemp += 1 )
    { var
        emp xemp;

      emp_cre(xorg.xdoc,xemp);
      rand_test.name8(xemp.empname1,xemp.empname2,xemp.empname3);
      rand_test.addr8(true,xemp.addr);
      rand_test.phone(xemp.phone);
      org_emp_ins(xorg,xemp,-1);
    }
  }
}

Файл doctest.utility:

utility doctest:"doctest"

proc test(doc.orgs porgs)
{ call doc.fill(porgs);

  { var
      doc.org xorg;

    doc.orgs_org_mem(porgs,0,xorg);

    while ( isnotnull(xorg) )
    { dprint("\n");
      dprint(U"Наименование: ",xorg.orgname,"\n");
      dprint(U"Адрес: ",xorg.addr,"\n");
      dprint(U"Телефон: ",xorg.phone,"\n");

      var
        doc.emp xemp;

      doc.org_emp_mem(xorg,0,xemp);

      while ( isnotnull(xemp) )
      { dprint("\n");
        dprint(U"  Фамилия: ",xemp.empname1,"\n");
        dprint(U"  Имя: ",xemp.empname2,"\n");
        dprint(U"  Отчество: ",xemp.empname3,"\n");
        dprint(U"  Адрес: ",xemp.addr,"\n");
        dprint(U"  Телефон: ",xemp.phone,"\n");
        doc.org_emp_next(xemp);
      }

      doc.orgs_org_next(xorg);
    }
  }
}

main
{ varobj
    doc.orgs porgs;

  call test(porgs);
}
Скачать проект docexampl