Classe TUiDmxScroller

Unit

Declaração

type TUiDmxScroller = class(TUiMethods)

Descrição

A classe TUiDmxScroller tem como objetivo criar um formulário baseado em uma lista do tipo ShortString.

Hierarquia

Visão Geral

Tipos Aninhados

Public TDates = mi.rtl.objects.Methods.dates.TDates;

Campos

Public DMXFields: TFPList;
Public Fields: TFields;
Public DataFields: TDataFields;
Public Limit: TPoint;
Public CreateValid: boolean ;
Protected WorkingData: pointer;
Protected WorkingDataOld: pointer;
Protected DataBlockSize: longint;
Public ActualRecordNum: longint;
Public DMXField1: pDmxFieldRec;
Public TotalFields: integer;
Public RecordSize: integer;
Public FieldData: pointer;
Public WidthChar:byte;
Public HeightChar:byte;
Protected KeyAltered: Boolean ;
Public keysPrimaryKeyComposite: AnsiString;
Protected flagPrimaryKey_AutoIncrement:Boolean;
Protected _OnCloseQuery: TOnCloseQuery;
Protected _OnEnter: TOnEnter;
Protected _OnExit: TOnExit;
Protected _OnEnterField: TOnEnterField;
Protected _OnExitField: TOnExitField;
Protected _OnCalcField: TOnCalcField;
Protected var _Active: Boolean;
Protected _CurrentField: pDmxFieldRec;
Public CurrentField_old: pDmxFieldRec;
Protected CurrentField_focused: pDmxFieldRec;
Protected var _BufDataset_created:Boolean;
Protected _DataSource: TDataSource;
Public _Locked: Boolean;
Protected var _ShouldSaveTemplate: Boolean;

Métodos

Public procedure HandleEvent(var Event: TUiMethods.TEvent); override;
Public function GetAction(aName:AnsiString):TAction;
Public Procedure SetStateAction(aName:AnsiString;aEnable:Boolean);
Public Function getStateAction(aName:AnsiString):Boolean;
Public function CommandsDisabled(aCommands : array of ansistring): Boolean;
Public function CommandsEnabled(aCommands : array of ansistring): Boolean;
Public procedure EnableCommands(aCommands: Array of AnsiString);
Public procedure DisableCommands(aCommands: Array of AnsiString);
Protected Procedure UpdateCommands;
Public class function GetTemplate_CRUD_Buttons(aCmNewRecord,aCmUpdateRecord, aCmLocate,aCmDeleteRecord,aCmCancel:string):string; Virtual; overload;
Public class function GetTemplate_CRUD_Buttons():string; overload;
Public class function GetTemplate_DbNavigator_Buttons(aCmGoBof,aCmNextRecord, aCmPrevRecord,aCmGoEof,aCmRefresh:string):string; Virtual; overload;
Public class function GetTemplate_DbNavigator_Buttons():string; overload;
Public Function SetHelpCtx_Hint(aFldNum:Integer;a_HelpCtx_Hint:AnsiString):pDmxFieldRec; virtual; overload;
Public Procedure SetHelpCtx_Hint(apDmxFieldRec:pDmxFieldRec;a_HelpCtx_Hint:AnsiString); virtual; overload;
Protected Procedure SetCurrentRecord(aCurrentRecord : Longint ); Virtual;
Protected procedure ShowControlState; Virtual; abstract;
Public Procedure UpdateBuffers; Virtual; abstract;
Protected Function GetAppending:Boolean; VIRTUAL;
Protected Procedure SetAppending(aAppending:Boolean); VIRTUAL;
Protected Function SetOnCalcRecord(Const WOnCalcRecordEnable:Boolean):Boolean;
Protected Function GetRecordSelected: boolean; Virtual;
Protected Procedure SetRecordSelected(a_RecordSelected : boolean); Virtual;
Protected procedure ChangeMadeOnOff(const aValue:Boolean);
Public Function SetState(Const AState: Int64; Const Enable: boolean):Boolean; virtual;
Public function GetState(Const AState: Int64): Boolean; Virtual;
Public function FieldByName(aName:String):PDmxFieldRec;
Public function FieldByNumber(aFieldNum:Integer):PDmxFieldRec;
Public function CancelBuffers: Boolean;
Protected function GetBuffers:Boolean; Virtual;
Protected function PutBuffers:Boolean; Virtual;
Public Procedure DoOnCloseQuery(aDmxScroller:TUiDmxScroller ; var CanClose:boolean ); overload;
Public Procedure DoOnCloseQuery(var CanClose:boolean ); overload;
Public function IsEmpty:Boolean;
Public procedure Scroll_it_inview(AControl: pDmxFieldRec); virtual; abstract;
Protected Procedure DoOnEnter(aDmxScroller:TUiDmxScroller); Virtual; overload;
Public Procedure DoOnEnter(); Virtual; overload;
Protected Procedure DoOnExit(aDmxScroller:TUiDmxScroller); overload;
Public Procedure DoOnExit(); overload;
Public procedure BeforeDestruction; override;
Public constructor Create(aOwner:TComponent); Override;
Public destructor destroy; override;
Protected procedure CreateStruct(var ATemplate : TString); virtual; overload;
Protected procedure CreateStruct(var ATemplate : PSItem); virtual; overload;
Protected procedure CreateStruct(); virtual; overload;
Protected procedure DestroyStruct; virtual;
Protected Procedure CreateBufDataset_FieldDefs; virtual;
Protected procedure CreateData; Virtual;
Protected procedure DestroyData; virtual;
Public Function GetRecordData: Pointer; virtual;
Protected Procedure SetLimit(X, Y: Integer); virtual;
Protected function GetTemplate(aNext: PSItem) : PSItem; overload; virtual; abstract;
Public function DoAddTemplate:Boolean; virtual; Abstract;
Protected procedure SetActive(aActive : Boolean); virtual;
Protected Procedure SetCurrentField(aCurrentField : pDmxFieldRec);
Public Function PutString(Const OkSpc:Boolean;Const S:tString) : SmallInt; virtual; overload;
Public function PutString(Const aFieldName:tString;S : ShortString):SmallInt; virtual; overload;
Public function GetString(const aFieldName: tString):AnsiString; virtual; overload;
Public Function GetString(Const OkSpc:Boolean) : TString; virtual; overload;
Public Function GetString: TString; virtual; overload;
Public function PutString(const S : ShortString):SmallInt; virtual; overload;
Public Function Get_MaskEdit_LCL(aTemplate : AnsiString; aSpaceChar :AnsiChar; out Size_TypeFld, aLength_Buffer : SmallWord; out aOkMask : Boolean) : AnsiString; overload;
Public Function Get_MaskEdit_LCL(aTemplate : AnsiString; aSpaceChar:Ansichar; out aOkMask : Boolean) : AnsiString; overload;
Public function FormatMaskEdit_LCL( aValue, Mask: string;aDirecao:Boolean): string;
Protected function GetDataSource: TDataSource;
Protected Procedure SetDataSource(aDataSource : TDataSource);
Public Function IfEqual(Const Ofset_Inicial:Word;Const PAnt,PAtu : Pointer; Const Len:Word):Boolean;
Public function RecordAltered: Boolean ;
Public class function CreateExecAction(Const aFieldName:AnsiString;const aExecAction: AnsiString) : AnsiString;
Public procedure add(aTemplate:AnsiString); overload;
Protected Procedure SetLocked(aLocked:Boolean); Virtual;
Public Procedure SetArgs(aArgs: array of const); virtual;
Protected Procedure Select_First_Field_Normal; virtual; abstract;
Public Procedure DoOnNewRecord; overload; Virtual;
Protected function StartTransaction:Boolean; override; Overload;
Protected function COMMIT:Boolean; override; Overload;
Protected procedure Rollback(afinalize: Boolean; aMsg: AnsiString; aWorkingData:Pointer); overload;
Public function isDataSetActive:Boolean;
Public function GetDataSet:TDataSet;
Public function GetDataSet_Status:String;
Public Procedure UpdateState;
Protected Procedure DataSet_Append;
Protected Procedure DataSet_post;
Protected Procedure DataSet_Delete;
Protected Procedure DataSet_Edit;
Public function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions) : boolean; virtual; overload;
Public function Locate(): TMi_MsgBox.TModalResult; Virtual; Overload; Abstract;
Protected Function DataSet_BookmarkValid(aBookMark:TBookMark):Boolean;
Protected procedure DataSet_Cancel;
Protected Procedure DataSet_Refresh;
Protected procedure DataSet_ApplyUpdates;
Public procedure Edit;
Protected Function GetBof: Boolean; overload; virtual;
Protected Function GetEof: Boolean; overload; virtual;
Public Function FirstRec: Boolean; overload; virtual;
Public Function NextRec: Boolean; overload; virtual;
Public Function PrevRec: Boolean; overload; virtual;
Public Function LastRec: Boolean; overload; virtual;
Public Procedure Cancel;
Protected procedure RefreshInternal; VIRTUAL;
Public procedure Refresh; VIRTUAL;
Protected Function DoBeforeInsert:Boolean; Virtual;
Protected Function DoAfterInsert:Boolean; Virtual;
Protected Function DoBeforeUpdate:Boolean; Virtual;
Protected Function DoAfterUpdate:Boolean; Virtual;
Protected Function DoBeforeDelete:Boolean; Virtual;
Protected Function DoAfterDelete:Boolean; Virtual;
Protected Procedure DoCalcFields(aWorkingData : Pointer) ; overload; Virtual;
Protected Procedure DoCalcFields; overload; Virtual;
Public Procedure DoChangeField(aField: pDmxFieldRec); Virtual;
Public Function AddRec:Boolean ; Virtual;
Public Function GetRec(aBookmark : TBookMark):Boolean ; Virtual;
Public Function DeleteRec:Boolean ; Virtual;
Public function getFieldsKeys(out Values:Variant):AnsiString; overload;
Public Function PutRec:Boolean; Virtual;
Public Function UpdateRec: Boolean; Virtual;
Public function GetNextValue(const SequenceName: string; IncrementBy: integer): Int64;
Public function MaxPKey(aTabela, aID: String): LongInt; overload;
Public Function MaxPKey: LongInt; Virtual; overload;
Public function GetRecNo: LongInt; virtual;
Public procedure EnableControls;
Public procedure DisableControls;
Public function ControlsDisabled: Boolean;
Public function SaveTemplate(aFileName:AnsiString;adataformat:AnsiString):Boolean; Virtual;
Public procedure UpdateDataField_AliasList;

