HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

《 桐質問以外の話題は、「のほか掲示板」からどうぞ 》
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomal2つのテーブルでの有り無しチェック(6) | Nomalモーダルから結合表(6) | Nomal変数(5) | Nomal横項目の順位の付け方について(9) | Nomal桐+SQLServerExpress奮闘記(12) | Nomal一括処理で桐終了のやり方(2) | Nomal表の並び替え(3) | NomalフォームでのTab移動で連続入力について(2) | Nomal計算式を教えてください(7) | Nomalデータ型「時間」の入力範囲を制限(2) | Nomal桐10sエラーメッセージ(3) | Nomal表の項目:一括連番のふりかたについて(3) | Nomal絞り込みに複数の条件を指定したい(3) | Nomal桐+SQLでのレコード絞り込み(2) | NomalSQLServerの主キー用連番作成(13) | Nomalフォームのイベントから表を開けますか?(4) | Nomal一覧表形式のフォームサイズ(2) | Nomal桐+SQLServer2019Expressのやり方(15) | Nomalある項目で入力すると桐がおちます。(6) | Nomalレポートで検索して件数を求めたい(5) | Nomal質問3つ(4) | Nomal単純な質問ですみません。(2) | Nomalパソコンの音量を制御したい(2) | NomalPDFファイルに追加機能は・・(1) | Nomal異なる排他制御モード(3) | Nomal結合表の設定(1) | Nomal一括処理からフォーム呼出&閉じられた後の処理の方法(3) | Nomal品目別の更新管理(2) | Nomalメールの設定(19) | Nomal変数の帰り値(2) | Nomal時間計算(12) | Nomal変数が初期化される(8) | Nomal変数の値が消えます(9) | Nomal指定した休日を除外して日にちを求めたい(9) | Nomal多重化した表を閉じるには(8) | Nomal絞り込みと並べ替え(6) | Nomalウィンドウの枠(5) | Nomal桐10Sが落ちてしまいます。。。(5) | Nomal桐フォーム上で、計算(3) | Nomal項目移動(5) | Nomal桐10からcsv書き出し(16) | Nomal一覧表印刷でグループ指定(3) | Nomal読み込み方法につきまして(3) | Nomal新規結合表の未定義項目名について(8) | Nomal表引きと条件選択(5) | Nomalレポートの印刷対照表について(2) | Nomalエクセル書き出しについて(8) | Nomalファイルの更新日時の取得(2) | NomalGDIオブジェクト10000制限(25) | NomalEXCEL書き出し(4) | Nomal最終行に移動する(2) | Nomalレポートで複数の条件を指定したいです(2) | Nomal(削除)(6) | Nomal編集状態にならない(6) | Nomal条件選択の式で2個の条件を書き込むには。(15) | Nomal年数加算(3) | Nomalイベント処理で遅延(7) | Nomal桐10Sから桐9Sの一括処理を起動(4) | Nomal条件選択について(2) | Nomalレポートの一覧表の背景色について(3) |



■記事リスト / ▼下のスレッド
■13356 / 親記事)  2つのテーブルでの有り無しチェック
□投稿者/ ななーし -(2022/06/30(Thu) 09:04:34)
    こんにちは、糸口は見えていますが他にいい案があれば教えてください。

    現在、購入品テーブルと購入品マスタテーブルがあります。
    購入品テーブルはユーザーが発注する際に入力します。
    購入品マスタテーブルは過去購入したことのある最新データを型式で単一化しながら作成しています。
    購入品テーブルを入力完了時に購入品マスタテーブルに履歴がちゃんとあるかをチェックしたい場合、よい方法はございますか?自分なりの案はあるのですが、少々時間がかかるので少しの時間でやれる方法があれば教えてください。

    【自分の案@】
    印刷タイミングで併合処理をかけて、マスタテーブルのデータを入力する。

    【自分の案A】
    SQLで結合表を作成し、結合できたものをチェックを入れる。
    ⇒現状SSMSのビューで結合表を作ると編集ができない。インデックスがどうつけるかが悩み中

引用返信 [メール受信/OFF]

