Arsip bulanan: Desember 2007

Anakku Hacked Gamespot

Jadi, pagi ini, anak saya bertekad untuk melihat tiga belas umur terbatas Halo 3 video GameSpot. Aku sedang di luar menyekop salju, Jadi saya tidak ada untuk membantu atau menghalangi. Kebutuhan adalah ibu penemuan dan semua yang … Dia memiliki eureka! saat. Dia menyadari bahwa meskipun Gamespot ingin dia memasuki nya nyata Tanggal Lahir, Dia benar-benar bisa masuk setiap tanggal lahir yang diinginkannya. Setelah ia menyadari bahwa, Dia membuat dirinya yang cukup tua untuk melihat video.

I’m not quite sure how I feel about this 🙂

Minggu lucu: “Ini adalah sampah Percetakan”

Di pekerjaan saya pertama dari perguruan tinggi di 1991, Saya cukup beruntung untuk bekerja untuk sebuah perusahaan manufaktur dengan 13 Lokasi, tidak termasuk yang perusahaan HQ di New Jersey. Saya bergabung hanya ketika perusahaan menggelar sistem ERP baru. Kami adalah IT Departemen kecil sekitar sepuluh orang sama sekali, dua di antaranya tidak melakukan perjalanan. Bagian dari proyek terlibat menggantikan sistem IBM 36 kotak dengan HP hardware dan HPUX. Setiap orang digunakan hijau tabung untuk mengakses sistem.

Proyek gulungan sepanjang dan saya turunkan ke Baltimore dengan rekan kerja baru, Jeff. Tugas kita adalah untuk power up kotak Unix, Pastikan o/s berlari, menginstal sistem ERP, mengkonfigurasi ERP, melatih orang-orang di ERP dan melakukan pekerjaan kustom untuk orang-orang di tempat. (Ini adalah pekerjaan impian, terutama berasal langsung dari Universitas). Sebelum kita bisa benar-benar dari tanah, kami harus membongkar semua tabung hijau, meletakkannya di meja dan kawat mereka. Dan bagian yang terbaik adalah bahwa kita harus memakai konektor RJ11 diri kita.

Untuk beberapa alasan bahwa saya tidak pernah mengerti dan benar-benar tidak pernah berpikir untuk menanyakan pada waktu, Kami memiliki beberapa perusahaan kontraktor datang dan menjalankan kabel seluruh tanaman, tapi kami tidak punya mereka memakai pada konektor. Jadi, Ada sebuah "patch kotak" dengan puluhan unlabeled kabel di ruang komputer"" dan ini merayap di sekitar bangunan ke berbagai tempat di gedung.

Kami bekerja dengan cara kami melalui selama akhir pekan, pengujian kawat setiap, menempatkan pada konektor (membuat yakin itu adalah lurus vs. menyeberang), memastikan pengaturan sedikit pada tabung hijau dan printer yang benar, pelabelan kabel, memastikan bahwa "getty" berjalan dengan benar untuk setiap port dan mungkin seribu hal lain bahwa saya telah ditekan sejak itu. Itu semua datang bersama-sama cukup baik.

Tapi, ada satu kabel penting yang kita tidak tahu. Tanaman di Baltimore memiliki hubungan dengan lokasi gudang di New Jersey. Beberapa pesanan ditempatkan di Baltimore dikirim dari lokasi itu. Ada dua kabel yang kami punya untuk menyambung ke kotak HPUX: tabung hijau dan printer. Tabung hijau adalah mudah, Tapi printer berubah menjadi mimpi buruk tiga minggu.

Jika Anda tidak tahu, atau telah ditekan itu, berurusan dengan tabung hijau dan printer dengan cara ini, Ada berbagai pilihan yang Anda berurusan dengan dengan menetapkan berbagai pin. 8-bit, 7-bit, paritas (bahkan/aneh/tidak), mungkin orang lain. Jika Anda mendapatkan salah satu pengaturan tersebut salah, tabung atau printer masih menunjukkan hal-hal, tetapi akan menjadi total omong kosong, atau akan omong kosong dengan banyak hal-hal yang dikenali di antara. Tentu saja, PIN ini sulit untuk melihat dan harus set dengan menggunakan canggih datar obeng kecil. Dan mereka tidak pernah standar.

Kami mendirikan pertama dari banyak panggilan cepat dengan pria NJ (pembenci beruban komputer yang mungkin mengutuk kita untuk hari ini). Kami mendapat tabung hijau bekerja cukup cepat, Tapi kita tidak bisa mendapatkan printer untuk bekerja. Ia memelihara "pencetakan sampah". Kami akan membuat konektor RJ11 baru, beralih antara menyeberang dan lurus. Kami akan menghapus pelabuhan dan kembali menciptakan di Unix. Kami pergi melalui tugas sulit untuk memiliki dia menjelaskan kepada kita konfigurasi pin pada printer, tidak pernah benar-benar yakin apakah dia melakukannya dengan benar.

