|
ヘルプを見ながらやってみたのですが、うまく更新できません。 どうすれば良いのでしょうか
obj = CREATEFORM("about:blank", "Calc", True) obj.Document.write(工事) DIM 元[12] ID = fopen("D:工事検索.csv") FOR P = 1 TO 12 元[P] = FGet(ID,1,P) NEXT fclose(ID) while obj.Visible obj.Visible FOR P = 1 TO 12 SETFORMDATA(元[P],P) NEXT ifb GETFORMDATA("OKBtn") then ID = fopen("D:工事検索.csv",F_READ or F_WRITE) FPUT(id,GETFORMDATA("101"),1,1) fclose(ID) elseif GETFORMDATA("CancelBtn") then exitexit endif Sleep(0.1) wend
TextBlock 工事 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FONT size="5"> <form method='POST'> <input type='text' name= '元データ' value='現在' ><input type='text' name= '変更' value='変更'>
<input type='text' name= '1' ><input type='text' name= '101' >
<input type='text' name= '2' ><input type='text' name= '102' >
<input type='text' name= '3' ><input type='text' name= '103' >
<input type='text' name= '4' ><input type='text' name= '104' >
<input type='text' name= '5' ><input type='text' name= '105' >
<input type='text' name= '6' ><input type='text' name= '106' >
<input type='text' name= '7' ><input type='text' name= '107' >
<input type='text' name= '8' ><input type='text' name= '108' >
<input type='text' name= '9' ><input type='text' name= '109' >
<input type='text' name= '10' ><input type='text' name= '110' >
<input type='text' name= '11' ><input type='text' name= '111' >
<input type='text' name= '12' ><input type='text' name= '112' > <input type="submit" value=" OK " name="OKBtn"> <input type="submit" value="キャンセル" name="CancelBtn">
</form> </FONT>
</BODY> </HTML> EndTextBlock
//?晦社,宝,2519,2015/4/24,竹内,,0422009,確,4月26日,,宝,1
|
No.1224 2015/05/03(Sun) 00:48:51
|
☆ Re: CREATEFORMの使い方 / sen |
|
|
何とか、動き始めました。 自信は無いのですが、これで問題ないでしょうか?
dim 更新 = true obj = CREATEFORM("about:blank", "工事", True) obj.Document.write(工事) ID = fopen("D:工事検索.csv") FOR i = 1 TO 12 SETFORMDATA(FGet(ID,1,i),i) NEXT fclose(ID) while 更新 = true obj.Visible ifb GETFORMDATA("OK") then 更新 = false ID = fopen("D:工事検索.csv",F_READ or F_WRITE) if GETFORMDATA("工事日") <> "" then FPUT(id,GETFORMDATA("工事日"),1,9) if GETFORMDATA("完了") <> "" then FPUT(id,GETFORMDATA("完了"),1,10) fclose(ID) elseif GETFORMDATA("キャンセル") then exitexit endif Sleep(0.1) wend
TextBlock 工事 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FONT size="5"> <form method='POST'> <input type='text' name= '元データ' value='現在' ><input type='text' name= '変更' value='変更'>
<input type='text' name= '1' >
<input type='text' name= '2' >
<input type='text' name= '3' >
<input type='text' name= '4' >
<input type='text' name= '5' >
<input type='text' name= '6' >
<input type='text' name= '7' >
<input type='text' name= '8' >
<input type='text' name= '9' ><input type='text' name= '工事日' >
<input type='text' name= '10' ><input type='text' name= '完了' >
<input type='text' name= '11' >
<input type='text' name= '12' > <input type="submit" value="OK" name="OK"> <input type="submit" value="キャンセル" name="キャンセル">
</form> </FONT>
</BODY> </HTML> EndTextBlock
//?晦社,宝,2519,2015/4/24,竹内,,0422009,確,4月26日,,宝,1
|
No.1229 2015/05/03(Sun) 22:31:53
|
|
☆ Re: CREATEFORMの使い方 / ある |
|
|
実際に動かしてみて問題がなければ大丈夫だと思います。
document.writeによるソース書き出しは新鮮でした。 そういうやり方もあったのですね。勉強になりました。
僕が普段やっている感じで作ったものも挙げておきます。 stuncloudさんから教わったやり方で、oleeventを使っています。 oleeventを使うと組み合わせで発展性があると思うので、参考までに。 フォーム数が違うとかはご容赦を(;'') ちなみに< br >を入れると掲示板内で改行されてしまうようなので、<brで留めました。 動かすときはお手数ですが、「>」を付け足して下さい。
----------------------------------------------------------- obj=createform("about:blank","工事",true) obj.Document.write(工事)
setdata() //ファイルから変更前のデータを抜出
//ボタンのidを取得 ok=obj.document.getelementbyid("ok") cancel=obj.document.getelementbyid("cancel")
//ボタンを押した時のイベント処理設定 oleevent(ok,"HTMLbuttonElementEvents2","onclick","ok") oleevent(cancel,"HTMLbuttonElementEvents2","onclick","cancel") //↑キャンセルボタンを押した時に、procedure cancelを呼び出すという設定
while true sleep(0.2) wend
//+++++++++++++++++++++++++ Public obj
procedure ok()//----------OKボタンを押した時 data="" for n=0 to obj.document.forms[0].elements.length-1 ifb n mod 2=1 then //右側の「変更後」のみを保存 data=data+obj.document.forms[0].elements[n].value+"<#cr>" endif next fpath=get_cur_dir+"\工事検索.txt" fid=fopen(fpath,f_write or f_read) fput(fid,data,f_alltext) fclose(fid) IEsetdata(obj,"データを保存しました","msg") sleep(0.5) IEsetdata(obj,"","msg") fend
procedure cancel()//----------キャンセルボタンを押した時 exitexit fend
procedure setdata()//----------ファイルから変更前のデータを抜出 fpath=get_cur_dir+"\工事検索.txt" ifb fopen(fpath,f_exists) then fid=fopen(fpath,f_write or f_read) fg=fget(fid,f_alltext) fclose(fid) endif sdata=split(fg,"<#cr>") c=0 for n=0 to obj.document.forms[0].elements.length-1 ifb n mod 2=0 then //左側のデータのみを保存する obj.document.forms[0].elements[n].value=sdata[c] c=c+1 endif next fend
textblock 工事//---------- <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FONT size="5"> <form> <input type="text"><input type="text"><br <input type="text"><input type="text"><br <input type="text"><input type="text"><br <input type="text"><input type="text"><br <input type="text"><input type="text"><br <input type="text"><input type="text"><br <input type="text"><input type="text"><br </form> <input type="text" name="msg">
<button id="ok">OK</button> <button id="cancel">キャンセル</button> </FONT> </BODY> </HTML> endtextblock
|
No.1230 2015/05/05(Tue) 13:14:16
|
|
☆ Re: CREATEFORMの使い方 / sen |
|
|
おー。「ある」さん、有り難うございます。 「oleevent」ですね。 じっくりと勉強させて頂きます。
今まで、CREATEFORMは使えたら最強だと思いつつ、selectとinputでやりくりしていました。 helpの「計算画面」という作例が、TextBlockにhtmlが取り込まれてexe化した時にファイルが別にならないので、自分にピッタリでしたが、分からずにいじくるのでうまくいきませんでした。 今回、どうしてもやりたい部分が出てきまして、やっと質問にこぎつけました。 CREATEFORMは使ってみて、素人にこそ便利なので、もっともっとPRされても良いのではないかと思います。 有り難うございました。
|
No.1239 2015/05/08(Fri) 00:04:06
|
|