Propriedades

Public property Parent: TComponent read GetParent write SetParent;
Public property Mi_ActionList: TActionList read Get_Mi_ActionList write Set_Mi_ActionList;
Public property CurrentRecord : Longint read _CurrentRecord write SetCurrentRecord;
Public property Strings : TMiStringList Read GetStrings Write SetStrings;
Public property TableName : String Read _TableName Write SetTableName;
Public property Appending : Boolean read GetAppending write SetAppending;
Protected property RecordSelected : boolean read GetRecordSelected Write SetRecordSelected default false;
Public property onCloseQuery : TOnCloseQuery Read _OnCloseQuery write _onCloseQuery;
Public property onEnter : TOnEnter Read _OnEnter write _onEnter;
Public property onExit : TOnExit Read _OnExit write _onExit;
Public property onEnterField : TOnEnterField Read _OnEnterField write _onEnterField;
Public property onExitField : TOnExitField Read _OnExitField write _onExitField;
Public property onCalcField : TOnCalcField Read _OnCalcField write _onCalcField;
Public property onGetTemplate : TonGetTemplate Read _onGetTemplate Write _onGetTemplate;
Public property onAddTemplate: TonAddTemplate read _onAddTemplate write _onAddTemplate;
Published property Active : Boolean Read _Active Write SetActive;
Public property CurrentField : pDmxFieldRec read _CurrentField write SetCurrentField;
Public property AlignmentLabels : TAlignment read _AlignmentLabels write SetAlignmentLabels;
Public property BufDataset : TMiBufDataset read GetBufDataset write SetBufDataset;
Public property DataSource : TDataSource Read GetDataSource Write SetDataSource;
Public property Locked : Boolean read _Locked write SetLocked;
Public property JSONObject: TJSONObject read Get_JSONObject write Set_JSONObject;
Public property DoOnNewRecord_FillChar : Boolean Read _DoOnNewRecord_FillChar Write SetDoOnNewRecord_FillChar default True ;
Public property OnNewRecord : TOnNewRecord read _OnNewRecord Write _OnNewRecord;
Public property CurrentBookmark : TBookMark Read _CurrentBookmark Write SetCurrentBookmark;
Public property Bof: Boolean read GetBof;
Public property Eof: Boolean read GetEof;
Public property onBeforeInsert: TOnBeforeInsert Read _OnBeforeInsert Write _OnBeforeInsert;
Public property onAfterInsert: TonAfterInsert Read _onAfterInsert Write _onAfterInsert;
Public property onBeforeUpdate: TOnBeforeUpdate Read _OnBeforeUpdate Write _OnBeforeUpdate;
Public property onAfterUpdate: TonAfterUpdate Read _onAfterUpdate Write _onAfterUpdate;
Public property onBeforeDelete: TOnBeforeDelete Read _OnBeforeDelete Write _OnBeforeDelete;
Public property onAfterDelete: TonAfterDelete Read _onAfterDelete Write _onAfterDelete;
Public property OnCalcFields: TOnCalcFields Read _OnCalcFields Write _OnCalcFields;
Public property OnChangeField: TOnChangeField Read _OnChangeField Write _OnChangeField;
Public property ShouldSaveTemplate : Boolean Read _ShouldSaveTemplate Write _ShouldSaveTemplate;
Published property MiDataPacketFormat_Default: TMiDataPacketFormat read _MiDataPacketFormat_Default write SetTMiDataPacketFormat;
Public property Modified : Boolean read GetModified ;
Public property CanModify : Boolean read GetCanModify ;

Descrição

Tipos Aninhados

Public TDates = mi.rtl.objects.Methods.dates.TDates;
 

Campos

Public DMXFields: TFPList;

O atributo DMXFields salva todos os rótulos e campos da lista de Templates.

  • MOTIVO

    • A classe mãe TUiDmxScroller mãe da classe TDmxScroller_Form cria Template de apenas uma linha, a lista DMXFields salva todas as linhas para geração de um Template do tipo formulário.

Public Fields: TFields;

O atributo Fields contém uma lista pDmxFieldRec cujo Fieldnum<>0.

Public DataFields: TDataFields;

O atributo DataFields salva somente os campos de dados cujo o campo filednum<>0

Public Limit: TPoint;

O atributo Limit salva o limite inferior e superior da janela no qual foi criado os componentes dos formulários

Public CreateValid: boolean ;

O atributo CreateValid indica que a classe voi criada.

Protected WorkingData: pointer;

