レコードセットをttxファイルを介してCrystal Reportのフィールドにマッピング

生産スケジューラー

レコードセットをttxファイルを介してCrystal Reportのフィールドにマッピング


レコードセットのフィールド値をttxファイルを介してCrystal reportのフィールド定義にマッピング

作業テーブルをAccessにエクスポートして現品票を発行したいと思ったのですが、簡単にできるのかと思ったら結構手こずりました。

古いですがCrystal report 9にはParameter Fieldがあるので、VBからPassing Parameterするのかと思いきやRecord Setを放り投げると勝手にフィールドから値を取ってくれるので、Crystal Report Viewerという無償のActiveXコンポーネントビューアーの中にレポートを表示できます。

    CrRep.Database.SetDataSource rs, 3, 1
    CRViewer91.ReportSource = CrRep
    CRViewer91.ViewReport

それがこの部分。3番目の引数1がTable Numberを表します。

    '選択されたコンボのORDERCODを取得
    result = Combo1.List(Combo1.ListIndex)

    'Passing parameter from VB6 to CR using CRAXDRT
    Dim CrApp As CRAXDRT.Application
    Dim CrRep As CRAXDRT.Report

    'ORDERTBLからORDERCODのレコードセットを取得
    Dim conn As New ADODB.Connection
    Dim rs As ADODB.Recordset

    Dim mySQL As String

    cn.Open _
        "Provider = Microsoft.Jet.OLEDB.4.0; " & _
            "Data Source = " & CurDir & "\NNA.mdb"

    Set CrApp = New CRAXDRT.Application
    Set CrRep = CrApp.OpenReport(App.Path & "\reports\TravelSheet.rpt", & _
                    crOpenReportByTempCopy)

    CrRep.DiscardSavedData

    If result <> "ALL" Then
        mySQL = "SELECT * FROM OPERATIONTBL WHERE ORDERCOD='" & _
            Combo1.Text & "' ORDER BY ORDERCOD"
    Else
        mySQL = "SELECT * FROM OPERATIONTBL ORDER BY ORDERCOD"

    End If
    With rs
        .ActiveConnection = cn
        .CursorLocation = adUseServer
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Properties("IRowsetIdentity") = True

        .Open mySQL
    End With
    CrRep.Database.SetDataSource rs, 3, 1
    CRViewer91.ReportSource = CrRep
    CRViewer91.ViewReport

ところがCrystal Report ViewerのようなWin7での標準以外のコンポーネントを使った開発アプリはXPで問題起こす可能性大であり、crviewer9.dllが古いPCで問題起こしまくりなので、まずCR8.5にダウングレードした上で、以下にコード変更。

CR8.5はフォームレイアウトだけに限定させるために、ttxファイルにフィールド定義を行いVBからレコードセットを投げてttxファイルのField Definitionに従ってフォームにはめ込む。

Dim result As String

    '選択されたコンボボックスのORDERCODを取得
    result = Combo1.List(Combo1.ListIndex)

    'ORDERTBLからORDERCODのレコードセットを取得
    Dim conn As New ADODB.Connection
    Dim rs As ADODB.Recordset

    Dim mySQL As String

    cn.Open _
        "Provider = Microsoft.Jet.OLEDB.4.0; " & _
            "Data Source = " & CurDir & "\DNN.mdb"

    If result <> "ALL" Then
        mySQL = "SELECT * FROM OPERATIONTBL WHERE ORDERCOD='" & _
                    Combo1.Text & "' ORDER BY ORDERCOD"

    Else
        mySQL = "SELECT * FROM OPERATIONTBL ORDER BY ORDERCOD"

    End If

    rs.Open mySQL, cn, adOpenKeyset, adLockOptimistic

    With rptControl
        .WindowTitle = "Travel Sheet"
        .ReportFileName = App.Path & "\Reports\TravelSheet.rpt"

        .SetTablePrivateData 0, 3, rs
        .WindowShowPrintBtn = True
        .WindowShowPrintSetupBtn = True

        .RetrieveDataFiles
        .WindowState = crptMaximized
        .Destination = crptToWindow
        .Action = 1
    End With

