[リストへもどる]
一括表示
タイトル令和になって…教えて下さい。
記事No2818
投稿日: 2019/05/15(Wed) 10:57
投稿者IMAI 岐阜   <hinoki@giga.ocn.ne.jp>
平成から令和になって、次の事で困っています。教えて下さい。
@PIPSをウインドウズに入れる事を入川さんにお願いし、
請求書を作成するプログラムを作って頂いた中で、日付が
ウインドウズの内臓の日付が入るプログラムを作成して頂き
ましたが、令和になり、31年と印字されます。
それなら、平成1年に日付を戻す事で、解決できるのかな?と
思い行ってみましたが、日付がずれて、10年という印字になり
困っています。
日付を手入力で入れるか、無くした方がいいのかなと考えています。
この日付の指令は、何処にあるのかわからないので教えて頂けないでしょうか?フォームの中でしょうか?

タイトルRe: 令和になって…教えて下さい。
記事No2819
投稿日: 2019/05/16(Thu) 08:39
投稿者西村@豊田
(日付表示の例)
日付が西暦で8桁入っている前提でどちらか選択。
和暦で入力する場合は別途西暦換算するルーチンが必要。

$日付: LET V1="20190601";
$本日: LET V1=NUM$(TODAY);

LET Z2=DATE(DATEVAL((V1));
$年: LET X39=YEAR(DATENUM(Z2))-2018;
$月: LET X38=MONTH(DATENUM(Z2)):
$日: LET X37=DAY(DATENUM(Z2));

$和暦:
LET V3="令和"+NUM$(X39)+"年"+NUM$(X38)+"月"+NUM$(X37)+"日";

タイトルRe^2: 令和になって…教えて下さい。
記事No2820
投稿日: 2019/05/17(Fri) 08:51
投稿者IMAI 岐阜   <hinoki@giga.ocn.ne.jp>
西村@豊田 様

おはようございます。
ありがとうございます。
昨日試してみましたが、印刷されるのは、10年5月16日になってしまいます。
プログラムは、下記のとおり作って頂いたシステムがありますが、変更すれば変わりますか教えて下さい。

> <SEISAN>
精算書印刷;STOP;
***********************************************************/
*/ V30 今日の日付 */
*/ */
***********************************************************/

<精算書印刷> 【 Ver.01.01 20080811 】
LET X40=1; /*## 左マージン ##*/
LET X30=39; /*## TABLE部行数 ##*/
LET V30=FORM$(NUM$(TODAY-20180000),5); /* 今日の日付(全角) */
$....

タイトルRe^3: 令和になって…教えて下さい。
記事No2821
投稿日: 2019/05/17(Fri) 15:03
投稿者西村@豊田
>LET V30=FORM$(NUM$(TODAY-20180000),5); /*今日日付(全角) */

文字列(V30)から、年月日の抽出が原因だと思います。
原文は最初の2文字を抽出していると思われますので、関数KLENで文字数を求め。其々の抽出文字数を計算します。

LET X1=KLEN(V30); /*総文字数*/
LET X2=X1-4; /*年の文字数*/

$年: LET V2=KLEFT$(V30,X2);
$月: LET V3=KMID$(V30,(X2+1),2);
$日: LET V4=KRIGHT$(V30,(X1-X2));

LET V5="令和"+V2+"年"+V3+"月"+V4+"日";

なお、月日の「0」を削除するには
LET V3=FORM$(NUM$(VAL(V3)),5); /*0を削除 */
LET V4=FORM$(NUM$(VAL(V4)),5);
を追加する

タイトルRe^4: 令和になって…教えて下さい。
記事No2822
投稿日: 2019/05/18(Sat) 15:23
投稿者IMAI 岐阜   <hinoki@giga.ocn.ne.jp>
西村@豊田様

何度もすみません。
プログラム内を下記のとおり行なってみましたふが、
『入力したオート名はありません。』エラー106と画面
に出ますが、『LET X2=X1-4;』の分の指示ですが、わかりません
ので、教えて頂けますか。

精算書印刷;STOP;
/***********************************************************/
/* V01 出NO */
/* V02 年 */
/* V03 月 */
/* V04 日 */
/* V30 今日の日付 */
/* V31 回数 */
/* X01 WORK7の行番号 */
/* X02 WORK8の頁番号 */
/* X03 印刷枚数(1〜2) */
/* X04 精算書フォームAの行番号 */
/* X05 TABLEの行番号 */
/* X30 TABLE部行数 */
/* X40 左マージン */
/* Z01 検索結果のレコード数 */
/* WORK7,WORK8 */
/***********************************************************/

<市売代金精算書印刷> 【 Ver.01.01 20080811 】
CHGPRT;5;2;LBP3980;
LET X40=1; /*## 左マージン ##*/
LET X30=39; /*## TABLE部行数 ##*/
LET X1=KLEN(V30); /*総文字数 */
LET X2=X1-4; /:年の文字数*/
$年:LET V02=KLEFT$(V30,X2);
$月:LET V03=KMID$(V30,(X2+1),2);
$日:LET V04=KRIGHT$(V30,(X1-X2));

LET V5="令和"+V2+"年"+V3+"月"+V4+"日";

$題字: GOSUB 精算書題字印刷; /*# この頁下 #*/
IF X03=2 THEN GOTO $控;
G;精算書フォーム/1;
LET [4,4]="第"+V31+"回";
RINDEX "SEI",V01,V02=@年 ,V03=@月 ,V04=@日 ;
LET [6,4]=V02+"年"+V03+"月"+V04+"日";
RINDEX "SEI",V01,V05=@郵NO ,V06=@住所 ,V07=@氏名 ;
LET [3,2]=V05;
LET [5,2]=V06;
LET [7,2]=FORM$((V07+" 様"),8);
CJ;P;C;7;2;

タイトルRe^5: 令和になって…教えて下さい。
記事No2823
投稿日: 2019/05/19(Sun) 10:01
投稿者西村@豊田
> <市売代金精算書印刷> 【 Ver.01.01 20080811 】

1.日のデータを次の様に直してください
$日:LET V04=KRIGHT$(V30,7); /*7文字目から*/

2.年を西暦から和暦に変換します
LET V02=FORM$((NUM$(VAL(V2)-2018)),5);/*和暦全角*/

3.月、日の"05"の「0」を消したいならば次の式を加える
$0削除:
LET V03=FORM$(NUM$(VAL(V3)),5); /*月の0を削除 */
LET V04=FORM$(NUM$(VAL(V4)),5); /*日の0を削除*/

> LET V5="令和"+V2+"年"+V3+"月"+V4+"日";
> $題字: GOSUB 精算書題字印刷;

>LET X1=KLEN(V30); /*総文字数*/
>LET X2=X1-4; /*年の文字数*/
>『LET X2=X1-4;』の分の指示ですが、わかりません

>LET V30=FORM$(NUM$(TODAY-20180000),5); /*今日日付(全角) */
の式でV30="10518" となりますので、月日の合計桁数4ケタを総文字数から除算して年の文字数を出しています。
(X1-4=5-4=1) 年は1桁
なお、令和は当分1桁ですが、令和10年以降にも対応させて式で表示しています (原文では平成の2桁に固定)。


タイトルRe^6: 令和になって…教えて下さい。
記事No2824
投稿日: 2019/05/20(Mon) 16:11
投稿者IMAI 岐阜   <hinoki@giga.ocn.ne.jp>
西村@豊田 様

ご指導有難うございました。
今日プログラムを組み直して
令和1年5月20日と印字されるように
なりました。
助かりました。