Execute (TSearchAction)
<source lang='delphi'>Function Execute(action:TjsonStruct; resp:TJson):boolean;</source>
Cette fonction exécute l'action et peut retourner une facet qui sera affichée dans le panneau ouvert par l'action.
| Paramètre | Usage |
|---|---|
| action | Une structure json qui comprend les paramètres du résultat de la recherche |
| resp | Une structure json en réponse |
| Result | True si l'action a été exécutée |
Exemple :
<source lang="delphi"> //function Action_piece_ecritures.Execute(action:TjsonStruct; resp:TJson):boolean; Type
vueEcriture = viewOf(TEcriture) oidPiece:TOID = oidPiece; numero:Integer = numero; // codeCompte:string = compteGeneral.codeCompte; libelleCompte:string = compteGeneral.Caption; idCompteGeneral:TOID = oidCompteGeneral; // codeTiers:string = roleTiers.+Tiers.+Code; libelleTiers:string = roleTiers.+Tiers.+Caption; idRoleTiers:TOID = oidRoleTiers; idTiers:TOID = roleTiers.+oidTiers; // libelleEcriture:String = Caption; debit:TMoneyDT = debit; credit:TMoneyDT = credit; // dateLettrage:TDatetime = dateLettrage; lettre:String = lettrageEcriture.+lettre; // profilTVA:String = ProfilTVA.+Caption; dateDeclarationTVA:TDatetime = DeclarationTVALigne.+DeclarationTVA.+dDate; end;
function _GetTitle():string;
begin
Result := Format(_TP('Ecritures pour la pièce %s'),[
action.param.KeyValue['numero'],
]);
end;
var itemId:string; vSel:TSelector; inst:vueEcriture;
idx,idv,idr,limits:Integer; SF,ST,SR:TjsonStruct; SA:TjsonArray;
begin
Result := FALSE;
// This is TPiece oid
if action.Exists('param.itemId')
then itemId := action.param.itemId
else itemId := ;
if itemId= then Exit;
SR := resp.AddStruct('panel','{panelId:"ecritures-'+itemId+'", title:"'+_GetTitle+'"}');
/////////////////////////////////////
SR.addStruct('layout','{ name:"body" }');
SF := FacetBuilder.AddFacet(SR,'body','list',); ST := FacetBuilder.AddValueTable(SF,_GetTitle,); SA := ST.table.columnDefs;
SA.AddStruct('{field:"n", headerName:"'+_TP('Numéro')+'", width:100}');
SA.AddStruct('{field:"a", headerName:"'+_TP('Compte')+'", cellRenderer: "linkRenderer" }');
SA.AddStruct('{field:"b", headerName:"'+_TP('Tiers')+'", cellRenderer: "linkRenderer" }');
SA.AddStruct('{field:"c", headerName:"'+_TP('Débit')+'", width:160}');
SA.AddStruct('{field:"d", headerName:"'+_TP('Crédit')+'", width:160}');
SA.AddStruct('{field:"e", headerName:"'+_TP('Libellé')+'"}');
SA.AddStruct('{field:"f", headerName:"'+_TP('Date lettrage')+'", width:132}');
SA.AddStruct('{field:"g", headerName:"'+_TP('Lettrage')+'", width:100}');
SA.AddStruct('{field:"h", headerName:"'+_TP('Profil de TVA')+'"}');
SA.AddStruct('{field:"i", headerName:"'+_TP('Déclaration TVA')+'"}');
SA := ST.table.rows;
idr := 0; limits := -1;
vSel := vueEcriture.CreateSelector('(oidPiece=%1)', , false, [itemId]);
foreach inst in vSel.AsCursor do
begin
SA.addDatum('id',,opeDatumSet,['id','n','a','b','c','d','e','f','g','h','i'],[
inst.oid,
inst.numero,
_FormatLinkObject(_FormatTitle(inst.codeCompte,inst.libelleCompte),Format(_TP('Compte géénrale %s'),[inst.codeCompte]),inst.idCompteGeneral),
_FormatLinkObject(_FormatTitle(inst.codeTiers,inst.libelleTiers),Format(_TP('Tiers %s'),[inst.codeTiers]),inst.idTiers),
_FormatMontant(inst.debit),
_FormatMontant(inst.credit),
inst.libelleEcriture,
_FormatDateObject(inst.dateLettrage),
inst.lettre,
inst.profilTVA,
_FormatDate(inst.dateDeclarationTVA)
]);
idr := idr+1;
if idr=limits then break;
end;
Result := True;
end; </source>
Voir aussi :
{{#if:TSearchAction (class)|
{{#if:TSearchAction (class)|— TSearchAction (class) |}} — Développement DSM —
|
{{#if:|— [[{{{1}}}]] |}} — Développement DSM —
}}