CRファイルのReport Expertでttxファイル(rpt.ttx)を指定してあげると、コード内のレコードセットのフィールド値が自動的にCRファイルのフィールドにマッピングされます。

reportexpert

ttxファイルにタブ区切りでフィールド名、属性、長さを定義するやり方は日本では既に古典の部類に入る手法でしょうが、インドネシアではまだまだ現役です。

ORDERCOD	string	100
PROCNO	number
RESOURCE	string	100
ITEM	string	100
QTY	number
STARTDATE	string	100
ENDDATE	string	100
WORKTIME	string	100
PARENTITEM	string	100
CLASS	number





おすすめ記事一覧

大統領選挙で考えたギャップにハマるということ 1

ギャップにキュンとするというのは人間の本能みたいなもので、ジョコウィの私利私欲のない素朴なおじさん像と、その実強力なリーダーシップを発揮する実務派という内面が、一見普通の人だが実はスゴイというギャップ好きのインドネシア人に大ウケして、大衆は一種の集団催眠状態にあるようです。

情報の質のレベル 2

見える化された結果を共有化することで問題点が共通認識されますが、共有化が進むことで情報の持つ希少価値が薄れて困る人間がいる場合、有益な情報を独占することでポジションを高めようという政治力が働きます。

3

日本人がインドネシアに来ると、インドネシア人ののんびり加減にイライラするというのは昔からよく聞く話で、インドネシア在住日本人にとってのバイブル的小説である深田祐介著「ガルーダ商人」の中でも、インドネシア宗教省の高官が日本人とインドネシア人を自宅に招待する際に、インドネシア人向けの招待状には、遅刻することを前提にパーティ開始時間を三十分早く書いておくという記述があるほどです。

宗教によって異なる「死んだらどうなる」の考え方 4

キリスト教もイスラム教もともにユダヤ教から派生した宗教であり、それぞれイエス・キリスト(本人が神)またはアッラーという唯一無二の神を信じます。

株価操作なんてインドネシア株では当たり前 5

株価は売り注文と買い注文により変動し、大量の売り注文を買う注文がたくさん入れば、他の投資家達は「俺も俺も」と続くことで株価が上がります。

心臓に毛が生えたインドネシア人のずうずうしい転職活動を応援してみた 6

インドネシア人は秘密の話は誰かに暴露しないと精神の安定を保てない人が多いため、内緒の話に情報の希少性は少なく信憑性も低いことが多いので、「ここだけの話」という枕詞付きで聞かされる話は話半分に聞いておいたほうがいいかもしれません。

日系企業のインドネシアでの存在意義 7

今のまま日本の人口減が続けば、内需は縮小の一途をたどるわけで、そうなると日本国内市場だけで生き残るのは難しいと判断する国内企業が、海外市場に活路を見出そうとするのは必然です。

チャンスはあるが勝てる分野を見つけるのが難しい 8

実際にインドネシアに住んでみて、自分で動いて人と話しをして、現地の事情を少しずつ理解していくにつれて、インドネシアで起業することが意外と手強いことに気づき、その難しさの原因は、高い送料と関税であったりローカル企業との競争であったり、就労ビザ(IMTA)や外国人技能開発基金(DPKK)などのランニングコストの高さであったりします。

インドネシアのシステムインテグレーション業界 9

先日JETRO(日本貿易振興機構)さんと、インドネシアの中小企業のIT投資について意見交換させていただく機会をいただいたのですが、そこで「システム投資のコストメリットはどのように説明できるのか」という、システムインテグレーターの存在価値にも関わる重要な問題提起がありました。

肉体と精神と心と魂 10

「Body and Soul」といえば、昨日の内閣改造に伴う人事で内閣府政務官に内定した自民党の今井絵理子参議院員がメンバーだったSPEEDのデビュー曲であり、インドネシアの老舗女性ファッションブランド名でもあります。