O atributo WorkingData é um ponteiro para o buffer do registro

Protected WorkingDataOld: pointer;

O atributo WorkingDataOld é um ponteiro para o buffer do registro anterior

Protected DataBlockSize: longint;

O atributo DataBlockSize é o tamanho do registro apontado por WorkingData.

Public ActualRecordNum: longint;

O atributo ActualRecordNum contém o número da linha corrente

Public DMXField1: pDmxFieldRec;

O atributo DMXField1 contém o primeiro campo da lista encandeada

Public TotalFields: integer;

O atributo TotalFields contém o total de campos da lista apontada por DMXField1

Public RecordSize: integer;

O atributo RecordSize contém o tamanho do buffer calculado por CreateStruct

Public FieldData: pointer;

O atributo FieldData contém o ponteiro do buffer do corrente campo calculado pela propriedade CurrentField

Public WidthChar:byte;

O atributo WidthChar deve ser iniciado quando este controle for incluído em um TScrollingWinControl. em um controle gráfico.

  • EXEMPLO

    • WidthChar := ((Owner as TScrollingWinControl).Canvas.TextWidth(UiDmxScroller.CharAlfanumeric) div Length(UiDmxScroller.CharAlfanumeric));

Public HeightChar:byte;

O atributo HeightChar deve ser iniciado quando este controle for incluído em um TScrollingWinControl.

  • EXEMPLO

    • HeightChar := (Owner as TScrollingWinControl).Canvas.TextHeight(CharAlfanumeric)+2;

Protected KeyAltered: Boolean ;

O atributo KeyAltered indica se algum campo da chave foi alterado é setado em changeMade

Public keysPrimaryKeyComposite: AnsiString;

O atributo keysPrimaryKeyComposite contém a lista de campos que pertence a chave primária

  • EXEMPLOS:

    • Chave simples:

      • 'Matricula'.

    • Chave composta:

      • 'Estado,Cidade'.

  • NOTA

    • Se pos(';',keysPrimaryKeyComposite) <> 0 indica que a chave é composta.

Protected flagPrimaryKey_AutoIncrement:Boolean;
 
Protected _OnCloseQuery: TOnCloseQuery;
 
Protected _OnEnter: TOnEnter;
 
Protected _OnExit: TOnExit;
 
Protected _OnEnterField: TOnEnterField;
 
Protected _OnExitField: TOnExitField;
 
Protected _OnCalcField: TOnCalcField;
 
Protected var _Active: Boolean;

O atributo _Active é usado para criar a propriedade active do componente

  • NOTAS

    • O componente só pode estar ativo se o GetTemplate <> nil .

    • O método CreateFormLCL só pode ser executado uma vêz.

    • Caso o active esteja true e o usuário seta para false o controle Owner deve ficar invisível.

Protected _CurrentField: pDmxFieldRec;

O atributo protected _CurrentField contem os dados da propriedade CurrentField.

Public CurrentField_old: pDmxFieldRec;

O atributo CurrentField_old salva o currentefield anterior ao atual.

  • ATENÇÃO

    • Necessário caso se deseja fazer alguma crítica com os dados do buffer do corrente campo focado ao pressionar um botão de ação.

Protected CurrentField_focused: pDmxFieldRec;

A atributo CurrentField_focused contém um ponteiro para o campo selecionado e que FieldNum seja diferente de zero.

Protected var _BufDataset_created:Boolean;
 
Protected _DataSource: TDataSource;
 
Public _Locked: Boolean;
 
Protected var _ShouldSaveTemplate: Boolean;
 

Métodos

Public procedure HandleEvent(var Event: TUiMethods.TEvent); override;
 
Public function GetAction(aName:AnsiString):TAction;

O Método GetAction retorna a ação associada a aName se existir

Public Procedure SetStateAction(aName:AnsiString;aEnable:Boolean);

O método SetStateAction habilita e desabila o botão aName

Public Function getStateAction(aName:AnsiString):Boolean;

O método getStateAction retorna a propriedade Taction.enable

Public function CommandsDisabled(aCommands : array of ansistring): Boolean;

O método CommandsDisabled retorna true se todos os comandos passados por aCommands estiverem desativados e retorna false se pelo menos um estiver ativado.

  • EXEMPLO

    
    if CommandsDisabled('novo','grava')
    Then WriteLn('Os comandos novo e grava estão desabilitados');

Public function CommandsEnabled(aCommands : array of ansistring): Boolean;

O método CommandsEnabled retorna true se todos os comandos passados por aCommands estiverem ativados e retorna false se pelo menos um estiver desativado

  • EXEMPLO

    
    if CommandsEnabled('novo','grava')
    Then WriteLn('Os comandos novo e grava estão ativados');

Public procedure EnableCommands(aCommands: Array of AnsiString);

O método EnableCommands ativa todos os todos os comandos passados por aCommands.

  • EXEMPLO

    
    DisableCommands('novo','grava');
    WriteLn('Os comandos novo e grava estão ativados');

Public procedure DisableCommands(aCommands: Array of AnsiString);

O método DisableCommands desativa todos os todos os comandos passados por aCommands.

  • EXEMPLO

    
    DisableCommands('novo','grava');
    WriteLn('Os comandos novo e grava estão desativados');

Protected Procedure UpdateCommands;

O método UpdateCommands habilita ou desabilita os botões de ações baseado no estado do dataset.

Public class function GetTemplate_CRUD_Buttons(aCmNewRecord,aCmUpdateRecord, aCmLocate,aCmDeleteRecord,aCmCancel:string):string; Virtual; overload;

O método GetTemplate_CRUD_Buttons retorna um template para criação dos botões aCmNewRecord, aCmUpdateRecord,aCmLocate,aCmDeleteRecord,aCmCancel.

Public class function GetTemplate_CRUD_Buttons():string; overload;

O método GetTemplate_CRUD_Buttons retorna um template para criação dos botões CmNewRecord, CmUpdateRecord,CmLocate,CmDeleteRecord,CmCancel.

Public class function GetTemplate_DbNavigator_Buttons(aCmGoBof,aCmNextRecord, aCmPrevRecord,aCmGoEof,aCmRefresh:string):string; Virtual; overload;

O método GetTemplate_DbNavigator_Buttons retorna um template para criação dos botões aCmGoBof, aCmNextRecord,aCmPrevRecord,aCmGoEof,aCmRefresh.

Public class function GetTemplate_DbNavigator_Buttons():string; overload;

O método GetTemplate_DbNavigator_Buttons retorna um template para criação dos botões CmGoBof, CmNextRecord,CmPrevRecord,CmGoEof,CmRefresh.

Public Function SetHelpCtx_Hint(aFldNum:Integer;a_HelpCtx_Hint:AnsiString):pDmxFieldRec; virtual; overload;

O método SetHelpCtx_Hint inicia a documentação resumida do campo. aFldNum

Public Procedure SetHelpCtx_Hint(apDmxFieldRec:pDmxFieldRec;a_HelpCtx_Hint:AnsiString); virtual; overload;

O método SetHelpCtx_Hint inicia a documentação resumida do campo passado em :apDmxFieldRec

Protected Procedure SetCurrentRecord(aCurrentRecord : Longint ); Virtual;
 
Protected procedure ShowControlState; Virtual; abstract;
 
Public Procedure UpdateBuffers; Virtual; abstract;

O método UpdateBuffers atualiza o buffer dos controles associados ao componente.

Protected Function GetAppending:Boolean; VIRTUAL;
 
Protected Procedure SetAppending(aAppending:Boolean); VIRTUAL;
 
