桐06/サポート/一年間の日付を一度に楽に入れたい
の編集
http://www.kisnet.or.jp/~kanou/index.php?%E6%A1%9006/%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88/%E4%B8%80%E5%B9%B4%E9%96%93%E3%81%AE%E6%97%A5%E4%BB%98%E3%82%92%E4%B8%80%E5%BA%A6%E3%81%AB%E6%A5%BD%E3%81%AB%E5%85%A5%E3%82%8C%E3%81%9F%E3%81%84
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
*一年間の日付を一度に楽に入れたい [#m3eb63f9] ----- **質問 [#b581fb7f] 桐のファイルにデータを入力するときの入力を楽にする方法があれば教えてください。 表にデータを入力するのですが、2006年1月1日から、今日までの日付を自動的に入力する方法があればと思い考えたのですが、 関数の組み合わせ方法などがうまく行かないのでエラーになってばかりなので詳しい方からのアドバイスを頂ければと思います。 **回答 [#n0f6c1db] 回答1 マニュアル操作でやるとすれば、必要な行数をあらかじめ作っておいてから、下の式で置換すればいいですよ。 #日数加算( #直前値( [日付] , d&Q2005/12/31&Q ) , 1 ) ちょうど作り置きの式が2006年1月1日からの式だったので、コピペしました。項目名が異なっていれば、修正してください。 行追加の方法は、Ctrl+Alt+↓で改行方向を下向きに設定して、次にEnterを押し続けると、数百行ならすぐにできます。 回答2 表を新たに作る方法です。 変数宣言 固有,文字列 {&AS表名=&Qikatusyosinsya.tbl&Q,&AS項目名=&Q日付&Q}\ ,固有,長整数{&ALFrom,&ALTo,&ALday} 手続き実行 numberset(&ALFrom,&Q年を入力&Q,2006) if (&ALFrom) call numberset(&ALTo,&Q月を入力&Q,1) if (&ALTo) call numberset(&ALday,&Q日を入力&Q,1) if (&ALday) call 表作成(&AS表名,&Q日時,&Q+&AS項目名) call 表追加(&AS表名,&AS項目名,&ALFrom,&ALTo,&ALday) End End End 表 &AS表名 , 終了状態=&ALTo 表形式編集 終了 表 * Proc numberset(参照 Long &AN番号 , 文字列 &ASメッセージ , 長整数 &ALfirst ) *桐8では開始位置↓を指定しないと構文エラーになった。知らなかった [#se97967c] キー入力 (10,10),プロンプト = &ASメッセージ , モード = 無変換 \ , 上書き = する ,初期値 = &ALfirst,終了状態 = &ALfirst,&AN番号 End Proc 表作成(Str &AS名前,Str &AS項目名データ型並び) 変数宣言 Str{&AStmp作業=&QTemp.k3&Q} var 整数{&AIend=#L(&AS項目名データ型並び),&AIcount=#L(#S(&AS項目名データ型並び,&Q,&Q,&Q&Q))} var Int{&AIデータ要素数=(&AIend-&AIcount+1)/2} 印字開始 &AStmp作業, 終了状態=&AIend 印字 &Q###&Q 印字 &Q### WIN桐 00&Q 印字 &Q###&Q For &AIcount=1,&AIデータ要素数 印字 &Q&Q&Q&Q+#対応文字列(&AS項目名データ型並び,&AIcount*2)+&Q&Q&Q&Q,&Q,&Q\ ,&Q&Q&Q&Q+#対応文字列(&AS項目名データ型並び,&AIcount*2-1)+&Q&Q&Q&Q end 印字終了 改頁=しない 表作成 &AS名前,定義ファイル=&AStmp作業,モード=専有,終了状態=&AIend 手続き定義終了 Proc 表追加(Str &AS表名,Str &AS項目名,Long &AL開始,Long &AL終了,Long &AL日) var Long {&ALcount},Int{&AIend},date{&AD開始} &AD開始=#日時値(#Str(&AL開始)+&Q/&Q+#str(&AL終了)+&Q/&Q+#STR(&AL日)) 繰り返し (&AD開始&L#日時値) 行追加 終了状態=&AIend, &AS項目名 = &AD開始 &AD開始=#日数加算(&AD開始,1) end 終了 表 編集対象表 End --- ***もしうまくできなかった場合再度以下の状態で試してみてください。 [#a25085f6] マニュアル操作でやるとすれば、必要な行数をあらかじめ作っておいてから、下の式で置換すればいいですよ。 #日数加算( #直前値( [日付] , d"2005/12/31" ) , 1 ) ちょうど作り置きの式が2006年1月1日からの式だったので、コピペしました。項目名が異なっていれば、修正してください。 行追加の方法は、Ctrl+Alt+↓で改行方向を下向きに設定して、次にEnterを押し続けると、数百行ならすぐにできます。 //
タイムスタンプを変更しない
*一年間の日付を一度に楽に入れたい [#m3eb63f9] ----- **質問 [#b581fb7f] 桐のファイルにデータを入力するときの入力を楽にする方法があれば教えてください。 表にデータを入力するのですが、2006年1月1日から、今日までの日付を自動的に入力する方法があればと思い考えたのですが、 関数の組み合わせ方法などがうまく行かないのでエラーになってばかりなので詳しい方からのアドバイスを頂ければと思います。 **回答 [#n0f6c1db] 回答1 マニュアル操作でやるとすれば、必要な行数をあらかじめ作っておいてから、下の式で置換すればいいですよ。 #日数加算( #直前値( [日付] , d&Q2005/12/31&Q ) , 1 ) ちょうど作り置きの式が2006年1月1日からの式だったので、コピペしました。項目名が異なっていれば、修正してください。 行追加の方法は、Ctrl+Alt+↓で改行方向を下向きに設定して、次にEnterを押し続けると、数百行ならすぐにできます。 回答2 表を新たに作る方法です。 変数宣言 固有,文字列 {&AS表名=&Qikatusyosinsya.tbl&Q,&AS項目名=&Q日付&Q}\ ,固有,長整数{&ALFrom,&ALTo,&ALday} 手続き実行 numberset(&ALFrom,&Q年を入力&Q,2006) if (&ALFrom) call numberset(&ALTo,&Q月を入力&Q,1) if (&ALTo) call numberset(&ALday,&Q日を入力&Q,1) if (&ALday) call 表作成(&AS表名,&Q日時,&Q+&AS項目名) call 表追加(&AS表名,&AS項目名,&ALFrom,&ALTo,&ALday) End End End 表 &AS表名 , 終了状態=&ALTo 表形式編集 終了 表 * Proc numberset(参照 Long &AN番号 , 文字列 &ASメッセージ , 長整数 &ALfirst ) *桐8では開始位置↓を指定しないと構文エラーになった。知らなかった [#se97967c] キー入力 (10,10),プロンプト = &ASメッセージ , モード = 無変換 \ , 上書き = する ,初期値 = &ALfirst,終了状態 = &ALfirst,&AN番号 End Proc 表作成(Str &AS名前,Str &AS項目名データ型並び) 変数宣言 Str{&AStmp作業=&QTemp.k3&Q} var 整数{&AIend=#L(&AS項目名データ型並び),&AIcount=#L(#S(&AS項目名データ型並び,&Q,&Q,&Q&Q))} var Int{&AIデータ要素数=(&AIend-&AIcount+1)/2} 印字開始 &AStmp作業, 終了状態=&AIend 印字 &Q###&Q 印字 &Q### WIN桐 00&Q 印字 &Q###&Q For &AIcount=1,&AIデータ要素数 印字 &Q&Q&Q&Q+#対応文字列(&AS項目名データ型並び,&AIcount*2)+&Q&Q&Q&Q,&Q,&Q\ ,&Q&Q&Q&Q+#対応文字列(&AS項目名データ型並び,&AIcount*2-1)+&Q&Q&Q&Q end 印字終了 改頁=しない 表作成 &AS名前,定義ファイル=&AStmp作業,モード=専有,終了状態=&AIend 手続き定義終了 Proc 表追加(Str &AS表名,Str &AS項目名,Long &AL開始,Long &AL終了,Long &AL日) var Long {&ALcount},Int{&AIend},date{&AD開始} &AD開始=#日時値(#Str(&AL開始)+&Q/&Q+#str(&AL終了)+&Q/&Q+#STR(&AL日)) 繰り返し (&AD開始&L#日時値) 行追加 終了状態=&AIend, &AS項目名 = &AD開始 &AD開始=#日数加算(&AD開始,1) end 終了 表 編集対象表 End --- ***もしうまくできなかった場合再度以下の状態で試してみてください。 [#a25085f6] マニュアル操作でやるとすれば、必要な行数をあらかじめ作っておいてから、下の式で置換すればいいですよ。 #日数加算( #直前値( [日付] , d"2005/12/31" ) , 1 ) ちょうど作り置きの式が2006年1月1日からの式だったので、コピペしました。項目名が異なっていれば、修正してください。 行追加の方法は、Ctrl+Alt+↓で改行方向を下向きに設定して、次にEnterを押し続けると、数百行ならすぐにできます。 //
テキスト整形のルールを表示する