一括表示

[No.14855] MaxEightQSO.qsl 投稿者:JP7CZE 川辺  投稿日:2016/07/21(Thu) 21:53:30

最大8QSOを印刷するQSL印刷定義です.
各QSOでは,データ行,相手局のQRV QTH行(1行)と,当方のQRV QTH 行(1行または2行)の3行または4行で印刷します.

なお,定型部分は,別プログラムにしていて,#Load 命令で読み込んで実行させています.なので,下記の4つの個々のソースを名前を付けて,メインのプログラムと同じフォルダに保存してください.

データの書き方です.
Remarks1に,自局の運用場所,GL,湯けむり番号名前,LA番号名前などを%と%で囲んで記入します.移動の場合には,先頭の%に続いて/7 などを記入します.記述長い場合は適当な場所(運用場所,GLと各種アワードの記述との間など)に”<BR>”を入れて強制改行させます.

Remarks1の例
%山形県天童市常置場所(GL:QM08EI)WF-112-2 ZA-0318% ← 移動局の常置場所
%山形県山形市固定(GL:QM08EF)WF-94-1 ZA-0309% ← 固定局の設置場所
%/6 熊本県球磨郡水上村(JCG-43008H ZA-1739 PA-423)<BR>LA-04市房湖@市房ダム, 湯-1570湯山温泉(GL:PM52MH)移動%
%/6 佐賀県小城市(JCC-4108)湯-1508小城温泉(GL:PM53CH)移動%


;****************
; MaxEightQSO.qsl
;****************
; 既成の白紙カードに直接印刷する by JG1MOU
; 1枚のカードに同一局との最大8交信分を印字する。
; 3交信以下の場合には、さみしいので、画像を印刷する。
; ただし、JARL指定順かJARL指定逆順で印字すること。
; 同一コールサインが連続していない場合は、印刷しない。
; 連続印刷のみで使用。
; 自局の運用地は任意でOK。

#MaxCall=8; 8回分
#Mov $$U=7; MaxCall-1
#Mov $$Z=0; 相手局,自局の運用地が2行になる場合のカウンター

*99
;**********************
;宛名コールサインの記入
;**********************
#Load "headder.QSL"             ; ← (1)

#Mov $$Y=290
#FontName="Times New Roman"
#FontSize=10
#FontColor=0
#FontStyle=2
#Print 10, $$Y, "Confirming Our QSO"

#Mov $$Y=$$Y+45
#LineS 1, 0, 16711680
#LineX 20, $$Y, 940
#FontName="MS ゴシック"
#FontSize=9
#FontColor=0
#FontStyle=0
#Mov $$Y=$$Y+3
#Print 30, $$Y, "Callsign"
#Print 300, $$Y, "Date"
? UTC!
#Print 480, $$Y, "JST"
? UTC
#Print 480, $$Y, "UTC"
#Print 590, $$Y, "RST"
#Print 670, $$Y, "MHz"
#Print 755, $$Y, "2Way"
#Print 865, $$Y, "QSL#"
#Mov $$Y=$$Y+35
#LineX 20, $$Y, 940

#FontName="Times New Roman"
#FontSize=9
#FontColor=0x00000000
#FontStyle=0

#Mov $$Y=$$Y+3
#Print 20, $$Y, "!cp"
#Print 260, $$Y, "!DD/!DJ/!DY"; 14/Apr/2004
#Print 470, $$Y, "!TH:!TM"; 時間 08:30
#Print 590, $$Y, "!HR"; RST
#Print 675, $$Y, "!FR"; 周波数帯
#Print 760, $$Y, "!MD"; モード
#FontStyle=2
#Print 860, $$Y, "!NO"; QSL No.

#Mov $$H="!R1"

#FontName="MS P明朝"
#FontColor=0x005B5B00
#FontSize=7
#Mov $$Y=$$Y+33
#Print 40, $$Y, "Ur QTH:"
#PrintA 145, $$Y, -12, "!QT"
#FontStyle=0
?Data12 "<BR>"
#Mov $$Y=$$Y+25
#Mov $$Z=$$Z+1
?End
'------自局運用地
#Mov $$Y=$$Y+25
#FontName="MS Pゴシック"
#FontStyle=2
#Print 40, $$Y, "My QTH:"
#FontStyle=0
#PrintA 145, $$Y, -12, "!R1"
#FontName="MS P明朝"
?Data13 "<BR>"
#Mov $$Y=$$Y+25
#Mov $$Z=$$Z+1
?End