▽[全レス6件(ResNo.2-6 表示)]
■13358 / ResNo.2)  Re[2]: 2つのテーブルでの有り無しチェック
□投稿者/ ななーし -(2022/06/30(Thu) 16:15:01)
    尾形さんいつもお世話になっております。

    イメージはフォーム開始で編集表をすでに開いておいて、ソース値更新でイベント発生させて処理させる感じですか。(自分でもこんなの何回も今回書いたのに忘れてました。)

    >購入品マスタ.xvxは事前にコピー処理して
    >変数にて処理したがいいかと思います
    ここがどのようにして変数化するのでしょうか?テーブルって変数格納できるんです?
    型式だけ一致検索できればいいので1次元でいいです。

引用返信 [メール受信/OFF]
■13359 / ResNo.3)  Re[3]: 2つのテーブルでの有り無しチェック
□投稿者/ 尾形 -(2022/07/01(Fri) 08:47:57)

    雰囲気だけ


    手続き実行 作業file("購入品マスタ.xvx",&購入品マスタ)
    &DSQL="False"
    結合 &購入品マスタ,,モード=専有,リトライ=する,変数使用=する






    手続き定義開始 作業file( 文字列 &指定file,参照 文字列 &結果 )
    繰り返し &秒=1,99,1
     &結果=#ファイル名(&指定file,2)+"_"+#文字列(&秒,2)+"."+#ファイル名(&指定file,4)
     ケース開始
      ケース (#ファイルサイズ(&結果)<1)
       繰り返し中止
      ケース (#表番号取得(&結果)<1 .and #ファイル使用(&結果,1)=1)
       繰り返し中止
     ケース終了
    繰り返し終了
    ファイル複写 &指定file,&結果
    手続き定義終了


引用返信 [メール受信/OFF]
■13360 / ResNo.4)  Re[4]: 2つのテーブルでの有り無しチェック
□投稿者/ ななーし -(2022/07/01(Fri) 13:03:58)
    内容としては参照用の早いテーブルを持つことができればいいって感じですかね?
    ファイル複写してデータを複製している点からそのように感じました。
    (間違ってたらご指摘ください)

    SSMS側で型式だけ+単一化処理したものでビューを生成すればぎゅっと縮んだテーブルが生成できるのでそれでいこうと思います。

    配列化処理のようにテーブル情報を変数代入できれば軽いですが、テーブルが結構大きいのでメモリに全部入れ込んでも32bitの桐だと頭打ちになりそうですし。
解決済み!
引用返信 [メール受信/OFF]
■13361 / ResNo.5)  Re[5]: 2つのテーブルでの有り無しチェック
□投稿者/ 尾形 -(2022/07/01(Fri) 17:48:29)

    わたしの場合
    売上入力フォームと
    マスタ入力フォーム
    といった感じの並列処理を可能にするのと
    xvxの破損対策といった感じです

引用返信 [メール受信/OFF]
■13362 / ResNo.6)  Re[6]: 2つのテーブルでの有り無しチェック
□投稿者/ ななーし -(2022/07/02(Sat) 10:47:04)
    並列処理はビューきればできるので破裂対策ですかね。
    一応桐データはローカル運用予定なので動かなかったらサーバーのデータを上書きしてって感じにしてるので大丈夫です。

    変数をサーバーに上げておいて、メニューフォームの文字列とずれると新しいフォームが上がったよ!と連絡する仕組みを取ってます。
解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-6]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■13342 / 親記事)  モーダルから結合表
□投稿者/ 鳴瀬 -(2022/06/25(Sat) 17:57:09)
    お世話になっております。
    表題の通りなのですが,モーダルフォームから結合表を開きたいのですが手順がわかりません。釦でもkevでも構いません。
引用返信 [メール受信/OFF]