Sudah waktunya untuk pergi untuk hidup, segala sesuatu di Baltimore bersenandung, Tapi kita tidak bisa bangun printer terkutuk di NJ untuk bekerja! Kami telah kehabisan semua kemungkinan kecuali berkendara kembali ke NJ untuk bekerja pada printer di orang. Untuk menghindari semua yang mengemudi, kami akhirnya meminta dia untuk Faks kami apa dia mendapatkan ketika itu "sampah", berharap bahwa mungkin akan ada beberapa petunjuk di itu sampah yang akan memberitahu kita apa yang kita lakukan salah.

Ketika kami mendapat fax, kita segera tahu apa yang salah. Lihat, metode kami menguji apakah kita telah dikonfigurasi printer dengan benar adalah untuk mengeluarkan sebuah "lp" perintah seperti ini:

LP/etc/passwd

Pada dasarnya, kami dicetak file sandi unix. Hal ini selalu hadir dan keluar dari kotak, selalu hanya satu halaman. Anda standar Unix file password terlihat seperti ini:

Smith:*:100:100:8A-74(Kantor):/rumah smith:/usr/bin/sh tamu:*:200:0::/rumah tamu:/usr/bin/sh  

Kami telah telah mencetak file sandi berulang kali selama beberapa minggu dan itu adalah pada pencetakan dengan benar. Namun, untuk pengguna akhir, itu adalah "pencetakan sampah".

</akhir>

Namun lain jaringan kredensial multi tantangan masalah dan solusi

Klien saya baru saja menginstal perangkat sihir dari Juniper yang tampaknya menggantikan mereka lama Cisco jaringan beban pengimbang (NLB). Pada waktu yang sama, kami diinstal hotfix untuk mengatasi masalah alur kerja.

Satu atau dua hari kemudian, kita melihat masalah ketika kita diakses penyedia layanan bersama (SSP). Kita bisa mendapatkan itu, Tapi kita akan ditantang untuk user ID dan password berkali-kali pada setiap halaman. Ini tidak terjadi dengan aplikasi portal utama, atau pusat administrasi. Secara alami, kami tidak tahu apa yang kedua (Juniper atau perbaikan terbaru) akan menjadi masalah, Meskipun saya sangat curiga hotfix, mencari kami tidak memiliki diinstal itu benar.

Ternyata bahwa Juniper memiliki beberapa jenis kompresi pengaturan. Salah satu angka-angka yang berjubah selama dalam jaringan kelompok berubah itu berangkat. Yang memecahkan masalah kami.

Ini bukanlah pertama kalinya bahwa kompresi telah akar penyebab masalah SharePoint bagi saya. IIS kompresi terpengaruh alat pihak ke-3 dari orang-orang baik di The Dot Net pabrik untuk IE 6 browser (IE 7 browser bekerja tanpa kesulitan).

Jadi, Tambahkan "kompresi" ke daftar bahaya.

</akhir>

Kredit ke: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Technorati Tags: ,

Berpikir tentang mengubah Blogging Platform

Aku mulai karir blogging"saya" menggunakan Microsoft platform dan itu sudah baik kepadaku. Sangat mudah untuk posting, ada pilihan yang baik dan widget untuk mengelola "ruang", penyimpanan web yang layak dan sebagainya.

Namun, Aku benar-benar hanya jatuh ke dalam larutan MS dengan hampir tidak ada perencanaan. Panggilan itu sendiri bagi saya untuk mengevaluasi mana saya dan mana aku pergi, dalam hal blogging platform. Ada juga dua keterbatasan penting yang mengganggu saya benar sekarang vis-à-vis Windows Live Spaces.

Pertama, Saya tidak bisa mendapatkan Statistik sangat baik. Ada Statistik tetapi detail sering dipotong dan tidak disajikan dengan cara yang memungkinkan untuk setiap jenis analisis. Sana kemampuan tidak penyortiran atau ekspor. Saya mendapatkan banyak ide-ide blog berdasarkan jenis orang menemukan informasi (atau terutama gagal untuk menemukan) ketika mereka mencari blog saya. Hal ini sangat sulit untuk menggunakan ruang hidup yang.

Kedua, tidak tampaknya ada mekanisme untuk "uang" sebuah jendela ruang hidup blog. Sebenarnya, untuk menyingkirkan MS iklan (dari mana saya berasal ada manfaat), Saya perlu untuk benar-benar membayar Microsoft. (Setidaknya, Itulah bagaimana saya mengerti; Saya telah mampu mendapatkan definitif jawaban ini dan pertanyaan-pertanyaan seperti itu).

Sekarang bahwa aku punya pola didirikan dan set kebiasaan blogging, Saya ingin mengevaluasi pilihan lainnya. Saya telah melakukan beberapa penelitian dan ada banyak pilihan, tapi aku ingin tahu apa yang orang lain, terutama orang lain dalam komunitas SharePoint (sebagai blogger atau pembaca), ingin menggunakan.

