Uživatelské nástroje

Nástroje pro tento web


xml:midregister.xml

Midregister.xml

Popisuje strukturu tabulek a jejich vztahu v rámci tzv. Middle. Middle je základní datový objekt se kterým lze pracovat pomocí OBIS API, lze jej zobrazit ve Formě atd.

Middle se skládá z tzv. DataSetItem, což jsou jednotlivé tabulky databáze.

Popis Middle se skládá ze dvou kompoment:

  • <DataModel> - umožňuje tabulky pro potřeby middle modifikovat (změny Caption, Visible, ReadOnly, LookupKeyFields apod.)
  • <MiddleStructure> - popisuje použité tabulky, jejich návaznost a vlastnosti

Ukázka:

<MidRegister>
 
  <Middle Name="VYROBKY">
 
    <DataModel>
      <Table Name="sklad_vc">
        <Caption>Pohyby</Caption>
      </Table>
      <Table Name="v_mp_mp">
        <Field Name="IDProt">
          <LookupKeyFields>MERPROT:IDProt</LookupKeyFields>
        </Field>
      </Table>
    </DataModel>
 
    <MiddleStructure>
      <TableItem Name="v_sklad_vyrobky">
        <CounterOption>Vyrobky.Pocit</CounterOption>
        <TableItem Name="sklad_vc">
          <Link>SN=SN;IDPrijemka</Link>
          <OnlyForView>1</OnlyForView>
        </TableItem>
        <TableItem Name="v_mp_mp">
          <Link>SN=SN</Link>
          <OnlyForView>1</OnlyForView>
        </TableItem>
      </TableItem>
    </MiddleStructure>
  </Middle>
 
</MidRegister>

Popis elementů MiddleStructure

MiddleStructure se může skládát z následujících elementů. Jejich zanoření popisu vzájemnou strukturu.

  • <TableItem> - do middle zařazuje tabulku
  • <QueryItem> - do middle zařazuje SQL dotaz
  • <MemTableItem> - do middle zařazuje memory table

TableItem může obsahovat následující elementy:

  • <Link> - vazba mezi nadřazenou a podřazenou tabulkou ve formě MasterFields=DetailFields. Pro složené klíče se fieldy oddělují středníkem. Navíc DetailFields může následovat další seznam fieldů podle kterých je pak provedeno implicitní řazení detail tabulky.
  • <CounterOption> - automatické počítadlo pro detail tabulky je ve tvaru +10:IDField
  • <MasterChange> - příznak změny ID v detail tabulkách při změně ID v master (0=On, 1=Off, 2=IgnoreNull, 4=IgnoreOnlyForView)
  • <CascadeDelete> - příznak mazání v detail tabulkách při smazání v master (0=On, 1=Off, 2=IgnoreNull, 4=IgnoreOnlyForView)
  • <OnlyForView> - příznak pro detail tabulku. Tabulka je pak ReadOnly. Typicky jedná o filtrovaný náhled do jiné master tabulky a nikoliv o podřazená data.
  • <LockDateOptionName> - název optionu pomocí kterého se zamykají data
  • <LockDateFieldName> - datumový field, který rozhoduje o zamknutí záznamu. Je možno použít i více fieldů oddělených středníkem.

Pro MasterChange a CascadeDelete platí:

  1. příznaky lze sčítat (např. IgnoreNull and IgnoreOnlyForView = 6)
  2. pokud je v detail tabulce nastaven příznak OnlyForView mazaní a změna ID se implicitně neprovádí
  3. IgnoreOnlyView ignoruje implicitní chování dle bodu 2
  4. IgnoreNull ignoruje nastavenou akci pokud je ID null nebo ''

Zamknutí změn k datu

Pomocí elementů <LockDateOptionName> a <LockDateFieldName> lze v tabulce zamezit editaci resp. přidání záznamu s datem menším než zadaná mez. Jde tedy o uzávěrku záznamů v tabulce k zadanému datu.

Příklad:

  <Middle Name="PROSTREDKY">
 
    <TableItem Name="prost_vykony">
      <LockDateOptionName>FakturyDM.LockRecords</LockDateOptionName>
      <LockDateFieldName>Datum</LockDateFieldName>
    </TableItem>
    <TableItem Name="prost_naklady">
      <LockDateOptionName>FakturyDM.LockRecords</LockDateOptionName>
      <LockDateFieldName>Datum</LockDateFieldName>
    </TableItem>
 
  </Middle>

Uvedený příklad zamezí změnu v tabulce výkonů resp. nákladů pro datum starší než je zadaný datum v uživatelském optionu FakturyDM.LockRecords.

xml/midregister.xml.txt · Poslední úprava: 2010/02/10 09:20 autor: Petr Kristan