ジャカルタのラーメン市場 11

僕がインドネシアに初めて来たのが1997年10月、インドネシア語は分からないし、仕事は辛いし、周囲の人間は理不尽だし、一時期日本に帰りたくて仕方がない時期がありましたが、当時自分をかろうじてインドネシアに繋ぎ止める心の支えとなっていたのが、協栄プリンスビル(今のWisma Keiai)の日本食レストラン「五右衛門」であり、ここでキムチラーメンを食べることが唯一の楽しみと言っても過言ではありませんでした。

ブランド力、技術力、資金力の3要素 12

1998年のジャカルタ暴動後、ルピアが暴落し海外からのドル建て債務を抱えた国内企業が利子の支払いに苦しんでいた頃、僕は外貨が獲得できるインドネシアでの新しいビジネスを探していました。

日本とインドネシアの間でのタイムマシン経営が通じなくなっている件 13

先進国と後進国との間にある流行のタイムラグを利用して、先進国での成功例を後進国で実践するビジネスモデルをタイムマシン経営といいますが、インターネットの普及に伴い情報がフラット化してしまい、モノと情報のタイムラグが限りなく小さくなった今、先駆者である中小零細同業他社が乱立し市場が出来上がったところに、後発の大手が参入し先発零細を駆逐していく、という典型的な負けパターンにはまります。

サリナデパートとマクドナルド 14

本日5月10日を最後にインドネシアのマクドナルド第1号店であるサリナデパート店(Sarinah)が閉店になりますが、ジャカルタのショッピングモールが新しいコンセプトでモダンにリニューアルされ続ける中で、僕がインドネシアに来たばかりの20数年前には、若者の待ち合わせ場所の定番でもあったサリナデパートやブロックMのパサラヤ(Pasaraya)などは完全に時代に取り残されてしまいました。

不景気の歴史 15

僕がインドネシアに来てからこれまで何度か経済不況を見てきましたが、今回の新型コロナウィルスの感染拡大により、間違いなく景気後退しますので、数年後にはこれがコロナショックとかコロナ不況とか呼ばれるようになるのかもしれません。

日本のバブル経済崩壊後とインドネシアの通貨危機後 16

自分が大学に入学したのがバブル経済末期の1991年、土地も株価もMAX爆上げして、三菱地所がアメリカの象徴であるロックフェラーセンタービルを買収し、ジュリアナ東京でワンレンボディコン(登美丘高校ダンス部のバブリーダンスみたいなやつ)のお姉さん達が扇子振って踊っている時期でした。

内需と外需の自国経済に及ぼす影響 17

公共事業投資を行っても、お金が企業内や個人の貯蓄に滞留してしまい国内消費が増えないのが日本の状況であり、国内消費は増えても消費材の輸入品比率が高く、国内資産が海外に流出しているのがインドネシアの状況です。

2019年の総選挙を前にインドネシア政治史のおさらい 18

来年の大統領選挙(Pemilu Pilpres Pileg Indonesia 2019)に向けての選挙運動(Kampanye)を解禁するにあたり、投票用紙に印字される順番はジョコウィ現職大統領・マフル副大統領候補組が1番、プラボウォ大統領候補・サンディアガウノ副大統領候補組が2番と決まりました。

コーヒーをもっと楽しくもっと美味しく 19

インドネシアは北回帰線と南回帰線をはさむコーヒーベルトに位置するコーヒー栽培に適した国で、1602年の東インド会社の進出を契機にオランダの植民地支配が300年以上続き、その間アラビカ種のコーヒーが持ち込まれ、気候のいい高原地帯で栽培が開始されました。

インドネシア人の悪魔祓い 20

人間誰しも自分の中に悪魔が潜んでおり、それが何らかのきっかけで表面に出て来るという考え方自体には、背景に宗教が有るか無いかの違いだけで、基本的に理解できる話であり、それを信じるか信じないかは別として、そういう考えがあることを認めることは大切なことだと思います。

-生産スケジューラー

© 2020 バテラハイシステム Powered by STINGER