Jika subjek ini menarik minat Anda dan Anda memiliki pendapat atau bersedia untuk berbagi pengalaman Anda, Harap meninggalkan komentar atau email saya secara langsung.

Terima kasih!

<akhir />

Technorati Tags:

Mengirim Email SharePoint Designer ???? dalam Email

Forum pengguna kadang-kadang bertanya: Mengapa SharePoint Designer meletakkan ???? ke email saya daripada nilai bidang?

Salah satu alasan ini terjadi adalah karena variabel yang Anda referensikan nol.

Hal ini dapat terjadi karena Anda mencoba untuk referensi lapangan dari "saat ini item" tetapi pengguna tidak pernah masuk nilai bidang bentuk itu.

<akhir />

Technorati Tags:

Membandingkan / Tes untuk tanggal kosong dalam alur kerja SharePoint Designer

Skenario: Dalam alur kerja SharePoint Designer, Anda perlu menentukan apakah Lapangan tanggal kosong.

Masalah: SPD tidak menyediakan metode langsung untuk membandingkan tarikh untuk apa pun selain tanggal. Anda tidak dapat membuat kondisi seperti ini: "Jika [DateField] sama dengan kosong".

Solusi: Mengkonversi tanggal ke string. Menggunakan perbandingan string untuk menentukan apakah tanggal kosong.

Screen shot:

Gambar layar berikut menunjukkan bagaimana melakukan ini. Dalam skenario ini, bidang item, "Izin lingkungan:Pertama mengizinkan pengingat tanggal", diajukan dan alur kerja kebakaran pada respon.

gambar

gambar

Catatan:

Ketika saya mencoba ini, Saya terkejut untuk mempelajari bahwa ia bekerja. Khawatir bahwa SharePoint Designer mungkin melarang penetapan string (Variabel:StringReminderDateDate) Tapi itu memungkinkan itu.

Juga prihatin bahwa memungkinkan, nilai yang mungkin menjadi null dan meledakkan WF pada saat runtime baik atau mungkin meningkatkan suhu global 1/2 gelar, Tapi kekhawatiran mereka tidak beralasan.

</akhir>

Technorati Tags:

Bar yang masih cukup tinggi untuk memperpanjang MOSS

Hari ini, Saya bekerja dengan klien dan menjelaskan cara untuk memodifikasi bagian web permintaan konten dan menampilkan tambahan bit informasi dari jenis konten.

"Pertama., Anda mengkonfigurasi yang CQWP untuk terhubung ke sumber data, kemudian Anda ekspor ke workstation Anda, memodifikasi <CommonViewFields>, meng-upload, menghapus aslinya dan sekarang sudah ' Prima’ untuk menampilkan kolom lain. Berikutnya, membuka SharePoint designer, menavigasi ke situs koleksi akar dan menemukan ItemStyle.xsl. Menyalin salah satu template sebagai titik awal yang berguna. Kembali dan mengubah CQWP untuk membuat penggunaan template baru ini. Akhirnya, memodifikasi template untuk membuat bidang baru Anda! (Jangan lupa untuk memeriksa kembali di pengguna sehingga orang lain dapat melihat hasil)."

Semua cukup jelas bagi saya (dan sebagian besar dari kita SharePoint pengembang jenis) apa yang terjadi dan bagaimana hal itu cukup bagus, Benarkah, aspek-aspek pengambilan data yang CQWP begitu baik-terpisah dari aspek presentasi data. Tapi, Hal ini tidak begitu mudah untuk menjelaskan, itu?

<akhir />

Menampilkan konten permintaan Web bagian hasil dalam Grid / Tabel

Ikhtisar dan tujuan

Keluar dari kotak, MOSS’ Konten permintaan Web bagian (CQWP) Menampilkan hasil dalam format daftar, mirip dengan hasil pencarian. Hal ini juga memungkinkan untuk menampilkan hasil dalam grid format (yaitu. Format tabel HTML). Grid format lebih baik dalam beberapa keadaan. Saya menjelaskan bagaimana untuk mencapai efek dalam artikel ini.

Bisnis skenario

Saya telah bekerja dengan klien pada peluncuran MOSS perusahaan-lebar. Kami telah merancang taksonomi mereka sedemikian rupa sehingga proyek warga negara kelas pertama dalam hirarki dan memiliki situs sendiri tingkat atas. Manajer Proyek menjaga daftar singleton informasi ringkasan proyek, seperti judul, anggaran, tanggal penyelesaian yang diharapkan, anggaran yang tersisa dan bidang ringkasan tipe lainnya. Oleh "singleton" Maksudku daftar SharePoint kustom dijamin mengandung hanya satu item. Mudah, tampak seperti ini:

gambar