Protected Function SetOnCalcRecord(Const WOnCalcRecordEnable:Boolean):Boolean;
 
Protected Function GetRecordSelected: boolean; Virtual;
 
Protected Procedure SetRecordSelected(a_RecordSelected : boolean); Virtual;
 
Protected procedure ChangeMadeOnOff(const aValue:Boolean);

O método ChangeMadeOnOff seta os atributos indicativos de que o objeto foi alterado ou não.

Public Function SetState(Const AState: Int64; Const Enable: boolean):Boolean; virtual;

O método SetState seta o bit passado no parâmetro aState e retorna o estado anterior do mapa de bits passado por aState

Public function GetState(Const AState: Int64): Boolean; Virtual;

O Método GetState recebe um mapa de bits e retorna:

  • false : Se o bite estiver desligado;

  • true ; Se o bit estiver ligado

Public function FieldByName(aName:String):PDmxFieldRec;

O método FieldByName retorna o campo passado por aName.

Public function FieldByNumber(aFieldNum:Integer):PDmxFieldRec;
 
Public function CancelBuffers: Boolean;

O método CancelBuffers copia o buffer do registro anterior para o buffer do registro atual

Protected function GetBuffers:Boolean; Virtual;

O método GetBuffers copia o buffer do registro atual para o buffer do registro anterior.

  • OBSERVAÇÃO:

    • O método GetBuffers deve ser anulado para ler o buffer dos campos dos arquivos associados a classe TUiDmxScroller para o buffer dos campos da classe TUiDmxScroller

Protected function PutBuffers:Boolean; Virtual;

O método PutBuffers deve ser anulado para grava o buffer dos campos da classe TUiDmxScroller para o buffer dos campos dos arquivos associados a classe TUiDmxScroller

Public Procedure DoOnCloseQuery(aDmxScroller:TUiDmxScroller ; var CanClose:boolean ); overload;
 
Public Procedure DoOnCloseQuery(var CanClose:boolean ); overload;
 
Public function IsEmpty:Boolean;
 
Public procedure Scroll_it_inview(AControl: pDmxFieldRec); virtual; abstract;

O método Scroll_it_inview é usado para da o scroller na janela onde esse componente for inserido.

  • NOTA

    • A LCL não rola a tela com a tecla tab e o controle não estiver visível.

Protected Procedure DoOnEnter(aDmxScroller:TUiDmxScroller); Virtual; overload;

O método DoOnEnter Executa o evento onEnter se o mesmo estiver assinalado.

Public Procedure DoOnEnter(); Virtual; overload;
 
Protected Procedure DoOnExit(aDmxScroller:TUiDmxScroller); overload;
 
Public Procedure DoOnExit(); overload;
 
Public procedure BeforeDestruction; override;

Executado antes de construir o componente

Public constructor Create(aOwner:TComponent); Override;

Constrói o componente

Public destructor destroy; override;

Destrói o componente

Protected procedure CreateStruct(var ATemplate : TString); virtual; overload;

A procedure CreateStruct é executado para construir a lista apontada por DMXField1 baseado no Template do tipo TString.

  • NOTA

    • O parâmetro aTemplate é um string com 255 caracteres, porém o mesmo pode ser encandeado usando a função CreateAppendFields.

    • A função CreateAppendFields retorna a constante fldAPPEND mais o endereço da string a ser concatenada.

      • EXEMPLO

        Var
          S1,s2,Template : TString;
        begin
          S1 := '˜Nome do Aluno....:˜\ssssssssssssssssssssssssssssssssss';
          s2 := '˜Endereço do aluno:˜\sssssssssssssssssssssssss';
          Template := S1+CreateAppendFields(s2);
        end;

Protected procedure CreateStruct(var ATemplate : PSItem); virtual; overload;

A procedure CreateStruct é executado para construir a lista apontada por DMXField1 baseado na lista PSItem.

  • NOTA

    • O parâmetro aTemplate é uma lista PSitem.

    • A função CreateTSItemFields retorna uma lista de PSItem.

      • EXEMPLO

        Var
          Template : PSItem;
        begin
          Template := CreateTSItemFields(
                                NewSItem('cccccccccccccccccccccccccccccccccccccccccccccccccc',
                                NewSItem('cccccccccccccccccccccccccccccccccccccccccccccccccc',
                                NewSItem('cccccccccccccccccccccccccccccccccccccccccccccccccc',
                                NewSItem('cccccccccccccccccccccccccccccccccccccccccccccccccc',
                                NewSItem('cccccccccccccccccccccccccccccccccccccccccccccccccc',nil))))))
        end;

Protected procedure CreateStruct(); virtual; overload;

A procedure CreateStruct interpreta o Template obtido em getTemplate e cria a lista de pDmxFieldRec associada ao Template.

  • Nota

    • O Template pode ser obtido pela propriedade Template se Template<> '' ou retornado pelo evento onGetTemplate.

Protected procedure DestroyStruct; virtual;

A procedure DestroyStruct destrói as lista criada por CreateStruct acima.

Protected Procedure CreateBufDataset_FieldDefs; virtual;

O método CreateBufDataset_FieldDefs é usado para criar os campos de BufDataset

  • Dica

    if GetDataSet.DefaultFields
    Then WriteLn('Os campos foram criados baseado nos metadados do banco de dados')
    else WriteLn('Os campos foram criados em tempo de designer ou tempo de execução.');

Protected procedure CreateData; Virtual;

A procedure CreateData é usada para alocar (RecordSize) memória para o buffer (WorkingData) do registro calculado por createStruct

Protected procedure DestroyData; virtual;

A procedure DestroyData é usada para desalocar memória do buffer do registro criado por CreateData

Public Function GetRecordData: Pointer; virtual;

A função GetRecordData retorna o atributo WorkingData

Protected Procedure SetLimit(X, Y: Integer); virtual;
 
Protected function GetTemplate(aNext: PSItem) : PSItem; overload; virtual; abstract;

O método GetTemplate é usado para atualizar o atributo _onGetTemplate com o modelo informado pelo usuário caso o onGetTemplate seja nil.

  • NOTA

    1. O Evento _onGetTemplate só é iniciado em tempo de execução por isso o formulário não pode ser criado em tempo de projeto usando o evento onGetTemplate.

    2. As strings do formulário também pode ser desenhado usando o evento OnAddTemplate.

    3. O evento OnGetTemplate tem prioridade em relação ao evento OnAddTemplate;

Public function DoAddTemplate:Boolean; virtual; Abstract;

O método DoAddTemplate Criar um formulário baseado em _Strings.

  • Objetivo

    • Criar formulário baseado em recursos tipo maricarai em arquivo.

    • Nome do arquivo: TableName.template

  • NOTAS

    • Se _Strings.Count > 0 então gera o template e retorna true;

    • Se _Strings.Count = 0 retorna false.

Protected procedure SetActive(aActive : Boolean); virtual;

A procedure SetActive seta a propriedade active e criar um formulário LCL ou HTML dependendo do tipo de aplicação

Protected Procedure SetCurrentField(aCurrentField : pDmxFieldRec);

O Método SetCurrentField Set o currenteField com aCurrentField

Public Function PutString(Const OkSpc:Boolean;Const S:tString) : SmallInt; virtual; overload;

A função PutString salva a string S no currentField

  • PARÂMETROS

    • OkSpc : campo lógico e se true salva o campo preenchendo com espaço para completar a máscara.

    • S : String do tipo ShortString com conteúdo do campo.

