DISKUSE
Jak omezit vkládání textu do textového pole z kláv... 
04.04.2024 13:55

HCL Domino na NAS QNAP (1)
20.02.2024 10:34

Vložení přílohy do dokumentu MS Word (3)
14.02.2024 20:54

Problěmy s diakritikou. (4)
06.02.2024 17:34

AI pomocnici 
15.01.2024 10:16

Export do pdf souboru (1)
12.01.2024 23:11

Agent přestává fungovat (1)
18.11.2023 06:42

RTF - Computed (2)
19.10.2023 13:00


ŠKOLENÍ


REKLAMA


KOMENTÁŘE
Diskusní skupina: Programování


PlánařCo se děje ? Jak se pracuje v jazyce vzorců ?
20.04.2023
13:06:36

ID: 3765.0

Plánař
Dobrý den,

jsem zoufalý, mám vypočítávané pole se dvěma vnořenými cykly a vnořenou funkcí @Transform.

Před dokončením to zkolabuje na nedostatku paměti, přestože k tomu není důvod. Vnější cyklus 26 cyklů, vnořený max 30, vnořená @Transform práce se seznamem o max 10 položkách. Pár proměnných, žádná nepřerůstá 100 B. Co zbytečného si cpe do paměti ?
Plánař Posuďte sami. To měl program zvládnout. Zapisuje se do seznamu Vysl měsíc RRMM a součet hodin
20.04.2023
14:30:00

ID: 3765.1


POd:="DatumZalozeni";
PDo:="DatumProvedeni";
PCena:
="CenaObjednavky";
CH:=999;
Pohled:="Vytizeni";
Kli
c:="";
REM {----------------Konec prarametrů----------------------Začátek výpočtu--------------------------};
SID:=@DbLookup(
"":"NoCache";"":"";Pohled;Klic;"$ID";[PartialMatch]
);
@If(@IsError(SID);@Return("Záznamy z pohledu "+Pohled+" nenačteny");@True);
SID:=@Trim(@Text(SID));
PocR:=@
Elements(SID);
x:=0;
Vysl:="";

REM {@Return(SID+"|"+SID)};
@While(x<@Min(777;PocR);
x:=x+1;
@StatusBar(@Text(x));
ID:=SID[x];
Od:=@GetDocField(ID;POd);
Do:=@GetDocField(ID;PDo);
C:=@GetDocField(ID;PCena);
z:=-1;
PocD:=(Do-Od)/60/60/24+1;
Hod:= C/CH/PocD;

@While(z<PocD ;z:=z+1;
D:=@Adjust(Od;0;0;z;0;0;0);
M:=@Right("00"+@Text(@Year(D));2)+@Right("00"+@Text
(@Month(D));2)+"|";
Nal:=@Contains(Vysl;M);

@If(Nal ;
Vysl:=@Transform(Vysl;"J";@If(M=@Left(J;5);@Do(P:=@
TextToNumber("0"+@Right(J;"|"));M+@Text(P+Hod));J))
;
Vysl:=@Trim(Vysl):(M+@Text(Hod))
)
)
);
@Sort(Vysl)
VZ Těžko říct
21.04.2023
14:15:01

ID: 3765.2


Pokud si vzpomínám, tak mi tuším kdysi nějaká formule padala na takovém podobném "konstantním" dělení:
PocD:=(Do-Od)/60/60/24+1;
Když jsem to /60/60/24 (nebo tak nějak) tenkrát nahradil konstantou 86400, tak to procházelo bez chyby, tzn.:
PocD:=(Do-Od)/86400+1;


Přidejte názor
Autor:
Profese:
E-mail: i
URL:
Phone:
Předmět:
Obsah příspěvku (i):

Kolikátý je den v měsíci ? (číslovkou bez tečky)