#Mov $$C=$$Z
;?$$C "2"
;#Mov $$U=$$U-1
;#Mov $$Z=0
;?End
;?$$C "1"
;#Mov $$U=$$U-1
;#Mov $$Z=0
;?End

;-------2回〜8回目をループで印刷する ----------------------------
#Mov $$V=1
;#Mov $$U=7;ループの回数はプログラムの先頭で定義
#Mov $$Y=$$Y+25
;-----------------------------------------------
#DoLoop; ループ始まり
#Readj *992; 同じコールサインでなければ*992へ
#FontName="Times New Roman"
#FontSize=9
#FontColor=0x00000000
#FontStyle=0
#Print 20, $$Y, "!cp"
#Print 260, $$Y, "!DD/!DJ/!DY"; 14/Apr/2004
#Print 470, $$Y, "!TH:!TM"; 時間 08:30
#Print 590, $$Y, "!HR"; RST
#Print 675, $$Y, "!FR"; 周波数帯
#Print 760, $$Y, "!MD"; モード
#FontStyle=2
#Print 860, $$Y, "!NO"; QSL No.
#Mov $$Y=$$Y+33
'------貴局運用地
#FontName="MS P明朝"
#FontColor=0x005B5B00
#FontSize=7
#Print 40, $$Y, "Ur QTH:"
#PrintA 145, $$Y, -12, "!QT"
#FontStyle=0
#Mov $$Y=$$Y+25
?Data12 "<BR>"
#Mov $$Y=$$Y+25
#Mov $$Z=$$Z+1
?End

#Mov $$C=$$Z
?$$C "3"
#Mov $$U=$$U-1
#Mov $$Z=0
?End
#Mov $$D=$$U
?$$D "2"
?$$C "2"
#Mov $$U=$$U-1
#Mov $$Z=0
?End

'------自局運用地
#FontName="MS Pゴシック"
#Print 40, $$Y, "My QTH:"
#PrintA 145, $$Y, -12, "!R1"
#FontStyle=0
#Mov $$Y=$$Y+25

?Data13 "<BR>"
#Mov $$Y=$$Y+25
#Mov $$Z=$$Z+1
?End

#Mov $$C=$$Z
?$$C "3"
#Mov $$U=$$U-1
#Mov $$Z=0
?End
#Mov $$D=$$U
?$$D "2"
?$$C "2"
#Mov $$U=$$U-1
#Mov $$Z=0
?End

’------

#Mov $$V=$$V+1
#Mov $$U=$$U-1
#EndLoop $$U; $$Uがゼロになったらループ終わり
;----------------------------------------------
*992
#LineX 20, $$Y+5, 940
#Mov $$A=$$V; 数値を文字列に変換
#FontColor=0x00000000
#Print 190, $$Y+10, "--- End of QSO-DATA (!$$A) except 'OneWay' ---"

#FontName="Times New Roman"
#FontSize=11
#FontStyle=1
#Print 280, $$Y+35,"Thanks FB QSO!!"
;**********************
; リグ・アンテナ の印刷
;**********************
#Mov $$Y=$$Y+80

?Rmstr! "%/"
#Load "Rig_ANT_Fixed.QSL" ;←(2)
?END 

?Rmstr "%/"
#Load "Rig_ANT_Mobile-Portable.QSL" ;←(3)
?END

;****************
; Footer の印刷
;****************
#Mov $$Y=1467
#Load "Footer.QSL"        ;←(4)

;===========================
;MaxEightQSO.qslプログラム終了
;===========================



;=================
;(1)Headder.qsl
;=================
*99
;**********************
;宛名コールサインの記入
;**********************
#FontName="Times New Roman"
#FontSize=12
#FontColor=0x00626262
#FontStyle=3
#Print 15, 157, "To Radio"
#FontName="Times New Roman"
#FontSize=18
#FontColor=0x00626262
#FontStyle=1
#Print 30, 200, "!cp" ;相手局のコールサイン
#LineS 1,1,14
#LineX 30, 265, 375

;******************************
;JARL転送枠とコールサインの記入
;******************************
#FontSize=16
#FontName="Times New Roman"
? QslM   ;QSLManagerの時
#Print 125, 80, "via"