Public function PutString(Const aFieldName:tString;S : ShortString):SmallInt; virtual; overload;

O método PutString salva um string no campo passado por aFieldName.

Public function GetString(const aFieldName: tString):AnsiString; virtual; overload;

O método GetString retorna um string do campo passado por aFieldName.

Public Function GetString(Const OkSpc:Boolean) : TString; virtual; overload;

A função GetString retorna a string com o valor do currentField

  • PARÂMETROS

    • OkSpc : campo lógico e se true retorna o campo preenchendo com espaço para completar a máscara.

Public Function GetString: TString; virtual; overload;

A função GetString retorna a string com o valor do currentField sem preencher com espaço para completar a máscara.

Public function PutString(const S : ShortString):SmallInt; virtual; overload;

A função PutString salva a string S no currentField usando okspc = false;

  • PARÂMETROS

    • S : String do tipo ShortString com conteúdo do campo.

Public Function Get_MaskEdit_LCL(aTemplate : AnsiString; aSpaceChar :AnsiChar; out Size_TypeFld, aLength_Buffer : SmallWord; out aOkMask : Boolean) : AnsiString; overload;

O método Get_MaskEdit_LCL receber a máscara do DmxScroller e retorna a mascara do componente LCL.

  • PARÂMETROS

    • aTemplate :

      • S = Indica que a posição é do tipo ShortString e só aceita caractere maiúsculo.

        • Exemplo: \SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

      • s = Indica que a posição é do tipo ShortString e só aceita caractere maiusculos e minusculos.

        • Exemplo: \ssssssssssssssssssssssssssssssssssssss

      • s = Indica que a posição é do tipo ShortString e só aceita caracteres númericos.

        • Exemplo: '\(##) # ####-####'

      • C = Indica que a posição é do tipo AnsiString e só aceita caractere maiúsculo.

        • Exemplo: \CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

      • c = Indica que a posição é do tipo ansistring e aceita caractere maiusculos e minusculos.

        • Exemplo: \cccccccccccccccccccccccccccccccccccccc

      • 0 = Indica que a posição é do tipo ansistring e aceita caracteres númericos.

        • Exemplo: \(00) 0 0000-0000' //85 9 9702 4498

      • B = Indica que a posição é do tipo byte o máximo de B que pode ter é 3. O valor não pode ser maior que 255.

        • Exemplo: \BBB

      • J = Indica que a posição é do tipo shortint o número shotint so pode ter número entre -128 to 127

        • Exemplo: \JJJ

      • W = Indica que a posição é do tipo smallword (2 bytes) e só pode ter número entre 0 a 65.535

        • Exemplo: \WWWWW

      • I = Indica que a posição é do tipo inteiro longo (4 bytes) e só pode ter número entre -4.294.967.295 a 4.294.967.295

        • Exemplo: \IIIII

      • L = Indica que a posição é do tipo inteiro longo (4 bytes) e só pode ter número entre -4.294.967.295 a 4.294.967.295

        • Exemplo: \LLLLLL

      • R = Indica que a posição é do tipo real (8 bytes) e pode ter número fracionários.

        • Exemplo: \RRR,RRRR,RR

      • r = Indica que a posição é do tipo real positivo (8 bytes) e pode ter número fracionários.

        • Exemplo: \rrr,rrr.rr

      • O = Indica que a posição é do tipo real (4 bytes) e pode ter número fracionários.

        • Exemplo: \OOO,OOO.OO

      • o = Indica que a posição é do tipo real positivo (4 bytes) e pode ter número fracionários.

        • Exemplo: \ooo,ooo.oo

      • P = Indica que a posição é do tipo real (4 bytes) e pode ter número fracionários e armazena. Seu valor é dividido por 100 e ao gravar e ao ler é mutiplicado por 100 usado em número percentuais. Obs: Pode se negativo.

        • Exemplo: \PPP.PP

      • p = Indica que a posição é do tipo real positivo (4 bytes) e pode ter número fracionários e armazena. Seu valor é dividido por 100 e ao gravar e ao ler é mutiplicado por 100 usado em número percentuais. Obs: Não pode se negativo.

        • Exemplo: \PPP.PP

      • E = Indica que a posição é do tipo extended (10 bytes) e pode ter números fracionários.

        • Exemplo: \EEE,EEE,EEE.EE

      • X = Indica que a posição é do tipo boolean (1 bytes) e só pode ter os números 0 ou 1;

        • Exemplo: \X

    • Size_TypeFld

      • Retorno o tipo de dados da mascara;

    • aLength_Buffer

      • Retorno o tamanho do tipo de dados da mascara;

    • aOkMask

      • Retorna true se tiver mascara e false caso contrário;

  • RESULT

    • Caracter Descrição da mascara da LCL

      • ! Espaços em branco não aparecerão

      • > Todos os caracteres seguintes serão maiúsculos até que apareça o caracter

      • < Todos os caracteres seguintes serão minúsculos até que apareça o caracter

      • \ Indica um caracter literal

      • l (L minusculo) Somente caracter alfabético

      • L Obrigatoriamente um caracter alfabético (A-Z, a-z)

      • a Somente caracter alfanumérico

      • A Obrigatoriamente caractere alfanumérico ( A-Z, a-z, 0-9)

      • 9 Somente caracter numérico

      • 0 Obrigatoriamente caracter numérico

      • c permite um caracter

      • C Obrigatoriamente um caracter

      • # Permite um caracter numérico ou sinal de mais ou de menos, mas não os requer.

      • : Separador de horas, minutos e segundos

      • / Separador de dias, meses e anos

      • NOTAS:

        • A máscara basicamente consiste de três campos, separados por ponto e vírgula.

          • A primeira parte é a máscara propriamente dita.

          • A segunda parte determina se os caracteres fixos devem ser ou não salvos com a máscara (ex: /, -, (, ...).

          • A terceira parte da máscara representa o caracter em branco, podendo ser substituído por outro (ex: _, @, ...).

        • Caracteres especiais utilizados com a máscara:

          • ! Faz com que a digitação da máscara fique parada no primeiro caracter, fazendo com que os caracteres digitados que se movam. Ex: !;0;_

          • > Todos os caracteres alfabéticos digitados após este símbolo serão convertidos para maiúsculos. Ex: >aaa;0;_

          • < Todos os caracteres alfabéticos digitados após este símbolo serão convertidos para minúsculos. Ex: <aaa;0;_

          • <> Anula o uso dos caracteres > e <. Ex: >aaa<>aaa;0;_

          • \ Utilizado para marcar determinado caractere não especial como fixo, não podendo sobrescrevê-lo. Ex: !\(999\)000-0000;0;_

          • L Caracteres alfabéticos (A-Z, a-z.) de preenchimento obrigatório. Ex: LLL;1;_

          • l (Letra ele minúscula) Caracteres alfabéticos (A-Z, a-z.) de preenchimento opcional. Ex: lll;1;_

          • A Caracteres alfanuméricos (A-Z, a-z, 0-9) de preenchimento obrigatório. Ex: AAA;1;_

          • a Caracteres alfanuméricos (A-Z, a-z, 0-9) de preenchimento opcional. Ex: aaa;1;_

          • C Exige preenchimento obrigatório com qualquer caractere para a posição. Ex: CCC;1;_

          • c Permite qualquer caractere para a posição de preenchimento opcional. Ex: ccc;1;_

          • 0 Caracteres numéricos (0-9) de preenchimento obrigatório. Ex: 000;1;_

          • 9 Caracteres numéricos (0-9) de preenchimento opcional. Ex: 999;1;_

          • # Caracteres numéricos (0-9) e os sinais de - ou + de preenchimento opcional. Ex: ###;1;_

          • : Utilizado como separador de horas, minutos e segundos. Ex: !00:00:00;1;_

          • / Utilizado como separador de dia, mês e ano. Ex: !99/99/9999;1;_

          • ; Separa os três campos da máscara.

          • _ Caractere usado normalmente nas posições do campo ainda não preenchidas.

          • Campom númerico

            • #####,##;1;_

            • O 1 Indica para salvar a mascara no resultado.

            • O caractere _ indica que deve ser digitado 1 caractere.

            • #####,##;0;_

              • O 0 Indica para não salvar a máscara no resultado.

  • EXEMPLO DE FORMATO FLOAT

    Const
      NrFormat=9;
      FormatStrings : Array[1..NrFormat] of string = (
            '',
            '0',
            '0.00',
            '#.##',
            '#,##0.00',
            '#,##0.00;(#,##0.00)',
            '#,##0.00;;Zero',
            '0.000E+00',
            '#.###E-0');
    
            '999999999,99;0; ';
            '###,###,###,##0.00';

Public Function Get_MaskEdit_LCL(aTemplate : AnsiString; aSpaceChar:Ansichar; out aOkMask : Boolean) : AnsiString; overload;

O método Get_MaskEdit_LCL receber a máscara do Dmx e retorna a mascara do componente LCL.

  • PARÂMETROS

Public function FormatMaskEdit_LCL( aValue, Mask: string;aDirecao:Boolean): string;

O Método FormatMaskEdit_LCL retorna um valor o parâmetro aValue formatado deacordo o parâmetro mask com formato da IDL LCL.

  • NOTA:

    • aDirecao

      • True : aValue será formatado da esquerda para direita;

      • false: aValue será formatado da direita para esquerda;

Protected function GetDataSource: TDataSource;
 
Protected Procedure SetDataSource(aDataSource : TDataSource);
 
Public Function IfEqual(Const Ofset_Inicial:Word;Const PAnt,PAtu : Pointer; Const Len:Word):Boolean;

O atributo IfEqual retorna true se o buffer apontado por PAnt for igual ao buffer apontado por PAtu.

Public function RecordAltered: Boolean ;

O método RecordAltered retorna true se o registro atual for diferente do registro anterior

Public class function CreateExecAction(Const aFieldName:AnsiString;const aExecAction: AnsiString) : AnsiString;

A classe método CreateExecAction é usado para adicionar a chamada de um procedimento quando a tecla F7 é pressionada;

Public procedure add(aTemplate:AnsiString); overload;
 
Protected Procedure SetLocked(aLocked:Boolean); Virtual;
 
Public Procedure SetArgs(aArgs: array of const); virtual;

O método SetArgs atualiza o buffer com o array aArgs

  • Exemplo de como alterar o primeiro registro com a sequencia [josé Carlos, 15]:

    
    if FirstRec Then
    begin
      edit;
      SetArgs(['José Carlos',15]);
      UpdateRec;
    end;

Protected Procedure Select_First_Field_Normal; virtual; abstract;

O método Select_First_Field_Normal deve ser implamentado na unit que implementar o desenho do formulário

Public Procedure DoOnNewRecord; overload; Virtual;

O método DoOnNewRecord é usado para inicializa os parâmetros de um novo registro.

  • Descrição

    • O método DoOnNewRecord é responsável por iniciar a criação de um novo registro no dataset associado ao componente. Ele executa uma série de operações para configurar o estado da aplicação como "appending", preencher campos com valores padrão e atualizar o buffer de dados.

  • Parâmetros Locais

    • WState_SfFocused (Boolean): Guarda o estado anterior do foco no componente para restaurá-lo após a inserção.

    • wOnCalcRecordEnable (Boolean): Armazena o estado da habilitação de cálculos de registros, desativado temporariamente.

    • p (TDataSetNotifyEvent): Ponteiro para o evento OnNewRecord do dataset, se atribuído.

    • wCurrentField (PDmxFieldRec): Campo atualmente em foco.

    • i (Integer): Usado para iterar sobre os campos do dataset.

    • s (String): Usado para armazenar temporariamente valores padrão dos campos.

  • Fluxo de Execução

    1. Verifica se o dataset está ativo com isDataSetActive.

    2. Se ativo:

      • Marca o estado como "Appending" para indicar a inserção de um novo registro.

      • Define valores padrão para os campos do novo registro.

      • Notifica os manipuladores de evento, se existentes.

      • Atualiza o buffer de dados e os comandos associados ao dataset.

    3. Após a inserção, restaura o estado anterior, como foco e habilitação de cálculos.

  • Exceções

    • Exception:

      • Lança uma exceção se houver algum erro durante o processo de inserção de um novo registro.

  • Ver Também

    • OnNewRecord: Evento chamado ao criar um novo registro.

Protected function StartTransaction:Boolean; override; Overload;

O método StartTransaction inicia uma transação se puder.

  • RESULT

    • True

      • Se a transação atual for false;

    • false

      • Se a transação atual for true;

    • **Objetivo:

      • Permitir que após o processamento, só executar commit ou rollback se StartTransaction tenha retornado true;

    • EXEMPLO DE USO

      
      Function AddRec:Boolean;
      Var
        Finalize : boolean;
      begin
        try /Exepet
      
          Finalize := StartTransaction;
      
          AddRec;
      
          if Finalize
          then Commit
      
        Except
          On E : Exception do
          begin
            if finalize
            then Rollback;
      
            Raise TException.Create(Self,$I %CURRENTROUTINE%,E.Message);
          end;
      end;

Protected function COMMIT:Boolean; override; Overload;

O método COMMIT confirme a transação no banco de dados

Protected procedure Rollback(afinalize: Boolean; aMsg: AnsiString; aWorkingData:Pointer); overload;

O método Rollback anula a transação do banco de dados

Public function isDataSetActive:Boolean;

O método isDataSetActive retorna true se ativo e existe datasource com dataset ativo.

Public function GetDataSet:TDataSet;
 
Public function GetDataSet_Status:String;
 
Public Procedure UpdateState;

O método UpdateState Executa SetState para hablitar e desabilita comandos para estar sincronizado com getdataset

Protected Procedure DataSet_Append;

O método DataSet_Append comunica-se com o DataSource.DataSet.Append

Protected Procedure DataSet_post;

O método DataSet_post comunica-se com o DataSource.DataSet.post

Protected Procedure DataSet_Delete;

O método DataSet_Delete comunica-se com o DataSource.DataSet.delete

Protected Procedure DataSet_Edit;

O método DataSet_Edit comunica-se com o DataSource.DataSet.edit

Public function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions) : boolean; virtual; overload;