Pendekatan teknis adalah sama seperti yang dijelaskan Sini (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP menggunakan XSL mengubah untuk memancarkan HTML untuk browser untuk membuat.

Saya selalu membayangkan hasil sebelum menyelam ke dalam XSL karena XSL adalah mimpi buruk. Berikut adalah hasil yang saya inginkan:

gambar

HTML seperti ini menghasilkan hasil yang:

<HTML>
 <bodyHTMLan >><  kuat >  pesan yang kuat.</strong>  </body>  </html> ">
 <Pusat>
 <Meja perbatasan= 1>

<!-- Label-->
 <TR bgcolor= biru>
 <TD><font warna= putih><b>Nama proyek</b></font></TD>
 <TD menyelaraskan= kanan><font warna= putih><b>Tanggal lengkap</b></font></TD>
 <TD menyelaraskan= kanan><font warna= putih><b>Anggaran</b></font></TD>
 <TD menyelaraskan= kanan><font warna= putih><b>Biaya sebenarnya</b></font></TD>
 <TD><font warna= putih><b>Keseluruhan Status</b></font></TD>
 </TR>

<TR>
 <TD>Re-kawat ruang komputer.</TD>
 <TD menyelaraskan= kanan>02/01/08</TD>
 <TD menyelaraskan= kanan>22,500.00</TD>
 <TD menyelaraskan= kanan>19,000.00</TD>
 <TD>Berlangsung</TD>
 </TR>

<TR>
 <TD>Penyediaan server untuk meng-Upgrade SQL</TD>
 <TD menyelaraskan= kanan>04/01/08</TD>
 <TD menyelaraskan= kanan>7,500.00</TD>
 <TD menyelaraskan= kanan>0.00</TD>
 <TD>Direncanakan</TD>
 </TR>

</Meja>
 </Pusat>
 </bodyHTMLan >><  kuat >  pesan yang kuat.</strong>  </body>  </html> ">
</HTML>

Pendekatan

Ikuti langkah-langkah untuk membuat grid:

  1. Mengidentifikasi komponen grid (baris kolom).
  2. Mendefinisikan dan menciptakan situs diperlukan kolom.
  3. Membuat sub situs untuk proyek dan daftar singleton.
  4. Tambahkan CQWP ke halaman web dan mengkonfigurasinya untuk mencari daftar Anda.
  5. Memodifikasi CQWP XML untuk mengumpulkan kolom tambahan.
  6. Memodifikasi XSL untuk menghasilkan daftar.

Aku akan berkonsentrasi pada nomor enam. Nomor satu sampai empat adalah lurus ke depan dan sesuatu yang setiap pengguna CQWP telah dilakukan. Nomor lima telah didokumentasikan dengan baik oleh orang lain termasuk layar-shot sarat artikel ini lengkap dari MSDN Sini (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) dan Heather Salomo blog Sini (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Mur dan baut

Memulai dan menerapkan langkah-langkah satu melalui lima per dokumentasi MSDN dan Heather Salomo artikel.

Pada titik ini, Anda telah menambahkan CQWP Anda ke halaman dan Anda memiliki Anda <CommonViewFields> dikonfigurasi sebagai diperlukan.

Mengikuti langkah-langkah biasa, Saya mendapatkan hasil menengah ini:

1. Membuat jenis konten, daftar kustom templatized untuk tipe konten dan dua situs. Berikut adalah jenis konten:

gambar

Berikut adalah struktur situs:

gambar

2. Tambahkan CQWP setelah membuat saya subsites proyek dan singleton Daftar ringkasan proyek:

gambar

3. Menambahkan semua informasi tambahan yang saya ingin melalui <CommonViewFields>:

        <properti Nama="CommonViewFields" jenis="string">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</properti>

Perhatikan bahwa aku harus menjaga semua bidang properti pada satu baris atau itu tidak akan bekerja (CQWP akan memberitahu saya bahwa query kembali tidak ada item).

4. Pada titik ini, kita sudah siap untuk bergerak melampaui artikel MSDN dan sandal di atas untuk Heather Salomo artikel. Ikuti langkah-langkah yang mulai dekat langkah #5 untuk membuat disesuaikan / unghosted versi ItemStyle.xsl. Saya mengikuti saran Heather, melalui langkah 11 dan mendapatkan hasil menengah ini:

4.1: Nama template XSL saya sebagai berikut:

<Extensible Stylesheet Language:Nama template = "Grid" cocok = "Row[@Style = 'Grid']" mode = "itemstyle">

Juga sedikit mengubah dia menyarankan <Extensible Stylesheet Language:untuk setiap …> dengan menambahkan <br /> Tag untuk menyediakan daftar cleaner:

    <Extensible Stylesheet Language:untuk setiap Pilih="@*">
      P:<Extensible Stylesheet Language:nilai dari Pilih="Nama()" /><br/>
    </Extensible Stylesheet Language:untuk setiap>

4.2: Cara mengubah bagian web, pergi ke tampilan dan pilih "Grid" gaya:

gambar

Menerapkan perubahan dan inilah hasilnya:

gambar

Kita bisa melihat dari atas bahwa bidang yang kita ingin (Nama proyek, biaya, status, dll) tersedia bagi kita untuk digunakan ketika kita memancarkan HTML. Tidak hanya itu, Tapi kita melihat nama-nama yang kita harus referensi kolom dalam XSL. Misalnya, kita referensi Status proyek sebagai "Project_x005F_x0020_Name".

Pada titik ini, kami berangkat dari Heather's blog dan dari atas bahu raksasa ini, Saya menambahkan sedikit saya sendiri.

ContentQueryMain.xsl

CATATAN: Ketika membuat perubahan baik ContentQueryMain.xsl maupun ItemStyle.xsl, Anda perlu memeriksa berkas tersebut kembali sebelum Anda melihat efek dari perubahan Anda.

Untuk membuat grid tujuan, MOSS menggunakan dua file XSL yang berbeda untuk menghasilkan hasil yang kita lihat dari CQWP. Untuk menghasilkan sedikit sebelumnya output, kami diubah ItemStyle.xsl. MOSS benar-benar menggunakan file XSL lain, ContentQueryMain.xsl ke dalam hubungannya dengan ItemStyle.xsl untuk menghasilkan HTML yang. Seperti namanya, ContentQueryMain.xsl adalah "utama" XSL yang mengontrol aliran keseluruhan terjemahan. Iterates semua item yang ditemukan dan melewati mereka satu per satu untuk template ItemStyle.xsl. Kami akan mengubah ItemStyle.xsl untuk menghasilkan terbuka <Meja> Tag sebelum memancarkan baris pertama dari data dan penutupan <Meja> Tag setelah memancarkan baris terakhir. Untuk mencapai hal ini, ContentQueryMain.xsl yang dimodifikasi untuk memberikan dua parameter untuk kami "grid" template di ItemStyle.xsl, "baris terakhir" dan "baris saat ini". ItemStyle.xsl menggunakan ini untuk kondisional memancarkan Tag diperlukan.

Menggunakan teknik Heather Salomo, Kami mencari ContentQueryMain.xsl. Terletak di tempat yang sama seperti ItemStyle.xsl. Tembakan layar harus membantu:

gambar

Kita perlu untuk membuat perubahan berikut:

  • Memodifikasi sebuah template xsl, "CallItemTemplate" yang benar-benar memanggil template Grid kami di ItemStyle.xsl. Kami akan menyampaikan dua parameter ke Grid template sehingga akan memiliki data yang dibutuhkan untuk menghasilkan kondisional pembukaan dan penutupan <Meja> Tags.
  • Memodifikasi sedikit lain dari ContentQueryMain.xsl bahwa panggilan "CallItemTemplate" untuk lulus "LastRow" parameter jadi LastRow yang akan diteruskan ke template Grid kami.

Menemukan template bernama "OuterTemplate.CallItemTemplate" diidentifikasi oleh string:

  <Extensible Stylesheet Language:template Nama="OuterTemplate.CallItemTemplate">

Mengganti seluruh template sebagai berikut:

  <Extensible Stylesheet Language:template Nama="OuterTemplate.CallItemTemplate">
    <Extensible Stylesheet Language:Param Nama="CurPosition" />

    <!--
      Tambahkan "LastRow" parameter.
      Kami hanya menggunakannya ketika lulus gaya item dalam "Grid".
    -->
    <Extensible Stylesheet Language:Param Nama="LastRow" />

    <Extensible Stylesheet Language:memilih>
      <Extensible Stylesheet Language:Kapan tes="@Style = 'NewsRollUpItem'">
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
          <Extensible Stylesheet Language:dengan param Nama="EditMode" Pilih="$cbq_iseditmode" />
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Kapan>
      <Extensible Stylesheet Language:Kapan tes="@Style = 'NewsBigItem'">
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
          <Extensible Stylesheet Language:dengan param Nama="CurPos" Pilih="$CurPosition" />
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Kapan>
      <Extensible Stylesheet Language:Kapan tes="@Style = 'NewsCategoryItem'">
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
          <Extensible Stylesheet Language:dengan param Nama="CurPos" Pilih="$CurPosition" />
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Kapan>

      <!--
              Melewati posisi saat ini dan lastrow ke Grid itemstyle.xsl template.
              ItemStyle.xsl akan menggunakannya untuk memancarkan terbuka dan menutup <Meja> Tags.
      -->
      <Extensible Stylesheet Language:Kapan tes="@Style = 'Grid'">
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
          <Extensible Stylesheet Language:dengan param Nama="CurPos" Pilih="$CurPosition" />
          <Extensible Stylesheet Language:dengan param Nama="Terakhir" Pilih="$LastRow" />
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Kapan>

      <Extensible Stylesheet Language:Jika tidak>
        <Extensible Stylesheet Language:menerapkan template Pilih="." mode="itemstyle">
        </Extensible Stylesheet Language:menerapkan template>
      </Extensible Stylesheet Language:Jika tidak>
    </Extensible Stylesheet Language:memilih>
  </Extensible Stylesheet Language:template>

Komentar menggambarkan tujuan perubahan.

Tentu saja, "OuterTemplate.CallItemTemplate" itu sendiri disebut dari template lain. Menemukan template itu dengan mencari string teks ini:

<Extensible Stylesheet Language:template Nama="OuterTemplate.Body">

Gulir melalui petunjuk di OuterTemplate.Body dan masukkan LastRow parameter sebagai berikut (ditampilkan sebagai komentar dalam huruf miring):

<Extensible Stylesheet Language:panggilan-template Nama="OuterTemplate.CallItemTemplate">
  <Extensible Stylesheet Language:dengan param Nama="CurPosition" Pilih="$CurPosition" />
  <!-- Masukkan LastRow parameter. -->
  <Extensible Stylesheet Language:dengan param Nama="LastRow" Pilih="$LastRow"/>
</Extensible Stylesheet Language:panggilan-template>

Setelah semua ini, kami akhirnya memiliki hal-hal yang diatur dengan benar sehingga dapat memancarkan ItemStyle.xsl kami <Meja> Tag di tempat yang tepat.

ItemStyle.Xsl

CATATAN: Lagi, Check in ItemStyle.xsl setelah membuat perubahan sehingga Anda melihat efek dari perubahan.

Kami memiliki dua tugas di sini:

  • Mengganti seluruh Grid template. Anda dapat menyalin/paste dari bawah.
  • Tambahkan beberapa omong kosong di luar definisi template yang memungkinkan "formatcurrency" template untuk bekerja. (Anda dapat memberitahu bahwa saya memiliki pegangan lemah XSL).

Pertama, di dekat bagian atas ItemStyle.xsl, Tambahkan baris ini:

  <!-- Beberapa omong kosong yang memungkinkan kita untuk menampilkan AS. mata uang. -->
  <Extensible Stylesheet Language:desimal-format Nama="Staf" digit="D" />

  <Extensible Stylesheet Language:template Nama="Standar" pertandingan="*" mode="itemstyle">

Catatan bahwa saya menambahkan langsung sebelum <Extensible Stylesheet Language:Nama template = "bawaan" …> definisi.

Berikutnya, kembali ke template Grid kami. Mengganti seluruh Grid template dengan kode di bawah ini. Itu adalah benar-benar berkomentar, Tapi jangan ragu untuk email saya atau meninggalkan komentar di blog saya jika Anda memiliki pertanyaan.

  <Extensible Stylesheet Language:template Nama="Grid" pertandingan="Baris[@Style = 'Grid']" mode="itemstyle">

    <!--
      ContentMain.xsl melewati CurPos dan terakhir.
      Kami menggunakan ini untuk kondisional memancarkan terbuka dan menutup <Meja> Tags.
    -->
    <Extensible Stylesheet Language:Param Nama="CurPos" />
    <Extensible Stylesheet Language:Param Nama="Terakhir" />

    <!-- Variabel berikut dimodifikasi dari ItemStyle.xsl standar -->
    <Extensible Stylesheet Language:variabel Nama="SafeImageUrl">
      <Extensible Stylesheet Language:panggilan-template Nama="OuterTemplate.GetSafeStaticUrl">
        <Extensible Stylesheet Language:dengan param Nama="UrlColumnName" Pilih="'ImageUrl'"/>
      </Extensible Stylesheet Language:panggilan-template>
    </Extensible Stylesheet Language:variabel>
    <Extensible Stylesheet Language:variabel Nama="SafeLinkUrl">
      <Extensible Stylesheet Language:panggilan-template Nama="OuterTemplate.GetSafeLink">
        <Extensible Stylesheet Language:dengan param Nama="UrlColumnName" Pilih="'LinkUrl'"/>
      </Extensible Stylesheet Language:panggilan-template>
    </Extensible Stylesheet Language:variabel>
    <Extensible Stylesheet Language:variabel Nama="DisplayTitle">
      <Extensible Stylesheet Language:panggilan-template Nama="OuterTemplate.GetTitle">
        <Extensible Stylesheet Language:dengan param Nama="Judul" Pilih="@Title"/>
        <Extensible Stylesheet Language:dengan param Nama="UrlColumnName" Pilih="'LinkUrl'"/>
      </Extensible Stylesheet Language:panggilan-template>
    </Extensible Stylesheet Language:variabel>
    <Extensible Stylesheet Language:variabel Nama="LinkTarget">
      <Extensible Stylesheet Language:Jika tes="@OpenInNewWindow = 'Benar'" >_blank</Extensible Stylesheet Language:Jika>
    </Extensible Stylesheet Language:variabel>

    <!--
      Di sini kita mendefinisikan variabel, "tableStart".  Ini berisi HTML yang kita gunakan untuk mendefinisikan pembukaan tabel serta label kolom.  Perhatikan bahwa jika CurPos = 1, ini termasuk HTML dalam CDATA tag.
      Jika tidak, ini akan menjadi kosong.

      Nilai tableStart adalah emited setiap kali ItemStyle disebut melalui ContentQueryMain.xsl.
    -->
    <Extensible Stylesheet Language:variabel Nama="tableStart">
      <Extensible Stylesheet Language:Jika tes="$CurPos = 1">
        <![CDATA[
        <perbatasan tabel = 1>
          <TR bgcolor = "biru">
            <TD><warna font = "putih"><b>Nama proyek</b></font></TD>
            <TD align = "kanan"><warna font = "putih"><b>Tanggal lengkap</b></font></TD>
            <TD align = "kanan"><warna font = "putih"><b>Anggaran</b></font></TD>
            <TD align = "kanan"><warna font = "putih"><b>Biaya sebenarnya</b></font></TD>
            <TD><warna font = "putih"><b>Keseluruhan Status</b></font></TD>
          </TR>
        ]]>
      </Extensible Stylesheet Language:Jika>
    </Extensible Stylesheet Language:variabel>

    <!--
      Variabel lain, tableEnd hanya mendefinisikan menutup meja tag.

      Seperti dengan tableStart, Hal ini selalu emited.  Inilah sebabnya mengapa nilainya ditetapkan kondisional didasarkan pada apakah kita telah telah lulus baris terakhir oleh ContentQueryMain.xsl.
    -->
    <Extensible Stylesheet Language:variabel Nama="tableEnd">
      <Extensible Stylesheet Language:Jika tes="$CurPos = $Last">
        <![CDATA[ </Meja> ]]>
      </Extensible Stylesheet Language:Jika>
    </Extensible Stylesheet Language:variabel>

    <!--
      Selalu mengeluarkan isi tableStart.  Jika hal ini tidak baris pertama yang diberikan kepada kita oleh ContentQueryMain.xsl, kemudian kami tahu nilai akan kosong.

      Menonaktifkan output melarikan diri karena ketika tableStart itu tidak kosong, ini termasuk HTML sebenarnya yang kita inginkan yang akan diberikan oleh browser.  Jika kami tidak meminta XSL parser untuk menonaktifkan output melarikan diri, ini akan menghasilkan hal-hal seperti"&lt;Meja&gt;" daripada"<Meja>".
    -->
    <Extensible Stylesheet Language:nilai dari Pilih="$tableStart" melarikan diri menonaktifkan output="Ya"/>


    <TR>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <TD>
        <Extensible Stylesheet Language:nilai dari Pilih="@Project_x005F_x0020_Name"/>
      </TD>

      <TD menyelaraskan="kanan">
        <Extensible Stylesheet Language:nilai dari Pilih="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD menyelaraskan="kanan">
        <Extensible Stylesheet Language:panggilan-template Nama="formatcurrency">
          <Extensible Stylesheet Language:dengan param Nama="nilai" 
Pilih="@Project_x005F_x0020_Budget"></Extensible Stylesheet Language:dengan param> </Extensible Stylesheet Language:panggilan-template> </TD> <TD menyelaraskan="kanan"> <Extensible Stylesheet Language:panggilan-template Nama="formatcurrency"> <Extensible Stylesheet Language:dengan param Nama="nilai" Pilih="@Project_x005F_x0020_Expenses">
</Extensible Stylesheet Language:dengan param> </Extensible Stylesheet Language:panggilan-template> </TD> <TD> <Extensible Stylesheet Language:nilai dari Pilih="@Project_x005F_x0020_Status"/> </TD> <!-- Semua berikut adalah komentar untuk memperjelas hal. Namun, membawa kembali dan hal itu menjadi <TD> untuk melihat efek. --> <!-- <div id = "linkitem" class = "barang"> <Extensible Stylesheet Language:Jika tes = "panjang string($SafeImageUrl) != 0"> <div kelas = "gambar-daerah-kiri"> <href = "{$SafeLinkUrl}" target = "{$LinkTarget}"> <img kelas = "gambar-fixed-width" src = "{$SafeImageUrl}"
Alt = "{@ImageUrlAltText}"/> </a> </div> </Extensible Stylesheet Language:Jika> <div kelas = "item tautan"> <Extensible Stylesheet Language:panggilan-template
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <href = "{$SafeLinkUrl}"
target = "{$LinkTarget}" title = "{@LinkToolTip}"> <Extensible Stylesheet Language:nilai dari pilih = "$DisExtensible Stylesheet LanguageyTitle" /> </a> <div kelas = "Deskripsi"> <Extensible Stylesheet Language:nilai-dari select="@Description" /> </div> </div> </div>
--> </TR> <!-- Memancarkan menutup meja tag. Jika kami tidak berada pada baris terakhir, ini akan menjadi kosong. --> <Extensible Stylesheet Language:nilai dari Pilih="$tableEnd" melarikan diri menonaktifkan output="Ya"/> </Extensible Stylesheet Language:template> <Extensible Stylesheet Language:template Nama="formatcurrency"> <Extensible Stylesheet Language:Param Nama="nilai" Pilih="0" /> <Extensible Stylesheet Language:nilai dari Pilih='format nomor($nilai, "$DDD,DDD,DDD.DD", "staf")' /> </Extensible Stylesheet Language:template>

Standar WSS/MOSS Data Entry layar tidak mendukung Cascading Drop-Down (atau lain intra-dari komunikasi)

UPDATE (04/2008): Besar blog entry ini menunjukkan pendekatan baik berbasis javascript untuk masalah ini: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

UPDATE II: (04/2008): Blog entry ini tampak menjanjikan juga: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Beberapa kali dalam seminggu, Jika tidak setiap hari, Forum pengguna menjelaskan persyaratan yang biasanya akan bertemu melalui drop-down cascading. Misalnya, Aku punya dua drop-down kontrol:

  • Daftar AS. Serikat
  • Daftar AS. Kota-kota.

Sebagai penyedia UI bertanggung jawab, kita ingin beroperasi seperti ini:

  • Paul memilih AS. negara dari drop-down.
  • Hal ini menyebabkan kota tarik-turun untuk menyaring hanya kota-kota yang milik negara dipilih.
  • Paul memilih kota dari daftar ini disaring.

Ada tidak ada dukungan out-of-the-box untuk fitur ini. Sebenarnya, ada tidak ada OOB dukungan untuk setiap jenis komunikasi intra-bentuk langsung. Ini meliputi pemrograman menyembunyikan/memungkinkan/menonaktifkan bidang dalam menanggapi perubahan lapangan di tempat lain pada formulir.

Tujuan nyata dari artikel ini untuk menggambarkan solusi yang mungkin dan ini adalah pilihan yang saya tahu mereka:

  1. Mengembangkan jenis kolom kustom. Sebagai adat-kolom-pengembang, Anda memiliki kontrol penuh atas "dunia" dari kolom kustom. Anda dapat menerapkan cascading tarik-turun itu.
  2. Pertimbangkan untuk menggunakan alur kerja. Dalam beberapa kasus, Anda ingin secara otomatis menetapkan nilai bidang berdasarkan nilai bidang lain. Dalam hal ini, Anda biasanya akan mencoba menggunakan kolom dihitung, tetapi beberapa kali, ini hanya tidak akan mendapatkan pekerjaan yang dilakukan. SharePoint Designer alur kerja adalah relatif mengelola ramah alternatif untuk menjatuhkan ke dalam kode, dan visual studio. Jika Anda pergi rute ini, menjadi sadar akan masalah yang ditangani oleh Artikel ini (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Event handler: Seperti alur kerja, ini adalah solusi setelah-the-fakta. Anda event handler adalah Majelis .NET (C#, VB.NET) untuk SharePoint yang melewati kontrol. Objek yang Anda mengembangkan memiliki akses ke data daftar (dan seluruh object model) dan dapat melakukan perhitungan apapun dibutuhkan.
  4. Menggunakan SharePoint Designer untuk menciptakan bentuk-bentuk kustom masuk. Saya tidak memiliki pengalaman langsung dengan pendekatan ini, tapi aku mendengar mereka melakukan hal-hal yang baik dengan NewForm.aspx hari ini 🙂
  5. Roll Anda sendiri ASP.NET data entri fungsi (sebagai halaman web berdiri sendiri atau sebagai bagian web) dan menggunakannya.

Jika ada yang tahu pilihan lain dan/atau lebih baik, Silakan kirim komentar dan saya akan memperbarui tubuh posting ini.

<akhir />

Technorati Tags:

Ya tidak (kotak centang) penyaringan di bagian Web Content Query

Untuk menyaring query untuk ya/tidak ada kotak centang yang berjudul "PG tonggak", mengkonfigurasi CQWP seperti ini:

gambar

Ini adalah salah satu dari pertanyaan-pertanyaan tersebut jelas-sekali-Anda-tahu-itu tetapi hard-to-find-an-answer-to: Bagaimana untuk menyaring ya/tidak ada kotak centang yang menggunakan bagian web permintaan konten.

Yang pertama hasil pencarian Saya menemukan menggunakan istilah pencarian "penyaring bagian web permintaan konten ya tidak" datar keluar salah, Jadi saya pikir saya akan menempatkan ini di sana dan melihat apakah ia dapat menggantikan hasil salah dalam hasil pencarian khas.

Sangat mudah: Benar nilai = "1" dan nilai-nilai yang palsu tidak sama dengan "1" (cantik retro, benar-benar).

Dalam contoh di atas, Saya menciptakan situs kolom jenis ya/tidak" (kotak centang)" bernama "PG tonggak". Saya menambahkan ke Perpustakaan doc, upload beberapa dokumen, mengatur nilai beberapa dan diuji.

<akhir />