#FontName="MS ゴシック"
#LineS 2, 0, 255 ; JARL転送枠
#LineR 210, 92, 280, 185
#LineR 300, 92, 370, 185
#LineR 390, 92, 460, 185
#LineR 480, 92, 550, 185
#LineR 570, 92, 640, 185
#LineR 660, 92, 730, 185
#LineR 750, 92, 820, 185
#LineR 840, 92, 910, 185
#FontSize = 18
#Print 212, 105, "!C1"; JARL転送枠1文字目
#Print 302, 105, "!C2"
#Print 392, 105, "!C3"
#Print 482, 105, "!C4"
#Print 572, 105, "!C5"
#Print 662, 105, "!C6"
#Print 752, 105, "!C7"
#Print 842, 105, "!C8"

#FontName="Times New Roman"
#FontSize=13;移動の場合は,後で /? を追加
#FontColor=0x00626262
#FontStyle=3
#Print 425,232,"from"
#FontName="Times New Roman"
#FontSize=26
#FontColor=0x005FFF
#FontStyle=1
#Print 530,187,"JP7CZE" :自局
#FontColor=0x00626262
#LineS 2,0,0

;=================
;(1)Headder.qslの終了
;=================

;=================
;(2)Rig_ANT_Fixed.QSL
;=================
;**********************
;固定局のリグ・アンテナ
;**********************
*10050
#FontSize=11
#FontName="Times New Roman"
#FontStyle=0
#Print 25, $$Y, "Rig: ??????" ;固定時のRig
#Print 25, $$Y+38, "Ant:???????" ;固定時のANT

;=================
;(2)Rig_ANT_Fixed.QSLの終了
;=================

;=================
;(2)Rig_ANT_Mobile-Portable.QSL
;=================
;**********************
;移動局のリグ・アンテナ
;**********************
*10050
#FontSize=11
#FontName="Times New Roman"
#FontStyle=0
#Print 25, $$Y, "Rig: ??????" ;移動時のRig
#Print 25, $$Y+38, "Ant:???????" ;移動時のANT

;=================
;(3)Rig_ANT_Mobile-Portable.QSLの終了
;=================

;=================
;(4)Footer.qsl
;=================
;#Mov $$Y=1425

#FontColor=0
#FontColor=0x00626262
#FontSize=8.5
#FontName="MS Pゴシック"
#FontStyle=0
#Print 70, $$Y-163,"OP:"
#Print 170, $$Y-163,"KAWABE Takayuki, 川辺孝幸(also JA2XEK)"
#Print 70, $$Y-138,"QTH:"
#Print 170, $$Y-138,"Tendo City, Yamagata, 994-0062 JAPAN GL:QM08EI"
#Print 170, $$Y-111,"〒994-0062 山形県天童市***********(JCC:0510)"
#Print 70, $$Y-83,"e-mail:"
#Print 170, $$Y-83,"JP7CZE@jarl.com"
#Print 70, $$Y-58,"Home Page:"
#Print 245, $$Y-58,"http://jp7cze.cocolog-nifty.com/"
;#Linex 60, $$Y-0,820

*5010
;=================
;(4)Footer.qslの終了
;=================

【2016/07/21(Thu) 21:57:00 投稿者により修正されました。】


[No.14862] Re: MaxEightQSO.qsl 投稿者:JA1RRR/斎藤  投稿日:2016/07/24(Sun) 22:15:26

勉強のため、教えてください。

> ;****************
> ; MaxEightQSO.qsl
> ;****************
> ; 既成の白紙カードに直接印刷する by JG1MOU
> ; 1枚のカードに同一局との最大8交信分を印字する。
> ; 3交信以下の場合には、さみしいので、画像を印刷する。
> ; ただし、JARL指定順かJARL指定逆順で印字すること。
> ; 同一コールサインが連続していない場合は、印刷しない。
> ; 連続印刷のみで使用。
> ; 自局の運用地は任意でOK。
>
"MaxEightQSO.qsl"のコメント行には上記のように記載されています
が、3交信以下で画像を印刷する命令文が見当たりません。

質問
3交信以下であることを判別した後に、判別した数値(or 文字列)を
どのように画像を印刷する命令文に受け渡すのでしょうか。

よろしくお願いします。
 


[No.14864] Re: MaxEightQSO.qsl 投稿者:JP7CZE 川辺  投稿日:2016/07/25(Mon) 00:33:02