O método Locate localiza o registro baseada nos valores (KeyValues) dos campos passados por KeyFields.

  • RETORNA

    • True : Se localizou;

    • False : Não localizou.

Public function Locate(): TMi_MsgBox.TModalResult; Virtual; Overload; Abstract;

O método Locate executa o método TMi_rtl.Locate(const aField:pDmxFieldRec) onde aField é o campo corrente do formulário em edição.

  • RETORNA

    • True : Se localizou;

    • False : Não localizou.

Protected Function DataSet_BookmarkValid(aBookMark:TBookMark):Boolean;

O método DataSet_BookmarkValid comunica-se com o DataSource.DataSet.BookMarkValid

Protected procedure DataSet_Cancel;

O método DataSet_Cancel comunica-se com o DataSource.DataSet.Cancel

Protected Procedure DataSet_Refresh;

O método DataSet_Refresh Exeuta DataSource.DataSet.Refresh porém antes desativa e ativa.

Protected procedure DataSet_ApplyUpdates;

O método DataSet_ApplyUpdates comunica-se com o DataSource.DataSet.ApplyUpdates

Public procedure Edit;

O método Edit colocará o conjunto de dados no modo de edição:

  • NOTAS:

    • O conteúdo do registro atual poderá então ser alterado.

    • Esta ação irá chamar os eventos TDataset.BeforeEdit e TDataset.AfterEdit.

    • Se o conjunto de dados já estiver em modo de inserção ou edição, nada acontecerá (os eventos também não serão acionados).

    • Se o conjunto de dados estiver vazio, esta ação executará TDataset.Append .

