03. januar 2002 - 19:34Der er
4 kommentarer og 1 løsning
Rækkefølge af over/underskrifter i en While-løkke
Jeg trækker nogle lande og destinationer til en snemeldingsside ud af en database vha ASP. For hvert LAND skal der udskrives en række destinationer. LAND skal være en overskrift een gang for en række af dest. i samme land. Min ide var, at hvis landets navn skifter skal der laves en ny overskrift.
var land = \"\"; // Blot en testvariabel, for at se om navn på landet skifter
// Data udplukkes fra DB via en While-Løkke // vis_land er det faktiske land fra DB // Hvis de ikke er ens skal der laves en overskrift if (!land==vis_land){ Response.Write (\"<tr><td colspan=7><p>\"+vis_land+\"</p></td></tr>\\n\"); Response.Write (\"<tr><td colspan=7><hr width=\'100\' align=\'left\' noshade size=\'1\'></td></tr>\\n\"); }
// Ellers bare skriv destination som normalt land = vis_land; // Opdater testvariablen
res.MoveNext(); // går til næste record
Men det virker ikke. Den skriver ingen LANDE, men skulle den ikke fange \"uoverensstemmelsen\" i IF sætningen? Har prøvet alt muligt men har nu stirret mig blind på det. Hjælp modtages med tak
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
var det ikke nemmere at lave 2 whileløkker inden i hinanden:
// læs første fra DB while ( række klar fra DB ) { vis_land = land // skriv en landeoverskrift. while ( land == vis_land ) { // skriv rækkedata // hent ny række fra DB } //endwhile } //endwhile
Jeg beklager Jacoba, da du ellers er min favorit herinde *bukker mig i gruset*, men det var IF sætningen som drillede. Sammenligningen fungerede først, når jeg lavede Var om til String og lavede IF således if (land.toUpperCase()!=vis_land.toUpperCase())
Kan du forklare mig hvorfor, så får du point alligevel. I andre tilfælde har jeg fint undværet konvertering af Case.
if (!land==vis_land){ ... operatoren ! alene har meget høj prioritet og forventer en boolean værdi som eneste operand. og \"\" fortolket som boolean er false så hvis land har værdien \"\" bliver udtrykket til: if ( true == vis_land ) { det vil så tvinge vis_land til også at blive fortolket som en boolean, og hvis vis_land har en hvilkensomhelst anden værdi end \"\" bliver den så set som true if ( true == true ) { og det er jo altid sandt.
Det der automatiske typekonvertering i javascript har sine bagsider :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.