> "MaxEightQSO.qsl"のコメント行には上記のように記載されています
> が、3交信以下で画像を印刷する命令文が見当たりません。

すみませんでした.コメントアウトしてあるコードや,ややこしそうな部分を単純にするつもりで,消した部分があり,画像の部分も消してしまったようです.

> 質問
> 3交信以下であることを判別した後に、判別した数値(or 文字列)を
> どのように画像を印刷する命令文に受け渡すのでしょうか。

交信数のカウンターは,$$Zという変数ですが,以下のように$$Aに文字列として代入されています.

*992
#LineX 20, $$Y+5, 940
#Mov $$A=$$V; 数値を文字列に変換
#FontColor=0x00000000
#Print 190, $$Y+10, "--- End of QSO-DATA (!$$A) except 'OneWay' ---"

この文字列 $$A を,比較対象として,画像を印刷すべきかどうかを判定させています.
場所は,以下の通り,「リグ・アンテナの印刷」のコードと,「フッターの印刷」との間になります.

;**********************
; リグ・アンテナ の印刷
;**********************
#Mov $$Y=$$Y+80

?Rmstr! "%/"
#Load "Rig_ANT_Fixed_new.QSL"
?END 

?Rmstr "%/"
#Load "Rig_ANT_Mobile-Portable.QSL"
?END

;**************************
; 3交信以下の時の画像の印刷
;**************************
?$$A "3";$$A=交信数カウンタ:$$Vを文字列に変換したもの
#Goto *3000
?$$A "2"
#Goto *3000
?$$A "1"
#Goto *3000
#Goto *4000

*3000

#Mov $$Y=$$Y+80
#Jpg 30,$$Y,882,0,"Image\image.jpg" ;← 実際に印刷したい画像に変更してください.

*4000
;****************
; Footer の印刷
;****************

とこんな感じになると思います.

なお,画像の縦横比は,通常の3:4では縦が高すぎると思います.1:2程度が良いでしょうか.

もうちょっと発展させると,1交信用(Image1),2交信用(Image2),3交信用(Image3)でフォルダごとに作っておいて,さらに,ランダムに画像を表示したい,なんてことも可能ですね.

#Jpg 30,$$Y,882,0,"Image!$$A\image!TM.jpg"

↑については,
[No.14499] Re: QSLカード印刷の写真差し替え 投稿者:JA1RRR/斎藤 投稿日:2016/05/30(Mon) 15:05:56
http://www.hamlog.com/hamlogbbs/forum/wforum.cgi?no=14499&ren ..... de=msgview を参照してください.

【2016/07/25(Mon) 01:04:13 投稿者により修正されました。】


[No.14866] Re: MaxEightQSO.qsl 投稿者:JP7CZE 川辺  投稿日:2016/07/25(Mon) 01:20:40
Re: MaxEightQSO.qsl (画像サイズ: 1279×632 220kB)

> ;**************************
> ; 3交信以下の時の画像の印刷
> ;**************************
> ?$$A "3";$$A=交信数カウンタ:$$Vを文字列に変換したもの
> #Goto *3000
> ?$$A "2"
> #Goto *3000
> ?$$A "1"
> #Goto *3000
> #Goto *4000
>
> *3000
>
> #Mov $$Y=$$Y+80
> #Jpg 30,$$Y,882,0,"Image\image.jpg" ;← 実際に印刷したい画像に変更してください.
>
> *4000
> ;****************
> ; Footer の印刷
> ;****************
>
> とこんな感じになると思います.

上記1交信から3交信の場合の印刷イメージです.

なお,1交信は,本来のQSOが9交信ある場合に,1枚目が8交信印刷できたとすると,残り1交信の印刷が発生する場合です.もちろん当然ながら,単独で1交信の場合はスキップされます.

こうやって見ると,画像が上の印刷文字列と近すぎるのに対して下が空いていて,ちょっと不細工ですね.

> #Mov $$Y=$$Y+80

#Mov $$Y=$$Y+180
位でも良いかもしれませんね.

【2016/07/25(Mon) 01:24:04 投稿者により修正されました。】


[No.14870] Re: MaxEightQSO.qsl 投稿者:JA1RRR/斎藤  投稿日:2016/07/25(Mon) 19:37:23

丁寧に説明していただき恐縮しています。

> > 3交信以下であることを判別した後に、判別した数値(or 文字列)を
> > どのように画像を印刷する命令文に受け渡すのでしょうか。
> >