▽[全レス6件(ResNo.2-6 表示)]
■13351 / ResNo.2)  Re[1]: モーダルから結合表
□投稿者/ ななーし -(2022/06/28(Tue) 09:31:35)
    こんにちは
    フォームから表を呼び出す場合、フォームをオーバラップにしていると表示されません。チャイルドにして後ろに桐が表示されている状態であればフォームのコマンドボタンから機能で開くで簡単に開けます。または、一括処理をコマンドボタンで実行(開くでCMXファイルを選択)し、以下のように書けば開けますね。
    注意:最初に開くフォームがオーバラップの場合、途中チャイルドにしてもずっとオーバラップ形式で開いてくれます。表が見たくても見れない・・・
    参考URL:https://kiri-help.hatenablog.com/entry/form_1

    表 "テスト.TBX"
    ウィンドウ作成 表,ハンドル = &g選択
    ウィンドウ位置 最大化, &g選択

    まあ表よりフォームの方が自由度が高いのでサクッと一覧表形式でフォーム作って見せた方が楽な気がします。
    ユーザーが表形式がいい!ってものはメインのフォームから切り離しました!

引用返信 [メール受信/OFF]
■13352 / ResNo.3)  Re[1]: モーダルから結合表
□投稿者/ ONnoji -(2022/06/28(Tue) 11:33:11)
    2022/06/28(Tue) 16:28:21 編集(投稿者)
    2022/06/28(Tue) 12:05:14 編集(投稿者)

    > モーダルフォームから結合表を開きたいのですが手順がわかりません。ボタンでもkevでも構いません。

    なぜ?[使いにくいモーダルフォーム]に執着されるのか判らなかったのですが、

    ひょっとして次のどちらかまたは両方が理由でしょうか??

     ・イベント処理では[フォーム形式編集]コマンドが使えないので、[フォーム呼び出し]コマンドを使っている

     ・フォームを1.2.3と順次開いて閉じてゆく方法が思い付かなかった

     ◇ ◇ ◇ ◇ ◇ ◇

    さて、老婆心ながらアドバイスさせていただきます。

    まず、本件ではモーダルフォームは止めましょう。キッパリ。※今回の用途には適していません。
                                 ・・・・・・・・・・・・・・

    × モードレス:あ(.wfm) → モーダル:か(.wfm) → モーダル:さ(.wfm) → 結合表を開く(.viw)




     あ(.wfm) のフェーズ      か(.wfm) のフェーズ     さ(.wfm) のフェーズ       結合表(.viw)のフェーズ


     あ(.wfm)
       │
     <作業が完了した>
       │
       ├ か(.wfm) を開く ⇒ か(.wfm) がオープンした
       │              │
       └ あ(.wfm) を閉じる  <作業が完了した>
                      │
                      ├ さ(.wfm) を開く ⇒ さ(.wfm) がオープンした 
                      │              │
                      └ か(.wfm) を閉じる  <作業が完了した>
                                     │
                                     ├ 結合表(.viw) を開く ⇒ 結合表(.viw) がオープンした
                                     │
                                     └ さ(.wfm) を閉じる
     ※図はウィンドウの開く/閉じるだけを示したものです。

     このように[開く・閉じる]を繰り返していけば、最後には結合表(.viw)のウィンドウだけが表示されていますよ。(*^^)ok

     【参考】7 複数のフォームウィンドウの連携|桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
         http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section7

    p.s.

    あまりにも基本の事柄なので、蛇足だと思いつつ念のために追記します。

    > モーダルフォームから結合表を開きたいのですが手順がわかりません。

    モーダルというのは、そのウィンドウを閉じるまでほかの作業ができなくなるウィンドウのことです。

    なので、モーダルフォームから[結合表のウィンドウ]を開くことは出来ますが、

    そのモーダルフォームを開いている限り、開いた[結合表のウィンドウ]をマウスやキーボードで操作できませんよ。

    という理由で、今回の用途には適していませんよ。


引用返信 [メール受信/OFF]
■13353 / ResNo.4)  Re[2]: モーダルから結合表
□投稿者/ 鳴瀬 -(2022/06/29(Wed) 10:01:13)
    コメント,ありがとうございます。
引用返信 [メール受信/OFF]
■13354 / ResNo.5)  Re[2]: モーダルから結合表
□投稿者/ 鳴瀬 -(2022/06/29(Wed) 10:02:53)
    ありがとうございました。