Protected Function GetBof: Boolean; overload; virtual;
 
Protected Function GetEof: Boolean; overload; virtual;
 
Public Function FirstRec: Boolean; overload; virtual;

O método FirstRec posiciona o cursor no primeiro registro de DataSource.dataSet

  • RETORNA

    • True: se posicionado no primeiro registro;

    • False: Chamada ao método FirstRec estando no primeiro registro.

Public Function NextRec: Boolean; overload; virtual;

O método NextRec é responsável por mover o cursor do dataset para o próximo registro, caso o dataset esteja ativo e não tenha alcançado o final dos registros (EOF). Se houver um próximo registro, ele retorna True e chama os eventos correspondentes para atualizar o estado da interface. Caso contrário, retorna False e mantém o estado do dataset.

  • Parâmetros Locais

    • ds: TDataSet: Objeto do tipo TDataSet que faz referência ao dataset utilizado no método.

  • Fluxo de Execução

    1. Verificação de Atividade do Dataset:

      • O método primeiro verifica se o dataset está ativo usando isDataSetActive. Se não estiver ativo, o método retorna False.

    2. Manipulação de Registros:

      • Se o dataset está ativo, o método obtém o dataset com GetDataSet, chama o evento DoOnExit e tenta mover para o próximo registro com ds.Next.

      • Se não for o final do dataset (EOF), ele chama GetRec para atualizar os dados com o registro atual usando o Bookmark do dataset.

      • Se o EOF for alcançado, ele retorna False.

    3. Tratamento de Exceções:

      • Se ocorrer qualquer exceção durante a movimentação entre os registros, uma mensagem de erro é exibida com ShowMessage(E.Message), e o método retorna False.

    4. Eventos Finais:

      • Após o processamento, o evento DoOnEnter é chamado. Caso o EOF seja atingido, o método chama ds.Last para garantir que o estado final do dataset seja correto, já que o evento DoOnEnter pode alterar o ponteiro EOF.

      • Finalmente, o método chama UpdateCommands para atualizar os comandos da interface.

    5. Exceções

      • O método captura exceções do tipo Exception, exibindo a mensagem de erro ao usuário com ShowMessage.

  • Retorno

    • True: Se houver sucesso ao mover para o próximo registro e atualizar o estado da interface.

    • False: Se o dataset estiver no final (EOF), inativo ou ocorrer alguma exceção.

  • Ver Também

Public Function PrevRec: Boolean; overload; virtual;

O método PrevRec posiciona o cursor no registro anteror de DataSource.dataSet

  • RETORNA

    • True se posicionau no registro anterior;

    • False se atingir o bof (inicio do arquivo)

Public Function LastRec: Boolean; overload; virtual;

O método LastRec posiciona o cursor no último registro do DataSource.dataSet

  • RETORNA

    • True: se posicionado no último registro;

    • False: Chamada ao método LastRec estando no último registro.

Public Procedure Cancel;

O Método Cancel deve apagar o buffer e coloca a tabela no modo Browser

Protected procedure RefreshInternal; VIRTUAL;

O método RefreshInternal posiciona ler o registro atual do DataSource.dataSet

Public procedure Refresh; VIRTUAL;
 
Protected Function DoBeforeInsert:Boolean; Virtual;
 
Protected Function DoAfterInsert:Boolean; Virtual;
 
Protected Function DoBeforeUpdate:Boolean; Virtual;
 
Protected Function DoAfterUpdate:Boolean; Virtual;
 
Protected Function DoBeforeDelete:Boolean; Virtual;
 
Protected Function DoAfterDelete:Boolean; Virtual;
 
Protected Procedure DoCalcFields(aWorkingData : Pointer) ; overload; Virtual;

O método DoCalcFields entra e sai em todos os campos para que os mesmos executem seus eventos assinalados e é executado em DoCalcFields sem parâmetros.

Protected Procedure DoCalcFields; overload; Virtual;
 
Public Procedure DoChangeField(aField: pDmxFieldRec); Virtual;
 
Public Function AddRec:Boolean ; Virtual;

O método AddRec adiciona o buffer DataSource.dataSet n arquivo.

  • RETORNA

    • True: Se sucesso;

    • False: Se fracasso.

Public Function GetRec(aBookmark : TBookMark):Boolean ; Virtual;

O método GetRec ler do arquivo o registro apontado pelo buffer DataSource.dataSet.

  • RETORNA

    • True: Se sucesso;

    • False: Se fracasso.

Public Function DeleteRec:Boolean ; Virtual;

O método DeleteRec exclui o registro apontado pelo buffer DataSource.dataSet no arquivo.

  • RETORNA

    • True: Se sucesso;

    • False: Se fracasso.

Public function getFieldsKeys(out Values:Variant):AnsiString; overload;

O método getFieldsKeys retorna uma string com os nomes dos campos separados por virculas e em Values retorna os valores do campos;

  • EXEMPLO

    • Campo chaves: 'data;id'

Public Function PutRec:Boolean; Virtual;

O método PutRec grava o buffer no registro apontado CuurentBookmark do DataSource.dataSet no arquivo.

  • RETORNA

    • True: Se sucesso;

    • False: Se fracasso.

Public Function UpdateRec: Boolean; Virtual;

O método UpdateRec grava o buffer no registro apontado CuurentBookmark do DataSource.dataSet no arquivo.

  • NOTAS

  • RETORNA

    • True: Se sucesso;

    • False: Se fracasso.

Public function GetNextValue(const SequenceName: string; IncrementBy: integer): Int64;

O método GetNextValue retorna a número da sequência do próximo registro.

  • PARAMETROS

    • SequenceName

      • O nome da sequência no banco de dados;

    • IncrementBy

      • Número que deve ser acrescentado na sequência

Public function MaxPKey(aTabela, aID: String): LongInt; overload;

O método MaxPKey retorna o maximo do campo ID da tabela dm_table

Public Function MaxPKey: LongInt; Virtual; overload;

O método MaxPKey retorna o número de registros da coluna 'ID'

Public function GetRecNo: LongInt; virtual;

O método GetRecNo retorna o valor máximo da coluna 'ID' se a tabela for TSQLQuery e DataSet.RecNo caso contrário.

Public procedure EnableControls;

O método EnableControls habilitas os controles visuais do dataset

Public procedure DisableControls;

O método DisableControls desabilita os controles visuais do dataset

Public function ControlsDisabled: Boolean;

O método ControlsDisabled retorna true se os contoles estã habilitados e retorna false se não tiver habilitado

Public function SaveTemplate(aFileName:AnsiString;adataformat:AnsiString):Boolean; Virtual;

