私はLotus Notesデータベースを持っています。フォームには "ServiceDate"というフィールドと "ReadOrEdit"というフィールドがあります。それを定義する2つの日付間の月数を6か月間または6か月間で計算します。
私は適切に日付を格納する
@Date(@ThisValue)
を使用して、日付に格納する必要がある「ServiceDate」フィールド。 ServiceDateは、6ヶ月以内であれば
はここで、ReadOrEditフィールドはServiceDateが6ヶ月を超えている場合、ReadOrEditフィールドは「読み取り専用」と表示され、「編集可能」と表示されますシナリオ
です。その瞬間、ユーザーは正確な6ヶ月をまだ定義していないので、6ヶ月間におよそ186(31 * 6)日かかると仮定します。私は、ユーザーにこのアプローチを提案すると「ReadOrEdit」フィールドに
が、私は次のコードSixMonths := 186;
date := @Now;
calculation := (@Date(date)[email protected](ServiceDate))/((60*60*24) + 1);
result := @If(calculation > SixMonths;"ReadOnly";"Editable");
@If(@IsError(result);"no result";result)
を入れて、ユーザーが自分のアプローチを拒否します。ユーザーは、6ヵ月と6ヵ月を定義する日数を月ごとに定義すべきではないと考えています。たとえば、今日は2010年1月3日です。 2011年1月9日から2011年1月3日までの日付の場合、ReadOrEditフィールドは「編集可能」と表示されます。日付が01/09/2016より前である場合、ReadOrEditフィールドには「ReadOnly」が表示されます。
このwebsiteは、ReadOrEditフィールドで@Adjustを使用するよう促します。次のコードを使用して、@Adjustを使用してServiceDateの6か月前の日付を見つけようとします。私はプログラムを実行すると、入力ServiceDateが2017年1月3日である場合
sixMonths :[email protected](@Adjust(ServiceDate;0;-6;0;0;0;0));
@If(@IsError(sixMonths);"no result";sixMonths)
、ReadOrEditフィールドは、2016年1月9日を表示します。結果はユーザーの要求と同じですので、プログラムで@Adjustを使用する必要があります。私が考える必要があるのは、今日とServiceDateの間に何ヶ月を計算するかです。
私はインターネット上で捜しています。コードは私の提案するコードと似ているかもしれないと思うので、ユーザーの要求を満たすためにコードを修正し始めます。
は、ここで私がプログラムを実行すると、私は結果が正しくないと気づくコード
today :[email protected];
sixMonths :[email protected](@Adjust(ServiceDate;0;-6;0;0;0;0));
sixMonthDays := @Abs(@Integer((@Date(Today) - @Date(ServiceDate))));
calculation:=(@Date(today)[email protected](sixMonths));
result := @If(calculation > sixMonthDays;"ReadOnly";"Editable");
@If(@IsError(result);"no result";result)
です。
ここに私のattemtpsがあり、その結果は、日付が6ヶ月以内であるか、または日付が6ヶ月以上であっても、 "ReadOnly"のみを表示する。
入力ServiceDateが2017年1月3日である場合、それは「読み取り専用」
を示す入力ServiceDateが28/02/2017である場合、入力ServiceDateが01である場合、それは「読み取り専用」
を示します/ 09/2016には、「読み取り専用」を示す
入力ServiceDateが2016年2月9日である場合、入力ServiceDateが2016年2月8日である場合、それは「読み取り専用」
を示し、それは「読み取り専用」を示します
私は
result := @If(calculation < sixMonthDays;"ReadOnly";"Editable");
にコード
result := @If(calculation > sixMonthDays;"ReadOnly";"Editable");
を変更した場合、結果はまだ正しくありません。
ここに私のattemtpsがあり、その結果は、日付が6ヶ月以内であるか、または日付が6ヶ月以上であっても、「編集可能」と表示されます。
入力ServiceDateが2017年1月3日である場合、それは「編集可能」を示す
入力ServiceDateが28/02/2017である場合、入力ServiceDateが01である場合、それは
を「編集可能」を示します/ 09/2016には、「編集可能」を示す
入力ServiceDateが2016年2月9日である場合、入力ServiceDateが2016年2月8日である場合、それは
を「編集可能」を示し、それは「編集可能」を示します
入力ServiceDateが28/02/2017の場合はは実際に私が入力ServiceDateが2017年1月3日である場合には、最終的な結果は、この
ようにすべきだと思い、「ReadOrEdit」フィールド」には、「編集可能」
を示しReadOrEdit 『フィールドが示す『入力ServiceDateが2016年2月9日、場合
』ReadOrEdit編集可能」フィールドが示す『』入力ServiceDateが2016年1月9日である場合
を、『ReadOrEdit編集可能』のフィールドが示します』 "Read Only"
彼が入力したServiceDateは02/08/2016です。 "ReadOrEdit"フィールドに "ReadOnly"と表示されます
私はコードを改訂しましたが、コードに間違いがあると思います。私はこれを読むpostしかし、私は考えを得ることはありません。
誰かが私の間違いを知らせてくれたり、編集可能かReadOnlyかを設定できるように、2つの日付(今日とServiceDate)の間の何ヶ月を計算するかを教えてくれてありがとう。どうもありがとうございました。
私はあなたの答えを受ける前に、私はまだ間違いがあると考えています。あなたの答えは明確で有用です。どうもありがとうございました。 – beginner