引用返信 [メール受信/OFF]
■13355 / ResNo.6)  Re[2]: モーダルから結合表
□投稿者/ 鳴瀬 -(2022/06/29(Wed) 10:16:04)
    添付ファイル拝見させていただきました。
    開く,閉じる・・・
    は確かにそうですね。
    モーダルにこだわるわけではありませんが,今回は行ってこい形式(のメニュー)で処理をしようかと思った次第です。
    釦で,あるいは kev での記述方法わかりした。
    >なので、モーダルフォームから[結合表のウィンドウ]を開くことは出来ますが、
    やった,思ったのですが,,,モーダルの背面に表示で途方にくれましたが
    結合表に対してそれを対象表としてフォームをフォーム呼び出せば編集可能なのを発見して事なきをえました。
解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-6]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■13344 / 親記事)  変数
□投稿者/ 鳴瀬 -(2022/06/26(Sun) 13:14:34)
    各表から項目値を拾って別の処理で共通変数の値を参照し利用しようと思っているのですが,,,
    フォームあからフォームかに移るとき,フォームかからフォームさに移るときに共通変数が初期化されるのはなぜですか?
    戻るときは変化しないのは何故ですか?
    桐9,Win10

1656216874.zip
/9KB
引用返信 [メール受信/OFF]

▽[全レス5件(ResNo.1-5 表示)]
■13345 / ResNo.1)  Re[1]: 変数
□投稿者/ ONnoji -(2022/06/26(Sun) 13:23:47)
    2022/06/26(Sun) 13:31:27 編集(投稿者)

    No13344に返信(鳴瀬さんの記事)
    > 各表から項目値を拾って別の処理で共通変数の値を参照し利用しようと思っているのですが,,,
    > フォームあからフォームかに移るとき,フォームかからフォームさに移るときに共通変数が初期化されるのはなぜですか?
    > 戻るときは変化しないのは何故ですか?
    > 桐9,Win10

    以前の投稿と同じ内容ではありませんか???( ^^) _旦~~

    こちら
     ↓
    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=all&namber=13146&type=0&space=0&no=0
    ■13146 (鳴瀬さんの記事)
    Nomal 変数が初期化される /鳴瀬 (21/10/11(Mon) 19:27) #13146 1633948074.zip/1KB
    ├Nomal Re[1]: 変数が初期化される /鳴瀬 (21/10/11(Mon) 19:57) #13148
    │└Nomal Re[2]: 変数が初期化される /鳴瀬 (21/10/11(Mon) 20:22) #13149
    │ └Nomal Re[3]: 変数が初期化される /悲しげ (21/10/12(Tue) 21:14) #13150
    │  └Nomal Re[4]: 変数が初期化される /悲しげ (21/10/12(Tue) 22:51) #13151 1634046673.zip/7KB
    ├Nomal Re[1]: 変数が初期化される /悲しげ (21/10/12(Tue) 23:02) #13152
    │└Nomal Re[2]: 変数が初期化される /悲しげ (21/10/13(Wed) 21:23) #13154
    ├Nomal Re[1]: 変数が初期化される /尾形 (21/10/13(Wed) 07:52) #13153
    └Nomal Re[1]: 変数が初期化される /鳴瀬 (21/10/17(Sun) 17:24) #13156 解決済み!


引用返信 [メール受信/OFF]
■13346 / ResNo.2)  Re[2]: 変数
□投稿者/ 鳴瀬 -(2022/06/26(Sun) 13:56:39)
    あの時は,フォーム側にも同じ名前の変数が定義してあって
    それによる勘違いミスが主たる原因だったと思います。
    今回はフォームには問題はないと思うのですが,,,
    フォームあ→フォームか→フォームさ→結合表を開く
    という流れを想定しているのですが開きたい結合表は何個あって,どれを開くかのスイッチをあ,か,さのそれぞれから共通変数に格納することができず困っています。