O método SaveTemplate salva o parâmetro aTemplate_org no arquivo aFileName se o arquivo aFileName não existir.

  • PARÂMETROS

    • aFileName

      • Nome do arquivo;

    • aTemplate_org

      • String com o template

  • NOTA

    • o Método CreateStruct reconhece somente os rótulos e os campos da mesma linha. É necessário ser redefinido em mi_rtl_ui_mxscroller_form para salve todas as linhas.

Public procedure UpdateDataField_AliasList;

O método UpdateDataField_AliasList procura todos os campos fldRadioGroup e atualiza o campo AliasList a alias.

Propriedades

Public property Parent: TComponent read GetParent write SetParent;
 
Public property Mi_ActionList: TActionList read Get_Mi_ActionList write Set_Mi_ActionList;
 
Public property CurrentRecord : Longint read _CurrentRecord write SetCurrentRecord;

A propriedade CurrentRecord salva o número do campo selecionado.

Public property Strings : TMiStringList Read GetStrings Write SetStrings;

A propriedade Strings o Strings é usada para editar o Template em tempo de projeto.

Public property TableName : String Read _TableName Write SetTableName;

A propriedade TableName contém o nome da tabela ou consulta no banco de dados.

  • NOTA

    • A propriedade TableName é usado no método SetSqlBufDataset para criação da propriedade TCustomSQLQuery.SQL e no método AlterTable para criação da tabela ou consulta no banco de dados.

Public property Appending : Boolean read GetAppending write SetAppending;

A propriedade Appending é usada para saber se está editando um novo registro ou não

  • NOTA

    • TRUE = Indica que um novo registro esta sendo editado.

    • False = Indica que um registro existente está sendo editado ou visualizado.

    • Obs: Deve ser atualizado na visão caso a tabela está em edição.

Protected property RecordSelected : boolean read GetRecordSelected Write SetRecordSelected default false;
 
Public property onCloseQuery : TOnCloseQuery Read _OnCloseQuery write _onCloseQuery;

O evento onCloseQuery é disparado toda vez que o TUiDmxScroller é desativado.

  • NOTA*

    • Este evento é disparado antes de desativar a classe **TUiDmxScroller

    .

    • Obs: Se o parâmetro CanClose for false, então o formulário não é desativado.

Public property onEnter : TOnEnter Read _OnEnter write _onEnter;

O evento onEnter é disparado toda vez que o TUiDmxScroller ativado.

Public property onExit : TOnExit Read _OnExit write _onExit;

O evento onExit é disparado toda vez que o TUiDmxScroller é destivado.

Public property onEnterField : TOnEnterField Read _OnEnterField write _onEnterField;

O evento onEnterField é disparado toda vez que o controle corrente recebe o foco.

Public property onExitField : TOnExitField Read _OnExitField write _onExitField;

O evento onExitField é disparado toda vez que o controle corrente perde o foco.

Public property onCalcField : TOnCalcField Read _OnCalcField write _onCalcField;

O tipo onCalcField é usado no evento para calcular um campo e é executado em TDmxFieldRec.DoOnEnter() e TDmxFieldRec.DoOnExit()

Public property onGetTemplate : TonGetTemplate Read _onGetTemplate Write _onGetTemplate;

O evento onGetTemplate substitui o método getTemplate caso OnGetTemplate<>nil

Public property onAddTemplate: TonAddTemplate read _onAddTemplate write _onAddTemplate;
 
Published property Active : Boolean Read _Active Write SetActive;
 
Public property CurrentField : pDmxFieldRec read _CurrentField write SetCurrentField;

A propriedade CurrentField contém um ponteiro para o campo selecionado

Public property AlignmentLabels : TAlignment read _AlignmentLabels write SetAlignmentLabels;

A propriedade AlignmentLabels contém a propriedade taLeftJustify, taRightJustify, taCenter indicando que o rótulos dos campos devem ser alinhados a esquerda, a direita ou ao centro.

  • NOTA

    • Quando todas as letras são maiúsculas e o alinhamento é a direta é necessário colocar espaços em branco a direta para compensar o tamanho, do contrário o TLabel omite o inicio do label porque o texto fica maior que o a largura do label.

Public property BufDataset : TMiBufDataset read GetBufDataset write SetBufDataset;

A propriedade BufDataset é usada com objetivo de integração dos dados do formulário TDmxScroller e os controle que forem baseados em TDataSet.

Public property DataSource : TDataSource Read GetDataSource Write SetDataSource;

A propriedade DataSource permite que controles da LCL (Lazarus Componentes Library) possam usar os dados do componente TDmxScroller.

  • NOTA

    • Essa integração permite que TDmxScroller utilize todos os componentes de banco de dados do Free Pascal.

Public property Locked : Boolean read _Locked write SetLocked;

A propriedade Locked deve ser redefinida na interface filha desta classe para travar o formulário se aLocked = true e destravar se aLocked = false;

Public property JSONObject: TJSONObject read Get_JSONObject write Set_JSONObject;
 
Public property DoOnNewRecord_FillChar : Boolean Read _DoOnNewRecord_FillChar Write SetDoOnNewRecord_FillChar default True ;
 
Public property OnNewRecord : TOnNewRecord read _OnNewRecord Write _OnNewRecord;

A propriedade OnNewRecord é executada em DoOnNewRecord se a mesma for assinalada.

Public property CurrentBookmark : TBookMark Read _CurrentBookmark Write SetCurrentBookmark;

A propriedade CurrentBookmark retorna o registro corrente de TDataSource.Datase.

  • NOTA

    • Faz a mesma função de gerRec;

Public property Bof: Boolean read GetBof;
 
Public property Eof: Boolean read GetEof;
 
Public property onBeforeInsert: TOnBeforeInsert Read _OnBeforeInsert Write _OnBeforeInsert;
 
Public property onAfterInsert: TonAfterInsert Read _onAfterInsert Write _onAfterInsert;
 
Public property onBeforeUpdate: TOnBeforeUpdate Read _OnBeforeUpdate Write _OnBeforeUpdate;
 
Public property onAfterUpdate: TonAfterUpdate Read _onAfterUpdate Write _onAfterUpdate;
 
Public property onBeforeDelete: TOnBeforeDelete Read _OnBeforeDelete Write _OnBeforeDelete;
 
Public property onAfterDelete: TonAfterDelete Read _onAfterDelete Write _onAfterDelete;
 
Public property OnCalcFields: TOnCalcFields Read _OnCalcFields Write _OnCalcFields;
 
Public property OnChangeField: TOnChangeField Read _OnChangeField Write _OnChangeField;
 
Public property ShouldSaveTemplate : Boolean Read _ShouldSaveTemplate Write _ShouldSaveTemplate;

A propriedade ShouldSaveTemplate é usada método CreateStruct com objetivo de salvar o template_org.

  • NOTAS

    • Condição para que o método SaveTemplate seja executado:

      • A propriedade ShouldSaveTemplate deve ser igua true;

      • O Nome da propriedade TableName deve ser diferente de vazio;

Published property MiDataPacketFormat_Default: TMiDataPacketFormat read _MiDataPacketFormat_Default write SetTMiDataPacketFormat;

O propriedade MiDataPacketFormat_Default usado para dar opção do usuário informar o tipo de arquivo a ser salvo por BufDataSet.

Public property Modified : Boolean read GetModified ;

O propriedade Modified se retorna true indica que pelo menos um campo foi alterado no dataset.

Public property CanModify : Boolean read GetCanModify ;

O propriedade CanModify se retorna true indica que pelo menos um campo foi alterado no dataset.


Gerado por PasDoc 0.16.0.