> ?$$A "3";$$A=交信数カウンタ:$$Vを文字列に変換したもの
> #Goto *3000
> ?$$A "2"
> #Goto *3000
> ?$$A "1"
> #Goto *3000
>
この構文がすぐに頭に浮かんで来ませんでした。情けない。
ありがとうございました。
 


[No.14871] Re: MaxEightQSO.qsl 投稿者:JP7CZE 川辺  投稿日:2016/07/25(Mon) 20:56:20

JA1RRR 斎藤さん,

> この構文がすぐに頭に浮かんで来ませんでした。情けない。
> ありがとうございました。

文字列/数値の大小の比較ができれば楽ちんなんですけどね.

#$$Z <= 3

なんてあれば,直下に #Load 命令も書けるんですが.

あと,

#Mov $$Z=$$Z+1 なんかも, #Inc $$Z とか #Dec $$Z なんかがあれば,スマートかも.

また,変数も,$$AB,$$XA とか2文字使えれば.余裕を持って変数が使えるのですが.

なんて思ったりします(あくまで独り言です(笑)).


[No.14872] Re: MaxEightQSO.qsl 投稿者:JG1MOU浜田  投稿日:2016/07/25(Mon) 21:39:27

川辺さん、山形県支部大会ではお世話になりました。

また、講演中はフォローを有難うございました。
作者が忘れている機能を教えていただける・・・助かります。Hi

取り急ぎ、ご指摘をいただきました件、修正しました。Hi
http://hamlog.no.coocan.jp/mou/index.html


[No.14873] Re: MaxEightQSO.qsl 投稿者:JP7CZE 川辺  投稿日:2016/07/26(Tue) 21:59:36

浜田さん,

> 川辺さん、山形県支部大会ではお世話になりました。

浜田さんこそ,お忙しい中,毎週各地に行かれて大変でしょう.貴重なお話ありがとうございました.


> また、講演中はフォローを有難うございました。
> 作者が忘れている機能を教えていただける・・・助かります。Hi

たまたま,パソコンを持って話を聞いていたので,パワーポイントと同じ操作をしてみたら,あれれ?うまくいかない,とか,浜田さんができないかも,と言っていた操作,もしやと思ってクリックしてみたら,あれま,できちゃったとか.

一般的な話ですが,フリーソフトの作者は,リクエストで機能を追加してみたものの,作者本人が必要としていない場合,忘れるのは当たり前でしょうね.

例の,[Wkd/Cfmの地域一覧]ウィンドウでQTHをクリックしたときの動作は現行のままで良いとして(私は直接一覧が出る方が良いと思いますが),せっかくなので,一番右端の[その他]の「他○局」をクリックしたときに,[データの修正と表示]ウィンドウでは無く直接[JCC/JCGコード順一覧]ウィンドウが開くと良いかなと思いました.

> 取り急ぎ、ご指摘をいただきました件、修正しました。Hi
> http://hamlog.no.coocan.jp/mou/index.html

入力ウィンドウでの「7*」と「8*」の検索でDXがチェックされる問題と,日本語の検索の場合,ワイルドカード文字を,IMEのON/OFFをしなくてもいいように,全角の「*と?」が使えるようにしていただき,ほんとにお忙しいところありがとうございました.

【2016/07/27(Wed) 07:37:56 投稿者により修正されました。】


[No.14863] Re: MaxEightQSO.qsl 投稿者:JF1VKY 村  投稿日:2016/07/25(Mon) 00:20:44

JP7CZE 川辺さん

お世話になります。

> 最大8QSOを印刷するQSL印刷定義です.
> 各QSOでは,データ行,相手局のQRV QTH行(1行)と,当方のQRV QTH 行(1行または2行)の3行または4行で印刷します.

どうもありがとうございます。
自分で色々やってみて分からなかったら、また質問致しますので、よろしくお願い致します。


[No.14865] Re: MaxEightQSO.qsl 投稿者:JP7CZE 川辺  投稿日:2016/07/25(Mon) 00:37:35

JF1VKY 村さん,

> どうもありがとうございます。
> 自分で色々やってみて分からなかったら、また質問致しますので、よろしくお願い致します。

今,PDFへの印刷結果を見ていて,To のところに,ポータブル+エリアが付いていたり付いていなかったりですので,To のところではポータブル+エリアにたほうがいいとか,怪しい部分がいくつかあるようです(^^;