引用返信 [メール受信/OFF]
■13347 / ResNo.3)  Re[3]: 変数
□投稿者/ ONnoji -(2022/06/26(Sun) 14:10:59)
    2022/06/26(Sun) 14:11:38 編集(投稿者)

    No13346に返信(鳴瀬さんの記事)
    > フォームあ→フォームか→フォームさ→結合表を開く
    > という流れを想定しているのですが開きたい結合表は何個あって,どれを開くかのスイッチをあ,か,さのそれぞれから共通変数に格納することができず困っています。

    フォーム イベント処理ファイル
    あ.wfm  pm.kev
    か.wfm  pm.kev
    さ.wfm  pm.kev

    あ.wfmを開くと、pm.kevの

     名札 メイン
      変数宣言 共通,文字列{&あ,&か,&さ}
     *

    が必ず実行されます。

    同様に か.wfmを開くと、pm.kevの

     名札 メイン
      変数宣言 共通,文字列{&あ,&か,&さ}
     *

    が必ず実行されます。

    言うまでもなく、

    さ.wfmを開くと、pm.kevの

     名札 メイン
      変数宣言 共通,文字列{&あ,&か,&さ}
     *

    が必ず実行されます。

    どのフォームを開いても、その都度

      変数宣言 共通,文字列{&あ,&か,&さ}

    が実行されますから、変数{&あ,&か,&さ}が毎回初期化されるということだと思いますよ????


引用返信 [メール受信/OFF]
■13348 / ResNo.4)  Re[4]: 変数
□投稿者/ 鳴瀬 -(2022/06/26(Sun) 14:44:25)
    その可能性もありかと思ってはいたのですが,,,
    だとしたらこのような変数の受け渡しをする処理を想定する場合はそれぞれのフォームに対して固有のkevを定義する必要があるということでしょうか?
    兎も角,kevを切り分けてみます。
引用返信 [メール受信/OFF]
■13349 / ResNo.5)  Re[4]: 変数
□投稿者/ 鳴瀬 -(2022/06/26(Sun) 18:36:30)
    制御の動きをやっとわかりました。
    共通変数を宣言するだけの kev (を起動させる nul フォームを作って,その後の kev)に切り分けたらうまくいきました。

解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-5]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■13327 / 親記事)  横項目の順位の付け方について
□投稿者/ T.S -(2022/06/19(Sun) 14:39:40)
     T.Sと申します。
     いつも勉強させていただいております。
     桐9-2012 です。

     標記の件、次のような処理をしたいと考えていますが、上手い計算式が思い浮かびません。
     皆様方の良いお知恵をお借りできればと思っております。
     よろしくお願いいたします。

    【やりたい事】
    ●_[英語]〜[社会]までの5項目の点数順(100点満点)に、次の項目[強み_英語]〜[強み_社会]の各項目に降順に順位をつけたい。


    [氏名]、[英語]、[数学]、[国語]、[理科]、[社会]、[強み_英語]、[強み_数学]、[強み_国語]、[強み_理科]、[強み_社会]

    東京太郎,90,70,50,60,80,1,3,5,4,2
    神奈川二郎,70,70,60,60,50,1,1,2,2,3
    千葉花子,40,60,50,70,80,5,3,4,2,1
    ・・・

引用返信 [メール受信/OFF]

