Frage

Ich frage mich, wenn jemand helfen kann:

Lange Rede kurzer Sinn, ich bin mit MSSQL2005 einer Pivot-Tabelle zu erstellen. Die Daten geprüft werden nach Datumsbereich (Alle Daten für 1 Woche ab dem nächsten ab Montag auf das Datum ausgewählt) begrenzt

Wenn ich die Stored Proc laufen und ihm ein Datum übergeben, erhalte ich die richtige Tabelle zurück zB:

Zeit | 1 ist 9. Januar | 2 9. Januar | 3-9. Januar | ...

9.00 | 0 | 9 | 25 | ...

09.30 | 8 | 27 | 65 | ...

10.00 | 20 | 44 | 112 | ...

(Apologies für die grausame "Tabelle" Formatierung).

Das einzige Problem, das ich habe ist, dass die Spaltenüberschriften wird das Datum sowohl übergeben an die SP (Die gewünschte Ansicht Datum) und die Logik innerhalb der SP variieren (was die linke Spalte zwingt die nächste Montag zu sein das Datum angegeben ist).

Das bedeutet, dass, wenn ich die Ergebnisse für den Benutzer anzeigen, I (zur Zeit) benötigen Sie den Datum-Prüflogik in klassischen ASP [einfach, aber ein Wartbarkeit fail]

duplizieren

Was ich wirklich brauchen, ist eine Möglichkeit, die Spaltennamen aus dem Re-Cord des Abrufens selbst.

Kann mir bitte jemand in die richtige Richtung?

Ich habe gegoogelt, aber alle Ergebnisse, die wir scheinen Lese ein Tabellenschemas zu beziehen bekommen -., Die in diesem Fall nicht helfen, wie meine Tabelle on the fly im Speicher erzeugt wird,

Vielen Dank im Voraus für jede Hilfe, die Sie zur Verfügung stellen können

War es hilfreich?

Lösung

ein Aufheben Rekord Angenommen, Sie etwa Folgendes tun könnten (Dies ist in Pseudo-Code):

foreach (field in rs.Fields)
{
    alert(field.Name);
}

Dies gibt Ihnen den Namen des Feldes dieses Dokumentation .

Andere Tipps

So etwas sollte es tun: -

 <table>
   <thead>
      <tr>
         <%For Each fld in rst.Fields%>
           <th><span><%=Server.HTMLEncode(fld.Name)%></span></th>
         <%Next %>
      </tr>
   </thead>
   <tbody>
 <%
   Do Until rst.EOF
      OutputRow rst.Fields
      rst.MoveNext
   Loop
 %>
   </tbody>
 </table>

 Sub OutputRow(fields)
 %>
      <tr>
         <%For Each fld in fields%>
           <td><span><%=Server.HTMLEncode(fld.Name)%></span></td>
         <%Next %>
      </tr>
 <%
 End Sub
 %>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top