Atenção: Este é um tópico avançado e requer o conhecimento de como criar uma lista dinâmica.
Este tipo de funcionalidade é útil quando em uma ficha ou em uma janela acoplável é necessário esconder certos itens de certos usuários, por exemplo:
Vamos supor que você já tenha implementado em seu código uma lista dinâmica com a seguinte aparência:
e com o seguinte código:
Arquivo Principal “ficha.lfm” |
<?xml version="1.0" encoding="UTF-8"?> <recordList name="rclLista" align="client" field="itens" |
Arquivo Secundário “item.lfm” |
<?xml version="1.0" encoding="UTF-8"?> <edit align="client" field="descricao" margins="{right=2}"/> <button align="right" text="Apagar" width="80" |
Para adicionar a funcionalidade de esconder item, você deverá fazer as seguintes alterações em seu arquivo equivalente ao "item.lfm" (aquele que repete para cada item na lista):
<imageCheckBox name="cbxInvisivel" align="right" width="25" |
Esta é a imagem "images/invisivel.png":
Esta é a imagem "images/visivel.png:
Note que a propriedade autoChange foi setada para false para que a tag não mude automaticamente sua propriedade "checked".
Note também que ao clicar no imageCheckBox, será invocada a função "self:alternarVisibilidade"
<script> |
<script> -- Marcar o checkbox se existir uma permissão "read deny" para jogadores ou para espectadores -- Permitir o click no checkbox apenas se o usuário atual possuir a permissão "writePermissions" |
Veja também:
<event name="onScopeNodeChanged"> self.observer.enabled = false; if sheet ~= nil then self.observer = ndb.newObserver(sheet); self.observer.onPermissionListChanged = self.observer.onFinalPermissionsCouldBeChanged = self:atualizarCbxInvisivel(); -- Devemos atualizar o checkbox agora também |
O que aparece para os Mestres da mesa:
O que os Jogadores e Espectadores da mesa veem:
Arquivo Principal “ficha.lfm” |
<?xml version="1.0" encoding="UTF-8"?> <recordList name="rclLista" align="client" field="itens" |
Arquivo Secundário “item.lfm” |
<?xml version="1.0" encoding="UTF-8"?> <script> function self:atualizarCbxInvisivel() self.cbxInvisivel.enabled = ndb.testPermission(sheet, "writePermissions"); <edit align="client" field="descricao" margins="{right=2}"/> <imageCheckBox name="cbxInvisivel" align="right" width="25" margins="{left=2, right=2}" <button align="right" text="Apagar" width="80" onClick="ndb.deleteNode(sheet);"/> <event name="onScopeNodeChanged"> if sheet ~= nil then self.observer.onPermissionListChanged = self.observer.onFinalPermissionsCouldBeChanged = self:atualizarCbxInvisivel(); |
Created with the Personal Edition of HelpNDoc: Maximize Your Productivity with HelpNDoc's Efficient User Interface