▽[全レス9件(ResNo.5-9 表示)]
■13336 / ResNo.5)  Re[3]: 横項目の順位の付け方について
□投稿者/ natsu -(2022/06/21(Tue) 23:46:14)
    ONnojiさんへ

    ご指摘と詳細な解説、どうもありがとうございました。
    やっぱり、項目計算式とは相性がよろしくないようです。

    お詫びといっては何ですが、一括にしてみました。
    (一位が複数あるとき、次は二位にしてあります)

    [氏名]、[英語]、[数学]、[国語]、[理科]、[社会]、[強み_英語]、[強み_数学]、[強み_国語]、[強み_理科]、[強み_社会]

    ↑ これを "元表"という名前にして[点数]整数型、[順位]整数型、[名前順]整数型、[科目]文字列の4項目を元表に追加してください。
    今度は、きちんと動作した一括から直接コピーしたので大丈夫です。


    変数宣言 固有,文字列{ &名前,&科目の名称, &s }
    変数宣言 固有,整数{ &科目の順位, &科目の点数, &i }
    表 "元表"
    置換 [名前順]=#連番
    置換 [強み_英語]=#U, [強み_数学]=#U, [強み_国語]=#U, [強み_理科]=#U, [強み_社会]=#U
    繰り返し &i=2, 6
     &s="強み_" + #項目属性(&i,1)
     コマンド "置換 [科目]=&s"
     コマンド "置換 [点数]=[" + #項目属性(&i,1) + "]"

     ケース開始
      ケース (&i=2)
       書き出し 表,"一時ファイル",{[氏名],[科目],[点数],[順位],[名前順]}
      ケース その他
       書き出し 表,"一時ファイル",追加,{[氏名],[科目],[点数],[順位],[名前順]}
     ケース終了

    繰り返し終了

    表 "一時ファイル"
    &名前=""
    絞り込み [点数]{≠#U}
    並べ替え {[氏名]昇順,[点数]降順}
    ジャンプ 行番号=先頭
    繰り返し

     ケース開始
      ケース ([氏名]≠&名前)
       &名前=[氏名]
       &科目の順位=1
       &科目の点数=[点数]
       行訂正 [順位]=&科目の順位
      ケース その他
       ケース開始
        ケース ([点数]≠&科目の点数)
         &科目の順位=&科目の順位+1
         &科目の点数=[点数]
         行訂正 [順位]=&科目の順位
        ケース その他
         行訂正 [順位]=&科目の順位
       ケース終了
     ケース終了

     行訂正 [順位]=&科目の順位

     ジャンプ 行番号=次行
     条件 (#EOF=1) 繰り返し中止
    繰り返し終了

    ジャンプ 行番号=先頭
    繰り返し
     &科目の名称=[科目]
     &科目の順位=[順位]
     &i=[名前順]
     編集表 "元表"
      ジャンプ 行番号=&i
      コマンド "行訂正 [" + &科目の名称 + "]=&科目の順位
     編集表 "一時ファイル"
     ジャンプ 行番号=次行
     条件 (#EOF=1) 繰り返し中止
    繰り返し終了






引用返信 [メール受信/OFF]
■13337 / ResNo.6)  Re[4]: 横項目の順位の付け方について
□投稿者/ ONnoji -(2022/06/22(Wed) 01:03:44)
    2022/06/22(Wed) 22:24:13 編集(投稿者)
    2022/06/22(Wed) 12:33:44 編集(投稿者)
    2022/06/22(Wed) 01:07:01 編集(投稿者)

    No13336に返信(natsuさんの記事)

    natsuさん江

    この掲示板は桐のコマンドのお勉強をされる人がご覧になっていると思うので、老婆心ながら書かせていただきます。m(__)m

     ◇ ◇ ◇ ◇ ◇ ◇ ◇

    もしも、表( .tbl )にレコードが無かったら、※理由:絞り込みに失敗した、元々空ファイルだった、すべて削除レコードだった、etc.

     ジャンプ 行番号=先頭
    ┌繰り返し        ← 無条件で繰り返している!
    │ :
    │ :
    │ :
    │ :
    │ ジャンプ 行番号=次行
    ←─条件 (#EOF=1) 繰り返し中止
    └繰り返し終了

    (実際にエラーするか否かは別にして)これはダメでしょ。

    ここは until:後判断型の繰り返しではなくて、while:前判断型の繰り返しにしますよ。

    もちろん、これは予期せぬ失敗に備えてのことです・・・(^^)ok

     ジャンプ 行番号=先頭
    ┌繰り返し ( .not #eof ) ← 条件を指定している
    │ :
    │ :
    │ :
    │ :
    │ ジャンプ 行番号=次行 ← これが無いと終端行へ到達しないので絶対に必要
    └繰り返し終了

    ■参考
    32 繰り返し と 条件式|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section32

    30.3 条件式の書き方|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section30-3


引用返信 [メール受信/OFF]
■13338 / ResNo.7)  Re[5]: 横項目の順位の付け方について
□投稿者/ 尾形 -(2022/06/22(Wed) 04:39:20)
    どうも、こんにちは


    > ┌繰り返し ( .not #eof ) ← 条件を指定している
    > └繰り返し終了

    この書き方だと
    どの表に対しての .not #eof 判定なのか
    分かりにくいので好みが分かれる気もします


引用返信 [メール受信/OFF]
■13340 / ResNo.8)  Re[6]: 横項目の順位の付け方について
□投稿者/ ONnoji -(2022/06/22(Wed) 10:35:45)
    2022/06/22(Wed) 13:05:41 編集(投稿者)

    No13338に返信(尾形さんの記事)
    >>┌繰り返し ( .not #eof ) ← 条件を指定している
    >>└繰り返し終了
    >
    > この書き方だと
    > どの表に対しての .not #eof 判定なのか
    > 分かりにくいので好みが分かれる気もします

    なるほど。

    よく読んでみると[繰り返し...繰り返し終了]は2か所あったんですね。(^^ゞ

     ■1番めの繰り返し

     表 "一時ファイル"
     &名前=""
     絞り込み [点数]{≠#U}      ← この絞り込みで0レコードになる可能性があります
     並べ替え {[氏名]昇順,[点数]降順}
     ジャンプ 行番号=先頭
    ┌繰り返し

    │  :
    │  :
    │  :

    │ ジャンプ 行番号=次行
    ←─条件 (#EOF=1) 繰り返し中止
    └繰り返し終了

    これ↑は絞り込みで0レコードになる可能性があります。

    もちろん、普通にはそんなことは起きませんよね。

    でも、失敗は想定外の事から起きるんですよね。


     ■2番めの繰り返し

    (編集表 "一時ファイル")←必ずレコードが存在するか否かはプログラムの構造に依存します
     ジャンプ 行番号=先頭
    ┌繰り返し       
    │  :
    │  :
    │ &i=[名前順]

    │ 編集表 "元表"
    │ ジャンプ 行番号=&i
    │ コマンド "行訂正 [" + &科目の名称 + "]=&科目の順位

    │ 編集表 "一時ファイル"
    │ ジャンプ 行番号=次行
    ←─条件 (#EOF=1) 繰り返し中止
    └繰り返し終了


    なるほど、よく見たら2つの編集表("一時ファイル"と"元表")を行き来していますね。

    この場合でも、繰り返しに条件の( .not #eof )を付けても動作には影響しないです。

    > どの表に対しての .not #eof 判定なのか

    むしろ、[ジャンプ 行番号=先頭]の直前に[編集表 "一時ファイル"]を補った方が分かり易いですね。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    2つの編集表を行き来する場合には、最初の出発点がどちらなのか最初に[編集表]コマンドで明示した方がよいですね。

    p.s.

    当然ですがプログラムの書き方は自由です。

    しかし、何よりもエラーを起こしにくいように書くことを心掛けるべきだと思います。

    そして、他人(この場合には未来の自分を含みます)が見ても分かり易いように心掛けたいものですね。

    それを踏まえた上で、いわゆる「好み」に関しては個人個人千差万別なので仕方ないですね。


引用返信 [メール受信/OFF]
■13341 / ResNo.9)  Re[7]: 横項目の順位の付け方について
□投稿者/ T.S -(2022/06/22(Wed) 20:36:00)
    ONnoji 様
    natsu 様
    尾形 様

     ご回答いただきありがとうございました。
     イベントや複雑な項目計算式、一括処理と回答いただき有難うございました。

     回答いただいたものを使わせていただき、希望どおりの処理が出来ました。
     本当に助かりました。

     イベントや一括処理でのコマンド、項目計算式の関数など私がこれまで使った事の無いもの使われており、

    非常に勉強になりました。

     今後も精進してまいりますので、御指南等よろしくお願いいたします。
解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9]



■記事リスト / ▲上のスレッド
■13313 / 親記事)  桐+SQLServerExpress奮闘記
□投稿者/ ななーし -(2022/06/14(Tue) 15:46:53)
    質問ではありません。ある程度形にできたので手順と感想を書き込もうと思います。
    (不適切なら消します)
    @初期設定⇒13247番で検索ください。ODBCのシステムDSNは桐を扱うPCすべて設定が必要
    ASQLの主キー対策⇒タイムスタンプで対応しました。時間+ユーザ名でミリ秒まで取得することでだれがいつ記入したかを記録しながらユニークに(以下参考)
    [Timestamp]=#文字置換(#日付( #年月日 , 1 ),"-","")+#文字列(#時(#時刻),2)+#文字列(#分(#時刻),2)+#文字列(#秒(#時刻),2)+#文字列(#ミリ秒(#日時値),4)+#ユーザ名
    連番登録時はミリ秒を#行番号や#回数(繰り返し行追加の場合)に変えて登録すれば1秒で連続登録できないのでユニークになります。行挿入前or終了前イベントで項目値訂正で書き込んでください。ユニークが初期から登録できるのものはユニークを活用しましょう。
    BSQL検索フォーム⇒外部DBテーブルを作成し、絞り込み条件1に#DSQL( &STR )や#DSQL( &SQL入力 )を書き込みます。イベントの名札で&STR=「ここにSQLのWHERE に各SQL文を書く」"例:&STR="記入年>="+#文字列(#年(#年月日))"
    &STRは初期定義なのでいいですが、&SQL入力はないので名札で自分で変数宣言しましょう。#DSQLを書いたテーブルは通常で開きません。一括処理で宣言+値を入れる簡単なものを作成し、桐を開いて実行してから外部DBを開きましょう。
    検索の際は&STRに違うWHERE文を記載した後、「再抽出  変数使用 = する」で内容が更新されます。(以下例 ANDは勝手に追加するようにしました。)
      条件(&q希望納期≠#未定義)&SQL文=&SQL文+&接続詞+"希望納期 LIKE '%"+&q希望納期+"%'"
      条件(&SQL文≠#未定義)  &接続詞=" AND "
      条件(&q納入日≠#未定義) &SQL文=&SQL文+&接続詞+"納入日 LIKE '%"+&q納入日+"%'"
    <感想>
    hidetakeさん尾形さんの多大な協力を頂いてなんとか形にできました。SQLを活用し、開く量を最小限にすることで60万レコードのテーブルでもすぐにひらく様に扱うことができます。上記のようなユニークで問題なければ主キー問題はあまり関係ありません。桐でも早いプログラムが作れるんだ!と感動しました。
引用返信 [メール受信/OFF]

▽[全レス12件(ResNo.8-12 表示)]
■13322 / ResNo.8)  Re[4]: 桐+SQLServerExpress奮闘記
□投稿者/ 尾形 -(2022/06/15(Wed) 19:08:07)
引用返信 [メール受信/OFF]
■13323 / ResNo.9)  Re[5]: 桐+SQLServerExpress奮闘記
□投稿者/ hidetake -(2022/06/15(Wed) 22:53:49)
引用返信 [メール受信/OFF]
■13324 / ResNo.10)  Re[7]: 桐+SQLServerExpress奮闘記
□投稿者/ hidetake -(2022/06/16(Thu) 07:55:31)
    > Invoke-Sqlcmd "DBCC SHRINKDATABASE (DBNAME, 10);" -ServerInstance "SERVER\" -QueryTimeout 300

    SQL Server にも EXECUTE は、あるので、
    どうしてもやりたければ、桐側で特定の
    テーブルでトリガを発生させるとか、
    Windows のタスクスケジューラで、実行
    させるとか、やればできそうですね。

    https://docs.microsoft.com/ja-jp/sql/t-sql/language-elements/execute-transact-sql?view=sql-server-ver16

    それよりも前に、この内容は相当昔に
    試しただけなので、今は?実行できる
    のかも知れません。
引用返信 [メール受信/OFF]
■13325 / ResNo.11)  Re[8]: 桐+SQLServerExpress奮闘記
□投稿者/ ななーし -(2022/06/16(Thu) 11:27:49)
引用返信 [メール受信/OFF]
■13326 / ResNo.12)  Re[5]: 桐+SQLServerExpress奮闘記
□投稿者/ ななーし -(2022/06/16(Thu) 11:44:05)
    文字コードは一括の高度な設定でシフトJIS指定してるのでよっぽどいけるかなーと思いつつ上司相談した結果0.01%でもばぐると面倒だし買いなさいとなり、必要なら新規購入になりました。(笑)
    SQLインジェクションとSSMSでのスクリプトでの出力結果は同じようなものなので、テーブルの一部を治したいとき用のバックアップとして以下のような感じで書き出しましたが、結合を開くのに時間すこし時間かかるくらいで書き出し表は一瞬でした。
    まあ、CSV登録機能も付けたので消してからそっちから再度流し込んでもいいのでどうやるか検討します。エクセルで40万件開くと重たいですからね。

    ファイル削除
    結合 ●●.XVX
    書き出し表
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-12]






1286427

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -